From 1f5338cf2323a26e015e0f92f38586eec6e0720e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9mi=20C=C3=A9r=C3=A8s?= Date: Thu, 2 Feb 2023 11:39:36 +0100 Subject: [PATCH 01/32] Transferring testQuery1 to corese-unit-test --- corese-unit-test/pom.xml | 7 +- .../src/main/java/module-info.java | 1 + .../fr/inria/corese/engine/TestQuery1.java | 8795 +++++++++++++++++ .../corese/engine => }/data/comma/comma.rdfs | 0 .../data/comma/data/Ada_Lovelace.rdf | 0 .../data/comma/data/Alain_Giboin.rdf | 0 ...ed_The_06_05_2001_At_16h_33m_42s_918ms.rdf | 0 ...ed_The_07_05_2001_At_09h_38m_48s_147ms.rdf | 0 ...ed_The_07_05_2001_At_09h_40m_36s_973ms.rdf | 0 ...ed_The_07_05_2001_At_09h_41m_31s_537ms.rdf | 0 ...ed_The_07_05_2001_At_09h_44m_38s_909ms.rdf | 0 ...ed_The_07_05_2001_At_09h_46m_08s_163ms.rdf | 0 ...ed_The_07_05_2001_At_10h_21m_25s_403ms.rdf | 0 ...ed_The_07_05_2001_At_11h_32m_20s_977ms.rdf | 0 ...ed_The_07_05_2001_At_12h_07m_49s_050ms.rdf | 0 ...ed_The_18_05_2001_At_15h_51m_06s_359ms.rdf | 0 .../data/comma/data/Fabien_Gandon.rdf | 0 .../data/comma/data/Olivier_Corby.rdf | 0 .../data/comma/data/Rose_Dieng.rdf | 0 .../data/comma/data/article_madrid.rdf | 0 .../data/comma/data/article_pakm.rdf | 0 .../engine => }/data/comma/data/kmss.rdf | 0 .../data/comma/data/livret_d_accueil.rdf | 0 .../engine => }/data/comma/data/mediation.rdf | 0 .../data/comma/data/organigramme_acacia.rdf | 0 .../data/comma/data/organigramme_bacf.rdf | 0 .../data/comma/data/organigramme_bpas.rdf | 0 .../data/comma/data/organigramme_re.rdf | 0 .../data/comma/data/organigramme_semir.rdf | 0 .../comma/data/organigramme_ur_sophia.rdf | 0 .../data/comma/data/plan_imprimantes.rdf | 0 .../data/comma/data/plan_masse_inria.rdf | 0 .../data/comma/data/presentation_cstb.rdf | 0 .../data/comma/data/presentation_ekaw.rdf | 0 .../engine => }/data/comma/data/tmp.rdf | 0 .../corese/engine => }/data/comma/model.rdf | 0 .../engine => }/data/jsonld/test.jsonld | 0 .../engine => }/data/junit/data/test.rdf | 0 .../engine => }/data/junit/data/test.ttl | 0 .../engine => }/data/junit/data/test.xml | 0 .../data/junit/sttl/format1/start.rq | 0 .../data/junit/sttl/format2/format/test.html | 0 .../data/junit/sttl/format2/start.rq | 0 .../corese/engine => }/data/math/data/fun.ttl | 0 .../data/template/owl/data/primer.owl | 0 .../data/template/spinhtml/data/agg.ttl | 0 .../data/template/spinhtml/data/ask.ttl | 0 .../data/template/spinhtml/data/const.ttl | 0 .../data/template/spinhtml/data/construct.ttl | 0 .../data/template/spinhtml/data/describe.ttl | 0 .../data/template/spinhtml/data/exp.ttl | 0 .../data/template/spinhtml/data/onto.ttl | 0 .../data/template/spinhtml/data/path.ttl | 0 .../data/template/spinhtml/data/sco.ttl | 0 .../data/template/spinhtml/data/sub.ttl | 0 .../data/template/spinhtml/data/test.ttl | 0 .../data/template/spinhtml/data/values.ttl | 0 .../corese/engine => }/data/test/iso.rdf | 0 .../corese/engine => }/data/test/iso.ttl | 0 .../corese/engine => }/data/test/primer.owl | 0 .../engine => }/data/test/primerdata.ttl | 0 .../corese/engine => }/data/test/utf.rdf | 0 .../corese/engine => }/data/test/utf.ttl | 0 .../corese/engine/data/comma/data2/f0.rdf | 12 - .../corese/engine/data/comma/data2/f1.rdf | 42 - .../corese/engine/data/comma/data2/f10.rdf | 18 - .../corese/engine/data/comma/data2/f100.rdf | 19 - .../corese/engine/data/comma/data2/f101.rdf | 54 - .../corese/engine/data/comma/data2/f102.rdf | 24 - .../corese/engine/data/comma/data2/f103.rdf | 13 - .../corese/engine/data/comma/data2/f104.rdf | 24 - .../corese/engine/data/comma/data2/f105.rdf | 24 - .../corese/engine/data/comma/data2/f106.rdf | 18 - .../corese/engine/data/comma/data2/f107.rdf | 24 - .../corese/engine/data/comma/data2/f108.rdf | 24 - .../corese/engine/data/comma/data2/f109.rdf | 24 - .../corese/engine/data/comma/data2/f11.rdf | 30 - .../corese/engine/data/comma/data2/f110.rdf | 24 - .../corese/engine/data/comma/data2/f111.rdf | 30 - .../corese/engine/data/comma/data2/f112.rdf | 18 - .../corese/engine/data/comma/data2/f113.rdf | 24 - .../corese/engine/data/comma/data2/f114.rdf | 18 - .../corese/engine/data/comma/data2/f115.rdf | 24 - .../corese/engine/data/comma/data2/f116.rdf | 24 - .../corese/engine/data/comma/data2/f117.rdf | 18 - .../corese/engine/data/comma/data2/f118.rdf | 18 - .../corese/engine/data/comma/data2/f119.rdf | 30 - .../corese/engine/data/comma/data2/f12.rdf | 24 - .../corese/engine/data/comma/data2/f120.rdf | 30 - .../corese/engine/data/comma/data2/f121.rdf | 18 - .../corese/engine/data/comma/data2/f122.rdf | 18 - .../corese/engine/data/comma/data2/f123.rdf | 42 - .../corese/engine/data/comma/data2/f124.rdf | 18 - .../corese/engine/data/comma/data2/f125.rdf | 24 - .../corese/engine/data/comma/data2/f126.rdf | 24 - .../corese/engine/data/comma/data2/f127.rdf | 36 - .../corese/engine/data/comma/data2/f128.rdf | 24 - .../corese/engine/data/comma/data2/f129.rdf | 30 - .../corese/engine/data/comma/data2/f13.rdf | 24 - .../corese/engine/data/comma/data2/f130.rdf | 24 - .../corese/engine/data/comma/data2/f131.rdf | 18 - .../corese/engine/data/comma/data2/f132.rdf | 30 - .../corese/engine/data/comma/data2/f133.rdf | 18 - .../corese/engine/data/comma/data2/f134.rdf | 18 - .../corese/engine/data/comma/data2/f135.rdf | 30 - .../corese/engine/data/comma/data2/f136.rdf | 18 - .../corese/engine/data/comma/data2/f137.rdf | 36 - .../corese/engine/data/comma/data2/f138.rdf | 30 - .../corese/engine/data/comma/data2/f139.rdf | 36 - .../corese/engine/data/comma/data2/f14.rdf | 19 - .../corese/engine/data/comma/data2/f140.rdf | 18 - .../corese/engine/data/comma/data2/f141.rdf | 30 - .../corese/engine/data/comma/data2/f142.rdf | 30 - .../corese/engine/data/comma/data2/f143.rdf | 18 - .../corese/engine/data/comma/data2/f144.rdf | 24 - .../corese/engine/data/comma/data2/f145.rdf | 18 - .../corese/engine/data/comma/data2/f146.rdf | 18 - .../corese/engine/data/comma/data2/f147.rdf | 18 - .../corese/engine/data/comma/data2/f148.rdf | 36 - .../corese/engine/data/comma/data2/f149.rdf | 24 - .../corese/engine/data/comma/data2/f15.rdf | 19 - .../corese/engine/data/comma/data2/f150.rdf | 24 - .../corese/engine/data/comma/data2/f151.rdf | 54 - .../corese/engine/data/comma/data2/f152.rdf | 30 - .../corese/engine/data/comma/data2/f153.rdf | 24 - .../corese/engine/data/comma/data2/f154.rdf | 24 - .../corese/engine/data/comma/data2/f155.rdf | 30 - .../corese/engine/data/comma/data2/f156.rdf | 30 - .../corese/engine/data/comma/data2/f157.rdf | 30 - .../corese/engine/data/comma/data2/f158.rdf | 18 - .../corese/engine/data/comma/data2/f159.rdf | 24 - .../corese/engine/data/comma/data2/f16.rdf | 18 - .../corese/engine/data/comma/data2/f160.rdf | 18 - .../corese/engine/data/comma/data2/f161.rdf | 24 - .../corese/engine/data/comma/data2/f162.rdf | 24 - .../corese/engine/data/comma/data2/f163.rdf | 18 - .../corese/engine/data/comma/data2/f164.rdf | 24 - .../corese/engine/data/comma/data2/f165.rdf | 30 - .../corese/engine/data/comma/data2/f166.rdf | 18 - .../corese/engine/data/comma/data2/f167.rdf | 18 - .../corese/engine/data/comma/data2/f168.rdf | 24 - .../corese/engine/data/comma/data2/f169.rdf | 30 - .../corese/engine/data/comma/data2/f17.rdf | 24 - .../corese/engine/data/comma/data2/f170.rdf | 18 - .../corese/engine/data/comma/data2/f171.rdf | 24 - .../corese/engine/data/comma/data2/f172.rdf | 18 - .../corese/engine/data/comma/data2/f173.rdf | 18 - .../corese/engine/data/comma/data2/f174.rdf | 24 - .../corese/engine/data/comma/data2/f175.rdf | 24 - .../corese/engine/data/comma/data2/f176.rdf | 36 - .../corese/engine/data/comma/data2/f177.rdf | 24 - .../corese/engine/data/comma/data2/f178.rdf | 24 - .../corese/engine/data/comma/data2/f179.rdf | 18 - .../corese/engine/data/comma/data2/f18.rdf | 18 - .../corese/engine/data/comma/data2/f180.rdf | 18 - .../corese/engine/data/comma/data2/f181.rdf | 30 - .../corese/engine/data/comma/data2/f182.rdf | 24 - .../corese/engine/data/comma/data2/f183.rdf | 24 - .../corese/engine/data/comma/data2/f184.rdf | 24 - .../corese/engine/data/comma/data2/f185.rdf | 30 - .../corese/engine/data/comma/data2/f186.rdf | 24 - .../corese/engine/data/comma/data2/f187.rdf | 18 - .../corese/engine/data/comma/data2/f188.rdf | 30 - .../corese/engine/data/comma/data2/f189.rdf | 18 - .../corese/engine/data/comma/data2/f19.rdf | 48 - .../corese/engine/data/comma/data2/f190.rdf | 18 - .../corese/engine/data/comma/data2/f191.rdf | 24 - .../corese/engine/data/comma/data2/f192.rdf | 24 - .../corese/engine/data/comma/data2/f193.rdf | 24 - .../corese/engine/data/comma/data2/f194.rdf | 18 - .../corese/engine/data/comma/data2/f195.rdf | 18 - .../corese/engine/data/comma/data2/f196.rdf | 24 - .../corese/engine/data/comma/data2/f197.rdf | 24 - .../corese/engine/data/comma/data2/f198.rdf | 7 - .../corese/engine/data/comma/data2/f199.rdf | 24 - .../corese/engine/data/comma/data2/f2.rdf | 30 - .../corese/engine/data/comma/data2/f20.rdf | 30 - .../corese/engine/data/comma/data2/f200.rdf | 12 - .../corese/engine/data/comma/data2/f201.rdf | 12 - .../corese/engine/data/comma/data2/f202.rdf | 12 - .../corese/engine/data/comma/data2/f203.rdf | 24 - .../corese/engine/data/comma/data2/f204.rdf | 18 - .../corese/engine/data/comma/data2/f205.rdf | 36 - .../corese/engine/data/comma/data2/f206.rdf | 24 - .../corese/engine/data/comma/data2/f207.rdf | 30 - .../corese/engine/data/comma/data2/f208.rdf | 24 - .../corese/engine/data/comma/data2/f209.rdf | 24 - .../corese/engine/data/comma/data2/f21.rdf | 24 - .../corese/engine/data/comma/data2/f210.rdf | 18 - .../corese/engine/data/comma/data2/f211.rdf | 24 - .../corese/engine/data/comma/data2/f212.rdf | 18 - .../corese/engine/data/comma/data2/f213.rdf | 18 - .../corese/engine/data/comma/data2/f214.rdf | 18 - .../corese/engine/data/comma/data2/f215.rdf | 36 - .../corese/engine/data/comma/data2/f216.rdf | 24 - .../corese/engine/data/comma/data2/f217.rdf | 18 - .../corese/engine/data/comma/data2/f218.rdf | 30 - .../corese/engine/data/comma/data2/f219.rdf | 24 - .../corese/engine/data/comma/data2/f22.rdf | 18 - .../corese/engine/data/comma/data2/f220.rdf | 24 - .../corese/engine/data/comma/data2/f221.rdf | 18 - .../corese/engine/data/comma/data2/f222.rdf | 24 - .../corese/engine/data/comma/data2/f223.rdf | 18 - .../corese/engine/data/comma/data2/f224.rdf | 18 - .../corese/engine/data/comma/data2/f225.rdf | 24 - .../corese/engine/data/comma/data2/f226.rdf | 30 - .../corese/engine/data/comma/data2/f227.rdf | 18 - .../corese/engine/data/comma/data2/f228.rdf | 18 - .../corese/engine/data/comma/data2/f229.rdf | 18 - .../corese/engine/data/comma/data2/f23.rdf | 24 - .../corese/engine/data/comma/data2/f230.rdf | 18 - .../corese/engine/data/comma/data2/f231.rdf | 24 - .../corese/engine/data/comma/data2/f232.rdf | 30 - .../corese/engine/data/comma/data2/f233.rdf | 19 - .../corese/engine/data/comma/data2/f234.rdf | 24 - .../corese/engine/data/comma/data2/f235.rdf | 24 - .../corese/engine/data/comma/data2/f236.rdf | 24 - .../corese/engine/data/comma/data2/f237.rdf | 31 - .../corese/engine/data/comma/data2/f238.rdf | 31 - .../corese/engine/data/comma/data2/f239.rdf | 18 - .../corese/engine/data/comma/data2/f24.rdf | 18 - .../corese/engine/data/comma/data2/f240.rdf | 36 - .../corese/engine/data/comma/data2/f241.rdf | 24 - .../corese/engine/data/comma/data2/f242.rdf | 30 - .../corese/engine/data/comma/data2/f243.rdf | 30 - .../corese/engine/data/comma/data2/f244.rdf | 30 - .../corese/engine/data/comma/data2/f245.rdf | 18 - .../corese/engine/data/comma/data2/f246.rdf | 13 - .../corese/engine/data/comma/data2/f247.rdf | 13 - .../corese/engine/data/comma/data2/f248.rdf | 24 - .../corese/engine/data/comma/data2/f249.rdf | 25 - .../corese/engine/data/comma/data2/f25.rdf | 24 - .../corese/engine/data/comma/data2/f250.rdf | 19 - .../corese/engine/data/comma/data2/f251.rdf | 19 - .../corese/engine/data/comma/data2/f252.rdf | 18 - .../corese/engine/data/comma/data2/f253.rdf | 13 - .../corese/engine/data/comma/data2/f254.rdf | 13 - .../corese/engine/data/comma/data2/f255.rdf | 13 - .../corese/engine/data/comma/data2/f256.rdf | 19 - .../corese/engine/data/comma/data2/f257.rdf | 18 - .../corese/engine/data/comma/data2/f258.rdf | 36 - .../corese/engine/data/comma/data2/f259.rdf | 24 - .../corese/engine/data/comma/data2/f26.rdf | 35 - .../corese/engine/data/comma/data2/f260.rdf | 24 - .../corese/engine/data/comma/data2/f261.rdf | 18 - .../corese/engine/data/comma/data2/f262.rdf | 18 - .../corese/engine/data/comma/data2/f263.rdf | 24 - .../corese/engine/data/comma/data2/f264.rdf | 24 - .../corese/engine/data/comma/data2/f265.rdf | 30 - .../corese/engine/data/comma/data2/f266.rdf | 24 - .../corese/engine/data/comma/data2/f267.rdf | 24 - .../corese/engine/data/comma/data2/f268.rdf | 18 - .../corese/engine/data/comma/data2/f269.rdf | 18 - .../corese/engine/data/comma/data2/f27.rdf | 24 - .../corese/engine/data/comma/data2/f270.rdf | 18 - .../corese/engine/data/comma/data2/f271.rdf | 18 - .../corese/engine/data/comma/data2/f272.rdf | 24 - .../corese/engine/data/comma/data2/f273.rdf | 30 - .../corese/engine/data/comma/data2/f274.rdf | 36 - .../corese/engine/data/comma/data2/f275.rdf | 30 - .../corese/engine/data/comma/data2/f276.rdf | 18 - .../corese/engine/data/comma/data2/f277.rdf | 18 - .../corese/engine/data/comma/data2/f278.rdf | 30 - .../corese/engine/data/comma/data2/f279.rdf | 18 - .../corese/engine/data/comma/data2/f28.rdf | 18 - .../corese/engine/data/comma/data2/f280.rdf | 24 - .../corese/engine/data/comma/data2/f281.rdf | 24 - .../corese/engine/data/comma/data2/f282.rdf | 24 - .../corese/engine/data/comma/data2/f283.rdf | 24 - .../corese/engine/data/comma/data2/f284.rdf | 18 - .../corese/engine/data/comma/data2/f285.rdf | 18 - .../corese/engine/data/comma/data2/f286.rdf | 30 - .../corese/engine/data/comma/data2/f287.rdf | 24 - .../corese/engine/data/comma/data2/f288.rdf | 36 - .../corese/engine/data/comma/data2/f289.rdf | 24 - .../corese/engine/data/comma/data2/f29.rdf | 36 - .../corese/engine/data/comma/data2/f290.rdf | 18 - .../corese/engine/data/comma/data2/f291.rdf | 24 - .../corese/engine/data/comma/data2/f292.rdf | 30 - .../corese/engine/data/comma/data2/f293.rdf | 24 - .../corese/engine/data/comma/data2/f294.rdf | 18 - .../corese/engine/data/comma/data2/f295.rdf | 18 - .../corese/engine/data/comma/data2/f296.rdf | 18 - .../corese/engine/data/comma/data2/f297.rdf | 24 - .../corese/engine/data/comma/data2/f298.rdf | 18 - .../corese/engine/data/comma/data2/f299.rdf | 30 - .../corese/engine/data/comma/data2/f3.rdf | 24 - .../corese/engine/data/comma/data2/f30.rdf | 30 - .../corese/engine/data/comma/data2/f300.rdf | 24 - .../corese/engine/data/comma/data2/f301.rdf | 30 - .../corese/engine/data/comma/data2/f302.rdf | 18 - .../corese/engine/data/comma/data2/f303.rdf | 18 - .../corese/engine/data/comma/data2/f304.rdf | 18 - .../corese/engine/data/comma/data2/f305.rdf | 18 - .../corese/engine/data/comma/data2/f306.rdf | 18 - .../corese/engine/data/comma/data2/f307.rdf | 18 - .../corese/engine/data/comma/data2/f308.rdf | 30 - .../corese/engine/data/comma/data2/f309.rdf | 36 - .../corese/engine/data/comma/data2/f31.rdf | 36 - .../corese/engine/data/comma/data2/f310.rdf | 18 - .../corese/engine/data/comma/data2/f311.rdf | 24 - .../corese/engine/data/comma/data2/f312.rdf | 18 - .../corese/engine/data/comma/data2/f313.rdf | 24 - .../corese/engine/data/comma/data2/f314.rdf | 36 - .../corese/engine/data/comma/data2/f315.rdf | 30 - .../corese/engine/data/comma/data2/f316.rdf | 24 - .../corese/engine/data/comma/data2/f317.rdf | 24 - .../corese/engine/data/comma/data2/f318.rdf | 24 - .../corese/engine/data/comma/data2/f319.rdf | 18 - .../corese/engine/data/comma/data2/f32.rdf | 18 - .../corese/engine/data/comma/data2/f320.rdf | 18 - .../corese/engine/data/comma/data2/f321.rdf | 18 - .../corese/engine/data/comma/data2/f322.rdf | 24 - .../corese/engine/data/comma/data2/f323.rdf | 36 - .../corese/engine/data/comma/data2/f324.rdf | 24 - .../corese/engine/data/comma/data2/f325.rdf | 18 - .../corese/engine/data/comma/data2/f326.rdf | 30 - .../corese/engine/data/comma/data2/f327.rdf | 30 - .../corese/engine/data/comma/data2/f328.rdf | 24 - .../corese/engine/data/comma/data2/f329.rdf | 18 - .../corese/engine/data/comma/data2/f33.rdf | 30 - .../corese/engine/data/comma/data2/f330.rdf | 18 - .../corese/engine/data/comma/data2/f331.rdf | 30 - .../corese/engine/data/comma/data2/f332.rdf | 36 - .../corese/engine/data/comma/data2/f333.rdf | 18 - .../corese/engine/data/comma/data2/f334.rdf | 30 - .../corese/engine/data/comma/data2/f335.rdf | 18 - .../corese/engine/data/comma/data2/f336.rdf | 18 - .../corese/engine/data/comma/data2/f337.rdf | 18 - .../corese/engine/data/comma/data2/f338.rdf | 24 - .../corese/engine/data/comma/data2/f339.rdf | 30 - .../corese/engine/data/comma/data2/f34.rdf | 30 - .../corese/engine/data/comma/data2/f340.rdf | 30 - .../corese/engine/data/comma/data2/f341.rdf | 36 - .../corese/engine/data/comma/data2/f342.rdf | 42 - .../corese/engine/data/comma/data2/f343.rdf | 18 - .../corese/engine/data/comma/data2/f344.rdf | 30 - .../corese/engine/data/comma/data2/f345.rdf | 18 - .../corese/engine/data/comma/data2/f346.rdf | 24 - .../corese/engine/data/comma/data2/f347.rdf | 30 - .../corese/engine/data/comma/data2/f348.rdf | 18 - .../corese/engine/data/comma/data2/f349.rdf | 30 - .../corese/engine/data/comma/data2/f35.rdf | 36 - .../corese/engine/data/comma/data2/f350.rdf | 24 - .../corese/engine/data/comma/data2/f351.rdf | 24 - .../corese/engine/data/comma/data2/f352.rdf | 18 - .../corese/engine/data/comma/data2/f353.rdf | 30 - .../corese/engine/data/comma/data2/f354.rdf | 18 - .../corese/engine/data/comma/data2/f355.rdf | 24 - .../corese/engine/data/comma/data2/f356.rdf | 24 - .../corese/engine/data/comma/data2/f357.rdf | 18 - .../corese/engine/data/comma/data2/f358.rdf | 30 - .../corese/engine/data/comma/data2/f359.rdf | 18 - .../corese/engine/data/comma/data2/f36.rdf | 18 - .../corese/engine/data/comma/data2/f360.rdf | 30 - .../corese/engine/data/comma/data2/f361.rdf | 24 - .../corese/engine/data/comma/data2/f362.rdf | 24 - .../corese/engine/data/comma/data2/f363.rdf | 24 - .../corese/engine/data/comma/data2/f364.rdf | 30 - .../corese/engine/data/comma/data2/f365.rdf | 24 - .../corese/engine/data/comma/data2/f366.rdf | 18 - .../corese/engine/data/comma/data2/f367.rdf | 24 - .../corese/engine/data/comma/data2/f368.rdf | 18 - .../corese/engine/data/comma/data2/f369.rdf | 24 - .../corese/engine/data/comma/data2/f37.rdf | 42 - .../corese/engine/data/comma/data2/f370.rdf | 18 - .../corese/engine/data/comma/data2/f371.rdf | 24 - .../corese/engine/data/comma/data2/f372.rdf | 30 - .../corese/engine/data/comma/data2/f373.rdf | 18 - .../corese/engine/data/comma/data2/f374.rdf | 24 - .../corese/engine/data/comma/data2/f375.rdf | 30 - .../corese/engine/data/comma/data2/f376.rdf | 42 - .../corese/engine/data/comma/data2/f377.rdf | 18 - .../corese/engine/data/comma/data2/f378.rdf | 18 - .../corese/engine/data/comma/data2/f379.rdf | 18 - .../corese/engine/data/comma/data2/f38.rdf | 24 - .../corese/engine/data/comma/data2/f380.rdf | 30 - .../corese/engine/data/comma/data2/f381.rdf | 18 - .../corese/engine/data/comma/data2/f382.rdf | 18 - .../corese/engine/data/comma/data2/f383.rdf | 30 - .../corese/engine/data/comma/data2/f384.rdf | 36 - .../corese/engine/data/comma/data2/f385.rdf | 18 - .../corese/engine/data/comma/data2/f386.rdf | 30 - .../corese/engine/data/comma/data2/f387.rdf | 36 - .../corese/engine/data/comma/data2/f388.rdf | 30 - .../corese/engine/data/comma/data2/f389.rdf | 18 - .../corese/engine/data/comma/data2/f39.rdf | 18 - .../corese/engine/data/comma/data2/f390.rdf | 18 - .../corese/engine/data/comma/data2/f391.rdf | 18 - .../corese/engine/data/comma/data2/f392.rdf | 18 - .../corese/engine/data/comma/data2/f393.rdf | 30 - .../corese/engine/data/comma/data2/f394.rdf | 18 - .../corese/engine/data/comma/data2/f395.rdf | 30 - .../corese/engine/data/comma/data2/f396.rdf | 18 - .../corese/engine/data/comma/data2/f397.rdf | 18 - .../corese/engine/data/comma/data2/f398.rdf | 24 - .../corese/engine/data/comma/data2/f399.rdf | 24 - .../corese/engine/data/comma/data2/f4.rdf | 18 - .../corese/engine/data/comma/data2/f40.rdf | 24 - .../corese/engine/data/comma/data2/f400.rdf | 36 - .../corese/engine/data/comma/data2/f401.rdf | 36 - .../corese/engine/data/comma/data2/f402.rdf | 24 - .../corese/engine/data/comma/data2/f403.rdf | 30 - .../corese/engine/data/comma/data2/f404.rdf | 24 - .../corese/engine/data/comma/data2/f405.rdf | 24 - .../corese/engine/data/comma/data2/f406.rdf | 18 - .../corese/engine/data/comma/data2/f407.rdf | 30 - .../corese/engine/data/comma/data2/f408.rdf | 42 - .../corese/engine/data/comma/data2/f409.rdf | 24 - .../corese/engine/data/comma/data2/f41.rdf | 24 - .../corese/engine/data/comma/data2/f410.rdf | 30 - .../corese/engine/data/comma/data2/f411.rdf | 30 - .../corese/engine/data/comma/data2/f412.rdf | 36 - .../corese/engine/data/comma/data2/f413.rdf | 30 - .../corese/engine/data/comma/data2/f414.rdf | 30 - .../corese/engine/data/comma/data2/f415.rdf | 42 - .../corese/engine/data/comma/data2/f416.rdf | 30 - .../corese/engine/data/comma/data2/f417.rdf | 24 - .../corese/engine/data/comma/data2/f418.rdf | 18 - .../corese/engine/data/comma/data2/f419.rdf | 30 - .../corese/engine/data/comma/data2/f42.rdf | 29 - .../corese/engine/data/comma/data2/f420.rdf | 30 - .../corese/engine/data/comma/data2/f421.rdf | 18 - .../corese/engine/data/comma/data2/f422.rdf | 24 - .../corese/engine/data/comma/data2/f423.rdf | 30 - .../corese/engine/data/comma/data2/f424.rdf | 30 - .../corese/engine/data/comma/data2/f425.rdf | 30 - .../corese/engine/data/comma/data2/f426.rdf | 18 - .../corese/engine/data/comma/data2/f427.rdf | 18 - .../corese/engine/data/comma/data2/f428.rdf | 24 - .../corese/engine/data/comma/data2/f429.rdf | 18 - .../corese/engine/data/comma/data2/f43.rdf | 18 - .../corese/engine/data/comma/data2/f430.rdf | 24 - .../corese/engine/data/comma/data2/f431.rdf | 30 - .../corese/engine/data/comma/data2/f432.rdf | 24 - .../corese/engine/data/comma/data2/f433.rdf | 18 - .../corese/engine/data/comma/data2/f434.rdf | 24 - .../corese/engine/data/comma/data2/f435.rdf | 24 - .../corese/engine/data/comma/data2/f436.rdf | 18 - .../corese/engine/data/comma/data2/f437.rdf | 24 - .../corese/engine/data/comma/data2/f438.rdf | 24 - .../corese/engine/data/comma/data2/f439.rdf | 18 - .../corese/engine/data/comma/data2/f44.rdf | 18 - .../corese/engine/data/comma/data2/f440.rdf | 18 - .../corese/engine/data/comma/data2/f441.rdf | 24 - .../corese/engine/data/comma/data2/f442.rdf | 24 - .../corese/engine/data/comma/data2/f443.rdf | 30 - .../corese/engine/data/comma/data2/f444.rdf | 24 - .../corese/engine/data/comma/data2/f445.rdf | 30 - .../corese/engine/data/comma/data2/f446.rdf | 30 - .../corese/engine/data/comma/data2/f447.rdf | 36 - .../corese/engine/data/comma/data2/f448.rdf | 30 - .../corese/engine/data/comma/data2/f449.rdf | 41 - .../corese/engine/data/comma/data2/f45.rdf | 24 - .../corese/engine/data/comma/data2/f450.rdf | 30 - .../corese/engine/data/comma/data2/f451.rdf | 30 - .../corese/engine/data/comma/data2/f452.rdf | 30 - .../corese/engine/data/comma/data2/f453.rdf | 24 - .../corese/engine/data/comma/data2/f454.rdf | 24 - .../corese/engine/data/comma/data2/f455.rdf | 18 - .../corese/engine/data/comma/data2/f456.rdf | 24 - .../corese/engine/data/comma/data2/f457.rdf | 36 - .../corese/engine/data/comma/data2/f458.rdf | 18 - .../corese/engine/data/comma/data2/f459.rdf | 18 - .../corese/engine/data/comma/data2/f46.rdf | 24 - .../corese/engine/data/comma/data2/f460.rdf | 36 - .../corese/engine/data/comma/data2/f461.rdf | 24 - .../corese/engine/data/comma/data2/f462.rdf | 24 - .../corese/engine/data/comma/data2/f463.rdf | 18 - .../corese/engine/data/comma/data2/f464.rdf | 18 - .../corese/engine/data/comma/data2/f465.rdf | 24 - .../corese/engine/data/comma/data2/f466.rdf | 24 - .../corese/engine/data/comma/data2/f467.rdf | 30 - .../corese/engine/data/comma/data2/f468.rdf | 12 - .../corese/engine/data/comma/data2/f469.rdf | 36 - .../corese/engine/data/comma/data2/f47.rdf | 18 - .../corese/engine/data/comma/data2/f470.rdf | 18 - .../corese/engine/data/comma/data2/f471.rdf | 24 - .../corese/engine/data/comma/data2/f472.rdf | 29 - .../corese/engine/data/comma/data2/f473.rdf | 24 - .../corese/engine/data/comma/data2/f474.rdf | 24 - .../corese/engine/data/comma/data2/f475.rdf | 18 - .../corese/engine/data/comma/data2/f476.rdf | 30 - .../corese/engine/data/comma/data2/f477.rdf | 30 - .../corese/engine/data/comma/data2/f478.rdf | 35 - .../corese/engine/data/comma/data2/f479.rdf | 42 - .../corese/engine/data/comma/data2/f48.rdf | 30 - .../corese/engine/data/comma/data2/f480.rdf | 12 - .../corese/engine/data/comma/data2/f481.rdf | 18 - .../corese/engine/data/comma/data2/f482.rdf | 30 - .../corese/engine/data/comma/data2/f483.rdf | 24 - .../corese/engine/data/comma/data2/f484.rdf | 30 - .../corese/engine/data/comma/data2/f485.rdf | 35 - .../corese/engine/data/comma/data2/f486.rdf | 18 - .../corese/engine/data/comma/data2/f487.rdf | 41 - .../corese/engine/data/comma/data2/f488.rdf | 18 - .../corese/engine/data/comma/data2/f489.rdf | 24 - .../corese/engine/data/comma/data2/f49.rdf | 24 - .../corese/engine/data/comma/data2/f490.rdf | 30 - .../corese/engine/data/comma/data2/f491.rdf | 24 - .../corese/engine/data/comma/data2/f492.rdf | 24 - .../corese/engine/data/comma/data2/f493.rdf | 30 - .../corese/engine/data/comma/data2/f494.rdf | 30 - .../corese/engine/data/comma/data2/f495.rdf | 24 - .../corese/engine/data/comma/data2/f496.rdf | 18 - .../corese/engine/data/comma/data2/f497.rdf | 30 - .../corese/engine/data/comma/data2/f498.rdf | 30 - .../corese/engine/data/comma/data2/f499.rdf | 30 - .../corese/engine/data/comma/data2/f5.rdf | 25 - .../corese/engine/data/comma/data2/f50.rdf | 42 - .../corese/engine/data/comma/data2/f500.rdf | 18 - .../corese/engine/data/comma/data2/f501.rdf | 18 - .../corese/engine/data/comma/data2/f502.rdf | 24 - .../corese/engine/data/comma/data2/f503.rdf | 30 - .../corese/engine/data/comma/data2/f504.rdf | 30 - .../corese/engine/data/comma/data2/f505.rdf | 18 - .../corese/engine/data/comma/data2/f506.rdf | 30 - .../corese/engine/data/comma/data2/f507.rdf | 18 - .../corese/engine/data/comma/data2/f508.rdf | 69 - .../corese/engine/data/comma/data2/f509.rdf | 18 - .../corese/engine/data/comma/data2/f51.rdf | 30 - .../corese/engine/data/comma/data2/f510.rdf | 18 - .../corese/engine/data/comma/data2/f511.rdf | 18 - .../corese/engine/data/comma/data2/f512.rdf | 18 - .../corese/engine/data/comma/data2/f513.rdf | 24 - .../corese/engine/data/comma/data2/f514.rdf | 18 - .../corese/engine/data/comma/data2/f515.rdf | 24 - .../corese/engine/data/comma/data2/f516.rdf | 36 - .../corese/engine/data/comma/data2/f517.rdf | 18 - .../corese/engine/data/comma/data2/f518.rdf | 30 - .../corese/engine/data/comma/data2/f519.rdf | 30 - .../corese/engine/data/comma/data2/f52.rdf | 36 - .../corese/engine/data/comma/data2/f520.rdf | 12 - .../corese/engine/data/comma/data2/f521.rdf | 30 - .../corese/engine/data/comma/data2/f522.rdf | 24 - .../corese/engine/data/comma/data2/f523.rdf | 30 - .../corese/engine/data/comma/data2/f524.rdf | 36 - .../corese/engine/data/comma/data2/f525.rdf | 24 - .../corese/engine/data/comma/data2/f526.rdf | 18 - .../corese/engine/data/comma/data2/f527.rdf | 24 - .../corese/engine/data/comma/data2/f528.rdf | 24 - .../corese/engine/data/comma/data2/f529.rdf | 24 - .../corese/engine/data/comma/data2/f53.rdf | 30 - .../corese/engine/data/comma/data2/f530.rdf | 36 - .../corese/engine/data/comma/data2/f531.rdf | 24 - .../corese/engine/data/comma/data2/f532.rdf | 30 - .../corese/engine/data/comma/data2/f533.rdf | 30 - .../corese/engine/data/comma/data2/f534.rdf | 42 - .../corese/engine/data/comma/data2/f535.rdf | 30 - .../corese/engine/data/comma/data2/f536.rdf | 30 - .../corese/engine/data/comma/data2/f537.rdf | 24 - .../corese/engine/data/comma/data2/f538.rdf | 24 - .../corese/engine/data/comma/data2/f539.rdf | 36 - .../corese/engine/data/comma/data2/f54.rdf | 24 - .../corese/engine/data/comma/data2/f540.rdf | 24 - .../corese/engine/data/comma/data2/f541.rdf | 18 - .../corese/engine/data/comma/data2/f542.rdf | 18 - .../corese/engine/data/comma/data2/f543.rdf | 24 - .../corese/engine/data/comma/data2/f544.rdf | 36 - .../corese/engine/data/comma/data2/f545.rdf | 18 - .../corese/engine/data/comma/data2/f546.rdf | 18 - .../corese/engine/data/comma/data2/f547.rdf | 18 - .../corese/engine/data/comma/data2/f548.rdf | 24 - .../corese/engine/data/comma/data2/f549.rdf | 24 - .../corese/engine/data/comma/data2/f55.rdf | 19 - .../corese/engine/data/comma/data2/f550.rdf | 30 - .../corese/engine/data/comma/data2/f551.rdf | 18 - .../corese/engine/data/comma/data2/f552.rdf | 18 - .../corese/engine/data/comma/data2/f553.rdf | 18 - .../corese/engine/data/comma/data2/f554.rdf | 24 - .../corese/engine/data/comma/data2/f555.rdf | 30 - .../corese/engine/data/comma/data2/f556.rdf | 24 - .../corese/engine/data/comma/data2/f557.rdf | 42 - .../corese/engine/data/comma/data2/f558.rdf | 18 - .../corese/engine/data/comma/data2/f559.rdf | 36 - .../corese/engine/data/comma/data2/f56.rdf | 36 - .../corese/engine/data/comma/data2/f560.rdf | 24 - .../corese/engine/data/comma/data2/f561.rdf | 24 - .../corese/engine/data/comma/data2/f562.rdf | 30 - .../corese/engine/data/comma/data2/f563.rdf | 36 - .../corese/engine/data/comma/data2/f564.rdf | 30 - .../corese/engine/data/comma/data2/f565.rdf | 18 - .../corese/engine/data/comma/data2/f566.rdf | 24 - .../corese/engine/data/comma/data2/f567.rdf | 24 - .../corese/engine/data/comma/data2/f568.rdf | 24 - .../corese/engine/data/comma/data2/f569.rdf | 18 - .../corese/engine/data/comma/data2/f57.rdf | 36 - .../corese/engine/data/comma/data2/f570.rdf | 18 - .../corese/engine/data/comma/data2/f571.rdf | 18 - .../corese/engine/data/comma/data2/f572.rdf | 24 - .../corese/engine/data/comma/data2/f573.rdf | 30 - .../corese/engine/data/comma/data2/f574.rdf | 18 - .../corese/engine/data/comma/data2/f575.rdf | 18 - .../corese/engine/data/comma/data2/f576.rdf | 24 - .../corese/engine/data/comma/data2/f577.rdf | 18 - .../corese/engine/data/comma/data2/f578.rdf | 36 - .../corese/engine/data/comma/data2/f579.rdf | 41 - .../corese/engine/data/comma/data2/f58.rdf | 18 - .../corese/engine/data/comma/data2/f580.rdf | 30 - .../corese/engine/data/comma/data2/f581.rdf | 24 - .../corese/engine/data/comma/data2/f582.rdf | 24 - .../corese/engine/data/comma/data2/f583.rdf | 18 - .../corese/engine/data/comma/data2/f584.rdf | 30 - .../corese/engine/data/comma/data2/f585.rdf | 36 - .../corese/engine/data/comma/data2/f586.rdf | 24 - .../corese/engine/data/comma/data2/f587.rdf | 30 - .../corese/engine/data/comma/data2/f588.rdf | 36 - .../corese/engine/data/comma/data2/f589.rdf | 24 - .../corese/engine/data/comma/data2/f59.rdf | 30 - .../corese/engine/data/comma/data2/f590.rdf | 30 - .../corese/engine/data/comma/data2/f591.rdf | 18 - .../corese/engine/data/comma/data2/f592.rdf | 24 - .../corese/engine/data/comma/data2/f593.rdf | 24 - .../corese/engine/data/comma/data2/f594.rdf | 24 - .../corese/engine/data/comma/data2/f595.rdf | 18 - .../corese/engine/data/comma/data2/f596.rdf | 18 - .../corese/engine/data/comma/data2/f597.rdf | 18 - .../corese/engine/data/comma/data2/f598.rdf | 30 - .../corese/engine/data/comma/data2/f599.rdf | 24 - .../corese/engine/data/comma/data2/f6.rdf | 18 - .../corese/engine/data/comma/data2/f60.rdf | 18 - .../corese/engine/data/comma/data2/f600.rdf | 24 - .../corese/engine/data/comma/data2/f601.rdf | 24 - .../corese/engine/data/comma/data2/f602.rdf | 24 - .../corese/engine/data/comma/data2/f603.rdf | 18 - .../corese/engine/data/comma/data2/f604.rdf | 30 - .../corese/engine/data/comma/data2/f605.rdf | 24 - .../corese/engine/data/comma/data2/f606.rdf | 30 - .../corese/engine/data/comma/data2/f607.rdf | 30 - .../corese/engine/data/comma/data2/f608.rdf | 18 - .../corese/engine/data/comma/data2/f609.rdf | 24 - .../corese/engine/data/comma/data2/f61.rdf | 18 - .../corese/engine/data/comma/data2/f610.rdf | 18 - .../corese/engine/data/comma/data2/f611.rdf | 42 - .../corese/engine/data/comma/data2/f612.rdf | 48 - .../corese/engine/data/comma/data2/f613.rdf | 18 - .../corese/engine/data/comma/data2/f614.rdf | 18 - .../corese/engine/data/comma/data2/f615.rdf | 24 - .../corese/engine/data/comma/data2/f616.rdf | 24 - .../corese/engine/data/comma/data2/f617.rdf | 18 - .../corese/engine/data/comma/data2/f618.rdf | 36 - .../corese/engine/data/comma/data2/f619.rdf | 23 - .../corese/engine/data/comma/data2/f62.rdf | 24 - .../corese/engine/data/comma/data2/f620.rdf | 18 - .../corese/engine/data/comma/data2/f621.rdf | 18 - .../corese/engine/data/comma/data2/f622.rdf | 12 - .../corese/engine/data/comma/data2/f623.rdf | 18 - .../corese/engine/data/comma/data2/f624.rdf | 30 - .../corese/engine/data/comma/data2/f625.rdf | 24 - .../corese/engine/data/comma/data2/f626.rdf | 18 - .../corese/engine/data/comma/data2/f627.rdf | 30 - .../corese/engine/data/comma/data2/f628.rdf | 30 - .../corese/engine/data/comma/data2/f629.rdf | 24 - .../corese/engine/data/comma/data2/f63.rdf | 36 - .../corese/engine/data/comma/data2/f630.rdf | 18 - .../corese/engine/data/comma/data2/f631.rdf | 18 - .../corese/engine/data/comma/data2/f632.rdf | 30 - .../corese/engine/data/comma/data2/f633.rdf | 18 - .../corese/engine/data/comma/data2/f634.rdf | 18 - .../corese/engine/data/comma/data2/f635.rdf | 36 - .../corese/engine/data/comma/data2/f636.rdf | 30 - .../corese/engine/data/comma/data2/f637.rdf | 18 - .../corese/engine/data/comma/data2/f638.rdf | 30 - .../corese/engine/data/comma/data2/f639.rdf | 24 - .../corese/engine/data/comma/data2/f64.rdf | 24 - .../corese/engine/data/comma/data2/f640.rdf | 18 - .../corese/engine/data/comma/data2/f641.rdf | 18 - .../corese/engine/data/comma/data2/f642.rdf | 30 - .../corese/engine/data/comma/data2/f643.rdf | 18 - .../corese/engine/data/comma/data2/f644.rdf | 24 - .../corese/engine/data/comma/data2/f645.rdf | 18 - .../corese/engine/data/comma/data2/f646.rdf | 18 - .../corese/engine/data/comma/data2/f647.rdf | 36 - .../corese/engine/data/comma/data2/f648.rdf | 36 - .../corese/engine/data/comma/data2/f649.rdf | 18 - .../corese/engine/data/comma/data2/f65.rdf | 18 - .../corese/engine/data/comma/data2/f650.rdf | 24 - .../corese/engine/data/comma/data2/f651.rdf | 30 - .../corese/engine/data/comma/data2/f652.rdf | 24 - .../corese/engine/data/comma/data2/f653.rdf | 18 - .../corese/engine/data/comma/data2/f654.rdf | 42 - .../corese/engine/data/comma/data2/f655.rdf | 30 - .../corese/engine/data/comma/data2/f656.rdf | 30 - .../corese/engine/data/comma/data2/f657.rdf | 18 - .../corese/engine/data/comma/data2/f658.rdf | 30 - .../corese/engine/data/comma/data2/f659.rdf | 30 - .../corese/engine/data/comma/data2/f66.rdf | 30 - .../corese/engine/data/comma/data2/f660.rdf | 18 - .../corese/engine/data/comma/data2/f661.rdf | 24 - .../corese/engine/data/comma/data2/f662.rdf | 48 - .../corese/engine/data/comma/data2/f663.rdf | 24 - .../corese/engine/data/comma/data2/f664.rdf | 35 - .../corese/engine/data/comma/data2/f665.rdf | 18 - .../corese/engine/data/comma/data2/f666.rdf | 18 - .../corese/engine/data/comma/data2/f667.rdf | 24 - .../corese/engine/data/comma/data2/f668.rdf | 24 - .../corese/engine/data/comma/data2/f669.rdf | 18 - .../corese/engine/data/comma/data2/f67.rdf | 42 - .../corese/engine/data/comma/data2/f670.rdf | 18 - .../corese/engine/data/comma/data2/f671.rdf | 24 - .../corese/engine/data/comma/data2/f672.rdf | 24 - .../corese/engine/data/comma/data2/f673.rdf | 41 - .../corese/engine/data/comma/data2/f674.rdf | 30 - .../corese/engine/data/comma/data2/f675.rdf | 36 - .../corese/engine/data/comma/data2/f676.rdf | 24 - .../corese/engine/data/comma/data2/f677.rdf | 24 - .../corese/engine/data/comma/data2/f678.rdf | 24 - .../corese/engine/data/comma/data2/f679.rdf | 24 - .../corese/engine/data/comma/data2/f68.rdf | 30 - .../corese/engine/data/comma/data2/f680.rdf | 24 - .../corese/engine/data/comma/data2/f681.rdf | 30 - .../corese/engine/data/comma/data2/f682.rdf | 24 - .../corese/engine/data/comma/data2/f683.rdf | 18 - .../corese/engine/data/comma/data2/f684.rdf | 18 - .../corese/engine/data/comma/data2/f685.rdf | 18 - .../corese/engine/data/comma/data2/f686.rdf | 24 - .../corese/engine/data/comma/data2/f687.rdf | 48 - .../corese/engine/data/comma/data2/f688.rdf | 24 - .../corese/engine/data/comma/data2/f689.rdf | 36 - .../corese/engine/data/comma/data2/f69.rdf | 30 - .../corese/engine/data/comma/data2/f690.rdf | 35 - .../corese/engine/data/comma/data2/f691.rdf | 35 - .../corese/engine/data/comma/data2/f692.rdf | 31 - .../corese/engine/data/comma/data2/f693.rdf | 30 - .../corese/engine/data/comma/data2/f694.rdf | 24 - .../corese/engine/data/comma/data2/f695.rdf | 48 - .../corese/engine/data/comma/data2/f696.rdf | 24 - .../corese/engine/data/comma/data2/f697.rdf | 24 - .../corese/engine/data/comma/data2/f698.rdf | 18 - .../corese/engine/data/comma/data2/f699.rdf | 24 - .../corese/engine/data/comma/data2/f7.rdf | 30 - .../corese/engine/data/comma/data2/f70.rdf | 18 - .../corese/engine/data/comma/data2/f700.rdf | 18 - .../corese/engine/data/comma/data2/f701.rdf | 54 - .../corese/engine/data/comma/data2/f702.rdf | 24 - .../corese/engine/data/comma/data2/f703.rdf | 24 - .../corese/engine/data/comma/data2/f704.rdf | 24 - .../corese/engine/data/comma/data2/f705.rdf | 24 - .../corese/engine/data/comma/data2/f706.rdf | 24 - .../corese/engine/data/comma/data2/f707.rdf | 30 - .../corese/engine/data/comma/data2/f708.rdf | 36 - .../corese/engine/data/comma/data2/f709.rdf | 24 - .../corese/engine/data/comma/data2/f71.rdf | 24 - .../corese/engine/data/comma/data2/f710.rdf | 18 - .../corese/engine/data/comma/data2/f711.rdf | 18 - .../corese/engine/data/comma/data2/f712.rdf | 18 - .../corese/engine/data/comma/data2/f713.rdf | 35 - .../corese/engine/data/comma/data2/f714.rdf | 24 - .../corese/engine/data/comma/data2/f715.rdf | 18 - .../corese/engine/data/comma/data2/f716.rdf | 24 - .../corese/engine/data/comma/data2/f717.rdf | 18 - .../corese/engine/data/comma/data2/f718.rdf | 35 - .../corese/engine/data/comma/data2/f719.rdf | 18 - .../corese/engine/data/comma/data2/f72.rdf | 54 - .../corese/engine/data/comma/data2/f720.rdf | 24 - .../corese/engine/data/comma/data2/f721.rdf | 18 - .../corese/engine/data/comma/data2/f722.rdf | 24 - .../corese/engine/data/comma/data2/f723.rdf | 24 - .../corese/engine/data/comma/data2/f724.rdf | 30 - .../corese/engine/data/comma/data2/f725.rdf | 30 - .../corese/engine/data/comma/data2/f726.rdf | 24 - .../corese/engine/data/comma/data2/f727.rdf | 18 - .../corese/engine/data/comma/data2/f728.rdf | 18 - .../corese/engine/data/comma/data2/f729.rdf | 24 - .../corese/engine/data/comma/data2/f73.rdf | 24 - .../corese/engine/data/comma/data2/f730.rdf | 18 - .../corese/engine/data/comma/data2/f731.rdf | 24 - .../corese/engine/data/comma/data2/f732.rdf | 24 - .../corese/engine/data/comma/data2/f733.rdf | 18 - .../corese/engine/data/comma/data2/f734.rdf | 18 - .../corese/engine/data/comma/data2/f735.rdf | 24 - .../corese/engine/data/comma/data2/f736.rdf | 30 - .../corese/engine/data/comma/data2/f737.rdf | 36 - .../corese/engine/data/comma/data2/f738.rdf | 30 - .../corese/engine/data/comma/data2/f739.rdf | 18 - .../corese/engine/data/comma/data2/f74.rdf | 36 - .../corese/engine/data/comma/data2/f740.rdf | 24 - .../corese/engine/data/comma/data2/f741.rdf | 30 - .../corese/engine/data/comma/data2/f742.rdf | 24 - .../corese/engine/data/comma/data2/f743.rdf | 18 - .../corese/engine/data/comma/data2/f744.rdf | 18 - .../corese/engine/data/comma/data2/f745.rdf | 30 - .../corese/engine/data/comma/data2/f746.rdf | 30 - .../corese/engine/data/comma/data2/f747.rdf | 35 - .../corese/engine/data/comma/data2/f748.rdf | 36 - .../corese/engine/data/comma/data2/f749.rdf | 30 - .../corese/engine/data/comma/data2/f75.rdf | 24 - .../corese/engine/data/comma/data2/f750.rdf | 24 - .../corese/engine/data/comma/data2/f751.rdf | 18 - .../corese/engine/data/comma/data2/f752.rdf | 29 - .../corese/engine/data/comma/data2/f753.rdf | 18 - .../corese/engine/data/comma/data2/f754.rdf | 18 - .../corese/engine/data/comma/data2/f755.rdf | 24 - .../corese/engine/data/comma/data2/f756.rdf | 24 - .../corese/engine/data/comma/data2/f757.rdf | 18 - .../corese/engine/data/comma/data2/f758.rdf | 24 - .../corese/engine/data/comma/data2/f759.rdf | 24 - .../corese/engine/data/comma/data2/f76.rdf | 30 - .../corese/engine/data/comma/data2/f760.rdf | 18 - .../corese/engine/data/comma/data2/f761.rdf | 18 - .../corese/engine/data/comma/data2/f762.rdf | 24 - .../corese/engine/data/comma/data2/f763.rdf | 24 - .../corese/engine/data/comma/data2/f764.rdf | 24 - .../corese/engine/data/comma/data2/f765.rdf | 42 - .../corese/engine/data/comma/data2/f766.rdf | 18 - .../corese/engine/data/comma/data2/f767.rdf | 24 - .../corese/engine/data/comma/data2/f768.rdf | 30 - .../corese/engine/data/comma/data2/f769.rdf | 24 - .../corese/engine/data/comma/data2/f77.rdf | 18 - .../corese/engine/data/comma/data2/f770.rdf | 18 - .../corese/engine/data/comma/data2/f771.rdf | 18 - .../corese/engine/data/comma/data2/f772.rdf | 24 - .../corese/engine/data/comma/data2/f773.rdf | 18 - .../corese/engine/data/comma/data2/f774.rdf | 18 - .../corese/engine/data/comma/data2/f775.rdf | 18 - .../corese/engine/data/comma/data2/f776.rdf | 36 - .../corese/engine/data/comma/data2/f777.rdf | 18 - .../corese/engine/data/comma/data2/f778.rdf | 36 - .../corese/engine/data/comma/data2/f779.rdf | 24 - .../corese/engine/data/comma/data2/f78.rdf | 24 - .../corese/engine/data/comma/data2/f780.rdf | 18 - .../corese/engine/data/comma/data2/f781.rdf | 30 - .../corese/engine/data/comma/data2/f782.rdf | 12 - .../corese/engine/data/comma/data2/f783.rdf | 24 - .../corese/engine/data/comma/data2/f784.rdf | 18 - .../corese/engine/data/comma/data2/f785.rdf | 18 - .../corese/engine/data/comma/data2/f786.rdf | 24 - .../corese/engine/data/comma/data2/f787.rdf | 18 - .../corese/engine/data/comma/data2/f788.rdf | 18 - .../corese/engine/data/comma/data2/f789.rdf | 18 - .../corese/engine/data/comma/data2/f79.rdf | 24 - .../corese/engine/data/comma/data2/f790.rdf | 30 - .../corese/engine/data/comma/data2/f791.rdf | 18 - .../corese/engine/data/comma/data2/f792.rdf | 24 - .../corese/engine/data/comma/data2/f793.rdf | 18 - .../corese/engine/data/comma/data2/f794.rdf | 24 - .../corese/engine/data/comma/data2/f795.rdf | 24 - .../corese/engine/data/comma/data2/f796.rdf | 24 - .../corese/engine/data/comma/data2/f797.rdf | 36 - .../corese/engine/data/comma/data2/f798.rdf | 18 - .../corese/engine/data/comma/data2/f799.rdf | 24 - .../corese/engine/data/comma/data2/f8.rdf | 18 - .../corese/engine/data/comma/data2/f80.rdf | 18 - .../corese/engine/data/comma/data2/f800.rdf | 30 - .../corese/engine/data/comma/data2/f801.rdf | 24 - .../corese/engine/data/comma/data2/f802.rdf | 18 - .../corese/engine/data/comma/data2/f803.rdf | 18 - .../corese/engine/data/comma/data2/f804.rdf | 18 - .../corese/engine/data/comma/data2/f805.rdf | 18 - .../corese/engine/data/comma/data2/f806.rdf | 18 - .../corese/engine/data/comma/data2/f807.rdf | 29 - .../corese/engine/data/comma/data2/f808.rdf | 30 - .../corese/engine/data/comma/data2/f809.rdf | 18 - .../corese/engine/data/comma/data2/f81.rdf | 42 - .../corese/engine/data/comma/data2/f810.rdf | 18 - .../corese/engine/data/comma/data2/f811.rdf | 18 - .../corese/engine/data/comma/data2/f812.rdf | 24 - .../corese/engine/data/comma/data2/f813.rdf | 18 - .../corese/engine/data/comma/data2/f814.rdf | 24 - .../corese/engine/data/comma/data2/f815.rdf | 18 - .../corese/engine/data/comma/data2/f816.rdf | 12 - .../corese/engine/data/comma/data2/f817.rdf | 24 - .../corese/engine/data/comma/data2/f818.rdf | 30 - .../corese/engine/data/comma/data2/f819.rdf | 18 - .../corese/engine/data/comma/data2/f82.rdf | 30 - .../corese/engine/data/comma/data2/f820.rdf | 24 - .../corese/engine/data/comma/data2/f821.rdf | 18 - .../corese/engine/data/comma/data2/f822.rdf | 30 - .../corese/engine/data/comma/data2/f823.rdf | 48 - .../corese/engine/data/comma/data2/f824.rdf | 18 - .../corese/engine/data/comma/data2/f825.rdf | 24 - .../corese/engine/data/comma/data2/f826.rdf | 13 - .../corese/engine/data/comma/data2/f827.rdf | 36 - .../corese/engine/data/comma/data2/f828.rdf | 24 - .../corese/engine/data/comma/data2/f829.rdf | 48 - .../corese/engine/data/comma/data2/f83.rdf | 30 - .../corese/engine/data/comma/data2/f830.rdf | 24 - .../corese/engine/data/comma/data2/f831.rdf | 35 - .../corese/engine/data/comma/data2/f84.rdf | 30 - .../corese/engine/data/comma/data2/f85.rdf | 18 - .../corese/engine/data/comma/data2/f86.rdf | 18 - .../corese/engine/data/comma/data2/f87.rdf | 24 - .../corese/engine/data/comma/data2/f88.rdf | 18 - .../corese/engine/data/comma/data2/f89.rdf | 30 - .../corese/engine/data/comma/data2/f9.rdf | 30 - .../corese/engine/data/comma/data2/f90.rdf | 24 - .../corese/engine/data/comma/data2/f91.rdf | 18 - .../corese/engine/data/comma/data2/f92.rdf | 18 - .../corese/engine/data/comma/data2/f93.rdf | 30 - .../corese/engine/data/comma/data2/f94.rdf | 12 - .../corese/engine/data/comma/data2/f95.rdf | 24 - .../corese/engine/data/comma/data2/f96.rdf | 31 - .../corese/engine/data/comma/data2/f97.rdf | 18 - .../corese/engine/data/comma/data2/f98.rdf | 18 - .../corese/engine/data/comma/data2/f99.rdf | 25 - .../inria/corese/engine/data/comma/fail.rdf | 26 - .../corese/engine/data/engine/data/test.rdf | 123 - .../engine/data/engine/ontology/test.rdfs | 83 - .../corese/engine/data/engine/rule/meta.rul | 99 - .../corese/engine/data/engine/rule/test2.brul | 220 - .../inria/corese/engine/data/human/human.rdfs | 211 - .../inria/corese/engine/data/human/human1.rdf | 84 - .../inria/corese/engine/data/human/human2.rdf | 88 - .../corese/engine/data/math/data/data.ttl | 43 - .../corese/engine/data/math/data/data2.ttl | 48 - .../corese/engine/data/math/data/fact.ttl | 37 - .../corese/engine/data/math/data/latex.rul | 287 - .../corese/engine/data/math/data/matrix.ttl | 20 - .../corese/engine/data/math/data/onto.ttl | 51 - .../corese/engine/data/math/data/phi.ttl | 21 - .../corese/engine/data/math/data/prod.ttl | 37 - .../corese/engine/data/math/deriv/power.rq | 16 - .../fr/inria/corese/engine/data/math/eval.ttl | 26 - .../corese/engine/data/math/eval/fact.rq | 8 - .../corese/engine/data/math/eval/power.rq | 8 - .../inria/corese/engine/data/math/eval/rec.rq | 7 - .../corese/engine/data/math/eval/recfact.rq | 7 - .../corese/engine/data/math/eval/recpower.rq | 7 - .../corese/engine/data/math/eval/start.rq | 12 - .../corese/engine/data/math/eval/term.rq | 14 - .../corese/engine/data/math/eval/term.save | 14 - .../inria/corese/engine/data/math/eval/var.rq | 9 - .../inria/corese/engine/data/math/latex.rul | 287 - .../corese/engine/data/math/latex/tmp.aux | 1 - .../corese/engine/data/math/latex/tmp.dvi | Bin 948 -> 0 bytes .../corese/engine/data/math/latex/tmp.pdf | Bin 18637 -> 0 bytes .../corese/engine/data/math/latex/tmp.tex | 10 - .../engine/data/math/latextemplate/fact.rq | 11 - .../engine/data/math/latextemplate/frac.rq | 9 - .../engine/data/math/latextemplate/fun.rq | 11 - .../engine/data/math/latextemplate/label.rq | 8 - .../engine/data/math/latextemplate/list.rq | 9 - .../engine/data/math/latextemplate/matrix.rq | 17 - .../engine/data/math/latextemplate/nbcol.rq | 11 - .../engine/data/math/latextemplate/power.rq | 9 - .../engine/data/math/latextemplate/row.rq | 9 - .../engine/data/math/latextemplate/sqrt.rq | 13 - .../engine/data/math/latextemplate/start.rq | 28 - .../engine/data/math/latextemplate/sum.rq | 27 - .../engine/data/math/latextemplate/term.rq | 12 - .../engine/data/math/latextemplate/var.rq | 11 - .../fr/inria/corese/engine/data/math/mat.rul | 144 - .../corese/engine/data/math/query/cons.txt | 2 - .../corese/engine/data/math/query/count.txt | 13 - .../engine/data/math/query/describe.txt | 5 - .../corese/engine/data/math/query/display.txt | 6 - .../engine/data/math/query/display.txt.txt | 8 - .../corese/engine/data/math/query/math.txt | 9 - .../corese/engine/data/math/query/pragma.txt | 7 - .../corese/engine/data/math/query/q1.txt | 11 - .../engine/data/math/query/query-display.txt | 13 - .../data/math/query/query-display.txt.txt | 13 - .../engine/data/math/query/query-display2.txt | 20 - .../engine/data/math/query/query-display3.txt | 8 - .../engine/data/math/query/template.txt | 6 - .../corese/engine/data/math/query/test.rq | 16 - .../corese/engine/data/math/template/fact.rq | 13 - .../corese/engine/data/math/template/fun.rq | 21 - .../corese/engine/data/math/template/list.rq | 9 - .../engine/data/math/template/matrix.rq | 14 - .../corese/engine/data/math/template/start.rq | 10 - .../corese/engine/data/math/template/term.rq | 16 - .../corese/engine/data/math/template/var.rq | 8 - .../fr/inria/corese/engine/data/math/tmp.rdf | 25 - .../inria/corese/engine/data/math/tmp/fun.rq | 17 - .../engine/data/owlrule/owlrllite-junit.rul | 1062 -- .../corese/engine/data/owlrule/owlrllite.rul | 1066 -- .../fr/inria/corese/engine/data/rdfa/f1.html | 15 - .../fr/inria/corese/engine/data/rdfa/f2.html | 16 - .../fr/inria/corese/engine/data/rdfa/f3.html | 12 - .../inria/corese/engine/data/test/method.rq | 110 - .../corese/research/data/test/human.rdfs | 211 - .../corese/research/data/test/human1.rdf | 83 - .../corese/research/data/test/human2.rdf | 88 - .../inria/corese/research/data/test/iso.rdf | 23 - .../inria/corese/research/data/test/iso.ttl | 4 - .../inria/corese/research/data/test/method.rq | 110 - .../corese/research/data/test/myshape.ttl | 42 - .../corese/research/data/test/primerdata.ttl | 5 - .../corese/research/data/test/shapeexp.ttl | 27 - .../corese/research/data/test/shapeexp1.ttl | 12 - .../corese/research/data/test/shapeexp10.ttl | 23 - .../corese/research/data/test/shapeexp2.ttl | 20 - .../corese/research/data/test/shapeexp3.ttl | 12 - .../corese/research/data/test/shapeexp4.rq | 11 - .../corese/research/data/test/shapeexp4.ttl | 11 - .../corese/research/data/test/shapeexp6.rq | 8 - .../corese/research/data/test/shapeexp6.ttl | 12 - .../corese/research/data/test/shapeexp7.rq | 11 - .../corese/research/data/test/shapeexp7.ttl | 9 - .../corese/research/data/test/shapeexp8.rq | 11 - .../corese/research/data/test/shapeexp8.ttl | 12 - .../corese/research/data/test/shapeexp9.rq | 12 - .../corese/research/data/test/shapeexp9.ttl | 12 - .../inria/corese/research/data/test/utf.rdf | 24 - .../inria/corese/research/data/test/utf.ttl | 4 - .../corese/research/data/test => }/primer.owl | 13 +- .../src/test/resources/test/data/data.xml | 19 + .../src/test/resources/test/data/xslt.xsl | 15 + 999 files changed, 8838 insertions(+), 26162 deletions(-) create mode 100644 corese-unit-test/src/test/java/fr/inria/corese/engine/TestQuery1.java rename corese-unit-test/src/test/resources/{fr/inria/corese/engine => }/data/comma/comma.rdfs (100%) rename corese-unit-test/src/test/resources/{fr/inria/corese/engine => }/data/comma/data/Ada_Lovelace.rdf (100%) rename corese-unit-test/src/test/resources/{fr/inria/corese/engine => }/data/comma/data/Alain_Giboin.rdf (100%) rename corese-unit-test/src/test/resources/{fr/inria/corese/engine => }/data/comma/data/Annotation_Added_The_06_05_2001_At_16h_33m_42s_918ms.rdf (100%) rename corese-unit-test/src/test/resources/{fr/inria/corese/engine => }/data/comma/data/Annotation_Added_The_07_05_2001_At_09h_38m_48s_147ms.rdf (100%) rename corese-unit-test/src/test/resources/{fr/inria/corese/engine => }/data/comma/data/Annotation_Added_The_07_05_2001_At_09h_40m_36s_973ms.rdf (100%) rename corese-unit-test/src/test/resources/{fr/inria/corese/engine => }/data/comma/data/Annotation_Added_The_07_05_2001_At_09h_41m_31s_537ms.rdf (100%) rename corese-unit-test/src/test/resources/{fr/inria/corese/engine => }/data/comma/data/Annotation_Added_The_07_05_2001_At_09h_44m_38s_909ms.rdf (100%) rename corese-unit-test/src/test/resources/{fr/inria/corese/engine => }/data/comma/data/Annotation_Added_The_07_05_2001_At_09h_46m_08s_163ms.rdf (100%) rename corese-unit-test/src/test/resources/{fr/inria/corese/engine => }/data/comma/data/Annotation_Added_The_07_05_2001_At_10h_21m_25s_403ms.rdf (100%) rename corese-unit-test/src/test/resources/{fr/inria/corese/engine => }/data/comma/data/Annotation_Added_The_07_05_2001_At_11h_32m_20s_977ms.rdf (100%) rename corese-unit-test/src/test/resources/{fr/inria/corese/engine => }/data/comma/data/Annotation_Added_The_07_05_2001_At_12h_07m_49s_050ms.rdf (100%) rename corese-unit-test/src/test/resources/{fr/inria/corese/engine => }/data/comma/data/Annotation_Added_The_18_05_2001_At_15h_51m_06s_359ms.rdf (100%) rename corese-unit-test/src/test/resources/{fr/inria/corese/engine => }/data/comma/data/Fabien_Gandon.rdf (100%) rename corese-unit-test/src/test/resources/{fr/inria/corese/engine => }/data/comma/data/Olivier_Corby.rdf (100%) rename corese-unit-test/src/test/resources/{fr/inria/corese/engine => }/data/comma/data/Rose_Dieng.rdf (100%) rename corese-unit-test/src/test/resources/{fr/inria/corese/engine => }/data/comma/data/article_madrid.rdf (100%) rename corese-unit-test/src/test/resources/{fr/inria/corese/engine => }/data/comma/data/article_pakm.rdf (100%) rename corese-unit-test/src/test/resources/{fr/inria/corese/engine => }/data/comma/data/kmss.rdf (100%) rename corese-unit-test/src/test/resources/{fr/inria/corese/engine => }/data/comma/data/livret_d_accueil.rdf (100%) rename corese-unit-test/src/test/resources/{fr/inria/corese/engine => }/data/comma/data/mediation.rdf (100%) rename corese-unit-test/src/test/resources/{fr/inria/corese/engine => }/data/comma/data/organigramme_acacia.rdf (100%) rename corese-unit-test/src/test/resources/{fr/inria/corese/engine => }/data/comma/data/organigramme_bacf.rdf (100%) rename corese-unit-test/src/test/resources/{fr/inria/corese/engine => }/data/comma/data/organigramme_bpas.rdf (100%) rename corese-unit-test/src/test/resources/{fr/inria/corese/engine => }/data/comma/data/organigramme_re.rdf (100%) rename corese-unit-test/src/test/resources/{fr/inria/corese/engine => }/data/comma/data/organigramme_semir.rdf (100%) rename corese-unit-test/src/test/resources/{fr/inria/corese/engine => }/data/comma/data/organigramme_ur_sophia.rdf (100%) rename corese-unit-test/src/test/resources/{fr/inria/corese/engine => }/data/comma/data/plan_imprimantes.rdf (100%) rename corese-unit-test/src/test/resources/{fr/inria/corese/engine => }/data/comma/data/plan_masse_inria.rdf (100%) rename corese-unit-test/src/test/resources/{fr/inria/corese/engine => }/data/comma/data/presentation_cstb.rdf (100%) rename corese-unit-test/src/test/resources/{fr/inria/corese/engine => }/data/comma/data/presentation_ekaw.rdf (100%) rename corese-unit-test/src/test/resources/{fr/inria/corese/engine => }/data/comma/data/tmp.rdf (100%) rename corese-unit-test/src/test/resources/{fr/inria/corese/engine => }/data/comma/model.rdf (100%) rename corese-unit-test/src/test/resources/{fr/inria/corese/engine => }/data/jsonld/test.jsonld (100%) rename corese-unit-test/src/test/resources/{fr/inria/corese/engine => }/data/junit/data/test.rdf (100%) rename corese-unit-test/src/test/resources/{fr/inria/corese/engine => }/data/junit/data/test.ttl (100%) rename corese-unit-test/src/test/resources/{fr/inria/corese/engine => }/data/junit/data/test.xml (100%) rename corese-unit-test/src/test/resources/{fr/inria/corese/engine => }/data/junit/sttl/format1/start.rq (100%) rename corese-unit-test/src/test/resources/{fr/inria/corese/engine => }/data/junit/sttl/format2/format/test.html (100%) rename corese-unit-test/src/test/resources/{fr/inria/corese/engine => }/data/junit/sttl/format2/start.rq (100%) rename corese-unit-test/src/test/resources/{fr/inria/corese/engine => }/data/math/data/fun.ttl (100%) rename corese-unit-test/src/test/resources/{fr/inria/corese/engine => }/data/template/owl/data/primer.owl (100%) rename corese-unit-test/src/test/resources/{fr/inria/corese/engine => }/data/template/spinhtml/data/agg.ttl (100%) rename corese-unit-test/src/test/resources/{fr/inria/corese/engine => }/data/template/spinhtml/data/ask.ttl (100%) rename corese-unit-test/src/test/resources/{fr/inria/corese/engine => }/data/template/spinhtml/data/const.ttl (100%) rename corese-unit-test/src/test/resources/{fr/inria/corese/engine => }/data/template/spinhtml/data/construct.ttl (100%) rename corese-unit-test/src/test/resources/{fr/inria/corese/engine => }/data/template/spinhtml/data/describe.ttl (100%) rename corese-unit-test/src/test/resources/{fr/inria/corese/engine => }/data/template/spinhtml/data/exp.ttl (100%) rename corese-unit-test/src/test/resources/{fr/inria/corese/engine => }/data/template/spinhtml/data/onto.ttl (100%) rename corese-unit-test/src/test/resources/{fr/inria/corese/engine => }/data/template/spinhtml/data/path.ttl (100%) rename corese-unit-test/src/test/resources/{fr/inria/corese/engine => }/data/template/spinhtml/data/sco.ttl (100%) rename corese-unit-test/src/test/resources/{fr/inria/corese/engine => }/data/template/spinhtml/data/sub.ttl (100%) rename corese-unit-test/src/test/resources/{fr/inria/corese/engine => }/data/template/spinhtml/data/test.ttl (100%) rename corese-unit-test/src/test/resources/{fr/inria/corese/engine => }/data/template/spinhtml/data/values.ttl (100%) rename corese-unit-test/src/test/resources/{fr/inria/corese/engine => }/data/test/iso.rdf (100%) rename corese-unit-test/src/test/resources/{fr/inria/corese/engine => }/data/test/iso.ttl (100%) rename corese-unit-test/src/test/resources/{fr/inria/corese/engine => }/data/test/primer.owl (100%) rename corese-unit-test/src/test/resources/{fr/inria/corese/engine => }/data/test/primerdata.ttl (100%) rename corese-unit-test/src/test/resources/{fr/inria/corese/engine => }/data/test/utf.rdf (100%) rename corese-unit-test/src/test/resources/{fr/inria/corese/engine => }/data/test/utf.ttl (100%) delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f0.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f1.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f10.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f100.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f101.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f102.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f103.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f104.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f105.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f106.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f107.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f108.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f109.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f11.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f110.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f111.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f112.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f113.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f114.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f115.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f116.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f117.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f118.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f119.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f12.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f120.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f121.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f122.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f123.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f124.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f125.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f126.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f127.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f128.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f129.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f13.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f130.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f131.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f132.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f133.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f134.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f135.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f136.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f137.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f138.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f139.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f14.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f140.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f141.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f142.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f143.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f144.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f145.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f146.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f147.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f148.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f149.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f15.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f150.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f151.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f152.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f153.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f154.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f155.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f156.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f157.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f158.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f159.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f16.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f160.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f161.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f162.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f163.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f164.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f165.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f166.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f167.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f168.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f169.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f17.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f170.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f171.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f172.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f173.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f174.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f175.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f176.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f177.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f178.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f179.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f18.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f180.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f181.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f182.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f183.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f184.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f185.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f186.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f187.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f188.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f189.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f19.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f190.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f191.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f192.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f193.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f194.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f195.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f196.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f197.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f198.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f199.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f2.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f20.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f200.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f201.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f202.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f203.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f204.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f205.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f206.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f207.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f208.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f209.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f21.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f210.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f211.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f212.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f213.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f214.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f215.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f216.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f217.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f218.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f219.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f22.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f220.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f221.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f222.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f223.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f224.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f225.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f226.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f227.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f228.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f229.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f23.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f230.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f231.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f232.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f233.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f234.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f235.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f236.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f237.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f238.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f239.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f24.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f240.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f241.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f242.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f243.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f244.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f245.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f246.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f247.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f248.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f249.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f25.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f250.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f251.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f252.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f253.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f254.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f255.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f256.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f257.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f258.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f259.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f26.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f260.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f261.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f262.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f263.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f264.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f265.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f266.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f267.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f268.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f269.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f27.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f270.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f271.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f272.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f273.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f274.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f275.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f276.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f277.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f278.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f279.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f28.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f280.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f281.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f282.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f283.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f284.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f285.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f286.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f287.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f288.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f289.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f29.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f290.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f291.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f292.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f293.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f294.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f295.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f296.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f297.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f298.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f299.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f3.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f30.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f300.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f301.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f302.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f303.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f304.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f305.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f306.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f307.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f308.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f309.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f31.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f310.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f311.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f312.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f313.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f314.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f315.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f316.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f317.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f318.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f319.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f32.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f320.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f321.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f322.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f323.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f324.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f325.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f326.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f327.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f328.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f329.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f33.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f330.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f331.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f332.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f333.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f334.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f335.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f336.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f337.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f338.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f339.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f34.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f340.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f341.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f342.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f343.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f344.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f345.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f346.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f347.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f348.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f349.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f35.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f350.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f351.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f352.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f353.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f354.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f355.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f356.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f357.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f358.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f359.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f36.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f360.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f361.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f362.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f363.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f364.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f365.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f366.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f367.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f368.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f369.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f37.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f370.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f371.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f372.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f373.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f374.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f375.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f376.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f377.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f378.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f379.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f38.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f380.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f381.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f382.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f383.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f384.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f385.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f386.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f387.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f388.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f389.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f39.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f390.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f391.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f392.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f393.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f394.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f395.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f396.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f397.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f398.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f399.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f4.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f40.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f400.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f401.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f402.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f403.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f404.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f405.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f406.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f407.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f408.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f409.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f41.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f410.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f411.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f412.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f413.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f414.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f415.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f416.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f417.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f418.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f419.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f42.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f420.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f421.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f422.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f423.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f424.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f425.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f426.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f427.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f428.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f429.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f43.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f430.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f431.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f432.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f433.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f434.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f435.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f436.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f437.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f438.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f439.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f44.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f440.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f441.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f442.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f443.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f444.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f445.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f446.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f447.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f448.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f449.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f45.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f450.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f451.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f452.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f453.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f454.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f455.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f456.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f457.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f458.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f459.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f46.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f460.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f461.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f462.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f463.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f464.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f465.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f466.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f467.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f468.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f469.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f47.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f470.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f471.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f472.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f473.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f474.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f475.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f476.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f477.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f478.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f479.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f48.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f480.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f481.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f482.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f483.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f484.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f485.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f486.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f487.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f488.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f489.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f49.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f490.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f491.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f492.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f493.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f494.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f495.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f496.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f497.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f498.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f499.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f5.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f50.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f500.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f501.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f502.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f503.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f504.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f505.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f506.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f507.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f508.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f509.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f51.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f510.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f511.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f512.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f513.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f514.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f515.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f516.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f517.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f518.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f519.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f52.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f520.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f521.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f522.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f523.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f524.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f525.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f526.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f527.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f528.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f529.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f53.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f530.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f531.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f532.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f533.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f534.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f535.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f536.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f537.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f538.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f539.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f54.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f540.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f541.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f542.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f543.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f544.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f545.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f546.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f547.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f548.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f549.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f55.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f550.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f551.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f552.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f553.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f554.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f555.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f556.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f557.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f558.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f559.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f56.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f560.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f561.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f562.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f563.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f564.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f565.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f566.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f567.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f568.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f569.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f57.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f570.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f571.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f572.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f573.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f574.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f575.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f576.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f577.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f578.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f579.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f58.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f580.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f581.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f582.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f583.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f584.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f585.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f586.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f587.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f588.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f589.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f59.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f590.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f591.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f592.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f593.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f594.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f595.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f596.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f597.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f598.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f599.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f6.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f60.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f600.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f601.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f602.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f603.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f604.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f605.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f606.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f607.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f608.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f609.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f61.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f610.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f611.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f612.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f613.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f614.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f615.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f616.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f617.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f618.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f619.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f62.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f620.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f621.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f622.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f623.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f624.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f625.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f626.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f627.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f628.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f629.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f63.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f630.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f631.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f632.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f633.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f634.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f635.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f636.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f637.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f638.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f639.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f64.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f640.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f641.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f642.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f643.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f644.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f645.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f646.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f647.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f648.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f649.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f65.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f650.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f651.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f652.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f653.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f654.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f655.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f656.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f657.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f658.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f659.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f66.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f660.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f661.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f662.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f663.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f664.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f665.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f666.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f667.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f668.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f669.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f67.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f670.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f671.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f672.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f673.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f674.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f675.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f676.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f677.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f678.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f679.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f68.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f680.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f681.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f682.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f683.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f684.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f685.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f686.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f687.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f688.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f689.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f69.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f690.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f691.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f692.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f693.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f694.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f695.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f696.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f697.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f698.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f699.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f7.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f70.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f700.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f701.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f702.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f703.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f704.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f705.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f706.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f707.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f708.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f709.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f71.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f710.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f711.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f712.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f713.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f714.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f715.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f716.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f717.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f718.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f719.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f72.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f720.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f721.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f722.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f723.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f724.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f725.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f726.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f727.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f728.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f729.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f73.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f730.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f731.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f732.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f733.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f734.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f735.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f736.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f737.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f738.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f739.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f74.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f740.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f741.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f742.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f743.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f744.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f745.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f746.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f747.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f748.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f749.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f75.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f750.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f751.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f752.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f753.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f754.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f755.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f756.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f757.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f758.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f759.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f76.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f760.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f761.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f762.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f763.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f764.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f765.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f766.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f767.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f768.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f769.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f77.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f770.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f771.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f772.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f773.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f774.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f775.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f776.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f777.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f778.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f779.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f78.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f780.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f781.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f782.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f783.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f784.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f785.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f786.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f787.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f788.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f789.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f79.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f790.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f791.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f792.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f793.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f794.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f795.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f796.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f797.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f798.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f799.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f8.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f80.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f800.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f801.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f802.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f803.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f804.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f805.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f806.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f807.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f808.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f809.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f81.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f810.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f811.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f812.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f813.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f814.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f815.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f816.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f817.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f818.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f819.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f82.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f820.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f821.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f822.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f823.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f824.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f825.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f826.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f827.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f828.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f829.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f83.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f830.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f831.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f84.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f85.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f86.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f87.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f88.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f89.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f9.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f90.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f91.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f92.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f93.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f94.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f95.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f96.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f97.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f98.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f99.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/fail.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/engine/data/test.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/engine/ontology/test.rdfs delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/engine/rule/meta.rul delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/engine/rule/test2.brul delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/human/human.rdfs delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/human/human1.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/human/human2.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/math/data/data.ttl delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/math/data/data2.ttl delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/math/data/fact.ttl delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/math/data/latex.rul delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/math/data/matrix.ttl delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/math/data/onto.ttl delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/math/data/phi.ttl delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/math/data/prod.ttl delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/math/deriv/power.rq delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/math/eval.ttl delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/math/eval/fact.rq delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/math/eval/power.rq delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/math/eval/rec.rq delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/math/eval/recfact.rq delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/math/eval/recpower.rq delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/math/eval/start.rq delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/math/eval/term.rq delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/math/eval/term.save delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/math/eval/var.rq delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/math/latex.rul delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/math/latex/tmp.aux delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/math/latex/tmp.dvi delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/math/latex/tmp.pdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/math/latex/tmp.tex delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/math/latextemplate/fact.rq delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/math/latextemplate/frac.rq delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/math/latextemplate/fun.rq delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/math/latextemplate/label.rq delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/math/latextemplate/list.rq delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/math/latextemplate/matrix.rq delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/math/latextemplate/nbcol.rq delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/math/latextemplate/power.rq delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/math/latextemplate/row.rq delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/math/latextemplate/sqrt.rq delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/math/latextemplate/start.rq delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/math/latextemplate/sum.rq delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/math/latextemplate/term.rq delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/math/latextemplate/var.rq delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/math/mat.rul delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/math/query/cons.txt delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/math/query/count.txt delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/math/query/describe.txt delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/math/query/display.txt delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/math/query/display.txt.txt delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/math/query/math.txt delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/math/query/pragma.txt delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/math/query/q1.txt delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/math/query/query-display.txt delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/math/query/query-display.txt.txt delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/math/query/query-display2.txt delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/math/query/query-display3.txt delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/math/query/template.txt delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/math/query/test.rq delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/math/template/fact.rq delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/math/template/fun.rq delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/math/template/list.rq delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/math/template/matrix.rq delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/math/template/start.rq delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/math/template/term.rq delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/math/template/var.rq delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/math/tmp.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/math/tmp/fun.rq delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/owlrule/owlrllite-junit.rul delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/owlrule/owlrllite.rul delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/rdfa/f1.html delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/rdfa/f2.html delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/rdfa/f3.html delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/engine/data/test/method.rq delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/research/data/test/human.rdfs delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/research/data/test/human1.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/research/data/test/human2.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/research/data/test/iso.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/research/data/test/iso.ttl delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/research/data/test/method.rq delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/research/data/test/myshape.ttl delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/research/data/test/primerdata.ttl delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/research/data/test/shapeexp.ttl delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/research/data/test/shapeexp1.ttl delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/research/data/test/shapeexp10.ttl delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/research/data/test/shapeexp2.ttl delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/research/data/test/shapeexp3.ttl delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/research/data/test/shapeexp4.rq delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/research/data/test/shapeexp4.ttl delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/research/data/test/shapeexp6.rq delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/research/data/test/shapeexp6.ttl delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/research/data/test/shapeexp7.rq delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/research/data/test/shapeexp7.ttl delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/research/data/test/shapeexp8.rq delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/research/data/test/shapeexp8.ttl delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/research/data/test/shapeexp9.rq delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/research/data/test/shapeexp9.ttl delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/research/data/test/utf.rdf delete mode 100644 corese-unit-test/src/test/resources/fr/inria/corese/research/data/test/utf.ttl rename corese-unit-test/src/test/resources/{fr/inria/corese/research/data/test => }/primer.owl (97%) create mode 100644 corese-unit-test/src/test/resources/test/data/data.xml create mode 100644 corese-unit-test/src/test/resources/test/data/xslt.xsl diff --git a/corese-unit-test/pom.xml b/corese-unit-test/pom.xml index ed89be0326..901ff37fe3 100644 --- a/corese-unit-test/pom.xml +++ b/corese-unit-test/pom.xml @@ -23,6 +23,10 @@ + + org.slf4j + slf4j-api + junit junit @@ -93,7 +97,8 @@ maven-surefire-plugin 2.22.1 - true + + true diff --git a/corese-unit-test/src/main/java/module-info.java b/corese-unit-test/src/main/java/module-info.java index bbbbe569d4..821b5d80a7 100644 --- a/corese-unit-test/src/main/java/module-info.java +++ b/corese-unit-test/src/main/java/module-info.java @@ -12,6 +12,7 @@ requires transitive org.apache.jena.ext.com.google; requires transitive org.apache.jena.iri; requires com.google.common; + requires org.slf4j; opens fr.inria.corese.engine; } \ No newline at end of file diff --git a/corese-unit-test/src/test/java/fr/inria/corese/engine/TestQuery1.java b/corese-unit-test/src/test/java/fr/inria/corese/engine/TestQuery1.java new file mode 100644 index 0000000000..ffcf5bf74b --- /dev/null +++ b/corese-unit-test/src/test/java/fr/inria/corese/engine/TestQuery1.java @@ -0,0 +1,8795 @@ +package fr.inria.corese.engine; + +import static fr.inria.corese.core.util.Property.Value.LOAD_IN_DEFAULT_GRAPH; +import static fr.inria.corese.core.util.Property.Value.SPARQL_COMPLIANT; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertTrue; + +import java.io.File; +import java.io.IOException; +import java.io.InputStream; +import java.net.MalformedURLException; +import java.net.URISyntaxException; +import java.util.ArrayList; + +import javax.xml.parsers.ParserConfigurationException; + +import org.junit.AfterClass; +import org.junit.Assert; +import org.junit.BeforeClass; +import org.junit.Test; +import org.xml.sax.SAXException; + +import fr.inria.corese.compiler.eval.QuerySolver; +import fr.inria.corese.compiler.result.XMLResult; +import fr.inria.corese.core.Graph; +import fr.inria.corese.core.GraphStore; +import fr.inria.corese.core.load.Load; +import fr.inria.corese.core.load.LoadException; +import fr.inria.corese.core.load.QueryLoad; +import fr.inria.corese.core.logic.RDFS; +import fr.inria.corese.core.print.JSONLDFormat; +import fr.inria.corese.core.print.ResultFormat; +import fr.inria.corese.core.print.XMLFormat; +import fr.inria.corese.core.producer.DataFilter; +import fr.inria.corese.core.producer.DataFilterFactory; +import fr.inria.corese.core.query.QueryEngine; +import fr.inria.corese.core.query.QueryGraph; +import fr.inria.corese.core.query.QueryProcess; +import fr.inria.corese.core.transform.Loader; +import fr.inria.corese.core.transform.Transformer; +import fr.inria.corese.core.util.Property; +import fr.inria.corese.core.util.SPINProcess; +import fr.inria.corese.kgram.api.core.DatatypeValue; +import fr.inria.corese.kgram.api.core.Edge; +import fr.inria.corese.kgram.api.core.ExprType; +import fr.inria.corese.kgram.api.core.Node; +import fr.inria.corese.kgram.api.core.PointerType; +import fr.inria.corese.kgram.core.Mapping; +import fr.inria.corese.kgram.core.Mappings; +import fr.inria.corese.kgram.core.Query; +import fr.inria.corese.kgram.event.StatListener; +import fr.inria.corese.sparql.api.IDatatype; +import fr.inria.corese.sparql.datatype.DatatypeMap; +import fr.inria.corese.sparql.datatype.RDF; +import fr.inria.corese.sparql.datatype.extension.CoresePointer; +import fr.inria.corese.sparql.exceptions.EngineException; +import fr.inria.corese.sparql.exceptions.LDScriptException; +import fr.inria.corese.sparql.exceptions.UndefinedExpressionException; +import fr.inria.corese.sparql.storage.api.IStorage; +import fr.inria.corese.sparql.storage.api.Parameters; +import fr.inria.corese.sparql.triple.function.term.Binding; +import fr.inria.corese.sparql.triple.parser.ASTQuery; +import fr.inria.corese.sparql.triple.parser.Access; +import fr.inria.corese.sparql.triple.parser.Access.Feature; +import fr.inria.corese.sparql.triple.parser.Context; +import fr.inria.corese.sparql.triple.parser.Dataset; +import fr.inria.corese.sparql.triple.parser.NSManager; + +public class TestQuery1 { + // private static org.slf4j.Logger logger = + // LoggerFactory.getLogger(TestQuery1.class); + + static String data = TestQuery1.class.getResource("/data/").getPath(); + // static String QUERY = TestQuery1.class.getResource("query/").getPath(); + // static String test = TestQuery1.class.getResource("test/").getPath(); + // static String text = TestQuery1.class.getResource("text/").getPath(); + + private static final String FOAF = "http://xmlns.com/foaf/0.1/"; + // private static final String SPIN_PREF = "prefix sp: <" + NSManager.SPIN + + // ">\n"; + private static final String FOAF_PREF = "prefix foaf: \n"; + // private static final String SQL_PREF = "prefix sql: + // \n"; + static Graph graph; + + @BeforeClass + static public void init() { + // Query.STD_PLAN = Query.PLAN_RULE_BASED; + // Property.set(GRAPH_NODE_AS_DATATYPE, true); + Property.set(LOAD_IN_DEFAULT_GRAPH, true); + // Property.set(INTERPRETER_TEST, true); + QueryProcess.DISPLAY_QUERY = true; + System.out.println("Property: " + Property.display()); + // Graph.DEFAULT_GRAPH_MODE = Graph.DEFAULT_GRAPH; + + QueryProcess.definePrefix("c", "http://www.inria.fr/acacia/comma#"); + // QueryProcess.definePrefix("foaf", "http://xmlns.com/foaf/0.1/"); + + graph = Graph.create(true); + // graph.setOptimize(true); + + Load ld = Load.create(graph); + try { + init(graph, ld); + } catch (LoadException ex) { + } + // Option.isOption = false; + // QueryProcess.setJoin(true); + // fr.inria.corese.compiler.parser.Transformer.ISBGP = !true; + // QueryProcess.setPlanDefault(Query.QP_HEURISTICS_BASED); + + QueryProcess.testAlgebra(!true); + + // QueryProcess.setSolverVisitorName("fr.inria.corese.test.engine.MyVisitor"); + // QueryProcess.setVisitorable(true); + } + + @AfterClass + static public void finish() { + // after2(); + } + + static void before() { + Graph g = Graph.create(); + QueryProcess exec = QueryProcess.create(g); + + String q = "@public {" + + "@error function us:error(?e, ?x , ?y) { " + + "xt:print('****************** error') ; " + + "xt:print(java:getAST(xt:query())) ;" + + "xt:display( ?e, ?x, ?y) ; " + + "error() " + + "}" + + "}"; + + try { + exec.compile(q); + } catch (EngineException ex) { + } + + QuerySolver.setVisitorable(true); + } + + static void before2() { + Graph g = Graph.create(); + QueryProcess exec = QueryProcess.create(g); + + QuerySolver.setVisitorable(true); + IDatatype map = DatatypeMap.map(); + map.set(DatatypeMap.newResource(NSManager.USER, "error"), DatatypeMap.newList()); + DatatypeMap.setPublicDatatypeValue(map); + + String q = "@public {" + + + "@error " + + "function us:error(?e, ?x , ?y) { " + + "us:recerror(?e, ?x, ?y) ; " + + "error() " + + "}" + + + "@filter " + + "function us:filter(?g, ?e, ?b) { " + // + "xt:print(?e);" + + "us:record(?e) ;" + + "?b " + + "}" + + + "@select " + + "function us:select(?e, ?b) { " + // + "xt:print(?e);" + + "us:record(?e) ;" + + "?b " + + "}" + + + "function us:map() { ds:getPublicDatatypeValue(true) }" + + + "function us:record(?e) {" + + "if (java:isTerm(?e)) {" + + "xt:set(us:map(), java:getLabel(?e), coalesce(1 + xt:get(us:map(), java:getLabel(?e)), 1)) ;" + + "let (( | ?l) = ?e) {" + + "for (?ee in ?e) {" + + "us:record(?ee)" + + "}" + + "}" + + "}" + + "}" + + + "function us:recerror(?e, ?x, ?y) {" + + "xt:add(xt:get(us:map(), us:error), xt:list(?e, ?x, ?y))" + + "}" + + + "}" + + ; + try { + exec.compile(q); + } catch (EngineException ex) { + System.out.println(ex); + } + + } + + static void after2() { + System.out.println("After"); + int i = 0; + for (IDatatype dt : DatatypeMap.getPublicDatatypeValue()) { + System.out.println(i++ + " " + dt.getValueList().get(0) + " " + dt.getValueList().get(1)); + } + i = 0; + for (IDatatype dt : DatatypeMap.getPublicDatatypeValue() + .get(DatatypeMap.newResource(NSManager.USER, "error"))) { + System.out.println(i++ + " " + dt); + } + } + + static void init(Graph g, Load ld) throws LoadException { + + ld.parse(TestQuery1.class.getResourceAsStream("/data/comma/comma.rdfs")); + // ld.parse(data + "comma/comma.rdfs"); + ld.parse(TestQuery1.class.getResourceAsStream("/data/comma/model.rdf")); + // ld.parse(data + "comma/model.rdf"); + ld.parseDir(data + "comma/data"); + } + + Graph getGraph() { + return graph; + } + + public static Graph graph() { + Graph graph = Graph.create(true); + graph.setOptimize(true); + + Load ld = Load.create(graph); + try { + ld.parse(TestQuery1.class.getResource("data").getPath() + "/" + + "comma/comma.rdfs"); + ld.parse(TestQuery1.class.getResource("data").getPath() + "/" + + "comma/model.rdf"); + ld.parseDir( + TestQuery1.class.getResource("data").getPath() + "/" + "comma/data"); + } catch (LoadException ex) { + } + + return graph; + } + + public void generic() throws EngineException { + String i = "insert data { [] rdf:value ( [] ) }"; + + String q = "select (us:test() as ?t) where {}" + + "function us:test() {}"; + + Graph g = Graph.create(); + QueryProcess exec = QueryProcess.create(g); + exec.query(i); + exec.query(q); + } + + @Test + public void typecheckowlrl() throws EngineException, MalformedURLException, LoadException { + Graph g = Graph.create(); + Load load = Load.create(g); + load.parse(TestQuery1.class.getResource("/primer.owl").getPath()); + + QueryProcess exec = QueryProcess.create(g); + Transformer t = Transformer.create(g, Transformer.OWLRL); + t.process(); + Transformer t2 = Transformer.create(g, Transformer.TURTLE_HTML); + IDatatype dt = t2.process(t.getBinding()); + // System.out.println(dt.getLabel()); + assertEquals(true, dt.getLabel().contains("")); + } + + @Test + public void union5() throws EngineException, MalformedURLException, LoadException { + String i = "insert data {" + + "us:John foaf:knows us:Jack ." + + "us:Jack foaf:knows us:Jim ." + + "us:Jim foaf:name 'Jim' ." + + "us:James foaf:name 'James' ." + + "}"; + String q = "select * where {" + + "?x foaf:knows ?y " + + "minus { " + + "{?x foaf:name ?n filter us:incr(?x, ?n) } union { ?y foaf:name ?n filter us:incr(?y, ?n) } " + + "}" + + "}" + + "function us:incr(?x, ?y) {" + + "set(?count = ?count+1)" + + "}"; + Graph g = Graph.create(); + Load.create(g); + QueryProcess exec = QueryProcess.create(g); + Binding b = Binding.create(); + b.setGlobalVariable("?count", DatatypeMap.ZERO); + exec.query(i); + Mappings map = exec.query(q, b); + // Mappings parameter focus edge iteration in graph/minus to relevant resources + assertEquals(1, map.size()); + assertEquals(1, b.getVariable("?count").intValue()); + } + + @Test + public void union4() throws EngineException, MalformedURLException, LoadException { + String i = "insert data {" + + "us:John foaf:knows us:Jack ." + + "us:Jack foaf:knows us:Jim ." + + "us:Jim foaf:name 'Jim' ." + + "us:James foaf:name 'James' ." + + "}"; + String q = "select * where {" + + "?x foaf:knows ?y " + + "optional {" + + "graph ?g { " + + "{?x foaf:name ?n filter us:incr(?x, ?n) } union { ?y foaf:name ?n filter us:incr(?y, ?n) } " + + "}}" + + "}" + + "function us:incr(?x, ?y) {" + + "set(?count = ?count+1)" + + "}"; + Graph g = Graph.create(); + Load.create(g); + QueryProcess exec = QueryProcess.create(g); + Binding b = Binding.create(); + b.setGlobalVariable("?count", DatatypeMap.ZERO); + exec.query(i); + Mappings map = exec.query(q, b); + // Mappings parameter focus edge iteration in optional/graph/union to relevant + // resources + assertEquals(2, map.size()); + assertEquals(1, b.getVariable("?count").intValue()); + } + + @Test + public void union333() throws EngineException, MalformedURLException, LoadException { + String i = "insert data {" + + "us:John foaf:knows us:Jack ." + + "us:Jack foaf:knows us:Jim ." + + "us:Jim foaf:name 'Jim' ." + + "us:James foaf:name 'James' ." + + "}"; + String q = "select * where {" + + "?x foaf:knows ?y " + + "{select ?n where { " + + "{?y foaf:name ?n filter us:incr(?y, ?n) } union { ?y foaf:name ?n filter us:incr(?y, ?n) } " + + "}}" + + "}" + + "function us:incr(?x, ?y) {" + + "set(?count = ?count+1)" + + "}"; + Graph g = Graph.create(); + Load.create(g); + QueryProcess exec = QueryProcess.create(g); + Binding b = Binding.create(); + b.setGlobalVariable("?count", DatatypeMap.ZERO); + exec.query(i); + Mappings map = exec.query(q, b); + // System.out.println(map); + // Mappings parameter do not focus edge iteration in query/union because select + // ?n + assertEquals(8, map.size()); + assertEquals(4, b.getVariable("?count").intValue()); + } + + @Test + public void union33() throws EngineException, MalformedURLException, LoadException { + String i = "insert data {" + + "us:John foaf:knows us:Jack ." + + "us:Jack foaf:knows us:Jim ." + + "us:Jim foaf:name 'Jim' ." + + "us:James foaf:name 'James' ." + + "}"; + String q = "select * where {" + + "?x foaf:knows ?y " + + "{select * where { " + + "{?y foaf:name ?n filter us:incr(?y, ?n) } union { ?y foaf:name ?n filter us:incr(?y, ?n) } " + + "}}" + + "}" + + "function us:incr(?x, ?y) {" + + "set(?count = ?count+1)" + + "}"; + Graph g = Graph.create(); + Load.create(g); + QueryProcess exec = QueryProcess.create(g); + Binding b = Binding.create(); + b.setGlobalVariable("?count", DatatypeMap.ZERO); + exec.query(i); + Mappings map = exec.query(q, b); + // System.out.println(map); + // Mappings parameter focus edge iteration in query/union because ?y is bound in + // both branches + assertEquals(2, map.size()); + assertEquals(2, b.getVariable("?count").intValue()); + } + + @Test + public void union3() throws EngineException, MalformedURLException, LoadException { + String i = "insert data {" + + "us:John foaf:knows us:Jack ." + + "us:Jack foaf:knows us:Jim ." + + "us:Jim foaf:name 'Jim' ." + + "us:James foaf:name 'James' ." + + "}"; + String q = "select * where {" + + "?x foaf:knows ?y " + + "{select * where { " + + "{?x foaf:name ?n filter us:incr(?x, ?n) } union { ?y foaf:name ?n filter us:incr(?y, ?n) } " + + "}}" + + "}" + + "function us:incr(?x, ?y) {" + + "set(?count = ?count+1)" + + "}"; + Graph g = Graph.create(); + Load.create(g); + QueryProcess exec = QueryProcess.create(g); + Binding b = Binding.create(); + b.setGlobalVariable("?count", DatatypeMap.ZERO); + exec.query(i); + Mappings map = exec.query(q, b); + // Mappings parameter do not focus edge iteration in query/union because ?x and + // ?y are not bound in both branches + assertEquals(1, map.size()); + assertEquals(4, b.getVariable("?count").intValue()); + } + + @Test + public void union2() throws EngineException, MalformedURLException, LoadException { + String i = "insert data {" + + "us:John foaf:knows us:Jack ." + + "us:Jack foaf:knows us:Jim ." + + "us:Jim foaf:name 'Jim' ." + + "us:James foaf:name 'James' ." + + "}"; + String q = "select * where {" + + "?x foaf:knows ?y " + + "graph ?g { " + + "{?x foaf:name ?n filter us:incr(?x, ?n) } union { ?y foaf:name ?n filter us:incr(?y, ?n) } " + + "}" + + "}" + + "function us:incr(?x, ?y) {" + + "set(?count = ?count+1)" + + "}"; + Graph g = Graph.create(); + Load.create(g); + QueryProcess exec = QueryProcess.create(g); + Binding b = Binding.create(); + b.setGlobalVariable("?count", DatatypeMap.ZERO); + exec.query(i); + Mappings map = exec.query(q, b); + // Mappings parameter focus edge iteration in graph/union to relevant resources + assertEquals(1, map.size()); + assertEquals(1, b.getVariable("?count").intValue()); + } + + @Test + public void union1() throws EngineException, MalformedURLException, LoadException { + String i = "insert data {" + + "us:John foaf:knows us:Jack ." + + "us:Jack foaf:knows us:Jim ." + + "us:Jim foaf:name 'Jim' ." + + "us:James foaf:name 'James' ." + + "}"; + String q = "select * where {" + + "?x foaf:knows ?y " + + "optional { " + + "{?x foaf:name ?n filter us:incr(?x, ?n) } union { ?y foaf:name ?n filter us:incr(?y, ?n) } " + + "}" + + "}" + + "function us:incr(?x, ?y) {" + + "set(?count = ?count+1)" + + "}"; + Graph g = Graph.create(); + Load.create(g); + QueryProcess exec = QueryProcess.create(g); + Binding b = Binding.create(); + b.setGlobalVariable("?count", DatatypeMap.ZERO); + exec.query(i); + Mappings map = exec.query(q, b); + assertEquals(2, map.size()); + // Mappings parameter focus edge iteration in optional/union to relevant + // resources + assertEquals(1, b.getVariable("?count").intValue()); + } + + // @Test + public void format() throws EngineException { + String i = "insert data { [] rdf:value () }"; + String q = "select (xt:xml(?m) as ?xml) (xt:rdf(?m) as ?rdf) (xt:json(?m) as ?json) " + + "(xt:graph(?m) as ?g) " + + "where { bind (us:test() as ?m) }" + + + "function us:test() { " + + "query(select * where {?s ?p ?o})" + + "}"; + + Graph g = Graph.create(); + QueryProcess exec = QueryProcess.create(g); + exec.query(i); + Mappings map = exec.query(q); + + DatatypeValue xml = map.getValue("?xml"); + DatatypeValue rdf = map.getValue("?rdf"); + DatatypeValue json = map.getValue("?json"); + map.getValue("?g"); + + System.out.println(xml.stringValue()); + System.out.println(rdf.stringValue()); + System.out.println(json.stringValue()); + } + + @Test + public void xslt() throws EngineException { + String data = TestQuery1.class.getResource("/test/data/data.xml").getPath(); + String xslt = TestQuery1.class.getResource("/test/data/xslt.xsl").getPath(); + + String q = String.format( + "select (us:test(<%s>, <%s>) as ?t) (us:test(xt:xml(?t)) as ?name) where {}" + + + "function us:test(xml, xslt) {" + + "let (doc = xt:xml(xml)) {" + + "xt:xslt(doc, xslt)" + + "}" + + "}", + data, xslt) + + + "function us:test(xml) {" + + "for (doc in xml) {" + + "for (node in doc) {" + + "return(dom:getNodeName(node))" + + "}" + + "}" + + "}"; + + Graph g = Graph.create(); + QueryProcess exec = QueryProcess.create(g); + Mappings map = exec.query(q); + DatatypeValue dt = map.getValue("?name"); + assertEquals("title", dt.stringValue()); + } + + @Test + public void json() throws EngineException, MalformedURLException, LoadException, URISyntaxException { + String q = "select (us:test() as ?t) " + + "where {}" + + "function us:test() {" + + "let (json = xt:json('{\"knows\": [ {\"name\": \"John\"} , {\"name\": \"Jack\"}] }')) {" + + "return (xt:path(json, '/knows/1/name'))" + + "} " + + "}"; + + Graph g = Graph.create(); + Load.create(g); + QueryProcess exec = QueryProcess.create(g); + Mappings map = exec.query(q); + DatatypeValue dt = map.getValue("?t"); + assertEquals("Jack", dt.stringValue()); + } + + @Test + public void testmap2() throws EngineException { + String q = "select (us:test(dt:map) as ?t) " + + "(us:test(dt:json) as ?js)" + + "where {}" + + + "function us:test(atype) {" + + "let (amap = xt:create(atype), " + + "list = @(('a' 1)('b' 2)('c' 3))) {" + + "for ((key val) in list) {" + + "xt:set(amap, key, val)" + + "} ;" + + "let ((aa | bb . cc) = amap," + + "(ee) = bb) {" + + "reduce(rq:plus, maplist (function((key, val)) { val }, xt:list(aa, ee, cc)))" + + "}" + + "}" + + "}"; + + Graph g = Graph.create(); + QueryProcess exec = QueryProcess.create(g); + Mappings map = exec.query(q); + assertEquals(6, map.getValue("?t").intValue()); + assertEquals(6, map.getValue("?js").intValue()); + } + + @Test + public void testmap() throws EngineException { + String q = "select (us:test(dt:map) as ?t) " + + "(us:test(dt:json) as ?js)" + + "where {}" + + + "function us:test(atype) {" + + "let (amap = xt:create(atype), " + + "list = @(('a' 1)('b' 2)('c' 3))) {" + + "for ((key val) in list) {" + + "xt:set(amap, key, val)" + + "} ;" + + "reduce(rq:plus, maplist (function((key, val)) { val }, amap))" + + "}" + + "}"; + + Graph g = Graph.create(); + QueryProcess exec = QueryProcess.create(g); + Mappings map = exec.query(q); + assertEquals(6, map.getValue("?t").intValue()); + assertEquals(6, map.getValue("?js").intValue()); + } + + @Test + public void testgraph5() throws EngineException { + String q = "select (us:test() as ?t) " + + "where {}" + + + "function us:test() {" + + "let (agraph = construct {[] rdf:value 1, 2, 3} where {}) {" + + "let ((t1 | t2 . t3) = maplist(xt:self, agraph), (tt) = t2) {" + + "reduce(rq:plus, maplist (function((s, p, o)) { o }, xt:list(t1, tt, t3)))" + + "}" + + "}" + + "}"; + + Graph g = Graph.create(); + QueryProcess exec = QueryProcess.create(g); + Mappings map = exec.query(q); + assertEquals(6, map.getValue("?t").intValue()); + } + + @Test + public void testgraph3() throws EngineException { + String q = "select (us:test() as ?t) " + + "where {}" + + + "function us:test() {" + + "let (agraph = construct {[] rdf:value 1, 2, 3} where {}) {" + + "let ((t1 | t2 . t3) = agraph, (tt) = t2) {" + + "reduce(rq:plus, maplist (function((s, p, o)) { o }, xt:list(t1, tt, t3)))" + + "}" + + "}" + + "}"; + + Graph g = Graph.create(); + QueryProcess exec = QueryProcess.create(g); + Mappings map = exec.query(q); + assertEquals(6, map.getValue("?t").intValue()); + } + + @Test + public void testgraph2() throws EngineException { + String q = "select (us:test() as ?t) " + + "where {}" + + + "function us:test() {" + + "let (agraph = construct {[] rdf:value 1, 2, 3} where {}) {" + + "reduce(rq:plus, maplist (function((s, p, o)) { o }, agraph))" + + "}" + + "}"; + + Graph g = Graph.create(); + QueryProcess exec = QueryProcess.create(g); + Mappings map = exec.query(q); + assertEquals(6, map.getValue("?t").intValue()); + } + + @Test + public void exception4() { + String q = "select ?x (us:test() as ?t) where { values ?x {1} }" + + "function us:test() { try {us:foo() } catch (var) { static(myvar=var); throw(2) } }" + + "function us:foo() {throw(throw(1))}"; + Graph g = Graph.create(); + QueryProcess exec = QueryProcess.create(g); + try { + exec.query(q); + assertEquals(false, true); + } catch (EngineException ex) { + assertEquals(2, ex.getDatatypeValue().intValue()); + IDatatype dt = Binding.getStaticVariable("?myvar"); + assertEquals(1, dt.intValue()); + } + } + + @Test + public void exception3() { + String q = "select ?x (us:test() as ?t) where { values ?x {1} }" + + "function us:test() { try {us:foo() } catch (var) { var } }" + + "function us:foo() {throw(throw(1))}"; + Graph g = Graph.create(); + QueryProcess exec = QueryProcess.create(g); + try { + Mappings map = exec.query(q); + assertEquals(1, map.size()); + } catch (EngineException ex) { + assertEquals(false, true); + } + } + + @Test + public void exception2() { + String q = "select ?x (us:test() as ?t) where { values ?x {1} }" + + "function us:test() { try {us:foo() } catch (var) { var } }" + + "function us:foo() {throw(1)}"; + Graph g = Graph.create(); + QueryProcess exec = QueryProcess.create(g); + try { + Mappings map = exec.query(q); + assertEquals(1, map.size()); + } catch (EngineException ex) { + assertEquals(false, true); + } + } + + @Test + public void exception() throws EngineException { + String q = "select ?x (us:test() as ?t) where { values ?x {1} }" + + "function us:test() { throw(1) }"; + Graph g = Graph.create(); + QueryProcess exec = QueryProcess.create(g); + try { + exec.query(q); + assertEquals(false, true); + } catch (LDScriptException ex) { + assertEquals(1, ex.getDatatypeValue().intValue()); + } + + } + + @Test + public void testStatic2() throws EngineException { + String q = "select (us:test() as ?t) where {}" + + "function us:test() {static (stat = stat+1) }"; + Graph g = Graph.create(); + QueryProcess exec = QueryProcess.create(g); + Binding.setStaticVariable("?stat", DatatypeMap.ONE); + Mappings map = exec.query(q); + DatatypeValue dt = map.getValue("?t"); + assertEquals(true, (dt != null) && (dt.intValue() == 2)); + assertEquals(2, Binding.getStaticVariable("?stat").intValue()); + } + + @Test + public void testStatic() throws EngineException { + String q = "select (us:test() as ?t) where {}" + + "function us:test() {let (stat = stat+1) {return (stat) }}"; + Graph g = Graph.create(); + QueryProcess exec = QueryProcess.create(g); + Binding.setStaticVariable("?stat", DatatypeMap.ONE); + Mappings map = exec.query(q); + DatatypeValue dt = map.getValue("?t"); + assertEquals(true, (dt != null) && (dt.intValue() == 2)); + assertEquals(1, Binding.getStaticVariable("?stat").intValue()); + } + + @Test + public void testREM() throws EngineException, LoadException { + String q = "prefix ex: " + + "select * where {bind (ex:mytest(xt:graph()) as ?t) } limit 10"; + Graph g = Graph.create(); + QueryProcess exec = QueryProcess.create(g); + QueryProcess.setReentrant(true); + Mappings map = exec.query(q); + map = exec.query("select * from us:g1 where { ?s ?p ?o }"); + assertEquals(1, map.size()); + } + + public IDatatype mytest(IDatatype dt) { + Graph g = (Graph) dt.getPointerObject(); + try { + QueryProcess exec = QueryProcess.create(g); + exec.query("insert { graph us:g1 { [] rdf:value ?v } } where { bind (rand() as ?v) }"); + } catch (EngineException ex) { + } + return DatatypeMap.TRUE; + } + + @Test + public void testForLoop() throws EngineException, LoadException, IOException { + Graph g = Graph.create(); + QueryProcess exec = QueryProcess.create(g); + String i = "insert data {[] rdf:value (1)}"; + String q = "select (us:fun() as ?list) where {" + + "}" + + "function us:fun() {" + + "let (list = xt:list()) {" + + "for ((s, p, o) in select * where {?s ?p ?o}) {" + + "xt:add(list, xt:list(s, p, o))" + + "};" + + "return (list)" + + "} " + + "}"; + + exec.query(i); + Mappings map = exec.query(q); + IDatatype dt = map.getValue("?list"); + assertEquals(3, dt.size()); + } + + @Test + public void testRDFList() throws EngineException, LoadException, IOException { + Graph g = Graph.create(); + QueryProcess exec = QueryProcess.create(g); + String i = "insert data {[] rdf:value (1)}"; + String q = "construct where { [] rdf:value (1) }"; + exec.query(i); + Mappings map = exec.query(q); + Graph res = (Graph) map.getGraph(); + // System.out.println(map.getGraph()); + assertEquals(3, res.size()); + } + + @Test + public void testXML4() throws EngineException, LoadException, IOException { + Graph g = Graph.create(); + QueryProcess exec = QueryProcess.create(g); + + String q = "select " + + " ?x ?y ?z " + + "where {" + + "bind ('" + + "" + + "label" + + "10" + + "true" + + "' as ?doc)" + + "bind (xt:xml(?doc) as ?xml)" + + "bind (xt:list(us:test(?xml)) as ?test)" + + "values (?x ?y ?z) {unnest(?test)}" + + "}" + + + "function us:test(xml) {" + + "let (list = xt:xpath(xml,'/doc/*/text()')" + + ") {" + + "maplist(dom:getNodeDatatypeValue, list)" + + "}" + + "}"; + + Mappings map = exec.query(q); + + assertEquals("label", map.getValue("?x").stringValue()); + assertEquals("en", map.getValue("?x").getLang()); + assertEquals(10, map.getValue("?y").intValue()); + assertEquals(true, map.getValue("?z").booleanValue()); + } + + @Test + public void testXML3() throws EngineException, LoadException, IOException { + Graph g = Graph.create(); + QueryProcess exec = QueryProcess.create(g); + + String q = "select " + + " ?x ?y ?z " + + "where {" + + "bind ('" + + "" + + "text" + + "" + + "" + + "" + + "" + + "" + + "' as ?doc)" + + "bind (xt:xml(?doc) as ?xml)" + + "bind (xt:list(us:test(?xml)) as ?test)" + + "values (?x ?y ?z) {unnest(?test)}" + + "}" + + + "function us:test(xml) {" + + "let ((other) = dom:getElementsByTagName(xml, \"other\"), " + // + "sublist = dom:getChildNodes(other)" + + "sublist = xt:xpath(xml,'//other/node()')" + + ") {" + + "maplist(dom:getNodeValue, sublist)" + + "}" + + "}"; + + Mappings map = exec.query(q); + assertEquals("cdata text", map.getValue("?x").stringValue()); + assertEquals("comment text", map.getValue("?y").stringValue()); + assertEquals("proc text", map.getValue("?z").stringValue()); + } + + @Test + public void testXML2() throws EngineException, LoadException { + Graph g = Graph.create(); + QueryProcess exec = QueryProcess.create(g); + + String q = "select " + + "(us:fun(?xml) as ?t) " + + "(dom:getNamespaceURI(?elem) as ?ns)" + + "(dom:getBaseURI(?elem) as ?base)" + + "(dom:getNodeName(?elem) as ?name)" + + "(dom:getLocalName(?elem) as ?local)" + + "(dom:hasAttributeNS(?elem, ?ns, 'att') as ?b)" + + "(dom:getAttributeNS(?elem, ?ns, 'att') as ?att)" + + "(dom:getFirstChild(?elem) as ?child)" + + "(dom:getTextContent(?child) as ?text)" + + "where {" + + "bind (xt:xml('" + + "text') as ?xml)" + + "bind (us:fun(?xml) as ?elem)" + + "}" + + + "function us:fun(xml) {" + + "let (dom = dom:getFirstChild(xml), ns = \"http://example.org/\"," + + "list = dom:getElementsByTagNameNS(dom, ns, \"test\")," + + "(first | rest) = list" + + ") {" + + "first" + + "}" + + "}"; + + Mappings map = exec.query(q); + assertEquals("http://example.org/", map.getValue("?ns").stringValue()); + assertEquals("http://example.org/", map.getValue("?base").stringValue()); + assertEquals("test", map.getValue("?local").stringValue()); + assertEquals("ns:test", map.getValue("?name").stringValue()); + assertEquals("text", map.getValue("?text").stringValue()); + // System.out.println(map); + } + + @Test + public void testXML1() throws EngineException { + Graph graph = Graph.create(); + QueryProcess exec = QueryProcess.create(graph); + String init = "insert data {" + + " us:contain " + + "'" + + "Catonmat" + + "10" + + "Cateatmouse" + + "'^^rdf:XMLLiteral " + + "}"; + + String query = "select (xt:text(?dom) as ?t) " + + "(xt:get(xt:attributes(?dom), 'color') as ?c)" + + "(xt:nodename(?dom) as ?n)" + + "where { " + + "?x us:contain ?xml " + + "bind (xt:xml(?xml) as ?doc)" + + "bind (us:phrase(?doc) as ?dom)" + + "}" + + + "function us:phrase(root) {" + + "for (doc in root) {" + + "for (phrase in xt:elements(doc, 'phrase')) {" + + "return (phrase)" + + "}" + + "}" + + "}"; + + exec.query(init); + Mappings map = exec.query(query); + // System.out.println(map); + assertEquals("Catonmat10", map.getValue("?t").stringValue()); + assertEquals("red", map.getValue("?c").stringValue()); + assertEquals("phrase", map.getValue("?n").stringValue()); + } + + @Test + public void testReduce() throws EngineException, LoadException { + Graph g = Graph.create(); + QueryProcess exec = QueryProcess.create(g); + String q = "select (reduce(us:test, xt:list()) as ?x) " + + "(reduce(us:test, xt:list(1)) as ?y)" + + "(reduce(us:test, xt:list(1, 2)) as ?z)" + + "where {}" + + + "function us:test(x, y) {" + + "x + y" + + "}" + + + "function us:test() {" + + "0" + + "}"; + Mappings map = exec.query(q); + assertEquals(0, map.getValue("?x").intValue()); + assertEquals(1, map.getValue("?y").intValue()); + assertEquals(3, map.getValue("?z").intValue()); + + } + + @Test + public void testDynLet() throws EngineException, LoadException { + Graph g = Graph.create(); + QueryProcess exec = QueryProcess.create(g); + String q = "select (us:test(10) as ?l) (xt:get(?l, 0) as ?n) where {}" + + "" + + "function us:test(x) { " + + "letdyn (y = x) { maplist(lambda(g) { y } , xt:list(y)) } " + + "}"; + Mappings map = exec.query(q); + IDatatype dt = map.getValue("?n"); + assertEquals(true, dt != null); + if (dt != null) { + assertEquals(10, dt.intValue()); + } + } + + @Test + public void testDynLet2() throws EngineException, LoadException { + Graph g = Graph.create(); + QueryProcess exec = QueryProcess.create(g); + String q = "select (us:test(10) as ?l) (xt:get(?l, 0) as ?n) where {}" + + "" + + "function us:test(x) { " + + "letdyn (y = x) { maplist(lambda(g) { let (y = 2 * y) { y }} , xt:list(y)) } " + + "}"; + Mappings map = exec.query(q); + IDatatype dt = map.getValue("?n"); + assertEquals(true, dt != null); + if (dt != null) { + assertEquals(20, dt.intValue()); + } + } + + @Test + public void testDynLet3() throws EngineException, LoadException { + Graph g = Graph.create(); + QueryProcess exec = QueryProcess.create(g); + String q = "select (us:test() as ?n) where {}" + + "" + + "function us:test() { " + + "letdyn (x = 1) { us:fun() } " + + "}" + + + "function us:fun() { x }"; + Mappings map = exec.query(q); + IDatatype dt = map.getValue("?n"); + assertEquals(true, dt != null); + if (dt != null) { + assertEquals(1, dt.intValue()); + } + } + + @Test + public void testDynLet4() throws EngineException, LoadException { + Graph g = Graph.create(); + QueryProcess exec = QueryProcess.create(g); + String q = "select (reduce(rq:plus, us:bar(10)) as ?a) where {}" + + + "function us:bar(n) {" + + "letdyn(select (1 as ?x) where {}) {" + + "maplist(lambda(y) { set(x = 2*x) }, xt:iota(n)) " + + "}" + + "}"; + Mappings map = exec.query(q); + assertEquals(2046, map.getValue("?a").intValue()); + } + + @Test + public void testDynLet44() throws EngineException, LoadException { + Graph g = Graph.create(); + QueryProcess exec = QueryProcess.create(g); + String q = "select (reduce(rq:plus, us:bar(10)) as ?a) where {}" + + + "function us:bar(n) {" + + "letdyn(select (1 as ?x) where {}) {" + + "maplist(us:test, xt:iota(n)) " + + "}" + + "}" + + + "function us:test(y) {" + + "set(x = 2*x)" + + "}"; + Mappings map = exec.query(q); + assertEquals(2046, map.getValue("?a").intValue()); + } + + @Test + public void testDynLet5() throws EngineException, LoadException { + Graph g = Graph.create(); + QueryProcess exec = QueryProcess.create(g); + String q = "select (us:test() as ?n) where {}" + + "" + + "function us:test() { " + + "let (z = 1) {" + + "letdyn (x = 1) { us:fun() } " + + "}" + + "}" + + + "function us:fun() { z }" + + + ""; + Mappings map = exec.query(q); + IDatatype dt = map.getValue("?n"); + assertEquals(true, dt == null); + } + + @Test + public void testDynLet6() throws EngineException, LoadException { + Graph g = Graph.create(); + QueryProcess exec = QueryProcess.create(g); + String q = "select (us:test() as ?n) where {}" + + "" + + "function us:test() { " + + "letdyn (x = 1) { us:fun() } " + + "}" + + + "function us:fun() { let (x = 2) { x } }" + + + ""; + Mappings map = exec.query(q); + IDatatype dt = map.getValue("?n"); + assertEquals(2, dt.intValue()); + } + + @Test + public void testexist() throws EngineException, LoadException { + + Graph g = Graph.create(); + QueryProcess exec = QueryProcess.create(g); + + String i = "insert data { " + + "graph us:g1 { " + + "rdf:type rdf:type rdf:Property " + + "rdf:type owl:sameAs rdf:type " + + "rdf:type us:test us:test " + + "us:test us:test us:test " + + "}" + + "}"; + + String q = "select * where {" + + "bind (bnode() as ?bn)" + + + "bind (xt:exists(rdf:type, rdf:type, rdf:Property) as ?c1)" + + "bind (xt:exists(?bn, rdf:type, rdf:Property) as ?c2)" + + "bind (xt:exists(?bn, rdf:type, ?bn) as ?c3)" + + "bind (xt:exists(?bn, bnode(), ?bn) as ?c4)" + + "bind (xt:exists(?bn, ?bn) as ?c5)" + + + "bind (xt:exists(?bn, ?bn, rdf:Property) as ?b1)" + + "bind (xt:exists(bnode(), ?bn, ?bn) as ?b2)" + + "bind (xt:exists(?bn, ?bn, ?bn) as ?b3)" + + + "graph kg:default {" + + "bind (bnode() as ?bb)" + + "bind (xt:exists(?bb, ?bb, rdf:Property) as ?a1)" + + "bind (xt:exists(?bb, bnode(), ?bb) as ?a2)" + + "bind (xt:exists(bnode(), ?bb, ?bb) as ?a3)" + + "bind (xt:exists(bnode(), bnode(), bnode()) as ?a4)" + + "bind (xt:exists(?bb, ?bb, ?bb) as ?a5)" + + "}" + + + "}" + + ; + + exec.query(i); + Mappings map = exec.query(q); + // ?c1 = true; ?c2 = true; ?c3 = false; ?c4 = true; ?c5 = true; + // ?b1 = true; ?b3 = true; ?b4 = true; + // ?a1 = false; ?a2 = false; ?a3 = false; ?a4 = false; ?a5 = false; + assertEquals(true, map.getValue("?c1").booleanValue()); + assertEquals(true, map.getValue("?c2").booleanValue()); + assertEquals(false, map.getValue("?c3").booleanValue()); + assertEquals(true, map.getValue("?c4").booleanValue()); + assertEquals(true, map.getValue("?c5").booleanValue()); + + assertEquals(true, map.getValue("?b1").booleanValue()); + assertEquals(true, map.getValue("?b2").booleanValue()); + assertEquals(true, map.getValue("?b3").booleanValue()); + + assertEquals(false, map.getValue("?a1").booleanValue()); + assertEquals(false, map.getValue("?a2").booleanValue()); + assertEquals(false, map.getValue("?a3").booleanValue()); + assertEquals(false, map.getValue("?a4").booleanValue()); + assertEquals(false, map.getValue("?a5").booleanValue()); + + } + + @Test + public void testTTL1() throws EngineException, LoadException { + + Graph g = Graph.create(); + QueryProcess exec = QueryProcess.create(g); + String i = "insert data { " + + "_:b rdf:value (_:b) " + + "}"; + String q = "select " + + "(st:apply-templates-with(st:turtle) as ?t) " + + "where { }"; + + exec.query(i); + Mappings map = exec.query(q); + System.out.println("res: " + map.getValue("?t").stringValue()); + String str = map.getValue("?t").stringValue(); + Graph gg = Graph.create(); + Load ld = Load.create(gg); + ld.loadString(str, Load.TURTLE_FORMAT); + + QueryProcess ex = QueryProcess.create(gg); + String qq = "select * where {" + + "?s ?p (?s) " + + "}"; + + Mappings m1 = exec.query(qq); + Mappings m2 = ex.query(qq); + assertEquals(m1.size(), m2.size()); + } + + @Test + public void testTTL2() throws EngineException, LoadException { + + Graph g = Graph.create(); + QueryProcess exec = QueryProcess.create(g); + String i = "insert data { " + + "_:b rdf:value _:b " + + "}"; + String q = "select (st:apply-templates-with(st:turtle) as ?t) where { }"; + + exec.query(i); + Mappings map = exec.query(q); + // System.out.println(map.getValue("?t").stringValue()); + String str = map.getValue("?t").stringValue(); + Graph gg = Graph.create(); + Load ld = Load.create(gg); + ld.loadString(str, Load.TURTLE_FORMAT); + + QueryProcess ex = QueryProcess.create(gg); + String qq = "select * where {" + + "?s ?p ?s " + + "}"; + + Mappings m1 = exec.query(qq); + Mappings m2 = ex.query(qq); + assertEquals(m1.size(), m2.size()); + } + + @Test + public void testTTL3() throws EngineException, LoadException { + + Graph g = Graph.create(); + QueryProcess exec = QueryProcess.create(g); + String i = "insert data { " + + "_:b rdf:value [rdf:value _:b] " + + "}"; + String q = "select (st:apply-templates-with(st:turtle) as ?t) where { }"; + + exec.query(i); + Mappings map = exec.query(q); + // System.out.println(map.getValue("?t").stringValue()); + String str = map.getValue("?t").stringValue(); + Graph gg = Graph.create(); + Load ld = Load.create(gg); + ld.loadString(str, Load.TURTLE_FORMAT); + + QueryProcess ex = QueryProcess.create(gg); + String qq = "select * where {" + + "?s ?p [ rdf:value ?s] " + + "}"; + + Mappings m1 = exec.query(qq); + Mappings m2 = ex.query(qq); + assertEquals(m1.size(), m2.size()); + } + + @Test + public void testTTL4() throws EngineException, LoadException { + + Graph g = Graph.create(); + QueryProcess exec = QueryProcess.create(g); + String i = "insert data { " + + "_:a rdf:value _:e " + + "_:b rdf:value _:e " + + "_:e rdf:value _:b " + + "}"; + + String q = "select (st:apply-templates-with(st:turtle) as ?t) where { }"; + + exec.query(i); + Mappings map = exec.query(q); + // System.out.println(map.getValue("?t").stringValue()); + String str = map.getValue("?t").stringValue(); + Graph gg = Graph.create(); + Load ld = Load.create(gg); + ld.loadString(str, Load.TURTLE_FORMAT); + + QueryProcess ex = QueryProcess.create(gg); + String qq = "select * where {" + + "?a rdf:value ?e " + + "?b rdf:value ?e " + + "?e rdf:value ?b " + + "}"; + + Mappings m1 = exec.query(qq); + Mappings m2 = ex.query(qq); + assertEquals(m1.size(), m2.size()); + } + + @Test + public void testOPP2() throws EngineException, LoadException { + + Graph g = Graph.create(); + QueryProcess exec = QueryProcess.create(g); + String i = "insert data { " + + "us:John foaf:knows us:Jim , us:John . " + + "us:Jim foaf:knows us:John, us:Jim " + + "}"; + String q = "select * where { ?x foaf:knows+ ?y }"; + + exec.query(i); + Mappings map = exec.query(q); + assertEquals(4, map.size()); + + } + + @Test + public void testOPP() throws EngineException, LoadException { + Graph g = Graph.create(); + QueryProcess exec = QueryProcess.create(g); + + String i = "insert data { " + + "us:John foaf:knows us:Jim , us:John . " + + "us:Jim foaf:knows us:John, us:Jim." + + "}"; + + String q = "select * where { ?x foaf:knows+ ?y }"; + + exec.query(i); + Mappings map = exec.query(q); + assertEquals(4, map.size()); + } + + @Test + public void testNGG1() throws EngineException { + GraphStore graph = GraphStore.create(); + QueryProcess exec = QueryProcess.create(graph); + + String i = "insert data {" + + "graph us:g1 { us:John foaf:knows us:Jim }" + + "graph us:g2 { us:Jim foaf:knows us:Jack . us:Jack foaf:knows us:James }" + + "}"; + + String q = "select * where {" + + "graph ?g {" + + "?s foaf:knows ?o " + + "optional { ?o foaf:knows ?y }" + + "}" + + "}"; + + exec.query(i); + Mappings map = exec.query(q); + assertEquals(3, map.size()); + for (Mapping m : map) { + DatatypeValue dt = m.getValue("?g"); + assertEquals(true, dt != null); + } + } + + @Test + public void testNGG2() throws EngineException { + GraphStore graph = GraphStore.create(); + QueryProcess exec = QueryProcess.create(graph); + + String i = "insert data {" + + "graph us:g1 { us:John foaf:knows us:Jim, us:Jesse }" + + "graph us:g2 { us:Jim foaf:knows us:Jack . us:Jack foaf:knows us:James }" + + "}"; + + String q = "select * where {" + + "graph ?g {" + + "?s foaf:knows ?o " + + "minus { ?o foaf:knows ?y }" + + "}" + + "}"; + + exec.query(i); + Mappings map = exec.query(q); + assertEquals(3, map.size()); + for (Mapping m : map) { + DatatypeValue dt = m.getValue("?g"); + assertEquals(true, dt != null); + } + } + + @Test + public void testNGG3() throws EngineException { + GraphStore graph = GraphStore.create(); + QueryProcess exec = QueryProcess.create(graph); + + String i = "insert data {" + + "graph us:g1 { us:John foaf:knows us:Jim, us:Jesse }" + + "graph us:g2 { us:Jim foaf:knows us:Jack . us:Jack foaf:knows us:James }" + + "}"; + + String q = "select * where {" + + "graph ?g {" + + "{?s foaf:knows ?o }" + + "union { ?s foaf:knows ?o ?o foaf:knows ?y }" + + "}" + + "}"; + + exec.query(i); + Mappings map = exec.query(q); + assertEquals(5, map.size()); + for (Mapping m : map) { + DatatypeValue dt = m.getValue("?g"); + assertEquals(true, dt != null); + } + } + + @Test + public void testNGG4() throws EngineException { + GraphStore graph = GraphStore.create(); + QueryProcess exec = QueryProcess.create(graph); + + String i = "insert data {" + + "graph us:g1 { us:Jack foaf:knows us:Jim, us:Jesse }" + + "graph us:g2 { us:Jim foaf:knows us:Jack . us:Jules foaf:knows us:James }" + + "}"; + + String q = "select * where {" + + "graph ?g {" + + "?s foaf:knows ?o filter exists {?o foaf:knows ?y} " + + "}" + + "}"; + + exec.query(i); + Mappings map = exec.query(q); + assertEquals(0, map.size()); + } + + @Test + public void testNGG5() throws EngineException { + GraphStore graph = GraphStore.create(); + QueryProcess exec = QueryProcess.create(graph); + + String i = "insert data {" + + "graph us:g1 { us:John foaf:knows us:Jim }" + + "graph us:g2 { us:Jim foaf:knows us:Jack . us:Jack foaf:knows us:James }" + + "}"; + + String q = "select * " + + "from named us:g2 " + + "where {" + + "graph ?g {" + + "?s foaf:knows ?o " + + "optional { ?o foaf:knows ?y }" + + "}" + + "}"; + + exec.query(i); + Mappings map = exec.query(q); + assertEquals(2, map.size()); + for (Mapping m : map) { + DatatypeValue dt = m.getValue("?g"); + assertEquals(true, dt != null); + } + } + + @Test + public void testNGG6() throws EngineException { + GraphStore graph = GraphStore.create(); + QueryProcess exec = QueryProcess.create(graph); + + String i = "insert data {" + + "graph us:g1 { us:John foaf:knows us:Jim }" + + "graph us:g2 { us:Jim foaf:knows us:Jack . us:Jack foaf:knows us:James }" + + "}"; + + String q = "select * " + + "where {" + + "graph us:g2 {" + + "?s foaf:knows ?o " + + "optional { ?o foaf:knows ?y }" + + "}" + + "}"; + + exec.query(i); + Mappings map = exec.query(q); + assertEquals(2, map.size()); + + } + + @Test + public void testNGG7() throws EngineException { + GraphStore graph = GraphStore.create(); + QueryProcess exec = QueryProcess.create(graph); + + String i = "insert data {" + + "graph us:g1 { us:John foaf:knows us:Jim . us:Jack foaf:knows us:James}" + + "graph us:g2 { us:Jim foaf:knows us:Jack . us:Jack foaf:knows us:James }" + + "}"; + + String q = "select * " + + "from named us:g1 " + + "from named us:g2 " + + "where {" + + "graph ?g {" + + "?s foaf:knows ?o " + + "filter exists { ?o foaf:knows ?y }" + + "}" + + "}"; + + exec.query(i); + Mappings map = exec.query(q); + assertEquals(1, map.size()); + + } + + @Test + public void testNGG8() throws EngineException { + GraphStore graph = GraphStore.create(); + QueryProcess exec = QueryProcess.create(graph); + + String i = "insert data {" + + "graph us:g1 { us:John foaf:knows us:Jim . us:Jack foaf:knows us:Jim}" + + "graph us:g2 { us:Jim foaf:knows us:Jack . us:Jack foaf:knows us:James }" + + "}"; + + String q = "select * " + + "from named us:g1 " + + "from named us:g2 " + + "where {" + + "graph ?g {" + + "?s foaf:knows ?o " + + "{select * where { ?o foaf:knows ?y }}" + + "}" + + "}"; + + exec.query(i); + Mappings map = exec.query(q); + assertEquals(1, map.size()); + + } + + @Test + public void testNGG9() throws EngineException { + GraphStore graph = GraphStore.create(); + QueryProcess exec = QueryProcess.create(graph); + + String i = "insert data {" + + "graph us:g1 { us:John foaf:knows us:Jim . us:Jack foaf:knows us:Jim}" + + "graph us:g2 { us:Jim foaf:knows us:Jack . us:Jack foaf:knows us:James }" + + "graph us:g3 { us:Jim foaf:knows us:Jack . us:Jack foaf:knows us:James }" + + "}"; + + String q = "select * " + + "from named us:g1 " + + "from named us:g2 " + + "where {" + + "graph ?g {" + + "?s foaf:knows ?o " + + "bind ( exists { ?o foaf:knows ?y } as ?b )" + + "}" + + "}"; + + exec.query(i); + Mappings map = exec.query(q); + int count = 0; + for (Mapping m : map) { + DatatypeValue dt = m.getValue("?b"); + if (dt.booleanValue()) + count++; + } + assertEquals(1, count); + } + + @Test + public void testNGG10() throws EngineException { + GraphStore graph = GraphStore.create(); + QueryProcess exec = QueryProcess.create(graph); + + String i = "insert data {" + + "graph us:g1 { us:John foaf:knows us:Jim . us:Jack foaf:knows us:Jim}" + + "graph us:g2 { us:Jim foaf:knows us:Jack . us:Jack foaf:knows us:James }" + + "graph us:g3 { us:Jim foaf:knows us:Jack . us:Jack foaf:knows us:James }" + + "}"; + + String q = "select * " + + "from named us:g1 " + + "from named us:g2 " + + "where {" + + "graph ?g {" + + "?s foaf:knows ?o " + + "values ?b { unnest( exists { ?o foaf:knows ?y } ) }" + + "}" + + "}"; + + exec.query(i); + Mappings map = exec.query(q); + int count = 0; + for (Mapping m : map) { + DatatypeValue dt = m.getValue("?b"); + if (dt.booleanValue()) + count++; + } + assertEquals(1, count); + } + + @Test + public void testNGG11() throws EngineException { + GraphStore graph = GraphStore.create(); + QueryProcess exec = QueryProcess.create(graph); + + String q = "select * where {" + + "bind (query(construct { us:John foaf:knows us:Jack, us:Jim . us:Jack foaf:knows us:James } where {}) as ?g)" + + "graph ?g { " + + "{ ?s foaf:knows ?o filter exists {?s foaf:knows ?t} graph ?g {filter us:test(?g)} " + + " optional { ?o foaf:knows ?y filter exists {?y foaf:knows ?t}}}" + + "union" + + "{ ?a foaf:knows ?b minus { ?b foaf:knows ?c }}" + + "}" + + "}" + + + "function us:test(?g) {" + // + "xt:print(?g)" + + "}"; + + Mappings map = exec.query(q); + assertEquals(5, map.size()); + } + + @Test + public void testRee() throws EngineException { + + GraphStore graph = GraphStore.create(); + QueryProcess exec = QueryProcess.create(graph); + QueryProcess.setOverwrite(true); + + String i1 = "insert data { graph { us:John rdfs:label 'John' } }"; + String i11 = "with " + + "insert { ?x rdfs:label ?y }" + + "where { graph { ?x rdfs:label ?y } }"; + + String i2 = "with " + + "insert { ?x foaf:name ?n } where { ?x rdfs:label ?n }"; + + String q = "select * " + + "from " + + "where { ?x ?p ?y }"; + + String q2 = "select * " + + "from " + + "where { ?x foaf:name ?y }"; + + String q4 = "select * " + + "from named " + + "where { " + + "graph ?g { ?x foaf:name ?y } " + + "}"; + + exec.query(i1); + Graph g = graph.getNamedGraph("http://example.org/g"); + + exec.query(i11); + graph.getNamedGraph("http://example.org/g1"); + exec.query(q4); + // System.out.println(m4); + + exec.query(q); + exec.query(i2); + Mappings m2 = exec.query(q); + assertEquals(2, m2.size()); + assertEquals(true, g != null); + if (g != null) { + assertEquals(2, g.size()); + } + Mappings m3 = exec.query(q2); + assertEquals(1, m3.size()); + + QueryProcess.setOverwrite(false); + + } + + @Test + public void testLock() throws EngineException { + + GraphStore graph = GraphStore.create(); + QueryProcess exec = QueryProcess.create(graph); + + QueryProcess.setOverwrite(true); + + String i = "select * where { " + + "bind (us:test() as ?r) " + + "graph us:g1 { ?s ?p ?o }" + + "}" + + "function us:test() {" + + "query(insert data { graph us:g1 { us:Jack foaf:name 'Jack' } } ) " + + "}"; + + String q2 = "drop graph us:g1"; + + String q3 = "select * where {" + + "graph us:g1 { ?s ?p ?o }" + + "}"; + + Mappings map = exec.query(i); + assertEquals(1, map.size()); + exec.query(q2); + Mappings m = exec.query(q3); + assertEquals(0, m.size()); + + QueryProcess.setOverwrite(false); + + } + + @Test + public void testBB() throws EngineException { + + GraphStore graph = GraphStore.create(); + QueryProcess exec = QueryProcess.create(graph); + + String i = "insert data {" + + "us:John foaf:knows us:Jack ." + + "us:Jim foaf:knows us:James ." + + "}"; + + String q = "select * where {" + + "?a foaf:knows ?b " + + "{select * where { ?a foaf:knows ?c }}" + + "{select ?d where { ?a foaf:knows ?d }}" + + "}"; + + exec.query(i); + Mappings map = exec.query(q); + assertEquals(4, map.size()); + } + + @Test + public void testUpdate() throws EngineException { + Graph g = Graph.create(); + QueryProcess exec = QueryProcess.create(g); + String q = "select (us:foo(us:John) as ?g) where {}" + + + "function us:foo(?x) {" + + "let (?g = construct {} where {} ) {" + + "xt:focus(?g, query(" + + "insert data { " + + "us:John rdfs:label 'John', 'Jack'" + + "us:Jim rdfs:label 'Jim'" + + "} ;" + + "delete {?x rdfs:label ?name} insert {?x foaf:name ?name} " + + "where {?x rdfs:label ?name}" + + ") ) ;" + + "?g" + + "}" + + "}"; + + Mappings map = exec.query(q); + IDatatype dt = map.getValue("?g"); + Graph gg = (Graph) dt.getPointerObject(); + + String qq = "select ?p (count(*) as ?c) {" + + "?x ?p ?y" + + "}" + + "group by ?p order by ?c "; + QueryProcess exec2 = QueryProcess.create(gg); + Mappings m = exec2.query(qq); + assertEquals(1, m.get(0).getValue("?c").intValue()); + assertEquals(2, m.get(1).getValue("?c").intValue()); + } + + @Test + public void testApply() throws EngineException, LoadException { + Graph g = Graph.create(); + QueryProcess exec = QueryProcess.create(g); + String q = "function xt:main() {" + + "apply(us:test, xt:list()) + apply(us:test, xt:list(1)) + apply (us:test, xt:list(2, 3))" + + "}" + + + "function us:test() {" + + "10" + + "}" + + + "function us:test(?x) {" + + "?x" + + "}" + + + "function us:test(?x, ?y) {" + + "?x + ?y " + + "}" + + ; + + Mappings dt = exec.query(q); + assertEquals(16, dt.get(0).getValue("?_main_").intValue()); + } + + @Test + public void testMap3() throws EngineException, LoadException { + QueryProcess exec = QueryProcess.create(); + String q = "select " + + "(xt:size(us:test(5)) as ?a)" + + "(xt:size(us:test(10)) as ?b)" + + "(xt:size(us:test(15)) as ?c)" + + "(xt:size(us:test2(5)) as ?d)" + + "(xt:size(us:test2(10)) as ?e)" + + "(xt:size(us:test2(15)) as ?f)" + + "where {}" + + + "function us:test(?n) {" + + "maplist(lambda(?x, ?y) { xt:list(?x, ?y) }, xt:iota(?n), us:map())" + + "}" + + + "function us:test2(?n) {" + + "maplist(lambda(?x, ?y) { xt:list(?x, ?y) }, us:map(),xt:iota(?n))" + + "}" + + + "function us:map() {" + + "let (?m = xt:map()) {" + + "xt:set(?m, 1, 1) ;" + + "xt:set(?m, 01, 01) ;" + + "xt:set(?m, 1.0, 1.0) ;" + + "xt:set(?m, 1.0e0, 1.0e0) ;" + + "xt:set(?m, '1'^^xsd:int, '1'^^xsd:int) ;" + + "xt:set(?m, 1, 1) ;" + + "xt:set(?m, 01, 01) ;" + + "xt:set(?m, true, true) ;" + + "xt:set(?m, st:test, st:test) ;" + + "xt:set(?m, 'test', 'test') ;" + + "xt:set(?m, 'test'@fr, 'test'@fr) ;" + + "xt:set(?m, 'test', 'test') ;" + + "xt:set(?m, bnode(), bnode()) ;" + + "return (?m)" + + "}" + + "}"; + + Mappings map = exec.query(q); + assertEquals(5, map.getValue("?a").intValue()); + assertEquals(10, map.getValue("?b").intValue()); + assertEquals(15, map.getValue("?c").intValue()); + assertEquals(10, map.getValue("?d").intValue()); + assertEquals(10, map.getValue("?e").intValue()); + assertEquals(10, map.getValue("?f").intValue()); + } + + @Test + public void testMap2() throws EngineException, LoadException { + QueryProcess exec = QueryProcess.create(); + + String q = "function xt:main() {" + + "let (?m = xt:map()) {" + + "xt:set(?m, 1, 1) ;" + + "xt:set(?m, 01, 01) ;" + + "xt:set(?m, 1.0, 1.0) ;" + + "xt:set(?m, 1.0e0, 1.0e0) ;" + + "xt:set(?m, '1'^^xsd:int, '1'^^xsd:int) ;" + + "xt:set(?m, 1, 1) ;" + + "xt:set(?m, 01, 01) ;" + + "xt:set(?m, true, true) ;" + + "xt:set(?m, st:test, st:test) ;" + + "xt:set(?m, 'test', 'test') ;" + + "xt:set(?m, 'test'@fr, 'test'@fr) ;" + + "xt:set(?m, 'test', 'test') ;" + + "xt:set(?m, bnode(), bnode()) ;" + + "return (?m)" + + "}" + + "}"; + + Mappings dt = exec.query(q); + assertEquals(10, dt.get(0).getValue("?_main_").size()); + } + + @Test + public void testNGExist() throws EngineException, LoadException { + QueryProcess exec = QueryProcess.create(); + + String i = "insert data {" + + "graph us:g1 { us:Jack foaf:name 'Jack' ; foaf:knows us:Jim }" + + "graph us:g2 { us:Jack foaf:knows us:James . us:James foaf:name 'James' }" + + "}"; + + String q = "select * " + + "where {" + + "graph ?g { " + + "?x foaf:name ?n optional { ?x foaf:name ?nn filter exists { ?z foaf:name 'Jack' } }" + + "}" + + "}"; + + exec.query(i); + Mappings map = exec.query(q); + for (Mapping m : map) { + DatatypeValue dt = m.getValue("?g"); + DatatypeValue val = m.getValue("?nn"); + assertEquals(dt.stringValue().contains("g2"), val == null); + } + } + + @Test + public void testNG() throws EngineException, LoadException { + QueryProcess exec = QueryProcess.create(); + + String i = "insert data {" + + "graph us:g1 { us:Jack foaf:name 'Jack' ; foaf:knows us:Jim }" + + "graph us:g2 { us:Jack foaf:knows us:James . us:James foaf:name 'James' }" + + "}"; + + String q = "select * " + + "where {" + + "graph ?g { ?x foaf:name ?n " + + "{ ?x foaf:knows ?y } union { ?y foaf:knows ?x } " + + "}" + + "}"; + + exec.query(i); + Mappings map = exec.query(q); + assertEquals(2, map.size()); + } + + @Test + public void testPPmatch2() throws EngineException { + String q = "function xt:main() { us:test(xt:iota(2)) }" + + + "function us:test(?list) {" + + "let ((?a ?b | ?l . ?c ?d) = ?list) {" + + "return(?a + ?b + ?c + ?d + xt:size(?l))" + + "}" + + "}"; + + QueryProcess exec = QueryProcess.create(Graph.create()); + Mappings dt = exec.query(q); + assertEquals(6, dt.get(0).getValue("?_main_").intValue()); + } + + @Test + public void testPPmatch() throws EngineException { + String q = "function xt:main() { us:test(xt:iota(5)) }" + + + "function us:test(?list) {" + + "let ((?a ?b | ?l . ?c ?d) = ?list) {" + + "return(?a + ?b + ?c + ?d + xt:size(?l))" + + "}" + + "}"; + + QueryProcess exec = QueryProcess.create(Graph.create()); + Mappings dt = exec.query(q); + assertEquals(13, dt.get(0).getValue("?_main_").intValue()); + } + + @Test + public void testpplist() throws LoadException, EngineException { + Graph gg = Graph.create(); + QueryProcess exec = QueryProcess.create(gg); + + String i = "insert data { " + + "graph us:g1 { us:John us:age 10 } " + + "graph us:g2 { us:John us:age 10, 20, 30 }" + + "}"; + + String q = "prefix ns: " + + "select * " + + "(let ((?x ?y | ?l) = xt:graph()) { ?l } as ?l) " + + "(let ((?t | ?ll) = ?l) { ?t } as ?t) " + + "(let ((?s ?p | ?ll) = ?t) { ?ll } as ?ll) " + + "(let ((?o | ?rst) = ?ll) { ?o } as ?o) " + + "where {" + + "}"; + exec.query(i); + Mappings map = exec.query(q); + // System.out.println(map); + IDatatype dt = map.getValue("?o"); + assertEquals(20, dt.intValue()); + } + + @Test + public void testplist() throws LoadException, EngineException { + Graph gg = Graph.create(); + QueryProcess exec = QueryProcess.create(gg); + + String q = "prefix ns: " + + "select * " + + "(let ((?x ?y | ?l) = xt:list(1, 2, 3, 4)) { ?l } as ?l) " + + "(let ((?x ?y | ?l) = xt:list(1, 2, 3, 4)) { ?y } as ?y) " + + "where {" + + "}"; + Mappings map = exec.query(q); + IDatatype list = map.getValue("?l"); + IDatatype dt = map.getValue("?y"); + assertEquals(true, list.equals(DatatypeMap.newList(3, 4))); + assertEquals(2, dt.intValue()); + + } + + @Test + public void testextequal() throws EngineException { + QueryProcess exec = QueryProcess.create(Graph.create()); + String q = "select " + + "(kg:equals('ete', 'été') as ?eq)" + + "(kg:contains('un été', 'ete') as ?ct)" + + "where {}"; + Mappings map = exec.query(q); + IDatatype dt1 = map.getValue("?eq"); + IDatatype dt2 = map.getValue("?ct"); + assertEquals(true, dt1.booleanValue() && dt2.booleanValue()); + } + + // @Test + public void testgraphit() throws LoadException, EngineException { + Graph gg = Graph.create(); + QueryProcess exec = QueryProcess.create(gg); + + String i = "insert data { " + + "graph us:g1 { us:John us:age 10, 20 } " + + "graph us:g2 { us:John us:knows us:Jack }" + + "}"; + + String q = "select * (xt:toList(xt:graph()) as ?list) " + + "(let ((?e1) = ?list) {?e1} as ?t1)" + + "(let ((?e1, ?e2) = ?list) {?e2} as ?t2)" + + "(let ((?s, ?p, ?o) = ?t1) {?o} as ?v1)" + + "(let ((?s, ?p, ?o) = ?t2) {?o} as ?v2)" + + "where {" + + "}"; + exec.query(i); + Mappings map = exec.query(q); + IDatatype dt1 = map.getValue("?v1"); + IDatatype dt2 = map.getValue("?v2"); + assertEquals(true, dt1.intValue() == 10 && dt2.intValue() == 20); + } + + @Test + public void testedge() throws LoadException, EngineException { + Graph gg = Graph.create(); + QueryProcess exec = QueryProcess.create(gg); + + String i = "insert data { " + + "graph us:g1 { us:John us:age 10, 20 } " + + "graph us:g2 { us:John us:knows us:Jack }" + + "}"; + + String q = "select * " + + "where {" + + "values ?t { unnest(xt:edges(us:age)) }" + + "}" + + ; + + exec.query(i); + + Mappings map = exec.query(q); + assertEquals(2, map.size()); + IDatatype v1 = map.get(0).getValue("?t"); + IDatatype v2 = map.get(1).getValue("?t"); + assertEquals(10, v1.getPointerObject().getEdge().getNode(1).getDatatypeValue().intValue()); + assertEquals(20, v2.getPointerObject().getEdge().getNode(1).getDatatypeValue().intValue()); + + } + + @Test + public void testvalue() throws LoadException, EngineException { + Graph gg = Graph.create(); + QueryProcess exec = QueryProcess.create(gg); + + String i = "insert data { " + + "graph us:g1 { us:John us:age 10 } " + + "graph us:g2 { us:John us:knows us:Jack }" + + "}"; + + String q = "select * (xt:index(?x) as ?i) (xt:index(?a) as ?j) (xt:index(us:age) as ?k) " + + "where {" + + "?x us:age ?a " + + "filter (?a = xt:value(?x, us:age))" + + "filter (?a = xt:value(?x, us:age, 1))" + + "filter (?x = xt:value(?x, us:age, 0))" + + + "}" + + ""; + + exec.query(i); + + Mappings map = exec.query(q); + assertEquals(1, map.size()); + + } + + @Test + public void testLList() throws LoadException, EngineException { + Graph gg = Graph.create(); + QueryProcess exec = QueryProcess.create(gg); + + String q = "select " + + "(xt:reverse(xt:iota(5)) as ?list)" + + "(xt:member(xt:iota(5), 5) as ?member)" + + "(xt:sort(xt:reverse(xt:iota(5))) as ?sort)" + + "(xt:remove(xt:iota(5), 5) as ?remove) " + + "(xt:removeindex(xt:iota(5), 0) as ?remindex) " + + "(xt:swap(xt:iota(5), 0, 1) as ?swap)" + + "where {" + + "}" + + ""; + + Mappings map = exec.query(q); + IDatatype rev = DatatypeMap.newList(5, 4, 3, 2, 1); + IDatatype sort = DatatypeMap.newList(1, 2, 3, 4, 5); + IDatatype rem = DatatypeMap.newList(1, 2, 3, 4); + IDatatype remi = DatatypeMap.newList(2, 3, 4, 5); + IDatatype sw = DatatypeMap.newList(2, 1, 3, 4, 5); + + IDatatype list = map.getValue("?list"); + assertEquals(true, list.eq(rev).booleanValue()); + + IDatatype sorted = map.getValue("?sort"); + assertEquals(true, sort.eq(sorted).booleanValue()); + + IDatatype remove = map.getValue("?remove"); + assertEquals(true, rem.eq(remove).booleanValue()); + + IDatatype remindex = map.getValue("?remindex"); + assertEquals(true, remi.eq(remindex).booleanValue()); + + IDatatype swap = map.getValue("?swap"); + assertEquals(true, sw.eq(swap).booleanValue()); + + } + + @Test + public void testList() throws EngineException { + QueryProcess exec = QueryProcess.create(Graph.create()); + String q = "select " + + "(xt:list() as ?nil)" + + "(xt:list(1, 2) as ?list)" + + "(xt:cons(0, ?list) as ?res)" + + "(xt:first(?res) as ?fst)" + + "(xt:rest(?res) as ?rst)" + + "(us:copy(xt:list(1, 2)) as ?cp)" + + "(us:append(xt:list(1, 2), xt:list(3, 4)) as ?app)" + + "(xt:list(1, 3) as ?ll) (xt:set(?ll, 1, 2) as ?set)" + + "where {}" + + "function us:copy(?list) { maplist(xt:self, ?list) }" + + "" + + "function us:append(?l1, ?l2) {" + + "if (xt:size(?l1) = 0, us:copy(?l2)," + + "xt:cons(xt:first(?l1), us:append(xt:rest(?l1), ?l2)))}" + + ""; + + Mappings map = exec.query(q); + IDatatype res = map.getValue("?res"); + assertEquals(true, res.eq(DatatypeMap.newList(0, 1, 2)).booleanValue()); + + IDatatype fst = map.getValue("?fst"); + assertEquals(true, fst.eq(DatatypeMap.ZERO).booleanValue()); + + IDatatype rst = map.getValue("?rst"); + assertEquals(true, rst.eq(DatatypeMap.newList(1, 2)).booleanValue()); + + IDatatype app = map.getValue("?app"); + assertEquals(true, app.eq(DatatypeMap.newList(1, 2, 3, 4)).booleanValue()); + + IDatatype ll = map.getValue("?ll"); + assertEquals(true, ll.eq(DatatypeMap.newList(1, 2)).booleanValue()); + } + + @Test + public void testIterate() throws LoadException, EngineException { + Graph gg = Graph.create(); + QueryProcess exec = QueryProcess.create(gg); + + String q = "select (us:test() as ?s) " + + "where {" + + "}" + + "" + + "function us:test() {" + + "let (?list = xt:list(), ?sum = 0){" + + "for (?i in xt:iterate(1, 10)) {" + + "set(?sum = ?sum + ?i)" + + "};" + + "?sum" + + "}" + + "}"; + + Mappings map = exec.query(q); + IDatatype dt = map.getValue("?s"); + assertEquals(55, dt.intValue()); + } + + @Test + public void testGName() throws LoadException, EngineException { + Graph gg = Graph.create(); + QueryProcess exec = QueryProcess.create(gg); + + String q = "select (st:cget(st:test1, st:value) as ?b1) (st:cget(st:test2, st:value) as ?b2) " + + "where {" + + "bind (st:cset(st:test1, st:value, 10) as ?v1)" + + "bind (st:cset(st:test2, st:value, 20) as ?v2)" + + "}"; + + Mappings map = exec.query(q); + IDatatype v1 = map.getValue("?b1"); + IDatatype v2 = map.getValue("?b2"); + assertEquals(true, v1.intValue() == 10 && v2.intValue() == 20); + } + + @Test + public void testGName2() throws LoadException, EngineException { + Graph gg = Graph.create(); + QueryProcess exec = QueryProcess.create(gg); + + String i = "insert data { " + + "graph us:g1 { us:John us:age 10 } " + + "graph us:g2 { us:John us:knows us:Jack }" + + "}"; + + String q = "select * where {" + + "graph ?g { " + + "?s ?p ?o bind (xt:name() as ?g1) optional { ?s ?q ?r bind(xt:name() as ?g2) } " + + "}" + + "}"; + + exec.query(i); + + Mappings map = exec.query(q); + for (Mapping m : map) { + IDatatype g1 = m.getValue("?g1"); + IDatatype g2 = m.getValue("?g2"); + assertEquals(true, g1.equals(g2)); + } + } + + @Test + public void testAccess() throws LoadException, EngineException { + Graph gg = Graph.create(); + QueryProcess exec = QueryProcess.create(gg); + + String i = "insert data { us:John us:age 10 }"; + + String q = "select " + + "(xt:subject(?t) as ?s) (xt:property(?t) as ?p) " + + "(xt:object(?t) as ?o) (xt:graph(?t) as ?g) " + + "where {" + + "values ?t { unnest( xt:graph() )}" + + "}"; + + exec.query(i); + + Mappings map = exec.query(q); + IDatatype s = map.getValue("?s"); + IDatatype p = map.getValue("?p"); + IDatatype o = map.getValue("?o"); + IDatatype g = map.getValue("?g"); + + assertEquals(NSManager.USER + "John", s.getLabel()); + assertEquals(NSManager.USER + "age", p.getLabel()); + assertEquals(10, o.intValue()); + assertEquals(NSManager.KGRAM + "default", g.getLabel()); + } + + @Test + public void testPPath() throws LoadException, EngineException { + Graph g = Graph.create(); + QueryProcess exec = QueryProcess.create(g); + String i = "insert data { " + + "graph us:g1 { us:John us:name 'John' ; us:knows us:James }" + + "graph us:g2 { us:James us:name 'James' ; us:knows us:Jack}" + + "}"; + + // String q1 = "select * where { ?x us:knows+ ?y }"; + // String q2 = "select * where { ?x us:knows* ?y }"; + // String q3 = "select * from us:g1 where { ?x us:knows* ?y }"; + // String q4 = "select * where { graph ?g { ?x us:knows* ?y }}"; + // String q5 = "select * from named us:g1 where { graph ?g { ?x us:knows* ?y + // }}"; + // String q6 = "select * where { us:John us:knows* ?y }"; + // String q7 = "select * from us:g1 where { us:John us:knows* ?y }"; + // String q8 = "select * from us:g1 from us:g2 where { us:John us:knows* ?y }"; + // String q9 = "select * from named us:g1 where { graph ?g { us:John us:knows* + // ?y }}"; + // String q10 = "select * where { graph us:g1 { ?x us:knows* ?y }}"; + String q11 = "select * where { bind (us:Jim as ?x) bind (us:g1 as ?g) graph ?g { ?x us:knows* ?y }}"; + String q12 = "select * where { bind (us:g1 as ?g) graph ?g { us:Jim us:knows* ?y }}"; + String q13 = "select * from us:g1 where { us:Jack us:knows* ?y }"; + + exec.query(i); + + // Mappings m1 = exec.query(q1); + // assertEquals(3, m1.size()); + // + // Mappings m2 = exec.query(q2); + // assertEquals(8, m2.size()); + // + // Mappings m3 = exec.query(q3); + // assertEquals(4, m3.size()); + // + // Mappings m4 = exec.query(q4); + // assertEquals(8, m4.size()); + // + // Mappings m5 = exec.query(q5); + // assertEquals(4, m5.size()); + // + // Mappings m6 = exec.query(q6); + // assertEquals(3, m6.size()); + // + // Mappings m7 = exec.query(q7); + // assertEquals(2, m7.size()); + // + // Mappings m8 = exec.query(q8); + // assertEquals(3, m8.size()); + // + // Mappings m9 = exec.query(q9); + // assertEquals(2, m9.size()); + // + // Mappings m10 = exec.query(q10); + // assertEquals(4, m10.size()); + + Mappings m11 = exec.query(q11); + // System.out.println(m11); + // 1 is a bug, it should be 0 !!! + assertEquals(1, m11.size()); + + Mappings m12 = exec.query(q12); + assertEquals(1, m12.size()); + + Mappings m13 = exec.query(q13); + assertEquals(1, m13.size()); + } + + @Test + public void testSparql() throws LoadException, EngineException { + Graph g = Graph.create(); + String q = "select (xt:sparql('select * (sum(?i) as ?sum) where { values ?i { unnest(xt:iota(5))} }') as ?res) " + + "where {}"; + + QueryProcess exec = QueryProcess.create(g); + Mappings map = exec.query(q); + IDatatype dt = map.getValue("?res"); + Mappings m = dt.getPointerObject().getMappings(); + IDatatype sum = m.getValue("?sum"); + assertEquals(15, sum.intValue()); + } + + @Test + public void testSparql2() throws LoadException, EngineException { + Graph g = Graph.create(); + String q = "select (xt:sparql('select * (sum(?i) as ?sum) " + + "where { values ?n {UNDEF} values ?i { unnest(xt:iota(?n))} }', '?n', 5) as ?res) " + + "where {}"; + + QueryProcess exec = QueryProcess.create(g); + Mappings map = exec.query(q); + IDatatype dt = map.getValue("?res"); + Mappings m = dt.getPointerObject().getMappings(); + IDatatype sum = m.getValue("?sum"); + assertEquals(15, sum.intValue()); + } + + @Test + public void testNumber() throws LoadException, EngineException { + Graph g = Graph.create(); + String q = "select (kg:number() as ?n) (sum(?n) as ?sum) where {" + + "values ?e { unnest (xt:iota(5)) }" + + "}"; + + QueryProcess exec = QueryProcess.create(g); + Mappings map = exec.query(q); + IDatatype dt = map.getValue("?sum"); + assertEquals(10, dt.intValue()); + } + + @Test + public void testJSON() throws EngineException, LoadException { + String t = "template { st:apply-templates-with(st:json)}" + + "where {}"; + + Graph g = Graph.create(); // createGraph(); + Load ld = Load.create(g); + ld.parse(data + "jsonld/test.jsonld"); + + QueryProcess exec = QueryProcess.create(g); + + Mappings map = exec.query(t); + + String json = map.getTemplateStringResult(); + // System.out.println(json); + + assertEquals(true, (json.length() <= 1350 && json.length() >= 1000)); + + Graph gg = Graph.create(); + Load ll = Load.create(gg); + ll.loadString(json, Load.JSONLD_FORMAT); + // System.out.println(g.size() + " " + gg.size()); + assertEquals(g.size(), gg.size()); + + } + + @Test + public void testNG2() throws EngineException { + + GraphStore graph = GraphStore.create(); + QueryProcess exec = QueryProcess.create(graph); + + String q = "select * " + + "where {" + + "bind (us:gg() as ?gg) " + + "graph ?gg {" + + "?x foaf:knows ?y " + + "values ?g { us:g1 }" + + " " + + "{select ?y ?l where { graph ?g { ?y rdfs:label ?l }}}" + + "}" + + "}" + + + "function us:gg() {" + + "let (?g = construct {" + + "graph us:g1 {" + + " foaf:knows , " + + "} " + + "graph us:g2 {" + + " rdfs:label 'Jim' " + + "} } where {}) {" + + "?g" + + "}" + + "}"; + + // exec.query(init); + + Mappings map = exec.query(q); + assertEquals(1, map.size()); + } + + @Test + public void testNG1() throws EngineException { + + GraphStore graph = GraphStore.create(); + QueryProcess exec = QueryProcess.create(graph); + + String init = "insert data {" + + "graph us:g1 {" + + " foaf:knows , " + + "} " + + "graph us:g2 {" + + " rdfs:label 'Jim' " + + "}" + + "}"; + + String q = "select * " + + "where {" + + "?x foaf:knows ?y " + + "values ?g { us:g1 }" + + " " + + "{select ?y ?l where { graph ?g { ?y rdfs:label ?l }}}" + + "}"; + + exec.query(init); + + Mappings map = exec.query(q); + + assertEquals(1, map.size()); + } + + @Test + public void testfocus() throws EngineException, LoadException { + Graph g = Graph.create(); + QueryProcess exec = QueryProcess.create(g); + String q = "select (us:foo() as ?f) where {" + + "" + + "}" + + + "function us:foo() {" + + "let (?g = construct {us:John rdfs:label 'John'} where {}) {" + + "xt:focus(?g, us:bar())" + + "}" + + "}" + + + "function us:bar() {" + + "let (select (count(*) as ?c) where {?x ?p ?y}) { ?c }" + + "}"; + Mappings map = exec.query(q); + IDatatype dt = getValue(map, "?f"); + assertEquals(1, dt.intValue()); + } + + @Test + public void testbnode() throws EngineException, LoadException { + Graph g = Graph.create(); + QueryProcess exec = QueryProcess.create(g); + + String q = "select * where {" + + "values ?n { 1 2 }" + + "bind(bnode('a') as ?b1)" + + "bind(bnode('a') as ?b2)" + + "bind(bnode() as ?b)" + + "}"; + + Mappings map = exec.query(q); + for (Mapping m : map) { + assertEquals(true, m.getValue("?b1") == m.getValue("?b2")); + assertEquals(false, m.getValue("?b1") == m.getValue("?b3")); + + } + // Assert.assertEquals(0, map.size()); + } + + @Test + public void testBindIndex7() throws EngineException, LoadException { + Graph g = Graph.create(); + QueryProcess exec = QueryProcess.create(g); + + String q = "select " + + "(us:test(3, 3) as ?t) where {}" + + + "function us:test(?n, ?n) {xt:display('here') ;" + + "let (?n = ?n) {" + + "for (?x in (xt:iota(?n))) {" + + "if (?x > 1) {" + + "return (?x)}" + + "} " + + "}" + + "}"; + + Mappings map = exec.query(q); + //// System.out.println(map); + Assert.assertEquals(0, map.size()); + } + + @Test + public void testBindIndex6() throws EngineException, LoadException { + Graph g = Graph.create(); + QueryProcess exec = QueryProcess.create(g); + + String q = "select " + + "(us:test(3) as ?t) " + + "where {}" + + + "function us:test(?n) {" + + "let (?n = ?z) {" + + "for (?x in (xt:iota(?n))) {" + + "if (?x > 1) {" + + "return (?x)}" + + "} " + + "}" + + "}"; + + Mappings map = exec.query(q); + // System.out.println(map); + Assert.assertEquals(1, map.size()); + } + + @Test + public void testBindIndex5() throws EngineException, LoadException { + Graph g = Graph.create(); + QueryProcess exec = QueryProcess.create(g); + + String q = "select (us:test(3) as ?t) where {}" + + + "function us:test(?n) {" + + "let (?n = ?n) {" + + "for (?x in (xt:iota(?n))) {" + + "if (?x > 1) {" + + "return (?x)}" + + "}" + + "}" + + "}"; + + Mappings map = exec.query(q); + // System.out.println(map); + Assert.assertEquals(2, getValue(map, "?t").intValue()); + } + + @Test + public void testBindIndex4() throws EngineException, LoadException { + Graph g = Graph.create(); + QueryProcess exec = QueryProcess.create(g); + + String q = "select " + + "(let(?x = false, ?y = true) { ?y } as ?t1)" + + "(if (?t1, let(?x = 2, ?y = 3) { ?y }, let(?z = 4) { ?z }) as ?t2)" + + " where {}"; + + Mappings map = exec.query(q); + // System.out.println(map); + Assert.assertEquals(true, getValue(map, "?t1").booleanValue()); + Assert.assertEquals(3, getValue(map, "?t2").intValue()); + } + + @Test + public void testBindIndex3() throws EngineException, LoadException { + Graph g = Graph.create(); + QueryProcess exec = QueryProcess.create(g); + + String q = "select (us:test(2) as ?t) where {}" + + + "function us:test(?x) {" + + "let ((?y, ?x) = @(1)) {" + + "bound(?x);" + + + "let ((?x, ?y) = @(1)) {" + + "bound(?x)" + + "}" + + + "}" + + "}"; + + Mappings map = exec.query(q); + // System.out.println(map); + Assert.assertEquals(true, getValue(map, "?t").booleanValue()); + } + + @Test + public void testBindIndex2() throws EngineException, LoadException { + Graph g = Graph.create(); + QueryProcess exec = QueryProcess.create(g); + + String q = "select (us:test(2) as ?t) where {}" + + + "function us:test(?x) {" + + "let ((?y, ?x) = @(1)) {" + + "bound(?x)" + + "}" + + "}"; + + Mappings map = exec.query(q); + // System.out.println(map); + Assert.assertEquals(false, getValue(map, "?t").booleanValue()); + } + + @Test + public void testBindIndex() throws EngineException, LoadException { + Graph g = Graph.create(); + QueryProcess exec = QueryProcess.create(g); + + String q = "select (us:test(2) as ?t) where {}" + + + "function us:test(?x) {" + + "let (?x = ?x * ?x) {" + + "?x;" + + "let (?x = ?x * ?x) {" + + "?x}" + + "}" + + "}"; + + Mappings map = exec.query(q); + // System.out.println(map); + assertEquals(16, getValue(map, "?t").intValue()); + } + + @Test + public void testrecfun() throws EngineException { + String q = "select (us:fac(5) as ?t) where {}" + + "function us:fac(?n) {" + + "if (?n = 0) {" + + " return(1) " + + "}" + + "else {" + + " let (?m = ?n, ?res = ?n * us:fac(?n - 1)) { " + + "if (?m = ?n, ?res, 0)" + + "}" + + "}" + + "}"; + Graph g = createGraph(); + QueryProcess exec = QueryProcess.create(g); + Mappings map = exec.query(q); + // System.out.println(map.getQuery().getAST()); + IDatatype dt = map.getValue("?t"); + assertEquals(120, dt.intValue()); + } + + String stringValue(Mappings m, String var) { + return (m.getValue(var)).stringValue(); + } + + @Test + + public void testExtFun21() throws EngineException { + String init = "prefix ex: " + + "insert data {" + + "ex:John rdf:value 1 . " + + "[] rdfs:label 2 ." + + "us:Jim rdf:value (1 (2 3) 4 ())" + + "us:James rdf:value ()" + + "}"; + + String q = "select (us:foo(us:bar()) as ?t1) (us:foo(xt:graph()) as ?t2) (us:gee() as ?t3)" + + "where {}" + + + "function us:foo(?g) {" + + "query(construct where { ?x ?p ?y }, ?g)" + + "}" + + + "function us:bar() {" + + "query(construct where {?x rdf:value ?y})" + + "}" + + + "function us:gee() {" + + "query(select * where { ?x ?p ?y}, query (construct where {?x rdf:value ?y}))" + + "}"; + + Graph g = createGraph(); + QueryProcess exec = QueryProcess.create(g); + exec.query(init); + Mappings map = exec.query(q); + IDatatype dt1 = map.getValue("?t1"); + IDatatype dt2 = map.getValue("?t2"); + IDatatype dt3 = map.getValue("?t3"); + Graph g1 = (Graph) dt1.getPointerObject().getTripleStore(); + Graph g2 = (Graph) dt2.getPointerObject().getTripleStore(); + Mappings m = dt3.getPointerObject().getMappings(); + assertEquals(3, g1.size()); + assertEquals(16, g2.size()); + assertEquals(3, m.size()); + } + + @Test + public void testExtFun20() throws EngineException { + + String init = "prefix ex: " + + "insert data {" + + "ex:John rdf:value 1 ; rdfs:label 2" + + "}"; + + String q = "select (datatype(query(construct where {?x ?p ?y})) as ?g) " + + "(datatype( let((?a) = construct where {?x ?p ?y}) {?a} ) as ?t) " + + "(datatype(query(select * where {?x ?p ?y})) as ?s)" + + "(datatype( let((?b) = select * where {?x ?p ?y}) {?b}) as ?m)" + + "(datatype(xt:iota(5)) as ?l)" + + "where {}"; + + Graph g = createGraph(); + QueryProcess exec = QueryProcess.create(g); + exec.query(init); + Mappings map = exec.query(q); + IDatatype dg = map.getValue("?g"); + IDatatype dt = map.getValue("?t"); + IDatatype ds = map.getValue("?s"); + IDatatype dm = map.getValue("?m"); + IDatatype dl = map.getValue("?l"); + assertEquals(CoresePointer.getDatatype(PointerType.GRAPH), dg); + assertEquals(CoresePointer.getDatatype(PointerType.TRIPLE), dt); + assertEquals(CoresePointer.getDatatype(PointerType.MAPPINGS), ds); + assertEquals(CoresePointer.getDatatype(PointerType.MAPPING), dm); + assertEquals(IDatatype.LIST_DATATYPE, dl.stringValue()); + } + + @Test + public void testExtFun16() throws EngineException { + + String init = "prefix ex: " + + "insert data {" + + "ex:John rdf:value 1 ; rdfs:label 2" + + "}"; + + String q = " select (us:foo() as ?t) " + + "(us:bar() as ?tt) " + + "where {}" + + + "function us:foo() {" + + "maplist(" + + "lambda((?x, ?p, ?y)) { xt:list(?x, ?p, ?y) }, " + + "query(select * where {?x ?p ?y}))" + + "}" + + + "function us:bar() {" + + "maplist(" + + "lambda((?s, ?p, ?o)) { xt:list(?s, ?p, ?o) }, " + + "query(construct where {?x ?p ?y}))" + + "}"; + + Graph g = createGraph(); + QueryProcess exec = QueryProcess.create(g); + exec.query(init); + Mappings map = exec.query(q); + IDatatype dt = map.getValue("?t"); + IDatatype dq = map.getValue("?tt"); + assertEquals(2, dt.size()); + assertEquals(2, dq.size()); + for (IDatatype list : dt.getValueList()) { + assertEquals(3, list.size()); + } + for (IDatatype list : dq.getValueList()) { + assertEquals(3, list.size()); + } + } + + @Test + public void testExtFun15() throws EngineException { + String q = "select (us:foo() as ?t) where {}" + + "function us:foo() {" + + "maplist(rq:funcall, xt:list(rq:year, rq:month, rq:day, rq:hours, rq:minutes, rq:seconds), now())" + + "}"; + + Graph g = createGraph(); + QueryProcess exec = QueryProcess.create(g); + exec.query(q); + Mappings map = exec.query(q); + IDatatype dt = map.getValue("?t"); + assertEquals(true, dt.isList()); + assertEquals(6, dt.size()); + } + + @Test + public void testExtFun14() throws EngineException { + + String init = "prefix ex: " + + "insert data {" + + "ex:John rdf:value 1 ; rdfs:label 2" + + "}"; + + String q = "base " + + "select (us:bar2() as ?t) (datatype(?t) as ?d) where {}" + + + "@public function us:bar2() {" + + "let (?f1 = rq:uri, ?f2 = rq:replace, ?f3 = rq:sha256, ?f4 = xsd:integer) {" + + "xt:list(" + + "xt:list(funcall(?f1, 'abc'), uri('abc'))," + + "xt:list(funcall(?f2, 'abc', 'c', 'd'), replace('abc', 'c', 'd')), " + // + "xt:list(funcall(?f3, 'abc'), sha256('abc'))," + + "xt:list(sha256('abc'), sha256('abc'))," + + "xt:list(funcall(?f4, '12'), xsd:integer('12'))" + + ") " + + "}" + + "}"; + + String q2 = "base " + + "select (us:bar2() as ?t) where {}"; + + Graph g = createGraph(); + QueryProcess exec = QueryProcess.create(g); + exec.query(init); + exec.query(q); + Mappings map = exec.query(q2); + IDatatype dt = map.getValue("?t"); + // System.out.println(dt); + for (IDatatype pair : dt.getValueList()) { + assertEquals(true, pair.getValueList().get(0).equals(pair.getValueList().get(1))); + } + } + + @Test + public void testExtFun13() throws EngineException { + String init = "prefix ex: " + + "insert data {" + + "ex:John rdf:value 1 ; rdfs:label 2" + + "}"; + + String q = " select (us:bar() as ?t) (datatype(?t) as ?d) where {}" + + + "@public function us:bar() {" + + "let (?fun = rq:regex) {" + + "(exists {?x ?p 1} && funcall(?fun, 'abc', 'a'))" + + "}" + + "}"; + + String q2 = "select (us:bar() as ?t) (datatype(?t) as ?d) where {}"; + + Graph g = createGraph(); + QueryProcess exec = QueryProcess.create(g); + exec.query(init); + exec.query(q); + Mappings map = exec.query(q2); + IDatatype dt = map.getValue("?t"); + assertEquals(true, dt.booleanValue()); + } + + @Test + public void testExtFun11() throws EngineException { + String init = "prefix ex: " + + "insert data {" + + "ex:John rdf:value 1, 2 ; rdfs:label 2 " + + "}"; + + String q = "prefix ex: " + + "select * " + + "(sum(let (?a = ?y + 1, ?b = exists { ?z ?p ?a }){ if (?b, 1, 0) }) as ?sum)" + + "where {" + + "?x ?p ?y " + + + "}" + + + "function us:foo(?x) {" + + "exists { ?x ?p ?y }" + + "}"; + + Graph g = createGraph(); + QueryProcess exec = QueryProcess.create(g); + exec.query(init); + Mappings map = exec.query(q); + IDatatype dt = map.getValue("?sum"); + // System.out.println(map); + assertEquals(1, dt.intValue()); + } + + @Test + public void testapply6() throws EngineException { + QueryProcess exec = QueryProcess.create(Graph.create()); + + String q = " " + + "select (us:foo (5) as ?t) (us:foo (10) as ?r)" + + "where {" + + "}" + + + "function us:foo(?n){" + + "let (?fun = if (?n <= 5, lambda(?x) { ?x * ?x }, lambda(?x) { ?x + ?x } )) {" + + "us:bar(?fun, ?n)" + + "}" + + "}" + + + "function us:bar(?fun, ?n) {" + + "funcall(?fun, ?n)" + + "}"; + + Mappings map = exec.query(q); + IDatatype dt = map.getValue("?t"); + assertEquals(25, dt.intValue()); + IDatatype dt2 = map.getValue("?r"); + assertEquals(20, dt2.intValue()); + } + + @Test + public void testapply5() throws EngineException { + QueryProcess exec = QueryProcess.create(Graph.create()); + + String q = "select " + + "(funcall (let (?fun = lambda(?x) { ?x * ?x }) { ?fun }, 5) as ?t) " + + "where {" + + "}"; + + Mappings map = exec.query(q); + IDatatype dt = map.getValue("?t"); + assertEquals(25, dt.intValue()); + } + + @Test + public void testapply44() throws EngineException { + QueryProcess exec = QueryProcess.create(Graph.create()); + + String init = "insert data { us:John rdf:value 2 }"; + + String q = "select * where {" + + "select (us:foo() as ?t) where {" + + "}" + + "}" + + + "function us:foo(){" + + "let (select * where {select " + + "(maplist(lambda(?x) { " + + "exists { select * where { select * where { values ?x { UNDEF } filter exists { select * where {select * where { ?y ?p ?x }}}}}}" + + "}, xt:iota(5)) as ?t) " + + "where {}}) {" + + "?t }" + + "}"; + + exec.query(init); + Mappings map = exec.query(q); + IDatatype dt = map.getValue("?t"); + int i = 0; + for (IDatatype val : dt.getValueList()) { + assertEquals((i++ == 1) ? true : false, val.booleanValue()); + } + } + + @Test + public void testapply4() throws EngineException { + QueryProcess exec = QueryProcess.create(Graph.create()); + + String init = "insert data { us:John rdf:value 2 }"; + + String q = "select * where {" + + "select (us:foo() as ?t) where {" + + "}" + + "}" + + + "function us:foo(){" + + "let (select * where {select " + // + "(maplist(lambda(?x) { exists { ?y ?p ?x }}, xt:iota(5)) as ?t) " + + "(maplist(lambda(?x) { exists { select * where { ?y ?p ?x }}}, xt:iota(5)) as ?t) " + + "where {}}) {" + + "?t }" + + "}"; + + exec.query(init); + Mappings map = exec.query(q); + IDatatype dt = map.getValue("?t"); + int i = 0; + for (IDatatype val : dt.getValueList()) { + assertEquals((i++ == 1) ? true : false, val.booleanValue()); + } + } + + @Test + public void testapply3() throws EngineException { + QueryProcess exec = QueryProcess.create(Graph.create()); + + String q = "select (us:test() as ?t) where {" + + "}" + + + "function us:test(){" + + "let (?funcall = rq:funcall, ?map = rq:maplist, ?apply = rq:reduce, ?plus = rq:plus, " + + "?funlist = @(rq:plus rq:mult)){" + // + "funcall(?funcall, ?apply, ?plus, funcall(?map, ?apply, ?funlist, + // xt:list(xt:iota(5))))" + + "funcall(?funcall, ?apply, ?plus, funcall(?map, ?apply, ?funlist, xt:iota(5)))" + + "}" + + "}"; + + Mappings map = exec.query(q); + IDatatype dt = map.getValue("?t"); + assertEquals(135, dt.intValue()); + } + + @Test + public void testapply22() throws EngineException { + QueryProcess exec = QueryProcess.create(Graph.create()); + String q = "select * where {" + + "values ?t { unnest(us:test()) }" + + "}" + + + "function us:test(){" + + "let( " + + "select * where {" + + "select * (reduce(rq:plus, xt:iota(5)) as ?sum1) " + + "(reduce(rq:concat, xt:iota('a', 'c')) as ?con)" + + "(reduce(rq:mult, xt:iota(5)) as ?mul)" + + "where {" + + "bind (reduce(rq:plus, xt:iota(5)) as ?sum2) " + + "filter (?sum2 > 1) " + + "filter exists { " + + "select * where { select * where { bind (reduce(rq:plus, xt:iota(5)) as ?test ) filter (?test = 15) }}" + + "}" + + "}" + + "}" + + ") {" + + "xt:list(?sum1, ?mul, ?con, ?sum2)" + + "" + + "}" + + "}"; + + Mappings map = exec.query(q); + //// System.out.println(map); + assertEquals(4, map.size()); + } + + @Test + + public void test2ndOrder3() throws EngineException { + String q = "select \n" + + " (us:test(lambda(?x, ?y) { ?x + ?y }, lambda(?x) { 2 * ?x }, 10) as ?t) \n" + + "where {}\n" + + " \n" + + "function us:test(?agg, ?fun, ?n){\n" + + " let (?map = lambda(?f, ?x) { funcall(?f, ?x) } ) {\n" + + " reduce(?agg, maplist(?map , ?fun, xt:iota(?n))) \n" + + " }" + + "}"; + + Graph g = createGraph(); + QueryProcess exec = QueryProcess.create(g); + Mappings map = exec.query(q); + IDatatype dt = map.getValue("?t"); + assertEquals(110, dt.intValue()); + } + + @Test + + public void test2ndOrder2() throws EngineException { + String q = "select \n" + + " (us:test(lambda(?list) { reduce(rq:plus, ?list) }, lambda(?x) { 2 * ?x }, 10) as ?t) \n" + + "where {}\n" + + + "function us:test(?agg, ?fun, ?n){\n" + + " funcall(?agg, maplist(lambda(?f, ?x) { funcall(?f, ?x) } , ?fun, xt:iota(?n))) \n" + + "}"; + + Graph g = createGraph(); + QueryProcess exec = QueryProcess.create(g); + Mappings map = exec.query(q); + IDatatype dt = map.getValue("?t"); + assertEquals(110, dt.intValue()); + } + + @Test + public void test2ndOrder() throws EngineException { + String q = "select (us:test() as ?t) where {}" + + + "function us:test(){\n" + + " funcall (lambda(?x) { 2 * ?x }, \n" + + " reduce(lambda(?x, ?y) { ?x + ?y }, \n" + + " maplist(lambda(?x) {?x * ?x}, xt:iota(5)))) \n" + + "}"; + + Graph g = createGraph(); + QueryProcess exec = QueryProcess.create(g); + Mappings map = exec.query(q); + IDatatype dt = map.getValue("?t"); + assertEquals(110, dt.intValue()); + } + + @Test + public void testLetQuery2() throws EngineException { + String init = "insert data {" + + "us:John us:child us:Jim, us:Jane, us:Janis ." + + "us:Jane a us:Woman ;" + + "us:child us:Jack, us:Mary ." + + "us:Mary a us:Woman ." + + "us:Janis a us:Woman ;" + + "us:child us:James, us:Sylvia ." + + "us:Sylvia a us:Woman ." + + "}"; + + String q = "select * where {" + + "values ?e { unnest(us:pattern()) }" + + "}" + + + "function us:pattern(){" + + "let (?sol = select * where { ?x us:child ?y optional { ?y a ?t } } ){" + + " maplist(us:collect, ?sol) " + + "}" + + "}" + + + "function us:collect(?map){" + + "let ((?y, ?t) = ?map){" + + "xt:list(?y, coalesce(?t, us:Person))" + + "}" + + "}"; + + Graph g = createGraph(); + QueryProcess exec = QueryProcess.create(g); + exec.query(init); + Mappings map = exec.query(q); + assertEquals(7, map.size()); + } + + // return descendants on the woman side + @Test + public void testLetQuery() throws EngineException { + String init = "insert data {" + + "us:John us:child us:Jim, us:Jane, us:Janis ." + + "us:Jane a us:Woman ;" + + "us:child us:Jack, us:Mary ." + + "us:Mary a us:Woman . " + + "us:Janis a us:Woman ;" + + "us:child us:James, us:Sylvia ." + + "us:Sylvia a us:Woman ." + + "}"; + + String q = "select * where {" + + "values ?t { unnest(us:pattern(us:John)) } " + + "}" + + + "function us:pattern(?x){" + + " let (select ?x (xt:cons(aggregate(?y), aggregate(us:pattern(?y))) as ?l) " + + " where { ?x us:child ?y . ?y a us:Woman }" + + " group by ?x){" + + " reduce(xt:merge, ?l)" + + " }" + + "}"; + + Graph g = createGraph(); + QueryProcess exec = QueryProcess.create(g); + exec.query(init); + Mappings map = exec.query(q); + assertEquals(4, map.size()); + } + + @Test + public void testDatatypeValue12() throws EngineException { + String init = "insert data {" + + "graph us:g1 { rdf:value 1, 1.0, 01, '1'^^xsd:long, '01'^^xsd:byte, 1e0, 2 }" + + + "graph us:g2 { rdf:value 1, 1.0, 01, '1'^^xsd:long, '01'^^xsd:byte, 1e0, 2 }" + + "} "; + + // String q = "delete data { rdf:value 01 }"; + + // String q2 = "delete where { rdf:value 01 }"; + + String q3 = "delete where { ?x rdf:value '1'^^xsd:long }"; + + // String q4 = "select where { rdf:value 01 }"; + Property.set(SPARQL_COMPLIANT, !true); + Graph g = createGraph(); + QueryProcess exec = QueryProcess.create(g); + exec.query(init); + Mappings map = exec.query(q3); + System.out.println(map); + // assertEquals(4, g.size()); + } + + @Test + public void testDatatypeValue11() throws EngineException { + String init = "insert data {" + + "graph us:g1 { rdf:value 1, 1.0, 01, '1'^^xsd:long, '01'^^xsd:byte, 1e0, 2 }" + + + "graph us:g2 { rdf:value 1, 1.0, 01, '1'^^xsd:long, '01'^^xsd:byte, 1e0, 2 }" + + "} "; + + String q = "delete data { rdf:value 01 }"; + + // String q2 = "delete where { rdf:value 01 }"; + + // String q3 = "delete where { ?x rdf:value 01 }"; + + // String q4 = "select where { rdf:value 01 }"; + + Graph g = createGraph(); + QueryProcess exec = QueryProcess.create(g); + exec.query(init); + + exec.query(q); + assertEquals(12, g.size()); + + } + + @Test + public void testDatatypeValue111() throws EngineException { + String init = "insert data {" + + "graph us:g1 { rdf:value 1, 1.0, 01, '1'^^xsd:long, '01'^^xsd:byte, 1e0, 2 }" + + + "graph us:g2 { rdf:value 1, 1.0, 01, '1'^^xsd:long, '01'^^xsd:byte, 1e0, 2 }" + + "} "; + + // String q = "delete data { rdf:value 01 }"; + + String q2 = "delete where { rdf:value 01 }"; + + // String q3 = "delete where { ?x rdf:value 01 }"; + + // String q4 = "select where { rdf:value 01 }"; + + Graph g = createGraph(); + QueryProcess exec = QueryProcess.create(g); + exec.query(init); + + exec.query(q2); + assertEquals(12, g.size()); + } + + @Test + public void testDatatypeValue10() throws EngineException { + String init = "insert data {" + + "graph us:g1 { rdf:value 1, 1.0 }" + + + "graph us:g2 { rdf:value 1, 1.0 }" + + "} "; + + String q = "select * (kg:index(?v) as ?i) where {" + + "?x ?p ?v " + + "?y ?p ?v " + + "}"; + Graph g = createGraph(); + QueryProcess exec = QueryProcess.create(g); + exec.query(init); + Mappings map = exec.query(q); + // System.out.println(map); + assertEquals(4, map.size()); + + } + + @Test + public void testDatatypeValue9() throws EngineException { + String init = "insert data {" + + "graph us:g1 { " + + "rdf:value " + + " 1, 1.0, '1'^^xsd:long, 1e0, '1'^^xsd:double, '1'^^xsd:float, " + + "true, '1'^^xsd:boolean, false, 01, " + + "'1'^^xsd:boolean, '0'^^xsd:boolean, 'test', 'value', _:b, , _:b, . }" + + + "graph us:g2 { rdf:value false, '01'^^xsd:double, '1.0'^^xsd:float," + + "'01'^^xsd:integer, '1'^^xsd:integer" + + ", '1'^^xsd:short, '1'^^xsd:byte , '1'^^xsd:int, '01'^^xsd:byte, '1'^^xsd:byte, _:b, }" + + "} "; + + String q = "select * (kg:index(?v1) as ?i) where {" + + "graph ?g1 {?x ?p ?v1} " + + "graph ?g2 {?y ?p ?v2} " + + "filter sameTerm(?v1, ?v2)" + + "filter (?g1 < ?g2)" + + "}"; + Graph g = createGraph(); + QueryProcess exec = QueryProcess.create(g); + exec.query(init); + Mappings map = exec.query(q); + assertEquals(5, map.size()); + } + + @Test + public void testDatatypeValue8() throws EngineException { + String init = "insert data {" + + "graph us:g1 { " + + "rdf:value " + + " 1, 1.0, '1'^^xsd:long, 1e0, '1'^^xsd:double, '1'^^xsd:float, " + + "true, '1'^^xsd:boolean, false, 01, " + + "'1'^^xsd:boolean, '0'^^xsd:boolean, 'test', 'value', _:b, , _:b, . }" + + + "graph us:g2 { rdf:value false, '01'^^xsd:double, '1.0'^^xsd:float," + + "'01'^^xsd:integer, '1'^^xsd:integer" + + ", '1'^^xsd:short, '1'^^xsd:byte , '1'^^xsd:int, '01'^^xsd:byte, '1'^^xsd:byte, _:b, }" + + "} "; + + String q = "select * (kg:index(?v) as ?i) where {" + + "graph ?g1 {?x ?p ?v} " + + "graph ?g2 {?y ?p ?v} " + + "filter (?g1 < ?g2)" + + "}"; + Graph g = createGraph(); + QueryProcess exec = QueryProcess.create(g); + exec.query(init); + Mappings map = exec.query(q); + assertEquals(70, map.size()); + } + + @Test + public void testDatatypeValue7() throws EngineException { + String init = "insert data {" + + "graph us:g1 { " + + "rdf:value " + + " 1, 1.0, '1'^^xsd:long, 1e0, '1'^^xsd:double, '1'^^xsd:float, " + + "true, '1'^^xsd:boolean, false, 01, " + + "'1'^^xsd:boolean, '0'^^xsd:boolean . }" + + + "graph us:g2 { rdf:value false, '01'^^xsd:double, '1.0'^^xsd:float," + + "'01'^^xsd:integer, '1'^^xsd:integer" + + ", '1'^^xsd:short, '1'^^xsd:byte , '1'^^xsd:int, '01'^^xsd:byte, '1'^^xsd:byte}" + + "} "; + + String q = "select * where {" + + "?x ?p ?v" + + "}" + + "order by ?x ?v "; + Graph g = createGraph(); + QueryProcess exec = QueryProcess.create(g); + exec.query(init); + Mappings map = exec.query(q); + assertEquals(17, map.size()); + } + + @Test + public void testDatatypeValue6() throws EngineException { + String init = "insert data {" + + "graph us:g1 { " + + "rdf:value " + + " 1, 1.0, '1'^^xsd:long, 1e0, '1'^^xsd:double, '1'^^xsd:float, " + + "true, '1'^^xsd:boolean, false, 01, " + + "'1'^^xsd:boolean, '0'^^xsd:boolean . }" + + + "graph us:g2 { rdf:value false, '01'^^xsd:double, '1.0'^^xsd:float," + + "'01'^^xsd:integer, '1'^^xsd:integer" + + ", '1'^^xsd:short, '1'^^xsd:byte , '1'^^xsd:int, '01'^^xsd:byte, '1'^^xsd:byte}" + + "} "; + + String q = "select * where {" + + "graph ?g {" + + "?x ?p ?v" + + "} " + + "}" + + "order by ?x ?v "; + Graph g = createGraph(); + QueryProcess exec = QueryProcess.create(g); + exec.query(init); + Mappings map = exec.query(q); + assertEquals(20, map.size()); + } + + @Test + public void testDatatypeValue5() throws EngineException { + String init = "insert data {" + + " " + + "rdf:value " + + " 1, 1.0, '1'^^xsd:long, 1e0, '1'^^xsd:double, '1'^^xsd:float, " + + "true, '1'^^xsd:boolean, false, 01, " + + "'1'^^xsd:boolean, '0'^^xsd:boolean ." + + + " rdf:value false, '01'^^xsd:double, '1.0'^^xsd:float," + + "'01'^^xsd:integer, '1'^^xsd:integer" + + ", '1'^^xsd:short, '1'^^xsd:byte , '1'^^xsd:int, '01'^^xsd:byte, '1'^^xsd:byte" + + "} "; + + String q = "select * where {" + + "?x ?p ?v filter (?v = 1)" + + "}" + + "order by ?x ?v "; + + Graph g = createGraph(); + QueryProcess exec = QueryProcess.create(g); + exec.query(init); + Mappings map = exec.query(q); + assertEquals(15, map.size()); + } + + @Test + public void testDatatypeValue4() throws EngineException { + String init = "insert data {" + + " " + + "rdf:value " + + " 1, 1.0, '1'^^xsd:long, 1e0, '1'^^xsd:double, '1'^^xsd:float, " + + "true, '1'^^xsd:boolean, false, 01, " + + "'1'^^xsd:boolean, '0'^^xsd:boolean ." + + + " rdf:value false, '01'^^xsd:double, '1.0'^^xsd:float," + + "'01'^^xsd:integer, '1'^^xsd:integer" + + ", '1'^^xsd:short, '1'^^xsd:byte , '1'^^xsd:int, '01'^^xsd:byte, '1'^^xsd:byte" + + "} "; + + String q = "select * where {" + + "?x ?p ?v " + + "}" + + "order by ?x ?v " + + "values ?v { 1 }"; + Graph g = createGraph(); + QueryProcess exec = QueryProcess.create(g); + exec.query(init); + Mappings map = exec.query(q); + assertEquals(10, map.size()); + } + + @Test + public void testDatatypeValue3() throws EngineException { + String init = "insert data {" + + " " + + "rdf:value " + + " 1, 1.0, '1'^^xsd:long, 1e0, '1'^^xsd:double, '1'^^xsd:float, " + + "true, '1'^^xsd:boolean, false, 01, " + + "'1'^^xsd:boolean, '0'^^xsd:boolean ." + + + " rdf:value false, '01'^^xsd:double, '1.0'^^xsd:float," + + "'01'^^xsd:integer, '1'^^xsd:integer" + + ", '1'^^xsd:short, '1'^^xsd:byte , '1'^^xsd:int, '01'^^xsd:byte, '1'^^xsd:byte" + + "} "; + + String q = "select * where {" + + "?x ?p 1" + + "}" + + "order by ?x"; + Graph g = createGraph(); + QueryProcess exec = QueryProcess.create(g); + exec.query(init); + Mappings map = exec.query(q); + assertEquals(10, map.size()); + } + + @Test + public void testDatatypeValue1() throws EngineException { + String init = "insert data {" + + " " + + "rdf:value " + + " 1, 1.0, '1'^^xsd:long, 1e0, '1'^^xsd:double, '1'^^xsd:float, '1.0'^^xsd:float," + + "true, '1'^^xsd:boolean, false, 01, " + + "'1'^^xsd:boolean, '0'^^xsd:boolean, false, '01'^^xsd:double, " + + "'01'^^xsd:integer, '1'^^xsd:integer" + + ", '1'^^xsd:short, '1'^^xsd:byte , '1'^^xsd:int, '01'^^xsd:byte, '1'^^xsd:byte" + + "} "; + + String q = "select * where {" + + " ?x ?p ?v " + + "}"; + Graph g = createGraph(); + QueryProcess exec = QueryProcess.create(g); + exec.query(init); + Mappings map = exec.query(q); + assertEquals(17, map.size()); + } + + @Test + public void testDatatypeValue2() throws EngineException { + String init = "insert data {" + + " " + + "rdf:value " + + " 1, 1.0, '1'^^xsd:long, 1e0, '1'^^xsd:double, '1'^^xsd:float, " + + "true, '1'^^xsd:boolean, false, 01, " + + "'1'^^xsd:boolean, '0'^^xsd:boolean ." + + + " rdf:value false, '01'^^xsd:double, '1.0'^^xsd:float," + + "'01'^^xsd:integer, '1'^^xsd:integer" + + ", '1'^^xsd:short, '1'^^xsd:byte , '1'^^xsd:int, '01'^^xsd:byte, '1'^^xsd:byte" + + "} "; + + String q = "select * where {" + + "?x ?p ?v " + + "?y ?p ?v " + + "filter (?x != ?y)" + + "}"; + Graph g = createGraph(); + QueryProcess exec = QueryProcess.create(g); + exec.query(init); + Mappings map = exec.query(q); + assertEquals(58, map.size()); + } + + @Test + public void testDatatype1() throws EngineException { + String init = "insert data {" + + " foaf:age '21'^^xsd:double, 21 " + + " foaf:age 21e0, 21.0 " + + "} "; + + String query = "select distinct ?a where {" + + "?x foaf:age ?a " + + "?y foaf:age ?a " + + "filter (?x != ?y)" + + + "} "; + + Graph g = createGraph(); + QueryProcess exec = QueryProcess.create(g); + + exec.query(init); + Mappings map = exec.query(query); + assertEquals(4, map.size()); + + } + + @Test + public void testDatatype2() throws EngineException { + String init = "insert data {" + + " rdf:value true " + + " rdf:value '1'^^xsd:boolean " + + "} "; + + String query = "select distinct ?a where {" + + "?x ?p ?a " + + "?y ?p ?a " + + "filter (?x != ?y)" + + + "} "; + + Graph g = createGraph(); + QueryProcess exec = QueryProcess.create(g); + + exec.query(init); + Mappings map = exec.query(query); + assertEquals(2, map.size()); + + } + + @Test + public void testGenAgg() throws EngineException { + String q = "select (st:aggregate(?x) as ?list) (us:merge(maplist(us:fun, ?list)) as ?y)" + + "where { values ?x {unnest(xt:iota(10))}}" + + + "function st:aggregate(?x){ aggregate(?x) }" + + + "function us:fun(?x){ 1 / (?x * ?x)}" + + + "function us:merge(?list){ reduce(rq:plus, ?list) }"; + Graph g = Graph.create(); + QueryProcess exec = QueryProcess.create(g); + Mappings map = exec.query(q); + IDatatype dt = map.getValue("?y"); + assertEquals("test", dt.doubleValue(), 1.5497, 10e-5); + } + + public void testGenAggOld() throws EngineException { + String q = "select (st:aggregate(?x) as ?y) " + + "where { values ?x {unnest(xt:iota(10))}}" + + + "function st:aggregate(?x){aggregate(us:fun(?x), us:merge)}" + + + "function us:fun(?x){ 1 / (?x * ?x)}" + + + "function us:merge(?list){ reduce(rq:plus, ?list) }"; + Graph g = Graph.create(); + QueryProcess exec = QueryProcess.create(g); + Mappings map = exec.query(q); + IDatatype dt = map.getValue("?y"); + assertEquals("test", dt.doubleValue(), 1.5497, 10e-5); + } + + @Test + public void testinsertwhere() throws EngineException { + String i = "insert { graph us:Jim {?s ?p ?o}} " + + "where { " + + "bind (us:Jim as ?s)" + + "bind (us:Jim as ?p)" + + "bind (us:Jim as ?o)" + + "}"; + String d = "delete data { graph us:Jim { us:Jim us:Jim us:Jim }}"; + + Graph g = Graph.create(); + QueryProcess exec = QueryProcess.create(g); + exec.query(i); + + for (Edge e : g.getEdges()) { + int n = e.getGraph().getIndex(); + // System.out.println("s "+ e.getNode(0) + " " + e.getNode(0).getIndex()); + // System.out.println("o " +e.getNode(1) + " " + e.getNode(1).getIndex()); + // System.out.println("p " +e.getEdgeNode() + " " + e.getEdgeNode().getIndex()); + // System.out.println("g "+ e.getGraph() + " " + e.getGraph().getIndex()); + + assertEquals(n, e.getNode(0).getIndex()); + assertEquals(n, e.getNode(1).getIndex()); + assertEquals(n, e.getEdge().getEdgeNode().getIndex()); + } + + exec.query(d); + assertEquals(0, g.size()); + } + + @Test + public void testinsertdata() throws EngineException { + String i = "insert data { " + + "graph us:Jim { us:Jim us:Jim us:Jim }" + + "graph us:Jim { us:Jim us:Jim us:Jim }" + + "}"; + String d = "delete data { graph us:Jim { us:Jim us:Jim us:Jim }}"; + + Graph g = Graph.create(); + QueryProcess exec = QueryProcess.create(g); + exec.query(i); + + for (Edge e : g.getEdges()) { + int n = e.getGraph().getIndex(); + assertEquals(n, e.getNode(0).getIndex()); + assertEquals(n, e.getNode(1).getIndex()); + assertEquals(n, e.getEdge().getEdgeNode().getIndex()); + } + + exec.query(d); + assertEquals(0, g.size()); + } + + @Test + public void testFormatBase() throws EngineException, LoadException { + Graph g = Graph.create(); + // Access.define("junit/sttl/format1/", true); + Access.define("junit/sttl/format2/", true); + Access.authorize(Feature.READ_FILE); + Transformer t = Transformer.createWE(g, data + "junit/sttl/format1/"); + String res = t.transform(); + // System.out.println("result: " + res); + assertEquals(true, res != null && res.equals("test")); + Access.define("junit/sttl/format2/", false); + } + + @Test + public void testReturn() throws EngineException { + Graph g = Graph.create(); + QueryProcess exec = QueryProcess.create(g); + + String q = "select (us:fun(5) as ?n) where {}" + + "function us:fun(?n) {" + + "for (?x in xt:iota(?n)){" + + "if (?x = ?n){" + + "return (?x)}" + + "}" + + "}"; + + Mappings map = exec.query(q); + IDatatype dt = map.getValue("?n"); + assertEquals(dt.intValue(), 5); + } + + @Test + public void testOptionalFilter() throws LoadException, EngineException { + Graph g = Graph.create(); + QueryProcess exec = QueryProcess.create(g); + + String i = "insert data {" + + "us:John foaf:knows us:James " + + "us:James foaf:knows us:Jack, us:Jim " + + "us:Jim foaf:knows us:John " + + "" + + "}"; + + String q = "prefix c: " + + "select * " + + "" + + "where { " + + " ?x foaf:knows ?y " + + "optional { " + + "?y foaf:knows ?z filter (?x != us:John) optional { ?z ?p ?x }" + + "} " + + "} "; + + exec.query(i); + Mappings map = exec.query(q); + assertEquals(map.size(), 4); + + } + + @Test + public void testDataset2() throws EngineException, LoadException { + Graph g = Graph.create(); + g.getDataStore().addDefaultGraph(); + + Load ld = Load.create(g); + ld.setDefaultGraph(true); + + ld.parse(data + "test/primerdata.ttl"); + int size = g.size(); + ld.parse(data + "test/primer.owl", NSManager.KGRAM + "ontology"); + + String q = "select * where {" + + "?x ?p ?y " + + "}"; + + QueryProcess exec = QueryProcess.create(g); + Mappings map = exec.query(q); + assertEquals(size, map.size()); + } + + @Test + public void testDataStore() throws EngineException { + Graph g = Graph.create(false); + QueryProcess exec = QueryProcess.create(g); + + String init = "insert data {" + + "graph us:g1 {" + + "us:John foaf:knows us:Jack, us:Jules " + + "foaf:knows rdfs:domain foaf:Person" + + "} " + + "graph us:g2 {" + + "us:John foaf:knows us:Jack " + + "foaf:Person rdfs:subClassOf foaf:Human " + + "foaf:Human rdfs:subClassOf foaf:Humanoid " + + "}" + + "}"; + + exec.query(init); + g.init(); + ArrayList list = new ArrayList(); + ArrayList list2 = new ArrayList(); + + Node g1 = g.getGraphNode(NSManager.USER + "g1"); + Node g2 = g.getGraphNode(NSManager.USER + "g2"); + list.add(g1); + list2.add(g1); + list2.add(g2); + + Node p = g.getPropertyNode(NSManager.FOAF + "knows"); + Node n = g.getNode(NSManager.USER + "John"); + Node n1 = g.getNode(NSManager.USER + "Jack"); + + assertEquals(2, count(g.getDefault().iterate(p))); + assertEquals(3, count(g.getNamed().iterate(p))); + assertEquals(2, count(g.getDefault().iterate(n, 0))); + assertEquals(3, count(g.getNamed().iterate(n, 0))); + assertEquals(5, count(g.getDefault().iterate())); + assertEquals(3, count(g.getDefault().from(list).iterate())); + assertEquals(5, count(g.getDefault().from(list2).iterate())); + assertEquals(6, count(g.getNamed().iterate())); + assertEquals(3, count(g.getNamed().from(list).iterate())); + assertEquals(6, count(g.getNamed().from(list2).iterate())); + assertEquals(2, count(g.getDefault().from(list2).iterate(p, n, 0))); + assertEquals(3, count(g.getNamed().from(list2).iterate(p, n, 0))); + assertEquals(1, count(g.getDefault().from(list2).iterate(p, n1, 1))); + assertEquals(2, count(g.getNamed().from(list2).iterate(p, n1, 1))); + assertEquals(3, count(g.getNamed().minus(g1).iterate())); + assertEquals(3, count(g.getDefault().minus(g1).iterate())); + assertEquals(0, count(g.getDefault().minus(list2).iterate())); + DataFilterFactory df = new DataFilterFactory(); + assertEquals(5, count(g.getDefault().iterate().filter(df.init().object(ExprType.ISURI)))); + assertEquals(0, count(g.getDefault().iterate().filter(df.init().object(ExprType.ISBLANK)))); + assertEquals(5, count(g.getDefault().iterate().filter(df.init().not().subject(ExprType.ISBLANK)))); + + assertEquals(4, count(g.getNamed().iterate().filter(df.init().or() + .and().graph(ExprType.EQ, g1).subject(ExprType.EQ, n) + .and().graph(ExprType.EQ, g2).not().subject(ExprType.EQ, n)))); + + assertEquals(5, count(g.getDefault().iterate().filter(df.init().object(ExprType.ISURI)))); + assertEquals(0, count(g.getDefault().iterate().filter(df.init().object(ExprType.ISBLANK)))); + assertEquals(5, count(g.getDefault().iterate().filter(df.init().not().subject(ExprType.ISBLANK)))); + + assertEquals(0, count(g.getDefault().iterate() + .filter(df.init().edge(ExprType.EQ, DataFilter.SUBJECT, DataFilter.OBJECT)))); + } + + int count(Iterable it) { + int c = 0; + for (Edge ent : it) { + if (ent != null) { + //// System.out.println(ent); + c++; + } + } + //// System.out.println(""); + return c; + } + + @Test + public void testrepl() throws EngineException { + String q = "select ('o' as ?pat) ('oo' as ?rep) (replace('aobooc', ?pat, ?rep) as ?res) where {}"; + Graph g = Graph.create(); + QueryProcess exec = QueryProcess.create(g); + + Mappings map = exec.query(q); + IDatatype dt = map.getValue("?res"); + assertEquals("aoobooooc", dt.getLabel()); + } + + @Test + public void testrdfxml() throws LoadException, IOException { + Graph g = Graph.create(); + Load ld = Load.create(g); + ld.parse(data + "/test/primer.owl"); + // ld.parse("/home/corby/AAServer/data/primer.owl"); + g.init(); + // String RDFXMLNEW = "/user/corby/home/AAData/template/rdfxmlnew.rul"; + + Transformer t = Transformer.create(g, Transformer.RDFXML); + // Transformer t = Transformer.create(g, RDFXMLNEW); + t.write("/tmp/tmp.rdf"); + + Graph g1 = Graph.create(); + Load ld1 = Load.create(g1); + ld1.parse("/tmp/tmp.rdf"); + g1.init(); + + Transformer t2 = Transformer.create(g1, Transformer.TURTLE); + t2.write("/tmp/tmp.ttl"); + + Graph g2 = Graph.create(); + Load ld2 = Load.create(g2); + ld2.parse("/tmp/tmp.ttl"); + g2.init(); + + // System.out.println(g.compare(g2)); + + assertEquals(354, g.size()); + assertEquals(g.size(), g1.size()); + // missing: _:b a rdf:List + assertEquals(308, g2.size()); + + //// System.out.println(g.compare(g1, false, true, true)); + + } + + @Test + public void testTTLabc() throws EngineException, LoadException { + + Graph g = Graph.create(); + QueryProcess exec = QueryProcess.create(g); + + String i = "insert data { " + + "_:b rdf:value _:b, (_:b (_:b) ((_:b))) " + + "}"; + + exec.query(i); + + Transformer t = Transformer.create(g, Transformer.TURTLE); + System.out.println(t.transform()); + // assertEquals(197, t.transform().length()); + } + + @Test + public void testIndex() throws EngineException { + String q = "select * where {" + + "bind (1 as ?x) " + + "values (?x ?y) {" + + "(2 2) (1 1)" + + "}" + + "}"; + + Graph g = Graph.create(); + QueryProcess exec = QueryProcess.create(g); + Mappings map = exec.query(q); + assertEquals(1, map.size()); + } + + @Test + public void testAGG22() throws EngineException { + String q = "select * (max(?c) as ?mc) where {" + + "select (count(*) as ?c) (max(?y) as ?m) where {?x ?p ?y}" + + "}"; + + Graph g = Graph.create(); + QueryProcess exec = QueryProcess.create(g); + Mappings map = exec.query(q); + IDatatype dt = map.getValue("?c"); + IDatatype dt2 = map.getValue("?mc"); + assertEquals(0, dt.intValue()); + assertEquals(0, dt2.intValue()); + } + + @Test + public void testContext2() throws EngineException { + Graph g = GraphStore.create(); + QueryProcess exec = QueryProcess.create(g); + String q = "template { st:get(st:test) }" + + " where {" + + "select * where {" + + "bind (us:test() as ?t)" + + "}" + + "}" + + "function us:test(){" + + "st:set(st:test, 10)" + + "}"; + + Mappings map = exec.query(q); + assertEquals("10", map.getTemplateStringResult()); + Context c = (Context) map.getContext(); + IDatatype val = c.getName("test"); + assertEquals(10, val.intValue()); + assertEquals(true, map.getQuery().getTransformer() == null); + } + + @Test + public void testContext() throws EngineException { + Graph g = GraphStore.create(); + QueryProcess exec = QueryProcess.create(g); + String q = "select * (st:get(st:test) as ?tt) where {" + + "select * where {" + + "bind (us:test() as ?t)" + + "}" + + "}" + + "function us:test(){" + + "st:set(st:test, 10)" + + "}"; + + Mappings map = exec.query(q); + IDatatype dt = map.getValue("?tt"); + assertEquals(10, dt.intValue()); + Context c = (Context) map.getContext(); + IDatatype val = c.getName("test"); + assertEquals(10, val.intValue()); + } + + // loop return concat of results of body of loop + + public void testGLoop() throws EngineException, IOException { + Graph g = GraphStore.create(); + QueryProcess exec = QueryProcess.create(g); + String q = "select (us:test() as ?t)" + + "where {}" + + "" + + "function us:test(){" + + "loop ((?s, ?p, ?o) in construct {us:John rdfs:label 'Jon', 'Jim' } where {}){" + + "?o" + + "}" + + "}"; + + Mappings map = exec.query(q); + IDatatype dt = map.getValue("?t"); + assertEquals("JonJim", dt.stringValue()); + } + + @Test + public void testIO() throws EngineException, IOException { + Graph g = GraphStore.create(); + QueryProcess.create(g); + + Load ld = Load.create(g); + try { + ld.parse(data + "junit/data/test.ttl"); + ld.parse(data + "junit/data/test.ttl", "http://example.org/"); + + ld.parse(data + "junit/data/test.rdf"); + ld.parse(data + "junit/data/test.rdf", "http://example.org/"); + + ld.parse(data + "junit/data/test.xml", Load.RDFXML_FORMAT); + + } catch (LoadException ex) { + } + assertEquals(5, g.size()); + } + + @Test + public void testIO2() throws EngineException, IOException { + Graph g = GraphStore.create(); + QueryProcess.create(g); + + Load ld = Load.create(g); + try { + ld.parseDir(data + "junit/data"); + ld.parseDir(data + "junit/data", "http://example.org/"); + } catch (LoadException ex) { + } + System.out.println(g.display()); + assertEquals(4, g.size()); + } + + @Test + public void testUnion5() throws EngineException { + Graph g1 = Graph.create(); + QueryProcess exec1 = QueryProcess.create(g1); + + String i1 = "insert data {" + + "us:John foaf:knows us:Jim " + + "us:Jim foaf:knows us:Jack " + + "}"; + + String q = "select (us:main() as ?m) where {}" + + + "function us:main(){" + + "let (?list = xt:list(us:test1, us:test2)){" + + "reduce(xt:union, maplist(rq:funcall, ?list))" + + "}" + + "}" + + + "function us:test1(){" + + "let (?m = select * where { ?x foaf:knows ?y}){" + + "?m}" + + "}" + + + "function us:test2(){" + + "let (?m = select * where { ?z foaf:knows ?t}){" + + "?m}" + + "}"; + + exec1.query(i1); + + Mappings map = exec1.query(q); + IDatatype dt = map.getValue("?m"); + Mappings m = dt.getPointerObject().getMappings(); + assertEquals(4, m.size()); + } + + @Test + public void testUnnestSelectCons() throws EngineException { + Graph g = GraphStore.create(); + QueryProcess exec = QueryProcess.create(g); + + String q = "prefix ex: " + + "select * where {" + + "values (?x ?y ?path) {unnest(us:test())}" + + "graph ?path { ?a ?p ?b }" + + "}" + + + "function us:test(){" + + "let (?m = select * where {" + + "bind (us:graph() as ?g)" + + "graph ?g {?x foaf:knows+ :: ?path ?y}" + + "})" + + "{?m}" + + "}" + + + "function us:graph(){" + + "let (?g = construct {" + + "us:John foaf:knows us:Jack " + + "us:Jack foaf:knows us:Jim} where {})" + + "{?g}" + + "}"; + + Mappings map = exec.query(q); + assertEquals(4, map.size()); + + } + + @Test + public void testUnnestGraph() throws EngineException { + Graph g = GraphStore.create(); + QueryProcess exec = QueryProcess.create(g); + // QueryProcess.definePrefix("c", "http://www.inria.fr/acacia/comma#"); + + String q = "prefix ex: " + + "select ?s ?p ?o where {" + + "bind (us:test() as ?g)" + + "values (?s ?p ?o) {unnest(?g)}" + + "graph ?g {?s ?p ?o}" + + "}" + + "function us:test(){" + + "let (?g = construct { us:John rdfs:label 'John', 'Johnny' } where {})" + + "{?g}" + + "}"; + + Mappings map = exec.query(q); + assertEquals(2, map.size()); + + } + + @Test + public void testUnnestSelect() throws EngineException { + Graph g = GraphStore.create(); + QueryProcess exec = QueryProcess.create(g); + // QueryProcess.definePrefix("c", "http://www.inria.fr/acacia/comma#"); + + String q = "prefix ex: " + + "select * where {" + + "values (?x ?y) {unnest(us:test())}" + + "}" + + "function us:test(){" + + "let (?m = select * where { " + + "values ?x {unnest(xt:iota(2))} " + + "values ?z {unnest(xt:iota(1))} " + + "values ?y {unnest(xt:iota(2))}})" + + "{?m}" + + "}"; + + Mappings map = exec.query(q); + assertEquals(4, map.size()); + IDatatype dt = map.getValue("?x"); + assertEquals(1, dt.intValue()); + } + + @Test + public void testUnnestSelect2() throws EngineException { + Graph g = GraphStore.create(); + QueryProcess exec = QueryProcess.create(g); + // QueryProcess.definePrefix("c", "http://www.inria.fr/acacia/comma#"); + + String q = "prefix ex: " + + "select * where {" + + "values (?y ?x) {unnest(us:test())}" + + "}" + + "function us:test(){" + + "let (?m = select * where { " + + "values ?x {unnest(xt:iota(2))} " + + "values ?z {unnest(xt:iota(1))} " + + "values ?y {unnest(xt:iota(2))}})" + + "{?m}" + + "}"; + Mappings map = exec.query(q); + assertEquals(4, map.size()); + + } + + @Test + public void testFunUpdate() throws EngineException { + Graph g = GraphStore.create(); + QueryProcess exec = QueryProcess.create(g); + String i = "insert { us:John foaf:name ?n } " + + "where { bind (us:name(us:John) as ?n) }" + + "function us:name(?n){ 'John' }"; + + exec.query(i); + Edge e = g.getEdges().iterator().next(); + IDatatype dt = e.getNode(1).getValue(); + assertEquals("John", dt.stringValue()); + } + + @Test + public void testNSMUnnest() throws EngineException { + Graph g = GraphStore.create(); + QueryProcess exec = QueryProcess.create(g); + + String i = "prefix ex: " + + "insert data { " + + "us:John rdfs:label 'John'" + + "ex:John rdfs:label 'John'" + + "}"; + + String q = "prefix ex: " + + "select * " + + "where {" + + "?x ?p ?y " + + "filter mapany(us:test, ?x, st:prefix())" + + "}" + + "function us:test(?uri, ?def){" + + "let ((?p, ?n) = ?def){" + + "strstarts(?uri, ?n)" + + "}" + + "}"; + + exec.query(i); + Mappings map = exec.query(q); + assertEquals(1, map.size()); + } + + @Test + public void testQueryUnnest() throws EngineException { + Graph g = GraphStore.create(); + QueryProcess exec = QueryProcess.create(g); + Graph g1 = Graph.create(); + QueryProcess.create(g1); + + String i = "insert data { us:John rdfs:label 'John'}"; + + String q = "prefix ex: " + + "select * " + + "where {" + + "?x ?p ?y optional {?x ?p ?p }" + + "values ?t { unnest(xt:query()) }" + + "values ?e { unnest(?t) }" + + "}"; + + exec.query(i); + Mappings map = exec.query(q); + assertEquals(6, map.size()); + } + + @Test + public void testGraphUnnest() throws EngineException { + Graph g = GraphStore.create(); + QueryProcess exec = QueryProcess.create(g); + Graph g1 = Graph.create(); + QueryProcess.create(g1); + + String i = "insert data { us:prop1 rdfs:label 'prop' us:prop rdfs:label 'prop2' }"; + + String q = "select * where {" + + "values (?s ?p ?o) { unnest(us:define()) }" + + "values (?s ?p ?o ?g) { unnest(us:define()) }" + + "?s ?p ?o " + + "}" + + "function us:define(){" + + "let (?g = construct {us:prop1 rdfs:label 'prop' us:prop rdfs:label 'prop2'} where {})" + + "{ " + + "?g }" + + "}"; + + exec.query(i); + Mappings map = exec.query(q); + assertEquals(2, map.size()); + } + + @Test + public void testUnnestNSM() throws EngineException { + Graph g = GraphStore.create(); + QueryProcess exec = QueryProcess.create(g); + + String q = "prefix ex: " + + "select * where {" + + "values (?p ?n) {unnest(st:prefix())}" + + "}" + + "function us:test(){" + + "for ((?p, ?n) in st:prefix()){" + + "xt:display(?p, ?n)" + + "}" + + "}"; + + Mappings map = exec.query(q); + // System.out.println("*****************************************"); + // System.out.println(map); + assertEquals(2, map.size()); // there is also a global prefix c: + // IDatatype p = map.getValue("?p"); + // IDatatype n = map.getValue("?n"); + // assertEquals("ex", p.stringValue()); + // assertEquals("htp://example.org/", n.stringValue()); + } + + @Test + public void testExtNode() throws EngineException { + Graph g = GraphStore.create(); + QueryProcess exec = QueryProcess.create(g); + Graph g1 = Graph.create(); + QueryProcess.create(g1); + + String i = "insert data { us:prop rdfs:label 'prop' }"; + + String q = "select * where {" + + "bind (us:define() as ?g)" + + "?p rdfs:label ?l " + + "graph ?g {" + + "?p rdfs:label ?ll" + + "}" + + "}" + + "function us:define(){" + + "let (?g = construct {us:prop1 rdfs:label 'prop' us:prop rdfs:label 'prop2'} where {})" + + "{ ?g }" + + "}"; + + exec.query(i); + Mappings map = exec.query(q); + assertEquals(1, map.size()); + } + + @Test + public void testUnion4() throws EngineException { + Graph g1 = Graph.create(); + QueryProcess exec1 = QueryProcess.create(g1); + + String i1 = "insert data {" + + "us:John foaf:knows us:Jim " + + "us:Jim foaf:knows us:Jack " + + "}"; + + String q = "function xt:main(){" + + "us:test()" + + "}" + + "function us:test(){" + + "let (" + + "?m1 = select * where { ?x foaf:knows ?y}," + + "?m2 = select * where { ?x foaf:knows ?y}){" + + "xt:union(?m1, ?m2)" + + "}" + + "}"; + + exec1.query(i1); + + Mappings dt = exec1.query(q); + assertEquals(4, dt.get(0).getValue("?_main_").size()); + } + + @Test + public void testUnion3() throws EngineException { + Graph g1 = Graph.create(); + QueryProcess exec1 = QueryProcess.create(g1); + + String i1 = "insert data {" + + "us:John foaf:knows us:Jim " + + "us:Jim foaf:knows us:Jack " + + "}"; + + String q = "select * where {" + + "?x foaf:knows ?y" + + "}"; + + exec1.query(i1); + + Mappings m1 = exec1.query(q); + Mappings m2 = exec1.query(q); + Mappings m = m1.union(m2); + + assertEquals(4, m.size()); + + } + + @Test + public void testUnion2() throws EngineException { + Graph g = Graph.create(); + QueryProcess exec = QueryProcess.create(g); + + String q = "function xt:main(){" + + "us:test()" + + "}" + + "function us:test(){" + + "let (?g = us:union()," + + "?m = select * where { graph ?g {?x foaf:knows+ ?y}})" + + "{ ?m }" + + "}" + + "function us:union(){" + + "let (" + + "?g1 = construct {us:John foaf:knows us:Jim} where {}," + + "?g2 = construct {us:Jim foaf:knows us:Jack} where {}){" + + "xt:union(?g1, ?g2)" + + "}" + + "}"; + + Mappings dt = exec.query(q); + assertEquals(3, dt.get(0).getValue("?_main_").size()); + } + + @Test + public void testUnion() throws EngineException { + Graph g1 = Graph.create(); + Graph g2 = Graph.create(); + + QueryProcess exec1 = QueryProcess.create(g1); + QueryProcess exec2 = QueryProcess.create(g2); + + String i1 = "insert data {" + + "us:John foaf:knows us:Jim " + + "}"; + + String i2 = "insert data {" + + "us:Jim foaf:knows us:Jack " + + "}"; + + String q = "select * where {" + + "?x foaf:knows+ ?y" + + "}"; + + exec1.query(i1); + exec2.query(i2); + + Graph g = g1.union(g2); + + QueryProcess exec = QueryProcess.create(g); + Mappings map = exec.query(q); + + assertEquals(3, map.size()); + + } + + @Test + public void testRelax6() throws EngineException { + Graph g = GraphStore.create(); + QueryProcess exec = QueryProcess.create(g); + + String i = "insert data { " + + "us:John foaf:name 'John'@en ; foaf:age 11 " + + "}"; + exec.query(i); + + String q = "@relax " + + "select * (xt:sim() as ?s) where {" + + "us:John foaf:name 'Jon' ; foaf:age 11 " + + "}"; + + Mappings map = exec.query(q); + assertEquals(1, map.size()); + + } + + @Test + public void testRelax5() throws EngineException { + Graph g = GraphStore.create(); + QueryProcess exec = QueryProcess.create(g); + + String i = "insert data { " + + "us:John foaf:name 'John' " + + "}"; + exec.query(i); + + String q = "@relax kg:uri " + + "select * where {" + + "us:Jim foaf:name 'John' " + + "}"; + + Mappings map = exec.query(q); + assertEquals(1, map.size()); + } + + @Test + public void testRelax4() throws EngineException { + Graph g = GraphStore.create(); + QueryProcess exec = QueryProcess.create(g); + + String i = "insert data { " + + "us:John foaf:name 'John' " + + "}"; + exec.query(i); + + String q = "@relax * " + + "select * where {" + + "?x rdfs:label 'John' " + + "}"; + + Mappings map = exec.query(q); + assertEquals(1, map.size()); + } + + @Test + public void testRelax3() throws EngineException { + Graph g = GraphStore.create(); + QueryProcess exec = QueryProcess.create(g); + + String i = "insert data { " + + "us:John foaf:name 'John' " + + "}"; + exec.query(i); + + String q = "@relax kg:property " + + "select * where {" + + "?x rdfs:label 'John' " + + "}"; + + Mappings map = exec.query(q); + assertEquals(1, map.size()); + + } + + @Test + public void testRelax2() throws EngineException { + Graph g = GraphStore.create(); + QueryProcess exec = QueryProcess.create(g); + + String i = "insert data { " + + "us:John rdfs:label 'John' " + + "}"; + exec.query(i); + + String q = "@relax kg:literal " + + "select * where {" + + "?x rdfs:label 'Jon' " + + "}"; + + Mappings map = exec.query(q); + assertEquals(1, map.size()); + } + + @Test + public void testRelax1() throws EngineException { + Graph g = GraphStore.create(); + QueryProcess exec = QueryProcess.create(g); + + String i = "insert data { " + + "us:John rdfs:label 'John' " + + "}"; + exec.query(i); + + String q = "@relax " + + "select * where {" + + "?x rdfs:label 'Jon' " + + "}"; + + Mappings map = exec.query(q); + assertEquals(1, map.size()); + } + + @Test + public void testApprox() throws EngineException, LoadException { + Graph g = Graph.create(); + QueryProcess exec = QueryProcess.create(g); + + String i = "insert data {" + + "us:John us:name 'John' " + + "us:Jack us:name 'Jack' " + + "us:Jim us:name 'Jim' " + + "}"; + + String q = "@relax * " + + "select * (xt:sim() as ?s) where {" + + "?x xt:name 'Jon'" + + "}" + + "order by desc(?s)"; + + exec.query(i); + + Mappings map = exec.query(q); + assertEquals(3, map.size()); + IDatatype dt = map.getValue("?x"); + assertEquals(NSManager.USER + "John", dt.stringValue()); + } + + @Test + public void testSubqueryFun() throws EngineException { + Graph g = createGraph(); + QueryProcess exec = QueryProcess.create(g); + + String i = "insert data { us:John rdfs:label 'John' }" + + "@public {" + + "function us:test(){" + + "let ((?m) = select * where {?x ?p ?y}, (?y)=?m" + + "){?y}" + + "}" + + "}"; + + String q = "select * (us:test() as ?r) (us:foo() as ?s) " + + "where {" + + "select * where {select * (us:test() as ?t) (us:foo() as ?f) " + + "where {}}" + + "}" + + "function us:foo(){" + + "let ((?m) = select * where {?a ?q ?b}, (?b)=?m){ us:test() }" + + "}"; + + exec.query(i); + Mappings map = exec.query(q); + + assertEquals("John", strValue(map, "?r")); + assertEquals("John", strValue(map, "?s")); + assertEquals("John", strValue(map, "?t")); + assertEquals("John", strValue(map, "?f")); + + } + + String strValue(Mappings m, String v) { + return (m.get(0).getValue(v)).stringValue(); + } + + @Test + public void testImport() throws EngineException { + Graph g = createGraph(); + QueryProcess exec = QueryProcess.create(g); + + String q = "prefix ex: " + + "select * " + + "(funcall(ex:median, xt:iota(5)) as ?m)" + + "(ex:sigma(xt:iota(5)) as ?s)" + + "" + + "where {}"; + // exec.setLinkedFunction(true); + Access.setLinkedFunction(true); + Mappings map = exec.query(q); + IDatatype dm = map.getValue("?m"); + IDatatype ds = map.getValue("?s"); + assertEquals(3, dm.intValue()); + assertEquals(1.41421, ds.doubleValue(), 0.01); + // 1.41421 + } + + @Test + public void testAnnot() throws EngineException { + Graph g = createGraph(); + QueryProcess exec = QueryProcess.create(g); + + String i = "@public {" + + "function us:foo(){" + + "us:bar()" + + "}" + + " function us:bar(){" + + "10" + + "}" + + "}"; + + String q = "function xt:main(){" + + "us:foo()" + + "}"; + + exec.query(i); + + Mappings dt = exec.query(q); + assertEquals(10, dt.get(0).getValue("?_main_").intValue()); + } + + @Test + public void testSPARQLfun() throws EngineException { + Graph g = createGraph(); + QueryProcess exec = QueryProcess.create(g); + + String q = "select " + + "(rq:isURI(us:test) as ?uri)" + + "(rq:isBlank(us:test) as ?bn)" + + "(mapany(rq:strstarts, us:test, xt:list(xt:, st:, us:)) as ?st)" + + "where {}"; + Mappings map = exec.query(q); + IDatatype dt = map.getValue("?uri"); + IDatatype bn = map.getValue("?bn"); + IDatatype st = map.getValue("?st"); + assertEquals(true, dt.booleanValue()); + assertEquals(false, bn.booleanValue()); + assertEquals(true, st.booleanValue()); + } + + @Test + public void testUnbound() throws EngineException { + Graph g = createGraph(); + QueryProcess exec = QueryProcess.create(g); + + String q = "select (us:test() as ?res)" + + "where {}" + + "function us:test(){" + + "let ((?m) = select * where { optional { ?x rdf:value ?y }}, (?x)=?m){" + + "if (bound(?x), true, false)" + + "}" + + "}"; + Mappings map = exec.query(q); + IDatatype dt = map.getValue("?res"); + assertEquals(false, dt.booleanValue()); + //// System.out.println(map); + } + + // @Test + public void testLetService() throws EngineException { + GraphStore gs = GraphStore.create(); + QueryProcess exec = QueryProcess.create(gs); + String q = "prefix r: " + + "select (us:dbpedia(?x, rdfs:label) as ?t)" + + "where {" + + "}" + + "values ?x {r:Auguste}" + + "function us:dbpedia(?x, ?p) {" + + " let((?l) =" + + " service {" + + " ?x ?p ?l" + + " })" + + " {?l}" + + "}"; + + Mappings map = exec.query(q); + for (Mapping m : map) { + IDatatype dt = m.getValue("?t"); + assertEquals("Auguste", dt.stringValue()); + } + + } + + @Test + public void testFuncall() throws EngineException { + Graph g = createGraph(); + QueryProcess exec = QueryProcess.create(g); + String q = "function xt:main(){" + + "let (?fun = us:test){" + + "funcall(?fun, 'Hello')}" + + "}" + + "function us:test(?m){" + + "?m" + + "}"; + + Mappings dt = exec.query(q); + assertEquals("Hello", dt.get(0).getValue("?_main_").stringValue()); + + } + + @Test + public void testMethod() throws EngineException { + GraphStore gs = GraphStore.create(); + QueryProcess exec = QueryProcess.create(gs); + + String init = "insert data {" + + "foaf:Man rdfs:subClassOf foaf:Person " + + "us:John a foaf:Man " + + "us:Boat a foaf:Thing " + + "us:bar a xt:Method ;" + + "xt:name us:title ;" + + "xt:input (foaf:Person) ;" + + "xt:output xsd:string ." + + "" + + "us:foo a xt:Method ;" + + "xt:name us:title ;" + + "xt:input (foaf:Thing) ;" + + "xt:output xsd:string ." + + "}"; + + String q = "select (funcall(us:method(us:title, ?x), ?x) as ?t) where {" + + "?x a foaf:Man" + + "}" + + + "function us:method(?m, ?x){" + + "let ((?res) = select * where {" + + "?x rdf:type/rdfs:subClassOf* ?t . " + + "?fun a xt:Method ; xt:name ?m ; xt:input(?t)}, (?fun)=?res )" + + "{ ?fun }" + + "}" + + + "function us:bar(?x){" + + "'bar'" + + "}" + + + "function us:foo(?x){" + + "'foo'" + + "}"; + + exec.query(init); + Mappings map = exec.query(q); + //// System.out.println(map); + IDatatype dt = map.getValue(("?t")); + assertEquals("bar", dt.stringValue()); + } + + @Test + public void testMain() throws EngineException { + GraphStore gs = GraphStore.create(); + QueryProcess exec = QueryProcess.create(gs); + + String i = "insert data {" + + "[] a us:Test ; us:width 2 ; us:length 3 " + + "}"; + + String q = "function xt:main(){" + + "us:test()" + + "}" + + "function us:test(){" + + "let (select ?x (us:surface(?x) as ?s) where {?x a ?t} ) {" + // + "kg:display(?x); kg:display(?s);" + + "?s" + + "}}" + + "function us:surface(?x){" + + "let (select * where {?x us:length ?l ; us:width ?w }){" + + "?l * ?w}" + + "}"; + + exec.query(i); + gs.init(); + // Mappings map = exec.query(q); + // ////System.out.println(map); + // Mappings m = (Mappings) map.getNodeObject(ASTQuery.MAIN_VAR); + // IDatatype dt = m.getValue("?s"); + + Mappings dt = exec.query(q); + // System.out.println(dt); + assertEquals(6, dt.get(0).getValue("?_main_").intValue()); + } + + @Test + public void testexistsexport() throws EngineException { + + GraphStore gs = GraphStore.create(); + QueryProcess exec = QueryProcess.create(gs); + + String init = "insert data {" + + "[] rdf:value 1" + + "}"; + + String qe = "select where {}" + + "@public {" + + "function us:test(){" + + "if (exists {select * where {?x ?p ?y}}){" + + "let ((?m) = select * where {?x ?p ?y}, (?x, ?y)=?m){" + + "?y}" + + "}" + + "else {us:fun(false)}" + + "}" + + "function us:fun(?x){" + + "?x}" + + "}"; + + String q = "select (us:test() as ?t)" + + "where {}"; + + exec.compile(qe); + exec.query(init); + Mappings map = exec.query(q); + IDatatype dt = map.getValue("?t"); + assertEquals(1, dt.intValue()); + } + + @Test + public void testexists() throws EngineException { + + GraphStore gs = GraphStore.create(); + QueryProcess exec = QueryProcess.create(gs); + + String i = "insert data {" + + "[] us:width 2 ; us:length 3" + + "[] us:width 3 ; us:length 4" + + "}"; + + String q = " select * (us:surface(?x) as ?s) where {" + + "?x us:width ?w " + + "}" + + "function us:surface(?x){" + + "let ((?m) = select * where { ?x us:length ?l ; us:width ?w }, (?l, ?w)=?m){" + + "?l * ?w" + + "}" + + "}"; + + String q2 = "select (us:test() as ?s) where {}" + + "function us:test(){" + + "let (?sum = 0){" + + "for (?m in select * where { ?x us:width ?w }){" + + "let ((?w, ?x) = ?m){ " + + "set (?sum = ?sum + ?w)" + + "}}; ?sum" + + "}" + + "}"; + + exec.query(i); + Mappings map = exec.query(q); + IDatatype dt = map.getValue("?s"); + assertEquals(6, dt.intValue()); + + map = exec.query(q2); + dt = map.getValue("?s"); + assertEquals(5, dt.intValue()); + } + + public void testBnode() + throws EngineException, LoadException, ParserConfigurationException, SAXException, IOException { + Graph g = Graph.create(); + QueryProcess exec = QueryProcess.create(g); + + String i = "prefix ex: " + + "insert data {" + + "[] ex:speed [ rdf:value 100 ; ex:unit 'km/h' ]" + + "[] ex:speed [ rdf:value 90 ; ex:unit 'km/h' ]" + + "" + + "" + + "}"; + + String q = "prefix bn: " + + "prefix ex: " + + "select ?x ?z where {" + + "?x ex:speed ?y " + + "?z ex:speed ?t " + + "filter (?x != ?z) " + + "filter (?y <= ?t) " + + "}" + + "function bn:lessEqual(?x, ?y){" + + "let (?v1 = xt:value(?x, rdf:value), ?v2 = xt:value(?y, rdf:value)){" + + "?v1 <= ?v2}" + + "} "; + + exec.query(i); + Mappings map = exec.query(q); + assertEquals(1, map.size()); + } + + @Test + public void testSet() throws EngineException { + Graph g = Graph.create(); + QueryProcess exec = QueryProcess.create(g); + + String q = "select (us:test() as ?t) where {}" + + "function us:test(){" + + "let (?sum = 0){ " + + "for (?x in xt:iota(100)){" + + "if (xt:prime(?x)){" + + "set(?sum = ?sum + 1)" + + "}};" + + "?sum" + + "}" + + "}"; + + Mappings map = exec.query(q); + //// System.out.println(map); + IDatatype dt = map.getValue("?t"); + assertEquals(25, dt.intValue()); + + } + + @Test + public void testCandidate() throws EngineException { + Graph g = Graph.create(); + QueryProcess exec = QueryProcess.create(g); + + String q = "select * where {" + + "bind (unnest(xt:iota(3)) as ?n)" + + "}" + + "function xt:solution(?q, ?ms){" + + "map (kg:display, ?ms)" + + "}"; + + Mappings map = exec.query(q); + + assertEquals(3, map.size()); + } + + // @Test + public void testSolution() throws EngineException { + Graph g = Graph.create(); + QueryProcess exec = QueryProcess.create(g); + + String q = "select * where {" + + "bind (unnest(xt:iota(100)) as ?n)" + + "}" + + "function xt:solution(?q, ?ms){" + + "for (?m in ?ms){" + + "if (! us:check(?m)){" + + "xt:reject(?m)}" + + "}" + + "}" + + "function us:check(?m){" + + "rand() <= 0.5" + + "}"; + + Mappings map = exec.query(q); + //// System.out.println(map.size()); + assertEquals(true, map.size() < 75); + } + + @Test + public void testCustomAgg() throws EngineException { + Graph g = Graph.create(); + QueryProcess exec = QueryProcess.create(g); + + String init = "insert data {" + + "[] rdf:value 4, 5, 6, 7" + + "[] rdf:value 1, 2, 3" + + "}"; + + String q = "select (aggregate(?v) as ?list) ( us:mediane(?list) as ?res)" + + "where {" + + " ?x rdf:value ?v " + + "}" + + "" + + "function us:mediane(?list){" + + " let (?l = xt:sort(?list)){" + + " xt:get(?l, xsd:integer((xt:size(?l) - 1) / 2))" + + " }" + + "}" + + ""; + + exec.query(init); + Mappings map = exec.query(q); + IDatatype dt = map.getValue("?res"); + assertEquals(4, dt.intValue()); + + } + + // @Test + public void testVD13() throws EngineException { + Graph g = Graph.create(); + QueryProcess exec = QueryProcess.create(g); + + String q = "prefix cal: " + + "select ?day where {" + + "bind (unnest(mapmerge(xt:span, mapfindlist(xt:prime, xt:iota(1901, 2000)))) as ?day)" + + "}" + + "function xt:span(?y) { " + + "mapselect (xt:check, \"Friday\", maplist(cal:date, ?y, xt:iota(1, 12), 13)) " + + "}" + + "function xt:check(?d, ?x) { (xt:day(?x) = ?d) }"; + + Mappings map = exec.query(q); + assertEquals(23, map.size()); + + } + + @Test + public void testMapList() throws EngineException { + Graph g = Graph.create(); + QueryProcess exec = QueryProcess.create(g); + // String q = "select * where {" + // + "bind (maplist (rq:plus, xt:iota(1, 10), xt:iota(1, 10)) as ?res)" + // + "}" + // + ""; + + String q1 = "select * where {" + + "bind (maplist (rq:plus, xt:iota(1, 10), 10) as ?res)" + + "}" + + ""; + + String q2 = "select * where {" + + "bind (maplist (rq:plus, 10, xt:iota(1, 10)) as ?res)" + + "}" + + ""; + + // String q3 = "select * where {" + // + "bind (maplist (rq:plus, xt:iota(1, 20), xt:iota(1, 10)) as ?res)" + // + "}" + // + ""; + + Mappings map; + IDatatype dt; + // map = exec.query(q); + // dt = map.getValue("?res"); + // assertEquals(10, dt.size()); + // assertEquals(20, dt.get(dt.size() - 1).intValue()); + + map = exec.query(q1); + dt = map.getValue("?res"); + assertEquals(10, dt.size()); + assertEquals(20, dt.get(dt.size() - 1).intValue()); + + map = exec.query(q2); + dt = map.getValue("?res"); + assertEquals(10, dt.size()); + assertEquals(20, dt.get(dt.size() - 1).intValue()); + + // map = exec.query(q3); + // dt = map.getValue("?res"); + // assertEquals(20, dt.size()); + // assertEquals(30, dt.get(dt.size() - 1).intValue()); + } + + @Test + public void testExtList() throws EngineException { + Graph g = Graph.create(); + QueryProcess exec = QueryProcess.create(g); + + String q = "select ?n " + + "where {" + + "bind (unnest(xt:iota(1, 100)) as ?n)" + + "filter xt:prime(?n)" + + "}"; + + String q2 = "select * where {" + + "bind (mapfindlist (xt:prime, xt:iota(100)) as ?test)" + + "}"; + + Mappings map = exec.query(q); + assertEquals(25, map.size()); + + map = exec.query(q2); + IDatatype dt = map.getValue("?test"); + assertEquals(25, dt.size()); + + } + + // @Test + public void testAgenda() throws EngineException { + QueryLoad ql = QueryLoad.create(); + String q = ql.read(data + "/query2/agenda.rq"); + Graph g = Graph.create(); + QueryProcess exec = QueryProcess.create(g); + Mappings map = exec.query(q); + assertEquals(1637, map.getTemplateStringResult().length()); + + } + + @Test + public void testExtFun10() throws EngineException { + String init = "prefix ex: " + + "insert data {" + + "ex:John rdf:value 1, 2, 3 " + + "}"; + + String q = "prefix ex: " + + "select * " + + "where {" + + "?x rdf:value ?n " + + "filter xt:test(?n)" + + "filter xt:fun()" + + "}" + + "function xt:test(?n) { " + + "if (?n = 1, " + + "xt:test(?n + 1)," + + "let (?m = ?n + 1){ exists { ?x rdf:value ?m }}" + + ") " + + "}" + + "function xt:fun() { exists {?n rdf:value ?x} }"; + + Graph g = createGraph(); + QueryProcess exec = QueryProcess.create(g); + exec.query(init); + Mappings map = exec.query(q); + assertEquals(2, map.size()); + } + + @Test + public void testExtFun9() throws EngineException { + String init = "prefix ex: " + + "insert data {" + + "ex:John rdf:value 1, 2 " + + "}"; + + String q = "prefix ex: " + + "select *" + + "where {" + + "?x rdf:value ?n " + + "filter exists { ?y rdf:value ?n " + + "filter (let (?z = 3){ exists { ?t ?p ?z}}) } " + + "}"; + + Graph g = createGraph(); + QueryProcess exec = QueryProcess.create(g); + exec.query(init); + Mappings map = exec.query(q); + assertEquals(0, map.size()); + } + + @Test + public void testExtFun8() throws EngineException { + String init = "prefix ex: " + + "insert data {" + + "ex:John rdf:value 1, 2 " + + "}"; + + String q = "prefix ex: " + + "select * " + + "where {" + + "?x rdf:value ?n " + + "filter exists { select { ?y ?p ?n filter ( xt:fun(?n)) } } " + + "}" + + "function xt:fun(?n) { " + + "exists { ?x ?q ?n } " + + "} "; + + Graph g = createGraph(); + QueryProcess exec = QueryProcess.create(g); + exec.query(init); + Mappings map = exec.query(q); + assertEquals(2, map.size()); + //// System.out.println(map); + } + + @Test + public void testExtFun7() throws EngineException { + String init = "prefix ex: " + + "insert data {" + + "ex:John rdf:value 1, 2 " + + "}"; + + String q = "prefix ex: " + + "select (sum(xt:fun(?n + 1)) as ?sum)" + + "where {" + + "?x rdf:value ?n " + + "}" + + "function xt:fun(?n) { " + + "if (exists { select ?x where { ?x ?p ?n filter (?n < 10)} }, 1, 0) " + + "} "; + + Graph g = createGraph(); + QueryProcess exec = QueryProcess.create(g); + exec.query(init); + Mappings map = exec.query(q); + IDatatype dt = map.getValue("?sum"); + assertEquals(2, dt.intValue()); + } + + @Test + public void testExtFun6() throws EngineException { + String init = "prefix ex: " + + "insert data {" + + "ex:John rdf:value 1, 2 " + + "}"; + + String q = "prefix ex: " + + "select (sum(xt:fun(?n + 1)) as ?sum)" + + "where {" + + "?x rdf:value ?n " + + "}" + + "function xt:fun(?n) { " + + "if (exists { select ?n where { ?x ?p ?n filter (?n < 10)} }, 1, 0) " + + "} "; + + Graph g = createGraph(); + QueryProcess exec = QueryProcess.create(g); + exec.query(init); + Mappings map = exec.query(q); + IDatatype dt = map.getValue("?sum"); + assertEquals(1, dt.intValue()); + } + + @Test + public void testExtFun3() throws EngineException { + String init = "prefix ex: " + + "insert data {" + + "ex:John rdf:value 1, 2 " + + "}"; + + String q = "prefix ex: " + + "select * " + + "where {" + + "?x rdf:value ?n " + + "filter exists { ?y ?p ?n filter (! xt:fun(?n)) } " + + "}" + + " function xt:fun(?n) { " + + "exists { ?n ?q ?x } " + + "} "; + + Graph g = createGraph(); + QueryProcess exec = QueryProcess.create(g); + exec.query(init); + Mappings map = exec.query(q); + assertEquals(2, map.size()); + //// System.out.println(map); + } + + @Test + public void testExtFun2() throws EngineException { + String init = "prefix ex: " + + "insert data {" + + "ex:John rdf:value 1, 2 " + + "}"; + + String q = "prefix ex: " + + "select * " + + "where {" + + "?x rdf:value ?n " + + "filter exists { ?y ?p ?n filter xt:fun(?n) } " + + "}" + + "function xt:fun(?n) { " + + "exists { ?z ?q ?n } " + + "} "; + + Graph g = createGraph(); + QueryProcess exec = QueryProcess.create(g); + exec.query(init); + Mappings map = exec.query(q); + assertEquals(2, map.size()); + //// System.out.println(map); + } + + @Test + public void testExtFun1() throws EngineException { + String init = "prefix ex: " + + "insert data {" + + "ex:John rdf:value 1, 2 " + + "}"; + + String q = "prefix ex: " + + "select * " + + "where {" + + "?x rdf:value ?n " + + "filter xt:fun(?n) " + + "}" + + "function xt:fun(?n) { " + + "exists { ?y ?p ?n } " + + "} "; + + Graph g = createGraph(); + QueryProcess exec = QueryProcess.create(g); + exec.query(init); + Mappings map = exec.query(q); + assertEquals(2, map.size()); + } + + @Test + public void testExtFun5() throws EngineException { + String init = "prefix ex: " + + "insert data {" + + "ex:John rdf:value 1, 2 " + + "}"; + + String q = "prefix ex: " + + "select (sum(xt:fun(?n + 1)) as ?sum)" + + "where {" + + "?x rdf:value ?n " + + "}" + + "function xt:fun(?n) { if (exists { ?x ?p ?n }, 1, 0) } "; + + Graph g = createGraph(); + QueryProcess exec = QueryProcess.create(g); + exec.query(init); + Mappings map = exec.query(q); + IDatatype dt = map.getValue("?sum"); + assertEquals(1, dt.intValue()); + } + + @Test + public void testExtFun4() throws EngineException { + String init = "prefix ex: " + + "insert data {" + + "ex:John rdf:value 1, 2 " + + "}"; + + String q = "prefix ex: " + + "select (sum(xt:fun(?n)) as ?sum)" + + "where {" + + "?x rdf:value ?n " + + "}" + + "function xt:fun(?n) { if (exists { ?x ?p ?n }, 1, 0) } "; + + Graph g = createGraph(); + QueryProcess exec = QueryProcess.create(g); + exec.query(init); + Mappings map = exec.query(q); + IDatatype dt = map.getValue("?sum"); + assertEquals(2, dt.intValue()); + } + + @Test + public void testExtAgg() throws EngineException { + String init = "prefix ex: " + + "insert data {" + + "ex:John rdf:value 1, 2 " + + "}"; + + String q = "prefix ex: " + + "select (sum(xt:fun(?n)) as ?sum)" + + "where {" + + "?x rdf:value ?n " + + "}" + + "function xt:fun(?x) { ?x + ?x } "; + + Graph g = createGraph(); + QueryProcess exec = QueryProcess.create(g); + exec.query(init); + Mappings map = exec.query(q); + IDatatype dt = map.getValue("?sum"); + assertEquals(6, dt.intValue()); + } + + @Test + /** + * Test the occurrence of a recursive graph pattern that appears at least ?t + * times + */ + public void testExistFunRec() throws EngineException, LoadException { + Graph g = createGraph(); + QueryProcess exec = QueryProcess.create(g); + String init = "prefix ex: " + + "insert data {" + + "ex:a a ex:Case " + + "ex:a ex:p ex:b " + + "ex:b ex:q ex:c " + + "ex:c ex:r ex:a " + + "" + + "ex:c a ex:Case " + + "ex:c ex:p ex:d " + + "ex:d ex:q ex:e " + + "ex:e ex:r ex:c " + + "ex:e a ex:Case " + + "ex:e ex:p ex:f " + + "ex:f ex:q ex:g " + + "ex:g ex:r ex:e " + + "}"; + + String q = "prefix ex: " + + "select *" + + "where {" + + "?x a ex:Case " + + "filter xt:test(?x, 2, 0)" + + "}" + + "function xt:test(?x, ?n, ?m) {" + + "if (?m >= ?n, true," + + "exists { ?x ex:p ?y . ?y ex:q ?z . ?z ex:r ?x " + + "filter xt:test(?z, ?n, ?m + 1) }" + + ") }"; + + exec.query(init); + exec.query(q); + // assertEquals(2, map.size()); + + } + + public void testGeneralize() + throws EngineException, LoadException, ParserConfigurationException, SAXException, IOException { + Graph g = Graph.create(true); + QueryProcess exec = QueryProcess.create(g); + String init = "prefix ex: " + + "insert data { " + + "ex:John a ex:OldMan ;" + + "ex:author [ a ex:Document ]" + + "ex:Jack a ex:Person ;" + + "ex:author [ a ex:Document ]" + + "ex:Man rdfs:subClassOf ex:Human " + + "ex:YoungMan rdfs:subClassOf ex:Man " + + "ex:OldMan rdfs:subClassOf ex:Man " + + "ex:Report rdfs:subClassOf ex:Document " + + "}"; + + // target type more general than query + // target type brother of query + String qq = "prefix ex: " + + "select * (kg:similarity() as ?sim) " + + "where {" + + "?x a ex:YoungMan, ?tt ;" + + "ex:author [ a ex:Report ] " + + "" + + "}" + + "function xt:candidate(?q, ?t, ?b) { " + + "let ((?qs, ?qp, ?qo) = ?q, " + + " (?ts, ?tp, ?to) = ?t) {" + + "if (?qp = rdf:type && isURI(?qo), " + + "?b || exists { ?qo rdfs:subClassOf/(rdfs:subClassOf*|^rdfs:subClassOf) ?to } ," + + "?b)" + + "}" + + "}"; + + exec.query(init); + Mappings map = exec.query(qq); + //// System.out.println(map); + //// System.out.println(map.size()); + assertEquals(1, map.size()); + } + + @Test + public void testNoGlobal() throws EngineException { + Graph g = Graph.create(); + QueryProcess exec = QueryProcess.create(g); + String init = "insert data { " + + " rdf:value 1, 2 ." + + "" + + "}"; + + String qq = "select *" + + "where {" + + "bind (xt:test(?x) as ?z)" + + "?x ?p ?y " + + "}" + + "function xt:test(?x) { ?y } "; + + exec.query(init); + Mappings map = exec.query(qq); + Node n = map.getNode("?z"); + assertEquals(null, n); + } + + @Test + public void testFunExist() throws EngineException { + Graph g = createGraph(); + QueryProcess exec = QueryProcess.create(g); + String init = "insert data { rdf:value 1, 2, 3 .}"; + String q = "select " + + "(xt:test(?n) as ?r) " + + "(xt:test(4) as ?b)" + + "where {" + + "?x rdf:value ?n " + + "filter (xt:test(?n))}" + + "function xt:test(?y) { exists {?z rdf:value ?y} }"; + + exec.query(init); + Mappings map = exec.query(q); + assertEquals(3, map.size()); + + for (Mapping m : map) { + IDatatype dt = m.getValue("?r"); + assertEquals(true, dt.booleanValue()); + IDatatype dtf = m.getValue("?b"); + assertEquals(false, dtf.booleanValue()); + } + } + + @Test + public void testSPQR() throws EngineException { + Graph g = createGraph(); + // QueryLoad ql = QueryLoad.create(); + // String q = ql.read(data + "query/spqr.rq"); + QueryProcess exec = QueryProcess.create(g); + // exec.query(q); + + String query = "prefix cal: \n" + + "select \n" + + "(99 as ?n)\n" + + "(cal:romain(?n) as ?r)\n" + + "(cal:digit(?r) as ?d)" + + "where {}"; + + Mappings map = exec.query(query); + + IDatatype dtr = map.getValue("?r"); + IDatatype dtn = map.getValue("?d"); + + assertEquals("XCIX", dtr.stringValue()); + assertEquals(99, dtn.intValue()); + + } + + @Test + public void testFunfdghf() throws EngineException { + String q = "select \n" + + "(xt:f(1) as ?x)\n" + + "(xt:f(1, 2) as ?y)\n" + + "\n" + + "where {}" + + "function xt:f(?x) { ?x }" + + "function xt:f(?x, ?y) { ?x + ?y }" + + "function xt:f(?x, ?y, ?z) { ?x + ?y + ?z }"; + Graph g = Graph.create(); + QueryProcess exec = QueryProcess.create(g); + Mappings map = exec.query(q); + IDatatype dt1 = map.getValue("?x"); + IDatatype dt2 = map.getValue("?y"); + assertEquals(1, dt1.intValue()); + assertEquals(3, dt2.intValue()); + } + + @Test + public void testFuture() throws EngineException { + Graph g = createGraph(); + QueryProcess exec = QueryProcess.create(g); + String init = "insert data { rdf:value 1, 2, 3, 4, 5, 6, 7, 8 .}"; + String q = "template {" + + "st:number() ' : ' ?y}" + + "where {" + + "?x rdf:value ?y " + + "} order by desc(?y)"; + + exec.query(init); + Mappings map = exec.query(q); + String str = map.getTemplateStringResult(); + assertEquals(true, str.contains("8 : 1")); + + } + + public void testCal2() throws EngineException, LoadException { + Graph g = createGraph(); + QueryLoad ql = QueryLoad.create(); + String q = ql.read(data + "query/cal.rq"); + QueryProcess exec = QueryProcess.create(g); + Mappings map = exec.query(q); + IDatatype dt = map.getValue("?fr"); + assertEquals("Vendredi", dt.stringValue()); + //// System.out.println(Interpreter.getExtension()); + String qq = "prefix cal: " + + "select *" + + "where {" + + "?x ?p ?y " + + "filter (cal:jour(?y) = 'Mardi' )" + + "}"; + + String init = "insert data { " + + " rdf:value '2015-06-16'^^xsd:date ." + + " rdf:value '2015-06-17'^^xsd:date ." + + " rdf:value '2015-06-23'^^xsd:date ." + + "}"; + exec.query(init); + + Mappings m = exec.query(qq); + assertEquals(2, m.size()); + + } + + @Test + public void testBBB() throws EngineException { + Graph g = createGraph(); + QueryProcess exec = QueryProcess.create(g); + String init = "insert data { " + + " rdf:value 5 ." + + " rdf:value 30}"; + String q = "select * " + + "where {" + + "?x rdf:value ?y " + + "filter (xt:foo(?x, 10) || xt:foo(?x, 5))" + + "} " + + "function xt:foo(?x, ?n) { exists {?x rdf:value ?n} }"; + exec.query(init); + Mappings map = exec.query(q); + assertEquals(1, map.size()); + + } + + @Test + public void testreduce() throws EngineException { + QueryProcess exec = QueryProcess.create(Graph.create()); + String q = "select " + + "(reduce(rq:concat, xt:iota('a', 'c')) as ?con)" + + "(reduce(rq:plus, xt:iota(5)) as ?sum)" + + "(reduce(rq:mult, xt:iota(5)) as ?mul)" + + "where {}"; + Mappings map = exec.query(q); + IDatatype dt1 = map.getValue("?con"); + IDatatype dt2 = map.getValue("?sum"); + IDatatype dt3 = map.getValue("?mul"); + assertEquals("abc", dt1.stringValue()); + assertEquals(15, dt2.intValue()); + assertEquals(120, dt3.intValue()); + } + + @Test + public void testEEE2() throws EngineException { + Graph g = createGraph(); + QueryProcess exec = QueryProcess.create(g); + + String q = "select " + + "(reduce (rq:plus, maplist (xt:fun, xt:iota(0, 12))) as ?res)" + + "where {}" + + "function xt:fac(?n) { if (?n = 0, 1, ?n * xt:fac(?n - 1)) }" + + "function xt:fun(?x) { 1.0 / xt:fac(?x) }"; + + Mappings map = exec.query(q); + IDatatype dt = map.getValue("?res"); + assertEquals(2.71828, dt.doubleValue(), 0.0001); + + } + + @Test + public void testEEE() throws EngineException { + Graph g = createGraph(); + QueryProcess exec = QueryProcess.create(g); + String init = "insert data { rdf:value 1, 2, 3, 4, 5, 6, 7, 8 .}"; + String q = "select * " + + "(1 + sum(xt:foo(xsd:long(?n))) as ?res)" + + "where {" + + "?x rdf:value ?n" + + "}" + + "function xt:fac(?n) { if (?n = 0, 1, ?n * xt:fac(?n - 1)) }" + + "function xt:foo(?n) { 1 / xt:fac(?n) }"; + exec.query(init); + Mappings map = exec.query(q); + IDatatype dt = map.getValue("?res"); + assertEquals(2.71828, dt.doubleValue(), 0.0001); + + } + + @Test + public void testExtFun() throws EngineException, LoadException { + Graph g = createGraph(); + QueryProcess exec = QueryProcess.create(g); + + String query = "select " + + "( st:test(st:fac(?x)) as ?r)" + + "where {" + + "bind (5 as ?x)" + + "}" + + "function st:fac(?x) { if (?x = 1, 1, ?x * st:fac(?x - 1)) }" + + "function st:test(?x) { let(?y = ?x * ?x){ ?y} }"; + + String query2 = "select " + + "(st:test(st:fac(?x)) as ?r)" + + "where {" + + "bind (5 as ?x)}" + + "function st:fac(?x) { if (?x = 1, 1, ?x * st:fac(?x - 1)) } " + + "function st:test(?x) { let(?y = ?x * ?x){ ?y} } "; + + Mappings map = exec.query(query); + + IDatatype dt = map.getValue("?r"); + + assertEquals(14400, dt.intValue()); + + map = exec.query(query2); + + dt = map.getValue("?r"); + + assertEquals(14400, dt.intValue()); + + } + + @Test + public void myastpp() throws LoadException, EngineException { + GraphStore graph = GraphStore.create(); + QueryProcess exec = QueryProcess.create(graph); + + String init = "insert data {" + + " foaf:knows , " + + "graph st:test " + + "{" + + " rdfs:label 'John' " + + "" + + "}" + + "}"; + + exec.query(init); + + Graph g = GraphStore.create(); + QueryProcess exec2 = QueryProcess.create(g); + + String init2 = "insert data {" + + " foaf:knows , " + + " foaf:knows " + + " rdfs:label 'toto'" + + "}"; + + exec2.query(init2); + + graph.setNamedGraph(NSManager.STL + "sys", g); + + String q = "select * " + + "where {" + + "?x foaf:knows ?y " + + "graph st:sys {" + + "?y foaf:knows ?z, ?t " + + "filter exists { ?u rdfs:label 'toto' }" + + "filter not exists { ?u rdfs:label 'tata' }" + + "}" + + "graph st:test { " + + "?x rdfs:label ?n " + + "filter exists { ?a rdfs:label 'John' }" + + "filter not exists { ?u rdfs:label 'tata' }" + + "}" + + "}" + + ; + + Mappings map = exec.query(q); + + assertEquals(5, map.size()); + + } + + @Test + public void myastpp2() throws LoadException, EngineException { + GraphStore graph = GraphStore.create(); + QueryProcess exec = QueryProcess.create(graph); + + String init = "insert data {" + + " foaf:knows , " + + "graph st:test " + + "{" + + " rdfs:label 'John' " + + "" + + "}" + + "}"; + + exec.query(init); + + Graph g = GraphStore.create(); + QueryProcess exec2 = QueryProcess.create(g); + + String init2 = "insert data {" + + " foaf:knows , " + + " foaf:knows " + + " rdfs:label 'toto'" + + "}"; + + exec2.query(init2); + + graph.setNamedGraph(NSManager.STL + "sys", g); + + String q = "template {" + + "str(?res)" + + "}" + + "where {" + + "graph st:sys {" + + "bind (st:atw(st:turtle) as ?res)" + + "}" + + "}"; + Mappings map = exec.query(q); + //// System.out.println(map.getTemplateStringResult()); + assertEquals(258, map.getTemplateStringResult().length()); + + } + + public void myastpp3() throws LoadException, EngineException { + GraphStore graph = GraphStore.create(); + QueryProcess exec = QueryProcess.create(graph); + + String init = "insert data {" + + " foaf:knows , " + + "graph st:test " + + "{" + + " rdfs:label 'John' " + + "" + + "}" + + "}"; + + exec.query(init); + + Graph g = GraphStore.create(); + QueryProcess exec2 = QueryProcess.create(g); + + String init2 = "insert data {" + + " foaf:knows , " + + " foaf:knows " + + " rdfs:label 'toto'" + + "}"; + + exec2.query(init2); + + graph.setNamedGraph(NSManager.STL + "sys", g); + + String q = "template {" + + "str(?res)" + + "}" + + "where {" + + "graph st:sys {" + + "bind (st:atw('" + data + "template/test') as ?res)" + + "}" + + "}"; + Mappings map = exec.query(q); + ////// System.out.println(map); + assertEquals(map.getTemplateStringResult().length(), 0); + + } + + Graph createGraph() { + Graph g = Graph.create(); + Parameters p = Parameters.create(); + p.add(Parameters.type.MAX_LIT_LEN, 2); + g.setStorage(IStorage.STORAGE_FILE, p); + return g; + } + + @Test + public void testOWLRL() throws EngineException, LoadException { + GraphStore gs = GraphStore.create(); + QueryProcess.create(gs); + Load ld = Load.create(gs); + ld.parse(data + "template/owl/data/primer.owl"); + Transformer t = Transformer.create(gs, Transformer.OWLRL); + IDatatype dt = t.process(); + + assertEquals(DatatypeMap.FALSE, dt); + } + + // @Test + // public void testTCgg () throws EngineException{ + // GraphStore gs = GraphStore.create(); + // QueryProcess exec = QueryProcess.create(gs); + // Load ld = Load.create(gs); + // ld.load(data + "template/owl/data/success.ttl"); + // Transformer t = Transformer.create(gs, Transformer.OWLRL); + // IDatatype dt = t.process(); + // + // assertEquals(DatatypeMap.TRUE, dt); + // } + @Test + public void testgraph() throws EngineException { + Graph gs = createGraph(); + + Node g = gs.addGraph(FOAF + "gg"); + Node s = gs.addResource(FOAF + "John"); + Node p = gs.addProperty(FOAF + "name"); + Node o = gs.addLiteral("John"); + + Node b = gs.addBlank(); + Node q = gs.addProperty(FOAF + "knows"); + Node l = gs.addLiteral("Jack"); + + Node gg = gs.createNode(DatatypeMap.newResource(FOAF, "gg")); + Node ss = gs.createNode(DatatypeMap.newResource(FOAF, "Jim")); + Node pp = gs.createNode(DatatypeMap.newResource(FOAF, "age")); + Node oo = gs.createNode(DatatypeMap.newInstance(10)); + + IDatatype g2 = DatatypeMap.newResource(FOAF, "gg"); + IDatatype s2 = DatatypeMap.newResource(FOAF, "James"); + IDatatype p2 = DatatypeMap.newResource(FOAF, "age"); + IDatatype o2 = DatatypeMap.newInstance(10); + + gs.addEdge(g, s, p, o); + gs.addEdge(g, s, q, b); + gs.addEdge(g, b, p, l); + gs.add(gg, ss, pp, oo); + gs.insert(g2, s2, p2, o2); + + QueryProcess exec = QueryProcess.create(gs); + + String str = "select * where { ?x ?p ?y . ?y ?q ?z }"; + + Mappings m1 = exec.query(str); + assertEquals(1, m1.size()); + + String q2 = FOAF_PREF + + "select * where {" + + "?x foaf:age ?y" + + "}"; + + Mappings m2 = exec.query(q2); + assertEquals(2, m2.size()); + + String q3 = FOAF_PREF + + "select * where {" + + "?x foaf:pp* ?y" + + "}"; + + Mappings m3 = exec.query(q3); + //// System.out.println(m3); + assertEquals(7, m3.size()); + + } + + // @Test + public void testeng() throws EngineException, LoadException { + GraphStore gs = GraphStore.create(); + QueryProcess exec = QueryProcess.create(gs); + Load ld = Load.create(gs); + ld.parse(data + "template/owl/data/primer.owl"); + + String q = "select * where {" + + "graph eng:describe {" + + "[] kg:index 0 ; kg:item [ rdf:predicate ?p ; rdf:value ?v ] " + + "}" + + "filter exists { ?x ?p ?y }" + + "}"; + + Mappings map = exec.query(q); + + assertEquals(56, map.size()); + + // query the SPIN graph of previous query + q = "select * where {" + + "graph eng:query {" + + "[] sp:predicate ?p " + + "values ?p { rdf:predicate rdf:value} " + + "}" + + "}"; + + map = exec.query(q); + + assertEquals(2, map.size()); + } + + public void testTr() throws EngineException { + GraphStore gs = GraphStore.create(); + QueryProcess exec = QueryProcess.create(gs); + + String init = "prefix ex: " + + "insert data {" + + "ex:C4 owl:unionOf (ex:C5 ex:C6) " + + "ex:C0 owl:unionOf (ex:C2 ex:C3) " + + "ex:C1 owl:unionOf (ex:C2 ex:C3) " + + "}"; + + exec.query(init); + + String q = "select *" + + " where { " + + " ?x owl:unionOf (?c1 ?c2) ;" + + " owl:unionOf ?l" + + " }" + + "group by (st:apply-templates-with(st:hash2, ?l) as ?exp)"; + + Mappings map = exec.query(q); + + assertEquals(2, map.size()); + + } + + @Test + public void testExists() throws EngineException { + + Graph g1 = createGraph(); + QueryProcess exec = QueryProcess.create(g1); + Graph g2 = createGraph(); + QueryProcess exec2 = QueryProcess.create(g2); + String init1 = "insert data { " + + " rdfs:label 'John' " + + " rdfs:label 'James'" + + "}"; + + String init2 = "insert data { " + + " rdfs:label 'Jim' " + + "}"; + + String q = "select " + + "(group_concat (exists {" + + + "select (group_concat(exists {" + + "select (group_concat(exists {?x rdfs:label ?ll}) as ?temp) " + + "where { ?x rdfs:label ?l } } ) as ?temp) " + + "where {?x rdfs:label ?l}" + + + "} ) as ?res) " + + + "where {" + + "?x rdfs:label ?l " + + "}"; + + exec.query(init1); + exec2.query(init2); + + exec.add(g2); + + Mappings map = exec.query(q); + IDatatype dt = map.getValue("?res"); + //// System.out.println(map); + assertEquals("true true true", dt.stringValue()); + } + + @Test + public void testQQS() throws EngineException { + + Graph g = createGraph(); + QueryProcess exec = QueryProcess.create(g); + + String init = "insert data { " + + " rdfs:label 'John' " + + " rdfs:label 'James'" + + "}"; + + String q = "select * where {" + + "graph ?g {" + + "{" + + "?x rdfs:label 'John' " + + "filter exists { select * where {filter(?l = 'John') ?y rdfs:label ?l}} " + + "}" + + "union {filter(?l = 'John') ?x rdfs:label ?l}" + + "}" + + "" + + "" + + "}"; + + exec.query(init); + + Mappings map = exec.query(q); + assertEquals(2, map.size()); + + } + + @Test + public void testGTT() throws LoadException, EngineException { + + Graph g = createGraph(); + Load ld = Load.create(g); + ld.parse(RDF.RDF, Load.TURTLE_FORMAT); + ld.parse(RDFS.RDFS, Load.TURTLE_FORMAT); + + Transformer t = Transformer.createWE(g, Transformer.TURTLE, RDF.RDF); + String str = t.transform(); + // System.out.println("result:\n" + str); + assertEquals(6202, str.length()); + + t = Transformer.createWE(g, Transformer.TURTLE, RDFS.RDFS); + str = t.transform(); + // System.out.println(str); + assertEquals(3872, str.length()); + + t = Transformer.create(g, Transformer.TURTLE); + str = t.transform(); + //// System.out.println(str); + assertEquals(9859, str.length()); + } + + @Test + public void testGT() throws LoadException, EngineException { + Graph g = createGraph(); + Load ld = Load.create(g); + ld.parse(RDF.RDF, Load.TURTLE_FORMAT); + ld.parse(RDFS.RDFS, Load.TURTLE_FORMAT); + + String t1 = "template { st:apply-templates-with-graph(st:turtle, rdf:)} where {}"; + String t2 = "template { st:apply-templates-with-graph(st:turtle, rdfs:)} where {}"; + String t3 = "template { st:apply-templates-with(st:turtle)} where {}"; + + QueryProcess exec = QueryProcess.create(g); + Mappings map = exec.query(t1); + String str = map.getTemplateStringResult(); + //// System.out.println(str); + assertEquals(6202, str.length()); + + map = exec.query(t2); + str = map.getTemplateStringResult(); + // System.out.println(str); + assertEquals(3872, str.length()); + + map = exec.query(t3); + str = map.getTemplateStringResult(); + //// System.out.println(str); + assertEquals(9859, str.length()); + } + + @Test + public void testGCC() throws EngineException { + Graph g = createGraph(); + QueryProcess exec = QueryProcess.create(g); + + String init = "insert data {" + + " rdf:value 'test'@fr, 'titi'@fr . " + + " rdf:value 'test'@fr,'titi'@en . " + + " rdf:value 'test'@fr, 'titi' . " + + "}"; + + String q = "select ?x (group_concat(?v) as ?g) (datatype(?g) as ?dt)where {" + + "?x rdf:value ?v" + + "}" + + "group by ?x " + + "order by ?x"; + + exec.query(init); + + Mappings map = exec.query(q); + //// System.out.println(map); + + IDatatype dt0 = map.get(0).getValue("?g"); + assertEquals(true, dt0.getDatatypeURI().equals(NSManager.XSD + "string")); + + IDatatype dt1 = map.get(1).getValue("?g"); + assertEquals(true, dt1.getDatatypeURI().equals(NSManager.XSD + "string")); + + IDatatype dt2 = map.get(2).getValue("?g"); + assertEquals(true, dt2.getLang() != null && dt2.getLang().equals("fr")); + + } + + @Test + public void testTrig() throws LoadException, EngineException { + Graph g = Graph.create(true); + Load ld = Load.create(g); + ld.parse(RDF.RDF, Load.TURTLE_FORMAT); + ld.parse(RDFS.RDFS, Load.TURTLE_FORMAT); + + Transformer pp = Transformer.create(g, Transformer.TRIG); + String str = pp.transform(); + assertEquals(14923, str.length()); + + } + + @Test + public void testPPOWL() throws EngineException, LoadException { + Graph g = Graph.create(); + Load ld = Load.create(g); + //// System.out.println("Load"); + ld.parse(data + "template/owl/data/primer.owl"); + QueryProcess exec = QueryProcess.create(g); + + String t1 = "prefix f: " + + "template { st:apply-templates-with(st:owl)}" + + "where {}"; + + String t2 = "prefix f: " + + "template { st:apply-templates-with(st:turtle)}" + + "where {}"; + + Mappings map = exec.query(t1); + assertEquals(7764, map.getTemplateResult().getLabel().length()); + + map = exec.query(t2); + + assertEquals(9438, map.getTemplateResult().getLabel().length()); + + } + + @Test + public void testPPSPIN() throws EngineException, LoadException { + Graph g = createGraph(); + Load ld = Load.create(g); + //// System.out.println("Load"); + ld.parseDir(data + "template/spinhtml/data/"); + QueryProcess exec = QueryProcess.create(g); + + String t1 = "prefix f: " + + "template { st:apply-templates-with(st:spin)}" + + "where {}"; + + Mappings map = exec.query(t1); + int size = map.getTemplateResult().getLabel().length(); + assertTrue("Result not big enough: size = " + size, 3000 <= size); + + } + + @Test + public void testMove1() throws EngineException { + Graph g = createGraph(); + QueryProcess exec = QueryProcess.create(g); + + String init = "insert data {" + + "graph {" + + " rdfs:label 'John' ." + + " rdfs:seeAlso . " + + "}" + + "graph rdf: {" + + " rdfs:label 'John', 'Jim' ." + + " rdfs:seeAlso , . " + + "}" + + "graph {" + + " rdfs:label 'John' ." + + " rdfs:seeAlso . " + + "}" + + "}"; + + exec.query(init); + + String u1 = "move rdf: to default"; + + exec.query(u1); + + String q1 = "select * from kg:default where {?x ?p ?y}"; + String q2 = "select * from rdf: where {?x ?p ?y}"; + + Mappings m1 = exec.query(q1); + Mappings m2 = exec.query(q2); + assertEquals(4, m1.size()); + assertEquals(0, m2.size()); + + String u2 = "move to "; + + exec.query(u2); + + String q3 = "select * from where {?x ?p ?y}"; + String q4 = "select * from where {?x ?p ?y}"; + + Mappings m3 = exec.query(q3); + Mappings m4 = exec.query(q4); + + assertEquals(2, m3.size()); + assertEquals(0, m4.size()); + } + + @Test + public void testJoinDistinct() { + String init = "insert data {" + + " rdfs:label 'John', 'Jack' " + + "}"; + + String query = "select distinct ?x where {" + + "?x rdfs:label ?n " + + "{?x rdfs:label ?a} " + + "{?x rdfs:label ?b} " + + "}"; + + Graph g = createGraph(); + QueryProcess exec = QueryProcess.create(g); + + try { + exec.query(init); + Mappings map = exec.query(query); + //// System.out.println(map); + assertEquals("Result", 1, map.size()); + + } catch (EngineException e) { + assertEquals("Result", true, e); + } + + } + + @Test + public void testBase() { + NSManager nsm = NSManager.create(); + + nsm.setBase("http://example.org/test.html"); + nsm.setBase("foo/"); + nsm.definePrefix(":", "bar#"); + + String str = nsm.toNamespaceB(":Joe"); + + assertEquals("http://example.org/foo/bar#Joe", str); + + } + + @Test + public void testLoadJSONLD() throws LoadException { + + Graph g = createGraph(); + QueryProcess exec = QueryProcess.create(g); + Load ld = Load.create(g); + ld.parse(data + "jsonld/test.jsonld"); + + String init = "select " + + "(count(*) as ?c) " + + " where {" + + "?x ?p ?y" + + "}"; + + try { + Mappings map = exec.query(init); + IDatatype dt = map.getValue("?c"); + assertEquals("Result", 18, dt.intValue()); + //// System.out.println(g.display()); + + } catch (EngineException e) { + e.printStackTrace(); + } + } + + @Test + public void testJSONLD() throws LoadException, EngineException { + Graph g = Graph.create(true); + + QueryProcess exec = QueryProcess.create(g); + + String init = FOAF_PREF + + "insert data {" + + "foaf:knows rdfs:domain foaf:Person ; rdfs:range foaf:Person ." + + " foaf:knows " + + " foaf:knows " + + " foaf:knows " + + " a foaf:Person" + + "}"; + + exec.query(init); + + JSONLDFormat jf = JSONLDFormat.create(g); + String str = jf.toString(); + + assertEquals(true, str.length() > 0); + + } + + @Test + public void testDescr() { + + Graph g = createGraph(); + QueryProcess exec = QueryProcess.create(g); + + String q = "prefix ex: " + + "prefix foaf: " + + "describe ?z where {" + + "?x ?p ?y filter exists { ?x ?p ?z}" + + "}"; + + try { + Mappings map = exec.query(q); + ASTQuery ast = exec.getAST(map); + assertEquals(0, ast.getConstruct().size()); + } catch (EngineException e) { + e.printStackTrace(); + } + } + + // @Test + public void testRDFa() throws LoadException { + + Graph g = createGraph(); + QueryProcess exec = QueryProcess.create(g); + Load ld = Load.create(g); + ld.parseDir(data + "rdfa"); + + String init = "prefix ex: " + + "prefix foaf: " + + "select " + + "(count(*) as ?c) " + + " where {" + + "?x ?p ?y" + + "}"; + + try { + Mappings map = exec.query(init); + IDatatype dt = map.getValue("?c"); + assertEquals("Result", 11, dt.intValue()); + + } catch (EngineException e) { + e.printStackTrace(); + } + } + + @Test + public void testClear() throws LoadException, EngineException { + Graph g = Graph.create(true); + Load ld = Load.create(g); + + QueryProcess exec = QueryProcess.create(g); + + String q1 = "select * where {graph ?g {?x a ?t}}"; + String qrem = "clear all"; + + ld.parse(data + "math/data/fun.ttl"); + + Mappings map = exec.query(q1); + + int res = map.size(); + + exec.query(qrem); + + ld.parse(data + "math/data/fun.ttl"); + + map = exec.query(q1); + + assertEquals(res, map.size()); + + } + + @Test + public void testDT() throws EngineException { + GraphStore gs = GraphStore.create(); + // GraphStoreInit.create(gs).init(); + QueryProcess exec = QueryProcess.create(gs); + + String init = "insert data { " + + "[ rdf:value '2013-11-11'^^xsd:gYear " + + ", '2013-11-11'^^xsd:gMonth " + + ", '2013-11-11'^^xsd:gDay " + + ", 'ar'^^xsd:int " + + ", 'toto'^^xsd:double " + + "" + + "]}"; + + String q = "select (datatype(?y) as ?res) where {?x ?p ?y}"; + + exec.query(init); + + Mappings map = exec.query(q); + //// System.out.println(map); + + assertEquals(5, map.size()); + assertEquals(false, gs.getProxy().typeCheck()); + + } + + // @Test + public void testSystem() throws EngineException { + GraphStore gs = GraphStore.create(); + // GraphStoreInit.create(gs).init(); + QueryProcess exec = QueryProcess.create(gs); + + String init = "insert data { graph kg:system { " + + "kg:kgram kg:listen true " + + "kg:store sp:query true " + + "}}"; + + String q = "select * where {?x ?p ?y}"; + + String query = "select ?res where {" + + "graph kg:query {" + + "select (st:apply-templates-with(st:spin, ?q) as ?res) where {" + + "?q a sp:Select" + + "}" + + "}" + + "}"; + + exec.query(init); + exec.query(q); + + Mappings map = exec.query(query); + + IDatatype dt = map.getValue("?res"); + assertEquals(true, dt.getLabel().contains("?x ?p ?y")); + + } + + // @Test + public void testLoc2() throws EngineException, LoadException { + + String init = FOAF_PREF + + "insert data { " + + "[ foaf:knows ] . " + + " foaf:knows " + + " rdfs:label 'Jim' " + + " " + + "}"; + + GraphStore gs = GraphStore.create(); + // GraphStoreInit.create(gs).init(); + gs.getNamedGraph(Graph.SYSTEM); + QueryProcess exec = QueryProcess.create(gs); + + String q = FOAF_PREF + + "select *" + + "where {" + + "graph kg:system { " + + "?a kg:version+ ?b " + + "filter (" + + "?a != ?a || " + + "if (! (exists { ?a kg:date+ ?d } = false), true, false)" + + ")" + + "filter not exists { ?x foaf:knows ?y }" + + "}" + + "}"; + + exec.query(init); + Mappings map = exec.query(q); + assertEquals("result", 1, map.size()); + } + + @Test + public void testLoc() throws EngineException, LoadException { + + String init = FOAF_PREF + + "insert data { " + + "graph kg:system { " + + " kg:kgram kg:version '3.0.22' ;" + + " kg:date '2013-11-27'^^xsd:date ;" + + " kg:skolem true " + + "}} ;" + + "insert data { " + + "[ foaf:knows ]" + + " " + + "}"; + + GraphStore g = GraphStore.create(); + g.createNamedGraph(Graph.SYSTEM); + QueryProcess exec = QueryProcess.create(g); + + String q1 = "select *" + + "where {" + + "graph ?g { ?x ?p ?y }" + + "}"; + + exec.query(init); + Mappings map = exec.query(q1); + + assertEquals("result", 1, map.size()); + + String q2 = "select *" + + "where {" + + "graph kg:system { ?x ?p ?y }" + + "}"; + + exec.query(init); + map = exec.query(q2); + + assertEquals("result", 3, map.size()); + + } + + @Test + public void testTurtle() throws EngineException { + Graph g = createGraph(); + QueryProcess exec = QueryProcess.create(g); + String init = "prefix foaf: " + + "insert data { " + + " foaf:name 'John' ; " + + "foaf:knows [ foaf:name 'Jim' ]" + + "}"; + + String temp = "template {st:apply-templates-with(st:turtle)} where {}"; + exec.query(init); + Mappings map = exec.query(temp); + Node node = map.getTemplateResult(); + assertEquals("result", node == null, false); + if (node != null) { + assertEquals("result", node.getLabel().contains("John"), true); + assertEquals("result", node.getLabel().contains("Property"), false); + } + } + + @Test + public void testTurtle2() throws EngineException { + Graph g = Graph.create(true); + QueryProcess exec = QueryProcess.create(g); + String init = "prefix foaf: " + + "insert data { " + + " foaf:name 'John' ; " + + "foaf:knows [ foaf:name 'Jim' ]" + + "}"; + + String temp = "template {st:call-template-with(st:turtle, st:all)} where {}"; + exec.query(init); + Mappings map = exec.query(temp); + Node node = map.getTemplateResult(); + assertEquals("result", node == null, false); + if (node != null) { + assertEquals("result", node.getLabel().contains("John"), true); + assertEquals("result", node.getLabel().contains("Property"), true); + } + } + + // @Test + public void testQV() { + Graph g = createGraph(); + Load.create(g); + QueryProcess exec = QueryProcess.create(g); + + String init = "prefix foaf: " + + "insert data {" + + " foaf:knows ( )" + + "}"; + + String query = "prefix foaf: " + + "select * where {" + + "?x foaf:knows ( ?x) " + + "}" + + "pragma {" + + "kg:list kg:expand true" + + "}" + + ""; + try { + exec.query(init); + // exec.setVisitor(ExpandList.create()); + Mappings map = exec.query(query); + assertEquals(1, map.size()); + + } catch (EngineException ex) { + assertEquals(ex, true); + } + + } + + // @Test + // public void testQM() { + // Graph g = createGraph(); + // QueryManager man = QueryManager.create(g); + // QueryProcess exec = QueryProcess.create(g); + // String init = "prefix foaf: " + // + "insert data {" + // + " foaf:name 'John' ; foaf:age 18 ." + // + " foaf:name 'Jim' ; foaf:knows ." + // + "}"; + // + // String query = "prefix sp: " + // + "prefix foaf: " + // + "select * where {" + // + "?x foaf:name ?n " + // + "?x foaf:knows ?p " + // + "minus { ?x foaf:age ?a } " + // + " foaf:fake ?f " + // + "?f a foaf:Person " + // + "?f sp:elements ?e " + // + "?f sp:test ?t " + // + "filter(?b >= 20)" + // + "}"; + // try { + // exec.query(init); + // Mappings map = man.query(query); + // assertEquals("result", 1, map.size()); + // ////System.out.println(map.getQuery().getAST()); + // ////System.out.println(map); + // ////System.out.println("size: " + map.size()); + // + // + // } catch (EngineException ex) { + // assertEquals("result", true, ex); + // } + // + // } + + @Test + public void testPPSPINwdfgdwfgd() throws EngineException, LoadException { + File f = new File(data + "template/spinhtml/data/"); + + for (File ff : f.listFiles()) { + System.out.println(ff); + testSPPP(ff.getAbsolutePath()); + } + } + + public void testSPPP(String path) throws EngineException, LoadException { + String t1 = "prefix f: " + + "template { st:apply-templates-with(st:spin)}" + + "where {}"; + Graph g = createGraph(); + Load ld = Load.create(g); + //// System.out.println("Load"); + ld.parseDir(path); + + QueryProcess exec = QueryProcess.create(g); + + Mappings map = exec.query(t1); + //// System.out.println(map.getTemplateStringResult()); + try { + exec.compile(map.getTemplateStringResult()); + assertEquals(true, true); + } catch (UndefinedExpressionException e) { + System.out.println("trap1: " + e.getMessage()); + } catch (EngineException e) { + System.out.println("trap2: " + e.getMessage()); + assertEquals(true, false); + } + } + + @Test + public void testSPIN() { + Graph g = Graph.create(true); + + String init = "prefix foaf: " + + "insert data {" + + " a foaf:Person ; foaf:knows " + + " a foaf:Person " + + "}"; + + String query = "prefix foaf: " + + "select ?x (count(?y) as ?c) where {" + + " { ?x a foaf:Test } union { ?x a foaf:Person ; foaf:pp* :: $path ?z }" + + "optional { ?x foaf:knows ?y } " + + "minus { ?x a foaf:Test } " + + "filter(bound(?x) && ?x != 12)" + + "}" + + "group by ?x " + + "having (?c >= 0)"; + try { + + SPINProcess sp = SPINProcess.create(); + QueryProcess exec = QueryProcess.create(g); + exec.query(init); + String str = sp.toSpinSparql(query); + Mappings map = exec.query(str); + //// System.out.println(map); + //// System.out.println(map.getQuery().getAST()); + assertEquals("result", 2, map.size()); + + } catch (EngineException ex) { + } + + } + + @Test + public void testDistType() { + Graph g1 = Graph.create(true); + Graph g2 = createGraph(); + + QueryProcess e1 = QueryProcess.create(g1); + e1.add(g2); + QueryProcess e2 = QueryProcess.create(g2); + + String init = "prefix foaf: " + + "insert data {" + + " a foaf:Person " + + "}"; + + String query = "prefix foaf: " + + "select * where {" + + " ?x a foaf:Person " + + "}"; + try { + e2.query(init); + Mappings map = e1.query(query); + //// System.out.println(map); + assertEquals("result", 1, map.size()); + } catch (EngineException ex) { + } + + } + + // @Test + public void testPPLib() { + assertEquals("result", true, test("owl.rul") != null); + assertEquals("result", true, test("spin.rul") != null); + assertEquals("result", true, test("sql.rul") != null); + assertEquals("result", true, test("turtle.rul") != null); + } + + InputStream test(String pp) { + String lib = Loader.PPLIB; + + InputStream stream = getClass().getResourceAsStream(lib + pp); + if (stream != null) { + try { + stream.close(); + } catch (IOException ex) { + } + } + return stream; + } + + @Test + public void testDataset() { + Graph g = Graph.create(true); + Load.create(g); + Dataset ds = Dataset.create(); + ds.setUpdate(true); + ds.addFrom("http://inria.fr/g2"); + ds.addNamed("http://inria.fr/g1"); + + String init = "prefix foaf: " + + "insert data {" + + "graph {" + + " foaf:name 'John' ; a foaf:Person" + + "}" + + "graph {" + + " foaf:name 'Jim' ; a foaf:Person" + + "}" + + "graph {" + + "foaf:Person rdfs:subClassOf foaf:Human" + + "}" + + "}"; + + String query = "prefix foaf: " + + "select * " + + "from named " + + "where {" + + " {?x rdf:type foaf:Person ; ?p ?y}" + + "}"; + + String query2 = "prefix foaf: " + + "select * " + + "from " + + "where {" + + " graph ?g {?x rdf:type foaf:Person ; ?p ?y}" + + "}"; + + // String update = "prefix foaf: " + // + "delete where {?x ?p ?y}"; + + try { + QueryProcess sparql = QueryProcess.create(g); + sparql.query(init); + + Mappings map = sparql.sparql(query, ds); + assertEquals("result", 0, map.size()); + + QueryProcess exec = QueryProcess.create(g); + Mappings map2 = exec.query(query, ds); + assertEquals("result", 2, map2.size()); + + map = sparql.sparql(query2, ds); + assertEquals("result", 0, map.size()); + + map2 = exec.query(query2, ds); + assertEquals("result", 2, map2.size()); + + } catch (EngineException ex) { + //// System.out.println(ex); + } + + } + + @Test + public void TestOnto() { + Graph g = Graph.create(true); + QueryProcess exec = QueryProcess.create(g); + + String init = "prefix c: " + + "insert data {" + + "c:Human rdfs:subClassOf c:Animal " + + "c:Man rdfs:subClassOf c:Human " + + "c:Woman rdfs:subClassOf c:Human " + + "" + + " a c:Man " + + " a c:Cat " + + " a c:Woman " + + " a c:Human " + + "}"; + + String query = "prefix c: " + + "select * where {" + + "?x a c:Human, ?t" + + "}"; + try { + exec.query(init); + exec.query(query); + //// System.out.println(map); + //// System.out.println(map.size()); + } catch (EngineException ex) { + } + } + + /** + * Test With valueOut + */ + @Test + public void testValues() { + String init = "insert data {" + + " foaf:age '21'^^xsd:double " + + " foaf:age 21.0 " + + "}"; + + String query = "select * where {" + + "?x foaf:age ?a " + + "?y foaf:age ?b " + + "filter (?a = ?b && ?x != ?y) " + + "}"; + + String query2 = "select * where {" + + "{select (21.0 as ?a) where { }}" + + "?x foaf:age ?a " + + "}"; + + String query3 = "select distinct * where {" + + "?x foaf:age ?a " + + "}" + + "values ?a { 21 21.0 }"; + + Graph g = createGraph(); + QueryProcess exec = QueryProcess.create(g); + // exec.definePrefix("foaf", "http://xmlns.com/foaf/0.1/"); + + try { + exec.query(init); + Mappings map = exec.query(query); + //// System.out.println(map); + assertEquals("Result", 2, map.size()); + + map = exec.query(query2); + //// System.out.println(map); + assertEquals("Result", 1, map.size()); + + map = exec.query(query3); + // System.out.println(map); + assertEquals("Result", 2, map.size()); + + } catch (EngineException e) { + assertEquals("Result", 2, e); + } + + } + + @Test + public void testValues2() { + String init = "prefix foaf: " + + "insert data {" + + " foaf:name 'http://www.inria.fr' " + + " foaf:name 'http://www.inria.fr' " + + " foaf:name " + + " foaf:name " + + " foaf:name 'http://www.inria.fr'@en " + + " foaf:name 'http://www.inria.fr'@en " + + "}"; + + String query = "prefix foaf: " + + "select * where {" + + "?x foaf:name ?a " + + "?y foaf:name ?a " + + "filter(?x < ?y) " + + "}"; + + Graph g = createGraph(); + QueryProcess exec = QueryProcess.create(g); + + try { + exec.query(init); + Mappings map = exec.query(query); + //// System.out.println(map); + assertEquals("Result", 3, map.size()); + + } catch (EngineException e) { + assertEquals("Result", 2, e); + } + + } + + // @Test + public void testMath() { + Graph g = createGraph(); + Load ld = Load.create(g); + + try { + ld.parseDir(data + "math/data"); + } catch (LoadException e1) { + e1.printStackTrace(); + } + + String q = "prefix m: " + + "template { st:apply-templates-with(?p) }" + + "where { ?p a m:PrettyPrinter }"; + + QueryProcess exec = QueryProcess.create(g); + + try { + Mappings map = exec.query(q); + Node node = map.getTemplateResult(); + + //// System.out.println(node.getLabel()); + + assertEquals("result", true, node.getLabel().length() > 10); + + } catch (EngineException e) { + e.printStackTrace(); + } + + } + + @Test + public void testGC() { + + Graph graph = createGraph(); + QueryProcess exec = QueryProcess.create(graph); + + String init = "prefix ex: " + + "insert data {" + + "[ex:name 'John' , 'Jim']" + + "[ex:name 'John' , 'Jim']" + + "}" + + ""; + + String query2 = "prefix ex: " + + "select (group_concat( concat(self(?n1), ?n2) ; separator='; ') as ?t) where {" + + "?x ex:name ?n1 " + + "?y ex:name ?n2 " + + "filter(?x != ?y)" + + "" + + "}"; + + try { + exec.query(init); + + Mappings map = exec.query(query2); + IDatatype dt = map.getValue("?t"); + assertEquals("Results", 70, dt.getLabel().length()); + + } catch (EngineException e) { + e.printStackTrace(); + } + + } + + // @Test + public void test1() { + String query = "prefix c: " + + "select check where {" + + "?x rdf:type c:Person ;" + + "c:FirstName 'John' ;" + + "c:name ?n" + + "}"; + QueryProcess exec = QueryProcess.create(graph); + try { + exec.query(query); + assertEquals("Result", true, true); + } catch (EngineException e) { + assertEquals("Result", true, e); + } + } + + @Test + public void test2() { + String query = "prefix c: " + + "select more * (kg:similarity() as ?sim) where {" + + "?x rdf:type c:Engineer " + + "?x c:hasCreated ?doc " + + "?doc rdf:type c:WebPage" + + "}" + + "order by desc(?sim)"; + QueryProcess exec = QueryProcess.create(graph); + try { + Mappings map = exec.query(query); + IDatatype dt = getValue(map, "?sim"); + assertEquals("Result", true, dt != null); + if (dt != null) { + double sim = dt.doubleValue(); + assertEquals("Result", .84, sim, 1e-2); + } + } catch (EngineException e) { + assertEquals("Result", true, e); + } + } + + @Test + public void test2b() { + String query = "prefix c: " + + "select more * (kg:similarity() as ?sim) where {" + + "?x rdf:type ?c1 filter(kg:similarity(?c1, c:Engineer) > .5) " + + "?x c:hasCreated ?doc " + + "?doc rdf:type ?c2 filter(kg:similarity(?c2, c:WebPage) > .4)" + + "}" + + "order by desc(?sim)"; + QueryProcess exec = QueryProcess.create(graph); + try { + Mappings map = exec.query(query); + + assertEquals("Result", 9, map.size()); + } catch (EngineException e) { + assertEquals("Result", true, e); + } + } + + @Test + public void test2c() { + String query = "prefix c: " + + "select (kg:similarity(c:Person, c:Document) as ?sim) where {}"; + QueryProcess exec = QueryProcess.create(graph); + try { + Mappings map = exec.query(query); + IDatatype dt = getValue(map, "?sim"); + double sim = dt.doubleValue(); + + assertEquals("Result", sim, .16, 1e-2); + } catch (EngineException e) { + assertEquals("Result", true, e); + } + } + + @Test + public void test4() { + Load ld = Load.create(Graph.create()); + try { + ld.parse("gogo.rdf"); + assertEquals("Result", false, true); + } catch (LoadException e) { + //// System.out.println(e); + assertEquals("Result", e, e); + } + try { + ld.parse(data + "comma/fail.rdf"); + assertEquals("Result", false, true); + } catch (LoadException e) { + //// System.out.println(e); + assertEquals("Result", e, e); + } + } + + @Test + public void test5() { + Graph graph = Graph.create(true); + QueryProcess exec = QueryProcess.create(graph); + + String update = "prefix c: " + + "insert data {" + + " c:name 'John' ; rdf:value (1 2 3)" + + "c:name rdfs:domain c:Person " + + "c:Person rdfs:subClassOf c:Human " + + "}"; + + String query = "prefix c: " + + "select * where {" + + "?x rdf:type c:Human ; c:name ?n ;" + + "rdf:value @(1 2)" + + "}"; + + try { + exec.query(update); + Mappings map = exec.query(query); + + assertEquals("Result", 1, map.size()); + } catch (EngineException e) { + assertEquals("Result", true, e); + } + } + + @Test + public void test6() { + Graph graph = Graph.create(true); + QueryProcess exec = QueryProcess.create(graph); + + String update = "prefix c: " + + "insert data {" + + " c:name 'John' ; rdf:value (1 2 3)" + + "c:name rdfs:domain c:Person " + + "c:Person rdfs:subClassOf c:Human " + + "}"; + + String drop = "drop graph kg:entailment"; + + String query = "prefix c: " + + "select * where {" + + "?x rdf:type c:Human ; c:name ?n ;" + + "rdf:value @(1 2)" + + "}"; + + try { + exec.query(update); + exec.query(drop); + Mappings map = exec.query(query); + + assertEquals("Result", 0, map.size()); + } catch (EngineException e) { + assertEquals("Result", true, e); + } + } + + @Test + public void test7() { + Graph graph = Graph.create(true); + QueryProcess exec = QueryProcess.create(graph); + + String update = "prefix c: " + + "insert data {" + + " c:name 'John' ; rdf:value (1 2 3)" + + "c:name rdfs:domain c:Person " + + "c:Person rdfs:subClassOf c:Human " + + "}"; + + String drop = "drop graph kg:entailment"; + String create = "create graph kg:entailment"; + + String query = "prefix c: " + + "select * where {" + + "?x rdf:type c:Human ; c:name ?n ;" + + "rdf:value @(1 2)" + + "}"; + + try { + exec.query(update); + exec.query(drop); + exec.query(create); + Mappings map = exec.query(query); + + assertEquals("Result", 1, map.size()); + } catch (EngineException e) { + assertEquals("Result", true, e); + } + } + + public void test8() { + + String query = "prefix c: " + + "select * where {" + + "?x c:hasCreated ?doc" + + "} " + + "group by any " + + "order by desc(count(?doc))" + + "pragma {" + + "kg:kgram kg:list true " + + "kg:kgram kg:detail true}"; + + try { + QueryProcess exec = QueryProcess.create(graph); + Mappings map = exec.query(query); + assertEquals("Result", 3, map.size()); + Mapping m = map.get(0); + assertEquals("Result", 2, m.getMappings().size()); + + } catch (EngineException e) { + assertEquals("Result", true, e); + } + } + + @Test + public void test9() { + + Graph g1 = Graph.create(true); + Graph g2 = Graph.create(true); + + String query = "prefix c: " + + "select * where {" + + "?x rdf:type ?t; c:name ?n" + + "} "; + + try { + QueryProcess e1 = QueryProcess.create(g1); + QueryProcess e2 = QueryProcess.create(g2); + QueryProcess exec = QueryProcess.create(g1); + exec.add(g2); + + e1.query("prefix c: " + "insert data { rdf:type c:Person}"); + e2.query("prefix c: " + "insert data { c:name 'John'}"); + + Mappings map = exec.query(query); + assertEquals("Result", 1, map.size()); + + } catch (EngineException e) { + assertEquals("Result", true, e); + } + } + + // @Test + // public void test10() { + // + // String query = "select * where {" + // + "bind (kg:unnest(kg:sparql('select * where {?x rdf:type c:Person; + // c:hasCreated ?doc}')) " + // + "as (?a, ?b))" + // + "} "; + // + // try { + // + // QueryProcess exec = QueryProcess.create(graph); + // + // Mappings map = exec.query(query); + // assertEquals("Result", 3, map.size()); + // Node node = map.getNode("?a"); + // assertEquals("Result", true, node != null); + // + // } catch (EngineException e) { + // assertEquals("Result", true, e); + // } + // } + // @Test + // public void test10cons() { + // + // String query = + // "prefix c: " + // + "select * where {" + // + "bind ((kg:sparql('" + // + "prefix c: " + // + "construct where {?x rdf:type c:Person; c:hasCreated ?doc}')) " + // + "as ?g)" + // + "graph ?g { ?a ?p ?b }" + // + "} "; + // + // try { + // + // QueryProcess exec = QueryProcess.create(graph); + // + // Mappings map = exec.query(query); + // assertEquals("Result", 5, map.size()); + // + // + // } catch (EngineException e) { + // assertEquals("Result", true, e); + // } + // } + // @Test + // public void test11() { + // + // String query ="prefix c: " + + // "select * (count(?doc) as ?c)" + // + "(kg:setObject(?x, ?c) as ?t)" + // + "where {" + // + "?x c:hasCreated ?doc" + // + "" + // + "}" + // + "group by ?x"; + // + // String query2 ="prefix c: " + + // "select distinct ?x" + // + "(kg:getObject(?x) as ?v)" + // + "where {" + // + "?x c:hasCreated ?doc filter(kg:getObject(?x) > 0)" + // + "}" + // + "order by desc(kg:getObject(?x))"; + // + // + // try { + // + // QueryProcess exec = QueryProcess.create(graph); + // + // exec.query(query); + // Mappings map = exec.query(query2); + // + // assertEquals("Result", 3, map.size()); + // + // IDatatype dt = getValue(map, "?v"); + // + // assertEquals("Result", 2, dt.getIntegerValue()); + // + // } catch (EngineException e) { + // assertEquals("Result", true, e); + // } + // } + + public void test111() { + + String query = "prefix c: " + + "select * (count(?doc) as ?c)" + + "(kg:setProperty(?x, 0, ?c) as ?t)" + + "where {" + + "?x c:hasCreated ?doc" + + "" + + "}" + + "group by ?x"; + + String query2 = "prefix c: " + + "select distinct ?x" + + "(kg:getProperty(?x, 0) as ?v)" + + "where {" + + "?x c:hasCreated ?doc filter(kg:getProperty(?x, 0) > 0)" + + "}" + + "order by desc(kg:getProperty(?x, 0))"; + + try { + + QueryProcess exec = QueryProcess.create(graph); + + exec.query(query); + Mappings map = exec.query(query2); + + assertEquals("Result", 3, map.size()); + + IDatatype dt = getValue(map, "?v"); + + assertEquals("Result", 2, dt.intValue()); + + } catch (EngineException e) { + assertEquals("Result", true, e); + } + } + + @Test + public void test12() { + + String query = "prefix c: " + "select * where {" + + "?x rdf:type ?class; c:hasCreated ?doc}"; + + try { + + QueryProcess.setSort(true); + QueryProcess exec = QueryProcess.create(graph); + Mappings map = exec.query(query); + QueryProcess.setSort(false); + + assertEquals("Result", 22, map.size()); + + } catch (EngineException e) { + assertEquals("Result", true, e); + } + } + + @Test + public void test13() { + + String query = "prefix c: " + "select * where {" + + "?x rdf:type ?class; c:hasCreated ?doc}"; + + try { + + QueryProcess exec = QueryProcess.create(graph); + StatListener el = StatListener.create(); + exec.addEventListener(el); + Mappings map = exec.query(query); + ////// System.out.println(el); + assertEquals("Result", 22, map.size()); + + } catch (EngineException e) { + assertEquals("Result", true, e); + } + } + + @Test + public void test14() { + + String query = "prefix c: " + "select * where {" + + "?x rdf:type c:Person; c:hasCreated ?doc " + + "?doc rdf:type/rdfs:subClassOf* c:Document " + + "c:Document rdfs:label ?l ;" + + "rdfs:comment ?c" + + "}"; + + try { + + Graph g = Graph.create(true); + Load ld = Load.create(g); + // ld.setBuild(new MyBuild(g)); + try { + init(g, ld); + } catch (LoadException ex) { + } + + QueryProcess exec = QueryProcess.create(g); + Mappings map = exec.query(query); + assertEquals("Result", 68, map.size()); + + } catch (EngineException e) { + assertEquals("Result", true, e); + } + + } + + @Test + public void test15() { + + String query = "select (kg:similarity() as ?sim) (max(kg:depth(?x)) as ?max) where {" + + "?x rdfs:subClassOf ?sup" + + "}"; + + try { + + QueryProcess exec = QueryProcess.create(graph); + Mappings map = exec.query(query); + IDatatype dt = getValue(map, "?max"); + assertEquals("Result", 14, dt.intValue()); + + } catch (EngineException e) { + assertEquals("Result", true, e); + } + + } + + @Test + public void test16() { + + String query = "prefix c: " + + "select * (st:number() as ?num) where {" + + "?x c:hasCreated ?doc " + + "}"; + + try { + + QueryProcess exec = QueryProcess.create(graph); + Mappings map = exec.query(query); + Mapping m = map.get(map.size() - 1); + IDatatype dt = datatype(m.getNode("?num")); + //// System.out.println(map); + assertEquals("Result", map.size(), dt.intValue()); + } catch (EngineException e) { + assertEquals("Result", true, e); + } + + } + + @Test + public void test17() throws LoadException { + + Graph g = Graph.create(true); + Load ld = Load.create(g); + ld.parse(data + "comma/comma.rdfs"); + + QueryProcess exec = QueryProcess.create(g); + String query = "prefix c: " + + "select (kg:similarity(c:Person, c:Document) as ?sim) {}"; + try { + Mappings map = exec.query(query); + IDatatype dt = getValue(map, "?sim"); + + assertEquals("Result", true, dt.doubleValue() < 0.5); + + String update = "prefix c: " + + "insert data {c:Human rdfs:subClassOf c:Person}"; + exec.query(update); + + // assertEquals("Result", null, g.getClassDistance()); + + map = exec.query(query); + IDatatype sim = getValue(map, "?sim"); + + assertEquals("Result", dt, sim); + + } catch (EngineException e) { + assertEquals("Result", true, e); + } + + } + + @Test + public void test18() { + String query = "prefix c: " + + "select * where {" + + "c:Person rdfs:subClassOf+ :: $path ?c " + + "graph $path {?a ?p ?b}" + + "}"; + + QueryProcess exec = QueryProcess.create(graph); + + try { + Mappings map = exec.query(query); + assertEquals("Result", 31, map.size()); + } catch (EngineException e) { + assertEquals("Result", 31, e); + } + + } + + @Test + public void test19() { + String query = "prefix c: " + + "select * " + + "(xt:size($path) as ?l) (count(?a) as ?c) where {" + + "?x c:isMemberOf+ :: $path ?org " + + "graph $path {?a ?p ?b}" + + "}" + + "group by $path"; + + QueryProcess exec = QueryProcess.create(graph); + + try { + Mappings map = exec.query(query); + assertEquals("Result", 99, map.size()); + + for (Mapping mm : map) { + IDatatype ldt = getValue(mm, "?l"); + IDatatype lc = getValue(mm, "?c"); + + assertEquals("Result", ldt, lc); + } + + } catch (EngineException e) { + assertEquals("Result", 99, e); + } + + } + + public IDatatype fun(IDatatype dt1, IDatatype dt2) { + String str = concat(dt1, dt2); + return DatatypeMap.newLiteral(str); + } + + String concat(IDatatype dt1, IDatatype dt2) { + return dt1.stringValue() + "." + dt2.getLabel(); + } + + @Test + public void test20() { + String query = "prefix c: " + + "prefix ext: " + + "select (ext:fun(?fn, ?ln) as ?res) where {" + + "?x c:FirstName ?fn ; c:FamilyName ?ln" + + "}"; + + QueryProcess exec = QueryProcess.create(graph); + + try { + Mappings map = exec.query(query); + assertEquals("Result", 23, map.size()); + + for (Mapping mm : map) { + IDatatype dt1 = getValue(mm, "?fn"); + IDatatype dt2 = getValue(mm, "?ln"); + IDatatype dt3 = getValue(mm, "?res"); + + assertEquals("Result", dt3.getLabel(), concat(dt1, dt2)); + } + + } catch (EngineException e) { + assertEquals("Result", 23, e); + } + + } + + @Test + public void test21() { + String query = "prefix c: " + + "select * where {" + + "?x c:FirstName 'Olivier' " + + "filter(kg:contains('é', 'e')) " + + "filter(kg:contains('e', 'é')) " + + "filter(kg:equals('e', 'é')) " + + "}"; + + QueryProcess exec = QueryProcess.create(graph); + + try { + Mappings map = exec.query(query); + assertEquals("Result", 2, map.size()); + + } catch (EngineException e) { + assertEquals("Result", 2, e); + } + + } + + @Test + public void test22() { + + String query = "prefix c: " + + "select " + + "where {" + + "c:Engineer rdfs:subClassOf+ :: $path ?y " + + "graph $path {?a ?p ?b}" + + "}"; + + try { + + QueryProcess exec = QueryProcess.create(graph); + Mappings map = exec.query(query); + getValue(map, "?max"); + assertEquals("Result", 64, map.size()); + + } catch (EngineException e) { + assertEquals("Result", true, e); + } + + } + + @Test + public void test23() { + + String query = "prefix c: " + + "select " + + "where {" + + "c:Engineer rdfs:subClassOf+ :: $path ?y " + + "graph $path {{c:Toto ?p ?b} union {c:Engineer ?p ?b}}" + + "}"; + + try { + + QueryProcess exec = QueryProcess.create(graph); + Mappings map = exec.query(query); + getValue(map, "?max"); + assertEquals("Result", 17, map.size()); + + } catch (EngineException e) { + assertEquals("Result", true, e); + } + + } + + @Test + public void test24() { + + String query = "prefix c: " + + "select " + + "where {" + + "c:Engineer rdfs:subClassOf+ :: $path ?y " + + "graph $path {?a ?p ?b filter(?a = c:Engineer)}" + + "}"; + + try { + + QueryProcess exec = QueryProcess.create(graph); + Mappings map = exec.query(query); + getValue(map, "?max"); + assertEquals("Result", 17, map.size()); + + } catch (EngineException e) { + assertEquals("Result", true, e); + } + + } + + @Test + public void test25() { + + String query = "prefix c: " + + "select " + + "where {" + + "c:Engineer rdfs:subClassOf+ :: $path ?y " + + "graph $path {optional{c:Engineer ?p ?b} filter(! bound(?b))}" + + "}"; + + try { + + QueryProcess exec = QueryProcess.create(graph); + Mappings map = exec.query(query); + getValue(map, "?max"); + assertEquals("Result", 0, map.size()); + + } catch (EngineException e) { + assertEquals("Result", true, e); + } + + } + + @Test + public void test26() { + + String query = "prefix c: " + + "select " + + "where {" + + "c:Engineer rdfs:subClassOf+ :: $path ?y " + + "graph $path {optional{c:Toto ?p ?b} filter(! bound(?b))}" + + "}"; + + try { + + QueryProcess exec = QueryProcess.create(graph); + Mappings map = exec.query(query); + getValue(map, "?max"); + assertEquals("Result", 17, map.size()); + + } catch (EngineException e) { + assertEquals("Result", true, e); + } + + } + + @Test + public void test27() { + + String query = "prefix c: " + + "select " + + "where {" + + "c:Engineer rdfs:subClassOf+ :: $path ?y " + + "graph $path {{c:Engineer ?p ?b} minus {?a ?p c:Engineer}}" + + "}"; + + try { + + QueryProcess exec = QueryProcess.create(graph); + Mappings map = exec.query(query); + assertEquals("Result", 17, map.size()); + + } catch (EngineException e) { + assertEquals("Result", true, e); + } + + } + + @Test + public void test28() { + + String query = "prefix c: " + + "select " + + "where {" + + "c:Engineer rdfs:subClassOf+ :: $path ?y " + + "graph $path {c:Engineer ?p ?b} " + + "?x rdf:type c:Engineer " + + "}"; + + try { + + QueryProcess exec = QueryProcess.create(graph); + Mappings map = exec.query(query); + assertEquals("Result", 119, map.size()); + + } catch (EngineException e) { + assertEquals("Result", true, e); + } + + } + + public void test30() { + + String query = "select " + + "(xt:size($path) as ?l) " + + "(max(?l, groupBy(?x, ?y)) as ?m) " + + "(max(?m) as ?max) " + + "where {" + + "?x rdfs:subClassOf+ :: $path ?y" + + "}"; + + try { + + QueryProcess exec = QueryProcess.create(graph); + Mappings map = exec.query(query); + IDatatype dt = getValue(map, "?max"); + assertEquals("Result", 13, dt.intValue()); + + } catch (EngineException e) { + assertEquals("Result", true, e); + } + + } + + @Test + public void test31() { + String query = "select (count(?l) as ?c1) " + + "(count(distinct ?l) as ?c2) " + + "(count(distinct self(?l)) as ?c3) " + + "where {" + + "?x rdfs:label ?l" + + "}"; + QueryProcess exec = QueryProcess.create(graph); + try { + Mappings map = exec.query(query); + IDatatype dt1 = getValue(map, "?c1"); + IDatatype dt2 = getValue(map, "?c2"); + IDatatype dt3 = getValue(map, "?c3"); + + assertEquals("Result", 1406, dt1.intValue()); + assertEquals("Result", 1367, dt2.intValue()); + assertEquals("Result", 1367, dt3.intValue()); + + } catch (EngineException e) { + assertEquals("Result", true, e); + } + } + + @Test + public void test33() { + // select (group_concat(distinct ?x, ?y) as ?str) + Graph g = createGraph(); + QueryProcess exec = QueryProcess.create(g); + + String update = "insert data {" + + " foaf:knows " + + " foaf:knows " + + "}"; + + String query = "select * where {" + + "?x foaf:knows+ :: $path " + + "graph $path { ?a foaf:knows ?b }" + + "}"; + + try { + exec.query(update); + + Mappings map = exec.query(query); + //// System.out.println(map); + assertEquals("Result", 3, map.size()); + + } catch (EngineException e) { + assertEquals("Result", true, e); + } + } + + @Test + public void test34() { + // select (group_concat(distinct ?x, ?y) as ?str) + Graph g = createGraph(); + QueryProcess exec = QueryProcess.create(g); + + String update = "insert data {" + + " foaf:knows " + + " foaf:knows " + + "}"; + + String query = "select * where {" + + "?x ^ (foaf:knows+) :: $path " + + "graph $path { ?a foaf:knows ?b }" + + "}"; + + try { + exec.query(update); + + Mappings map = exec.query(query); + //// System.out.println(map); + assertEquals("Result", 3, map.size()); + + } catch (EngineException e) { + assertEquals("Result", true, e); + } + + } + + @Test + public void test35() { + // select (group_concat(distinct ?x, ?y) as ?str) + Graph g = createGraph(); + QueryProcess exec = QueryProcess.create(g); + + String update = "insert data {" + + " foaf:knows " + + " foaf:knows " + + "}"; + + String query = "select * where {" + + "?x (^foaf:knows)+ :: $path " + + "graph $path { ?a foaf:knows ?b }" + + "}"; + + try { + exec.query(update); + + Mappings map = exec.query(query); + //// System.out.println(map); + assertEquals("Result", 3, map.size()); + + } catch (EngineException e) { + assertEquals("Result", true, e); + } + + } + + @Test + public void test36() { + // select (group_concat(distinct ?x, ?y) as ?str) + Graph g = createGraph(); + QueryProcess exec = QueryProcess.create(g); + + String update = "insert data {" + + " foaf:knows ( ) " + + "}"; + + String query = "select * where {" + + "graph ?g {optional{?x rdf:rest*/rdf:first ?y} " + + "filter(!bound(?y)) " + + "}" + + "}"; + + try { + exec.query(update); + + Mappings map = exec.query(query); + ////// System.out.println(map); + assertEquals("Result", 0, map.size()); + + } catch (EngineException e) { + assertEquals("Result", true, e); + } + + } + + @Test + public void test37() { + Graph g = Graph.create(true); + QueryProcess exec = QueryProcess.create(g); + + String init = "insert data { 'John'}"; + try { + exec.query(init); + + g.init(); + + // RDFFormat f = RDFFormat.create(g); + // ////System.out.println(f); + + assertEquals("Result", 3, g.size()); + + String query = "select * where {?p rdf:type rdf:Property}"; + + Mappings res = exec.query(query); + // ////System.out.println("** Res: " ); + // ////System.out.println(res); + assertEquals("Result", 2, res.size()); + + String update = "delete {?x ?p ?y} where {?x ?p ?y}"; + exec.query(update); + + String qq = "select * where {?x ?p ?y}"; + res = exec.query(qq); + assertEquals("Result", 0, res.size()); + + } catch (EngineException e) { + e.printStackTrace(); + } + } + + @Test + public void test38() { + Graph graph = createGraph(); + QueryProcess exec = QueryProcess.create(graph); + + String init = "insert data {" + + " 20 " + + " 10 " + + " 30 " + + "}"; + + String query = "select distinct (sum(?age) as ?s) where {" + + "?x ?age" + + "}" + + "group by ?x"; + + try { + exec.query(init); + Mappings res = exec.query(query); + assertEquals("Result", 1, res.size()); + assertEquals("Result", 30, getValue(res, "?s").intValue()); + + } catch (EngineException e) { + e.printStackTrace(); + } + + } + + // @Test + public void test39() { + Graph graph = createGraph(); + QueryProcess exec = QueryProcess.create(graph); + + String init = "insert data {" + + " foaf:knows " + + " foaf:knows " + + " foaf:knows " + + " foaf:knows " + + "}"; + + String query = "select * where {" + + " foaf:knows+ ?t " + + "}"; + + // String query2 = "select * where {" + // + " foaf:knows{1,10} ?t " + // + "}" + // + "pragma {kg:path kg:loop false}"; + + try { + exec.query(init); + Mappings res = exec.query(query); + assertEquals("Result", 2, res.size()); + + exec.setPathLoop(false); + res = exec.query(query); + assertEquals("Result", 2, res.size()); + + } catch (EngineException e) { + e.printStackTrace(); + } + + } + + @Test + public void test41() { + + Graph graph = Graph.create(true); + QueryProcess exec = QueryProcess.create(graph); + + String init = "prefix ex: " + + "prefix foaf: " + + "insert data {" + + "ex:a foaf:knows ex:b " + + "ex:b foaf:knows ex:c " + + "ex:b rdfs:seeAlso ex:a " + + "ex:c rdfs:seeAlso ex:b " + + "}"; + + String query = "prefix ex: " + + "prefix foaf: " + + "select * where {" + + "ex:a ( foaf:knows+ || (^rdfs:seeAlso) +) ?y" + + "}"; + + try { + exec.query(init); + Mappings map = exec.query(query); + assertEquals("Result", 2, map.size()); + + } catch (EngineException e) { + e.printStackTrace(); + } + + } + + @Test + public void test42() { + + Graph graph = Graph.create(true); + QueryProcess exec = QueryProcess.create(graph); + + String init = "prefix ex: " + + "prefix foaf: " + + "insert data {" + + "ex:a foaf:knows ex:b " + + "ex:b foaf:knows ex:c " + + "ex:b rdfs:seeAlso ex:a " + + "ex:c rdfs:seeAlso ex:b " + + "}"; + + String query = "prefix ex: " + + "prefix foaf: " + + "select * where {" + + "ex:a ( foaf:knows || ^rdfs:seeAlso )+ ?y" + + "}"; + + try { + exec.query(init); + Mappings map = exec.query(query); + assertEquals("Result", 2, map.size()); + + } catch (EngineException e) { + e.printStackTrace(); + } + + } + + @Test + public void test43() { + + Graph graph = Graph.create(true); + QueryProcess exec = QueryProcess.create(graph); + + String init = "prefix ex: " + + "prefix foaf: " + + "insert data {" + + "ex:a foaf:knows ex:b " + + "ex:b foaf:knows ex:e " + + "ex:e foaf:knows ex:c " + + "ex:b rdfs:seeAlso ex:a " + + "ex:c rdfs:seeAlso ex:b " + + "}"; + + String query = "prefix ex: " + + "prefix foaf: " + + "select * where {" + + "ex:a ( foaf:knows+ || (^rdfs:seeAlso)+ ) ?y" + + "}"; + + try { + exec.query(init); + Mappings map = exec.query(query); + assertEquals("Result", 2, map.size()); + + } catch (EngineException e) { + e.printStackTrace(); + } + + } + + @Test + public void test47() { + + Graph graph = createGraph(); + QueryProcess exec = QueryProcess.create(graph); + + String init = "prefix i: " + + "" + + "insert data {" + + " i:contain " + + "'" + + "JohnK2000" + + "JamesC1950" + + "'^^rdf:XMLLiteral " + + "}"; + + String query = "" + + "prefix i: " + + "construct {" + + "[i:name ?name]" + + "} where {" + + "select (concat(xt:objectvalue(?n), '.', xt:objectvalue(?l)) as ?name) " + + "(xsd:integer(xt:objectvalue(?y)) as ?yy) where {" + + "?x i:contain ?xml " + // + "bind (xpath(?xml, '/doc/person') as ?p) " + // + "bind (xpath(?p, 'name/text()') as ?n) " + // + "bind (xpath(?p, 'lname/text()') as ?l) " + + + "values ?p { unnest(xt:xpath(?xml, '/doc/person')) } " + + "values ?n { unnest(xt:xpath(?p, 'name/text()')) } " + + "values ?l { unnest(xt:xpath(?p, 'lname/text()')) } " + + "values ?y { unnest(xt:xpath(?p, 'year/text()')) } " + + + "}}"; + + try { + Mappings map = exec.query(init); + map = exec.query(query); + // System.out.println(map); + assertEquals("Result", 2, map.size()); + + } catch (EngineException e) { + e.printStackTrace(); + } + + } + + @Test + public void test49() { + + Graph graph = createGraph(); + QueryProcess exec = QueryProcess.create(graph); + + String init = "prefix i: " + + "" + + "insert data {" + + " i:contain " + + "'" + + "Catonmat" + + "Cateatmouse" + + "'^^rdf:XMLLiteral " + + "}"; + + String phrase = TestQuery1.class.getResource("/text/phrase.xml").getPath(); + + String query = "" + + "base " + + "prefix s: " + + "prefix i: " + + "construct {?su ?pr ?ob} " + + "where {" + + "select * where {" + + "values ?xml { } " + + "values ?st { unnest(xt:xpath(?xml, '/doc/phrase')) } " + + "values ?s { unnest(xt:xpath(?st, 'subject/text()')) } " + + "values ?p { unnest(xt:xpath(?st, 'verb/text()')) } " + + "values ?o { unnest(xt:xpath(?st, 'object/text()')) } " + + + "bind (uri(xt:objectvalue(?s)) as ?su) " + + "bind (uri(xt:objectvalue(?p)) as ?pr) " + + "bind (uri(xt:objectvalue(?o)) as ?ob) " + + + "}" + + "}"; + + try { + Mappings map = exec.query(init); + map = exec.query(query); + // System.out.println(map); + ResultFormat.create(map); + // System.out.println(f); + assertEquals("Result", 2, map.size()); + + } catch (EngineException e) { + e.printStackTrace(); + assertEquals("Result", 2, null); + } + + } + + @Test + public void test50() { + + Graph graph = createGraph(); + QueryProcess exec = QueryProcess.create(graph); + + String init = "prefix : " + + "" + + "insert data {" + + ":A0 :P :A1, :A2 . " + + ":A1 :P :A0, :A2 . " + + ":A2 :P :A0, :A1" + + "}"; + + String query = "prefix : " + + "select * where { :A0 ((:P)*)* ?X }"; + + try { + Mappings map = exec.query(init); + map = exec.query(query); + //// System.out.println(map); + assertEquals("Result", 3, map.size()); + + } catch (EngineException e) { + e.printStackTrace(); + } + + } + + @Test + public void test51() { + + Graph graph = createGraph(); + QueryProcess exec = QueryProcess.create(graph); + + String init = "prefix : " + + "" + + "insert data {" + + ":A0 :P :A1, :A2 . " + + ":A1 :P :A0, :A2 . " + + ":A2 :P :A0, :A1" + + "}"; + + String query = "prefix : " + + "select * where { ?X ((:P)*)* :A1 }"; + + try { + Mappings map = exec.query(init); + map = exec.query(query); + assertEquals("Result", 3, map.size()); + + } catch (EngineException e) { + e.printStackTrace(); + } + + } + + @Test + public void test52() { + + Graph graph = createGraph(); + QueryProcess exec = QueryProcess.create(graph); + + String init = "prefix : " + + "" + + "insert data {" + + ":a :p :b, :c ." + + ":b :q :d " + + ":c :q :d " + + ":d :p :e " + + ":e :q :f " + + "" + + "} "; + + String query = "prefix : " + + "select * where { :a (:p/:q)+ ?y }"; + + try { + Mappings map = exec.query(init); + map = exec.query(query); + assertEquals("Result", 2, map.size()); + + } catch (EngineException e) { + e.printStackTrace(); + } + + } + + @Test + public void test53() { + String query = "prefix c: " + + "select * (kg:similarity() as ?sim) where {" + + "?x rdf:type c:Engineer " + + "}" + + "order by desc(?sim)" + + "pragma {kg:match kg:mode 'strict'}"; + + QueryProcess exec = QueryProcess.create(graph); + try { + Mappings map = exec.query(query); + //// System.out.println(map); + + assertEquals("Result", 7, map.size()); + + } catch (EngineException e) { + assertEquals("Result", true, e); + } + } + + @Test + public void test54() { + String query = "select * where {" + + "graph ?g {?s ?o} " + + "?s ?a" + + "}"; + Graph graph = createGraph(); + + Node g = graph.addGraph("test"); + Node s = graph.addResource("URIJohn"); + Node p = graph.addProperty("age"); + Node o = graph.addLiteral(24); + Node p2 = graph.addProperty("name"); + Node o2 = graph.addLiteral("John"); + + graph.addEdge(g, s, p, o); + graph.addEdge(s, p2, o2); + + QueryProcess exec = QueryProcess.create(graph); + + try { + Mappings map = exec.query(query); + //// System.out.println(map); + + assertEquals("Result", 1, map.size()); + + } catch (EngineException ee) { + assertEquals("Result", true, ee); + } + } + + /** + * Two graphs with partial ontology each Each graph answer with its + * viewpoint on the ontology + */ + @Test + public void test55() { + + String o1 = "prefix foaf: " + + "insert data {" + + "foaf:Human rdfs:subClassOf foaf:Person " + + "}"; + + String o2 = "prefix foaf: " + + "insert data {" + + "foaf:Man rdfs:subClassOf foaf:Person " + + "}"; + + String init1 = "prefix foaf: " + + "insert data {" + + " a foaf:Human" + + "}"; + + String init2 = "prefix foaf: " + + "insert data {" + + " a foaf:Man" + + "}"; + + String query = "prefix foaf: " + + "select * where {" + + "?x a foaf:Person" + + "}"; + + Graph.create(true); + Graph g1 = Graph.create(true); + Graph g2 = Graph.create(true); + + QueryProcess exec1 = QueryProcess.create(g1); + QueryProcess exec2 = QueryProcess.create(g2); + + QueryProcess exec = QueryProcess.create(g1, true); + exec.add(g2); + + try { + exec1.query(o1); + exec1.query(init1); + + exec2.query(o2); + exec2.query(init2); + + // exec.query(o1); + // exec.query(o2); + + Mappings map = exec.query(query); + assertEquals("Result", 2, map.size()); + //// System.out.println(map); + + } catch (EngineException e) { + e.printStackTrace(); + } + } + + @Test + public void test56() { + Graph graph = createGraph(); + QueryProcess exec = QueryProcess.create(graph); + // exec.setOptimize(true); + + String init = "insert data {" + + "graph { foaf:knows }" + + "graph { foaf:knows }" + + "}"; + + String query = "select * where {" + + "?x foaf:knows+ ?y " + + "filter(?y = || = ?x)" + + "}"; + + try { + exec.query(init); + Mappings map = exec.query(query); + assertEquals("Result", 3, map.size()); + + } catch (EngineException e) { + e.printStackTrace(); + } + + } + + @Test + public void test58() { + + Graph graph = createGraph(); + QueryProcess exec = QueryProcess.create(graph); + + String init = "insert data {" + + " foaf:knows " + + " foaf:knows " + + " foaf:knows " + + "}"; + + String query = "select * (xt:size($path) as ?l) where {" + + "?x (foaf:knows|rdfs:seeAlso)+ :: $path ?y" + + "}"; + + try { + Mappings map = exec.query(init); + map = exec.query(query); + ResultFormat.create(map); + assertEquals("Result", 3, map.size()); + + } catch (EngineException e) { + e.printStackTrace(); + } + + } + + @Test + public void test59() { + + Graph graph = createGraph(); + QueryProcess exec = QueryProcess.create(graph); + + String init = "insert data {" + + " foaf:knows " + + " foaf:name 'Jack' ;" + + "foaf:age 12 ;" + + "foaf:date '2012-04-01'^^xsd:date ;" + + "foaf:knows [] " + + "}"; + + String query = "select * where {?x ?p ?y}"; + + try { + Mappings map = exec.query(init); + map = exec.query(query); + XMLFormat f = XMLFormat.create(map); + + XMLResult xml = XMLResult.create(exec.getProducer()); + xml.parseString(f.toString()); + //// System.out.println(m); + + assertEquals("Result", 5, map.size()); + + } catch (EngineException e) { + e.printStackTrace(); + } catch (ParserConfigurationException e) { + e.printStackTrace(); + } catch (SAXException e) { + e.printStackTrace(); + } catch (IOException e) { + e.printStackTrace(); + } + + } + + // @Test + // public void test62() { + // + // Graph graph = createGraph(); + // QueryProcess exec = QueryProcess.create(graph); + // + // String init = + // "prefix foaf: " + // + "insert data {" + // + " foaf:age 12 " + // + " foaf:age 20" + // + "}"; + // + // String query = + // "prefix foaf: " + // + "select * where {" + // + "?x foaf:age ?age" + // + "}"; + // + // try { + // Mappings map = exec.query(init); + // map = exec.query(query); + // assertEquals("Result", 2, map.size()); + // + // exec.filter(map, "?age > 15"); + // assertEquals("Result", 1, map.size()); + // } catch (EngineException e) { + + // e.printStackTrace(); + // } + // } + + @Test + public void test63() { + + Graph graph = createGraph(); + QueryProcess exec = QueryProcess.create(graph); + + String init = "prefix foaf: " + + "insert data {" + + " foaf:date '2012-05-10'^^xsd:dateTime " + + " foaf:date '2012-05-11'^^xsd:dateTime " + + " foaf:date '2012-05-10T10:20:30'^^xsd:dateTime " + + " foaf:date '2012-05-10T10:30:30.50'^^xsd:dateTime " + + " foaf:date '2012-05-10T10:30:30'^^xsd:dateTime " + + "}"; + + String query = "prefix foaf: " + + "select * where {" + + "?x foaf:date ?date" + + "}" + + "order by desc(?date)"; + + try { + Mappings map = exec.query(init); + map = exec.query(query); + //// System.out.println(map); + assertEquals("Result", 5, map.size()); + + IDatatype dt0 = map.get(0).getNode("?x").getValue(); + IDatatype dt1 = map.get(1).getNode("?x").getValue(); + IDatatype dt2 = map.get(2).getNode("?x").getValue(); + IDatatype dt3 = map.get(3).getNode("?x").getValue(); + IDatatype dt4 = map.get(4).getNode("?x").getValue(); + + assertEquals("Result", "B", dt0.getLabel()); + assertEquals("Result", "D", dt1.getLabel()); + assertEquals("Result", "E", dt2.getLabel()); + assertEquals("Result", "C", dt3.getLabel()); + assertEquals("Result", "A", dt4.getLabel()); + + // B D E C A + + } catch (EngineException e) { + e.printStackTrace(); + } + } + + // @Test + public void test64() { + + QueryProcess exec = QueryProcess.create(graph); + + String query = "prefix c: " + + "select (kg:ancestor(c:Event, c:Document) as ?a) where {" + + "" + + "}"; + + try { + Mappings map = exec.query(query); + + Node aa = graph.getResource("http://www.inria.fr/acacia/comma#Something"); + Node rr = map.getNode("?a"); + + assertEquals("Result", aa.getLabel(), rr.getLabel()); + + Node n1 = graph.getResource("http://www.inria.fr/acacia/comma#Person"); + Node n2 = graph.getResource("http://www.inria.fr/acacia/comma#Event"); + + //// System.out.println("ANC: " + n1); + //// System.out.println("ANC: " + n2); + graph.setClassDistance(); + Node vv = graph.getClassDistance().ancestor(n1, n2); + assertEquals("Result", aa.getLabel(), vv.getLabel()); + + } catch (EngineException e) { + e.printStackTrace(); + } + + } + + @Test + public void test65() { + Graph g = createGraph(); + + Load ld = Load.create(g); + + try { + ld.parse(data + "test/iso.ttl"); + ld.parse(data + "test/iso.rdf"); + + ld.parse(data + "test/utf.ttl"); + ld.parse(data + "test/utf.rdf"); + } catch (LoadException e1) { + e1.printStackTrace(); + } + + String query = "select * where {" + + "?x ?p ?y . ?z ?q ?y filter(?x != ?z)" + + "}"; + + QueryProcess exec = QueryProcess.create(g); + + try { + Mappings map = exec.query(query); + //// System.out.println(map); + assertEquals("Result", 4, map.size()); + + } catch (EngineException e) { + e.printStackTrace(); + } + + } + + public void testRelax() { + Graph g = graph(); + + String init = "prefix foaf: " + + "prefix c: " + + "insert data {" + + " foaf:type c:Researcher " + + " foaf:knows " + + " foaf:type c:Engineer " + + " foaf:knows " + + " foaf:type c:Fireman " + + " foaf:type c:Event " + + "}"; + + String query = "prefix foaf: " + + "prefix c: " + + "select more * (kg:similarity() as ?s) where {" + + "?x foaf:type c:Engineer " + + "?x foaf:knows ?y " + + "?y foaf:type c:Engineer" + + "}" + + "order by desc(?s) " + + "pragma {kg:kgram kg:relax (foaf:type)}"; + + QueryProcess exec = QueryProcess.create(g); + + try { + exec.query(init); + Mappings map = exec.query(query); + //// System.out.println(map); + assertEquals("Result", 2, map.size()); + + } catch (EngineException e) { + e.printStackTrace(); + } + + } + + /** + * Create a Query graph from an RDF Graph Execute the query Use case: find + * similar Graphs (cf Corentin) + */ + + public void testQueryGraph() { + + Graph graph = createGraph(); + QueryProcess exec = QueryProcess.create(graph); + + String init = "prefix : " + + "" + + "insert data {" + + ":a :p :b, :c ." + + ":b :q :d " + + ":c :q :d " + + ":d :p :e " + + ":e :q :f " + + "" + + "} "; + + String cons = "prefix : " + + "" + + "construct {?x :p []}" + + "where {?x :p ?y}"; + + String init2 = "prefix : " + + "" + + "insert data {" + + ":a :p [] ." + + "}"; + + try { + // create a graph + exec.query(init); + + // create a copy where triple objects (values) are Blank Nodes (aka Variables) + // consider the copy as a Query Graph and execute it + Mappings map = exec.queryGraph(cons); + + assertEquals("Results", 4, map.size()); + + Graph g2 = createGraph(); + QueryProcess exec2 = QueryProcess.create(g2); + exec2.query(init2); + + QueryGraph qg = QueryGraph.create(g2); + new QGVisitor(); + // qg.setVisitor(vis); + qg.setConstruct(true); + map = exec.query(qg); + + Graph res = exec.getGraph(map); + assertEquals("Results", 2, res.size()); + + } catch (EngineException e) { + e.printStackTrace(); + } + + } + + @Test + public void testOption() { + + Graph graph = createGraph(); + QueryProcess exec = QueryProcess.create(graph); + + String init = "prefix : " + + "" + + "insert data {" + + ":a :p :b, :c ." + + ":b :p :d, :a " + + ":c :p :d " + + "" + + ":e :p :b, :c ." + + "" + + "} "; + + String query = "prefix : " + + "select * where {" + + "?x ((:p/:p) ?) ?y " + + "}"; + + try { + + exec.query(init); + Mappings map = exec.query(query); + // System.out.println(map); + + assertEquals("Results", 9, map.size()); + + } catch (EngineException e) { + e.printStackTrace(); + } + + } + + @Test + public void testWF() { + Graph g = createGraph(); + QueryProcess exec = QueryProcess.create(g); + + QueryEngine qe = QueryEngine.create(g); + g.addEngine(qe); + + String init = "prefix c: " + + "insert data {" + + "[ c:hasParent [] ]" + + "}"; + + String update = "prefix c: " + + "insert {?y c:hasChild ?x}" + + "where { ?x c:hasParent ?y}"; + + qe.addQuery(update); + // qe.setDebug(true); + // g.getWorkflow().setDebug(true); + + String query = "select * where {?x ?p ?y}"; + + try { + ////// System.out.println("init"); + exec.query(init); + ////// System.out.println("query"); + + Mappings map = exec.query(query); + // ////System.out.println(map); + // + // System.out.println("*****************"); + // System.out.println(map); + assertEquals("Result", 2, map.size()); + + } catch (EngineException e) { + assertEquals("Result", true, false); + } + + } + + // @Test + public void testCompile() throws EngineException { + Graph g = createGraph(); + QueryProcess exec = QueryProcess.create(g); + + String query = "select * where {" + + "graph ?g {?x ?p ?y " + + "{select * where {" + + "?a (rdf:type@[a rdfs:Resource]) :: $path ?b " + + "{values ?a {}}" + + "}" + + "order by ?a " + + "group by ?b " + + "having (?a > ?b) " + + "}" + + "?a (rdf:type@[a rdfs:Resource]) ?b" + + "" + + "}" + + "}"; + Mappings map = exec.query(query); + Query q = map.getQuery(); + System.out.println(q); + // System.out.println("NB Procesor: " + Processor.count); + assertEquals("Result", 17, q.nbNodes()); + } + + IDatatype getValue(Mapping map, String name) { + return datatype(map.getValue(name)); + } + + IDatatype getValue(Mappings map, String name) { + Object value = map.getValue(name); + if (value == null) { + return null; + } + return datatype(value); + } + + IDatatype datatype(Object n) { + return (IDatatype) n; + } + + IDatatype datatype(Node n) { + return n.getValue(); + } +} diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/comma.rdfs b/corese-unit-test/src/test/resources/data/comma/comma.rdfs similarity index 100% rename from corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/comma.rdfs rename to corese-unit-test/src/test/resources/data/comma/comma.rdfs diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data/Ada_Lovelace.rdf b/corese-unit-test/src/test/resources/data/comma/data/Ada_Lovelace.rdf similarity index 100% rename from corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data/Ada_Lovelace.rdf rename to corese-unit-test/src/test/resources/data/comma/data/Ada_Lovelace.rdf diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data/Alain_Giboin.rdf b/corese-unit-test/src/test/resources/data/comma/data/Alain_Giboin.rdf similarity index 100% rename from corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data/Alain_Giboin.rdf rename to corese-unit-test/src/test/resources/data/comma/data/Alain_Giboin.rdf diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data/Annotation_Added_The_06_05_2001_At_16h_33m_42s_918ms.rdf b/corese-unit-test/src/test/resources/data/comma/data/Annotation_Added_The_06_05_2001_At_16h_33m_42s_918ms.rdf similarity index 100% rename from corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data/Annotation_Added_The_06_05_2001_At_16h_33m_42s_918ms.rdf rename to corese-unit-test/src/test/resources/data/comma/data/Annotation_Added_The_06_05_2001_At_16h_33m_42s_918ms.rdf diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data/Annotation_Added_The_07_05_2001_At_09h_38m_48s_147ms.rdf b/corese-unit-test/src/test/resources/data/comma/data/Annotation_Added_The_07_05_2001_At_09h_38m_48s_147ms.rdf similarity index 100% rename from corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data/Annotation_Added_The_07_05_2001_At_09h_38m_48s_147ms.rdf rename to corese-unit-test/src/test/resources/data/comma/data/Annotation_Added_The_07_05_2001_At_09h_38m_48s_147ms.rdf diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data/Annotation_Added_The_07_05_2001_At_09h_40m_36s_973ms.rdf b/corese-unit-test/src/test/resources/data/comma/data/Annotation_Added_The_07_05_2001_At_09h_40m_36s_973ms.rdf similarity index 100% rename from corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data/Annotation_Added_The_07_05_2001_At_09h_40m_36s_973ms.rdf rename to corese-unit-test/src/test/resources/data/comma/data/Annotation_Added_The_07_05_2001_At_09h_40m_36s_973ms.rdf diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data/Annotation_Added_The_07_05_2001_At_09h_41m_31s_537ms.rdf b/corese-unit-test/src/test/resources/data/comma/data/Annotation_Added_The_07_05_2001_At_09h_41m_31s_537ms.rdf similarity index 100% rename from corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data/Annotation_Added_The_07_05_2001_At_09h_41m_31s_537ms.rdf rename to corese-unit-test/src/test/resources/data/comma/data/Annotation_Added_The_07_05_2001_At_09h_41m_31s_537ms.rdf diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data/Annotation_Added_The_07_05_2001_At_09h_44m_38s_909ms.rdf b/corese-unit-test/src/test/resources/data/comma/data/Annotation_Added_The_07_05_2001_At_09h_44m_38s_909ms.rdf similarity index 100% rename from corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data/Annotation_Added_The_07_05_2001_At_09h_44m_38s_909ms.rdf rename to corese-unit-test/src/test/resources/data/comma/data/Annotation_Added_The_07_05_2001_At_09h_44m_38s_909ms.rdf diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data/Annotation_Added_The_07_05_2001_At_09h_46m_08s_163ms.rdf b/corese-unit-test/src/test/resources/data/comma/data/Annotation_Added_The_07_05_2001_At_09h_46m_08s_163ms.rdf similarity index 100% rename from corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data/Annotation_Added_The_07_05_2001_At_09h_46m_08s_163ms.rdf rename to corese-unit-test/src/test/resources/data/comma/data/Annotation_Added_The_07_05_2001_At_09h_46m_08s_163ms.rdf diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data/Annotation_Added_The_07_05_2001_At_10h_21m_25s_403ms.rdf b/corese-unit-test/src/test/resources/data/comma/data/Annotation_Added_The_07_05_2001_At_10h_21m_25s_403ms.rdf similarity index 100% rename from corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data/Annotation_Added_The_07_05_2001_At_10h_21m_25s_403ms.rdf rename to corese-unit-test/src/test/resources/data/comma/data/Annotation_Added_The_07_05_2001_At_10h_21m_25s_403ms.rdf diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data/Annotation_Added_The_07_05_2001_At_11h_32m_20s_977ms.rdf b/corese-unit-test/src/test/resources/data/comma/data/Annotation_Added_The_07_05_2001_At_11h_32m_20s_977ms.rdf similarity index 100% rename from corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data/Annotation_Added_The_07_05_2001_At_11h_32m_20s_977ms.rdf rename to corese-unit-test/src/test/resources/data/comma/data/Annotation_Added_The_07_05_2001_At_11h_32m_20s_977ms.rdf diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data/Annotation_Added_The_07_05_2001_At_12h_07m_49s_050ms.rdf b/corese-unit-test/src/test/resources/data/comma/data/Annotation_Added_The_07_05_2001_At_12h_07m_49s_050ms.rdf similarity index 100% rename from corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data/Annotation_Added_The_07_05_2001_At_12h_07m_49s_050ms.rdf rename to corese-unit-test/src/test/resources/data/comma/data/Annotation_Added_The_07_05_2001_At_12h_07m_49s_050ms.rdf diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data/Annotation_Added_The_18_05_2001_At_15h_51m_06s_359ms.rdf b/corese-unit-test/src/test/resources/data/comma/data/Annotation_Added_The_18_05_2001_At_15h_51m_06s_359ms.rdf similarity index 100% rename from corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data/Annotation_Added_The_18_05_2001_At_15h_51m_06s_359ms.rdf rename to corese-unit-test/src/test/resources/data/comma/data/Annotation_Added_The_18_05_2001_At_15h_51m_06s_359ms.rdf diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data/Fabien_Gandon.rdf b/corese-unit-test/src/test/resources/data/comma/data/Fabien_Gandon.rdf similarity index 100% rename from corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data/Fabien_Gandon.rdf rename to corese-unit-test/src/test/resources/data/comma/data/Fabien_Gandon.rdf diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data/Olivier_Corby.rdf b/corese-unit-test/src/test/resources/data/comma/data/Olivier_Corby.rdf similarity index 100% rename from corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data/Olivier_Corby.rdf rename to corese-unit-test/src/test/resources/data/comma/data/Olivier_Corby.rdf diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data/Rose_Dieng.rdf b/corese-unit-test/src/test/resources/data/comma/data/Rose_Dieng.rdf similarity index 100% rename from corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data/Rose_Dieng.rdf rename to corese-unit-test/src/test/resources/data/comma/data/Rose_Dieng.rdf diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data/article_madrid.rdf b/corese-unit-test/src/test/resources/data/comma/data/article_madrid.rdf similarity index 100% rename from corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data/article_madrid.rdf rename to corese-unit-test/src/test/resources/data/comma/data/article_madrid.rdf diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data/article_pakm.rdf b/corese-unit-test/src/test/resources/data/comma/data/article_pakm.rdf similarity index 100% rename from corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data/article_pakm.rdf rename to corese-unit-test/src/test/resources/data/comma/data/article_pakm.rdf diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data/kmss.rdf b/corese-unit-test/src/test/resources/data/comma/data/kmss.rdf similarity index 100% rename from corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data/kmss.rdf rename to corese-unit-test/src/test/resources/data/comma/data/kmss.rdf diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data/livret_d_accueil.rdf b/corese-unit-test/src/test/resources/data/comma/data/livret_d_accueil.rdf similarity index 100% rename from corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data/livret_d_accueil.rdf rename to corese-unit-test/src/test/resources/data/comma/data/livret_d_accueil.rdf diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data/mediation.rdf b/corese-unit-test/src/test/resources/data/comma/data/mediation.rdf similarity index 100% rename from corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data/mediation.rdf rename to corese-unit-test/src/test/resources/data/comma/data/mediation.rdf diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data/organigramme_acacia.rdf b/corese-unit-test/src/test/resources/data/comma/data/organigramme_acacia.rdf similarity index 100% rename from corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data/organigramme_acacia.rdf rename to corese-unit-test/src/test/resources/data/comma/data/organigramme_acacia.rdf diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data/organigramme_bacf.rdf b/corese-unit-test/src/test/resources/data/comma/data/organigramme_bacf.rdf similarity index 100% rename from corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data/organigramme_bacf.rdf rename to corese-unit-test/src/test/resources/data/comma/data/organigramme_bacf.rdf diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data/organigramme_bpas.rdf b/corese-unit-test/src/test/resources/data/comma/data/organigramme_bpas.rdf similarity index 100% rename from corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data/organigramme_bpas.rdf rename to corese-unit-test/src/test/resources/data/comma/data/organigramme_bpas.rdf diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data/organigramme_re.rdf b/corese-unit-test/src/test/resources/data/comma/data/organigramme_re.rdf similarity index 100% rename from corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data/organigramme_re.rdf rename to corese-unit-test/src/test/resources/data/comma/data/organigramme_re.rdf diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data/organigramme_semir.rdf b/corese-unit-test/src/test/resources/data/comma/data/organigramme_semir.rdf similarity index 100% rename from corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data/organigramme_semir.rdf rename to corese-unit-test/src/test/resources/data/comma/data/organigramme_semir.rdf diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data/organigramme_ur_sophia.rdf b/corese-unit-test/src/test/resources/data/comma/data/organigramme_ur_sophia.rdf similarity index 100% rename from corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data/organigramme_ur_sophia.rdf rename to corese-unit-test/src/test/resources/data/comma/data/organigramme_ur_sophia.rdf diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data/plan_imprimantes.rdf b/corese-unit-test/src/test/resources/data/comma/data/plan_imprimantes.rdf similarity index 100% rename from corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data/plan_imprimantes.rdf rename to corese-unit-test/src/test/resources/data/comma/data/plan_imprimantes.rdf diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data/plan_masse_inria.rdf b/corese-unit-test/src/test/resources/data/comma/data/plan_masse_inria.rdf similarity index 100% rename from corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data/plan_masse_inria.rdf rename to corese-unit-test/src/test/resources/data/comma/data/plan_masse_inria.rdf diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data/presentation_cstb.rdf b/corese-unit-test/src/test/resources/data/comma/data/presentation_cstb.rdf similarity index 100% rename from corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data/presentation_cstb.rdf rename to corese-unit-test/src/test/resources/data/comma/data/presentation_cstb.rdf diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data/presentation_ekaw.rdf b/corese-unit-test/src/test/resources/data/comma/data/presentation_ekaw.rdf similarity index 100% rename from corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data/presentation_ekaw.rdf rename to corese-unit-test/src/test/resources/data/comma/data/presentation_ekaw.rdf diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data/tmp.rdf b/corese-unit-test/src/test/resources/data/comma/data/tmp.rdf similarity index 100% rename from corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data/tmp.rdf rename to corese-unit-test/src/test/resources/data/comma/data/tmp.rdf diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/model.rdf b/corese-unit-test/src/test/resources/data/comma/model.rdf similarity index 100% rename from corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/model.rdf rename to corese-unit-test/src/test/resources/data/comma/model.rdf diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/jsonld/test.jsonld b/corese-unit-test/src/test/resources/data/jsonld/test.jsonld similarity index 100% rename from corese-unit-test/src/test/resources/fr/inria/corese/engine/data/jsonld/test.jsonld rename to corese-unit-test/src/test/resources/data/jsonld/test.jsonld diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/junit/data/test.rdf b/corese-unit-test/src/test/resources/data/junit/data/test.rdf similarity index 100% rename from corese-unit-test/src/test/resources/fr/inria/corese/engine/data/junit/data/test.rdf rename to corese-unit-test/src/test/resources/data/junit/data/test.rdf diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/junit/data/test.ttl b/corese-unit-test/src/test/resources/data/junit/data/test.ttl similarity index 100% rename from corese-unit-test/src/test/resources/fr/inria/corese/engine/data/junit/data/test.ttl rename to corese-unit-test/src/test/resources/data/junit/data/test.ttl diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/junit/data/test.xml b/corese-unit-test/src/test/resources/data/junit/data/test.xml similarity index 100% rename from corese-unit-test/src/test/resources/fr/inria/corese/engine/data/junit/data/test.xml rename to corese-unit-test/src/test/resources/data/junit/data/test.xml diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/junit/sttl/format1/start.rq b/corese-unit-test/src/test/resources/data/junit/sttl/format1/start.rq similarity index 100% rename from corese-unit-test/src/test/resources/fr/inria/corese/engine/data/junit/sttl/format1/start.rq rename to corese-unit-test/src/test/resources/data/junit/sttl/format1/start.rq diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/junit/sttl/format2/format/test.html b/corese-unit-test/src/test/resources/data/junit/sttl/format2/format/test.html similarity index 100% rename from corese-unit-test/src/test/resources/fr/inria/corese/engine/data/junit/sttl/format2/format/test.html rename to corese-unit-test/src/test/resources/data/junit/sttl/format2/format/test.html diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/junit/sttl/format2/start.rq b/corese-unit-test/src/test/resources/data/junit/sttl/format2/start.rq similarity index 100% rename from corese-unit-test/src/test/resources/fr/inria/corese/engine/data/junit/sttl/format2/start.rq rename to corese-unit-test/src/test/resources/data/junit/sttl/format2/start.rq diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/math/data/fun.ttl b/corese-unit-test/src/test/resources/data/math/data/fun.ttl similarity index 100% rename from corese-unit-test/src/test/resources/fr/inria/corese/engine/data/math/data/fun.ttl rename to corese-unit-test/src/test/resources/data/math/data/fun.ttl diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/template/owl/data/primer.owl b/corese-unit-test/src/test/resources/data/template/owl/data/primer.owl similarity index 100% rename from corese-unit-test/src/test/resources/fr/inria/corese/engine/data/template/owl/data/primer.owl rename to corese-unit-test/src/test/resources/data/template/owl/data/primer.owl diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/template/spinhtml/data/agg.ttl b/corese-unit-test/src/test/resources/data/template/spinhtml/data/agg.ttl similarity index 100% rename from corese-unit-test/src/test/resources/fr/inria/corese/engine/data/template/spinhtml/data/agg.ttl rename to corese-unit-test/src/test/resources/data/template/spinhtml/data/agg.ttl diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/template/spinhtml/data/ask.ttl b/corese-unit-test/src/test/resources/data/template/spinhtml/data/ask.ttl similarity index 100% rename from corese-unit-test/src/test/resources/fr/inria/corese/engine/data/template/spinhtml/data/ask.ttl rename to corese-unit-test/src/test/resources/data/template/spinhtml/data/ask.ttl diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/template/spinhtml/data/const.ttl b/corese-unit-test/src/test/resources/data/template/spinhtml/data/const.ttl similarity index 100% rename from corese-unit-test/src/test/resources/fr/inria/corese/engine/data/template/spinhtml/data/const.ttl rename to corese-unit-test/src/test/resources/data/template/spinhtml/data/const.ttl diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/template/spinhtml/data/construct.ttl b/corese-unit-test/src/test/resources/data/template/spinhtml/data/construct.ttl similarity index 100% rename from corese-unit-test/src/test/resources/fr/inria/corese/engine/data/template/spinhtml/data/construct.ttl rename to corese-unit-test/src/test/resources/data/template/spinhtml/data/construct.ttl diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/template/spinhtml/data/describe.ttl b/corese-unit-test/src/test/resources/data/template/spinhtml/data/describe.ttl similarity index 100% rename from corese-unit-test/src/test/resources/fr/inria/corese/engine/data/template/spinhtml/data/describe.ttl rename to corese-unit-test/src/test/resources/data/template/spinhtml/data/describe.ttl diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/template/spinhtml/data/exp.ttl b/corese-unit-test/src/test/resources/data/template/spinhtml/data/exp.ttl similarity index 100% rename from corese-unit-test/src/test/resources/fr/inria/corese/engine/data/template/spinhtml/data/exp.ttl rename to corese-unit-test/src/test/resources/data/template/spinhtml/data/exp.ttl diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/template/spinhtml/data/onto.ttl b/corese-unit-test/src/test/resources/data/template/spinhtml/data/onto.ttl similarity index 100% rename from corese-unit-test/src/test/resources/fr/inria/corese/engine/data/template/spinhtml/data/onto.ttl rename to corese-unit-test/src/test/resources/data/template/spinhtml/data/onto.ttl diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/template/spinhtml/data/path.ttl b/corese-unit-test/src/test/resources/data/template/spinhtml/data/path.ttl similarity index 100% rename from corese-unit-test/src/test/resources/fr/inria/corese/engine/data/template/spinhtml/data/path.ttl rename to corese-unit-test/src/test/resources/data/template/spinhtml/data/path.ttl diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/template/spinhtml/data/sco.ttl b/corese-unit-test/src/test/resources/data/template/spinhtml/data/sco.ttl similarity index 100% rename from corese-unit-test/src/test/resources/fr/inria/corese/engine/data/template/spinhtml/data/sco.ttl rename to corese-unit-test/src/test/resources/data/template/spinhtml/data/sco.ttl diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/template/spinhtml/data/sub.ttl b/corese-unit-test/src/test/resources/data/template/spinhtml/data/sub.ttl similarity index 100% rename from corese-unit-test/src/test/resources/fr/inria/corese/engine/data/template/spinhtml/data/sub.ttl rename to corese-unit-test/src/test/resources/data/template/spinhtml/data/sub.ttl diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/template/spinhtml/data/test.ttl b/corese-unit-test/src/test/resources/data/template/spinhtml/data/test.ttl similarity index 100% rename from corese-unit-test/src/test/resources/fr/inria/corese/engine/data/template/spinhtml/data/test.ttl rename to corese-unit-test/src/test/resources/data/template/spinhtml/data/test.ttl diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/template/spinhtml/data/values.ttl b/corese-unit-test/src/test/resources/data/template/spinhtml/data/values.ttl similarity index 100% rename from corese-unit-test/src/test/resources/fr/inria/corese/engine/data/template/spinhtml/data/values.ttl rename to corese-unit-test/src/test/resources/data/template/spinhtml/data/values.ttl diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/test/iso.rdf b/corese-unit-test/src/test/resources/data/test/iso.rdf similarity index 100% rename from corese-unit-test/src/test/resources/fr/inria/corese/engine/data/test/iso.rdf rename to corese-unit-test/src/test/resources/data/test/iso.rdf diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/test/iso.ttl b/corese-unit-test/src/test/resources/data/test/iso.ttl similarity index 100% rename from corese-unit-test/src/test/resources/fr/inria/corese/engine/data/test/iso.ttl rename to corese-unit-test/src/test/resources/data/test/iso.ttl diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/test/primer.owl b/corese-unit-test/src/test/resources/data/test/primer.owl similarity index 100% rename from corese-unit-test/src/test/resources/fr/inria/corese/engine/data/test/primer.owl rename to corese-unit-test/src/test/resources/data/test/primer.owl diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/test/primerdata.ttl b/corese-unit-test/src/test/resources/data/test/primerdata.ttl similarity index 100% rename from corese-unit-test/src/test/resources/fr/inria/corese/engine/data/test/primerdata.ttl rename to corese-unit-test/src/test/resources/data/test/primerdata.ttl diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/test/utf.rdf b/corese-unit-test/src/test/resources/data/test/utf.rdf similarity index 100% rename from corese-unit-test/src/test/resources/fr/inria/corese/engine/data/test/utf.rdf rename to corese-unit-test/src/test/resources/data/test/utf.rdf diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/test/utf.ttl b/corese-unit-test/src/test/resources/data/test/utf.ttl similarity index 100% rename from corese-unit-test/src/test/resources/fr/inria/corese/engine/data/test/utf.ttl rename to corese-unit-test/src/test/resources/data/test/utf.ttl diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f0.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f0.rdf deleted file mode 100644 index f36e60364f..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f0.rdf +++ /dev/null @@ -1,12 +0,0 @@ - - - - - - Epidaure - - - 1-1996 - Squelettes Euclidiens d'objets discrets n-dimensionnels - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f1.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f1.rdf deleted file mode 100644 index 040c316078..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f1.rdf +++ /dev/null @@ -1,42 +0,0 @@ - - - - - - Moisan - Sabine - - - - - Ployette - Florimont - - - - - Thonnat - Monique - - - - - Clment - Vronique - - - - - Vincent - Rgis - - - - - Orion - - - 12-1995 - Documentation de l'Interface du Logiciel OCAPI - Version 2.0 - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f10.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f10.rdf deleted file mode 100644 index 63880c558f..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f10.rdf +++ /dev/null @@ -1,18 +0,0 @@ - - - - - - Hermosillo - Gerardo - - - - - Robotvis - - - 2-2001 - A Variational Approach to Multi-Modal Image Matching - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f100.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f100.rdf deleted file mode 100644 index 74f0bc8bb1..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f100.rdf +++ /dev/null @@ -1,19 +0,0 @@ - - - - - - de - A. - - - - - Bourdonnaye - la - - - 1-1995 - A substructuring method for a harmonic wave propagation problem : Analysis of the conditioning number of the problem on the interfaces - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f101.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f101.rdf deleted file mode 100644 index e93359e74e..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f101.rdf +++ /dev/null @@ -1,54 +0,0 @@ - - - - - - Abalakin - I. - - - - - Braza - M. - - - - - Camarri - S. - - - - - Dervieux - A. - - - - - Koobus - B. - - - - - Kozubskaya - T. - - - - - Rodes - P. - - - - - Sinus - - - 11-2000 - Unstable and unsteady aerodynamics : compared information from different numerical models - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f102.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f102.rdf deleted file mode 100644 index cdcaea644a..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f102.rdf +++ /dev/null @@ -1,24 +0,0 @@ - - - - - - Carrillo - Jos�Antonio - - - - - Goudon - Thierry - - - - - Caiman - - - 10-2001 - A numerical study on large-time asymptotics of the Lifshitz-Slyozov system - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f103.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f103.rdf deleted file mode 100644 index ca245faa1c..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f103.rdf +++ /dev/null @@ -1,13 +0,0 @@ - - - - - - Piperno - S. - - - 12-1994 - Méthodes d'intégration temporelle décalée pour un probl\`eme aéroélastique mono-dimensionnel non linéaire - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f104.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f104.rdf deleted file mode 100644 index b77a8cf7d0..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f104.rdf +++ /dev/null @@ -1,24 +0,0 @@ - - - - - - Boussinot - Frdric - - - - - Laneve - Cosimo - - - - - Meije - - - 3-1995 - Two Semantics for a Language of Reactive Objects - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f105.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f105.rdf deleted file mode 100644 index ee0ff7ffaa..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f105.rdf +++ /dev/null @@ -1,24 +0,0 @@ - - - - - - Boussinot - Frdric - - - - - de - Robert - - - - - Meije - - - 3-1995 - The SL Synchronous Language - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f106.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f106.rdf deleted file mode 100644 index 4ad87982d3..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f106.rdf +++ /dev/null @@ -1,18 +0,0 @@ - - - - - - Sangiorgi - Davide - - - - - Meije - - - 4-1995 - Bisimulation for higher-order process calculi - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f107.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f107.rdf deleted file mode 100644 index 95eeb68c30..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f107.rdf +++ /dev/null @@ -1,24 +0,0 @@ - - - - - - Fournier - Robert - - - - - Kherrati - Wihem - - - - - Sinus - - - 3-1995 - Etude d'algorithmes graphiques dans le cadre de la simulation numrique. - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f108.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f108.rdf deleted file mode 100644 index fede189937..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f108.rdf +++ /dev/null @@ -1,24 +0,0 @@ - - - - - - Attali - Isabelle - - - - - Parigot - Didier - - - - - Croap - - - 9-1994 - Integrating Natural Semantics and Attribute Grammars: the Minotaur System - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f109.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f109.rdf deleted file mode 100644 index f0f54f54cb..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f109.rdf +++ /dev/null @@ -1,24 +0,0 @@ - - - - - - Baccelli - Franois - - - - - Schmidt - Volker - - - - - Mistral - - - 2-1995 - Taylor Expansions for Poisson Driven $(\max,+)$-Linear Systems - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f11.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f11.rdf deleted file mode 100644 index ced2d6651e..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f11.rdf +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - Liu - Zhen - - - - - Nain - Philippe - - - - - Towsley - Don - - - - - Mistral - - - 11-1995 - Bounds on Finite Horizon QoS Metrics with Application to Call Admission - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f110.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f110.rdf deleted file mode 100644 index 22cdf57afd..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f110.rdf +++ /dev/null @@ -1,24 +0,0 @@ - - - - - - Morin - Pascal - - - - - Samson - Claude - - - - - Icare - - - 2-1995 - Time-varying Exponential Stabilization of the Attitude of a Rigid Spacecraft with Two Controls - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f111.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f111.rdf deleted file mode 100644 index a618db0111..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f111.rdf +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - Baratchart - Laurent - - - - - Leblond - Juliette - - - - - Partington - Jonathan - - - - - Miaou - - - 2-1995 - Flow control using the theory of zero sum Markov games - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f112.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f112.rdf deleted file mode 100644 index 214536f20a..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f112.rdf +++ /dev/null @@ -1,18 +0,0 @@ - - - - - - Teillaud - Monique - - - - - Prisme - - - 2-1995 - Union and Split Operations on Dynamic Trapezoidal Maps - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f113.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f113.rdf deleted file mode 100644 index 538a1877c2..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f113.rdf +++ /dev/null @@ -1,24 +0,0 @@ - - - - - - Declerck - Jerome - - - - - Subsol - Gerard - - - - - Thirion - Jean-Philippe - - - Automatic Retrieval of Anatomical Structures in 3D Medical Images - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f114.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f114.rdf deleted file mode 100644 index 9ba017aba6..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f114.rdf +++ /dev/null @@ -1,18 +0,0 @@ - - - - - - Pennec - Xavier - - - - - Thirion - Jean-Philippe - - - Validation of 3-D Registration Methods based on Points and Frames - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f115.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f115.rdf deleted file mode 100644 index 1bee59f9ad..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f115.rdf +++ /dev/null @@ -1,24 +0,0 @@ - - - - - - Bascle - Benedicte - - - - - Deriche - Rachid - - - - - Robotvis - - - 12-1994 - Region tracking through image sequences - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f116.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f116.rdf deleted file mode 100644 index 8d1a2c7efc..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f116.rdf +++ /dev/null @@ -1,24 +0,0 @@ - - - - - - Blaszka - Thierry - - - - - Deriche - Rachid - - - - - Robotvis - - - 12-1994 - A Model Based Method for Characterization and Location of Curved Im age Features - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f117.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f117.rdf deleted file mode 100644 index 90bef8429e..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f117.rdf +++ /dev/null @@ -1,18 +0,0 @@ - - - - - - Retore - Christian - - - - - Meije - - - 12-1994 - A note on intersection types - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f118.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f118.rdf deleted file mode 100644 index 79cebc8d90..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f118.rdf +++ /dev/null @@ -1,18 +0,0 @@ - - - - - - Retore - Christian - - - - - Meije - - - 12-1994 - On the relation between coherence semantics and multiplicative pro of nets - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f119.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f119.rdf deleted file mode 100644 index ac1023c7cf..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f119.rdf +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - Coscoy - Yann - - - - - Kahn - Gilles - - - - - Thery - Laurent - - - - - Croap - - - 1-1995 - Extracting Text from Proofs - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f12.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f12.rdf deleted file mode 100644 index 785bc23c59..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f12.rdf +++ /dev/null @@ -1,24 +0,0 @@ - - - - - - Desnogues - Pascal - - - - - Rakotoarisoa - Hery - - - - - Mistral - - - 1-1996 - ``ARC'': Simulateur d'architecture de rseaux de communications - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f120.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f120.rdf deleted file mode 100644 index 1e772aa4a7..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f120.rdf +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - Malandain - Gregoire - - - - - Fernandez-Vidal - Sara - - - - - Rocchisani - Jean-Marie - - - - - Epidaure - - - 10-1994 - Physically Based Rigid Registration of 3-D Free-Form Objects : appl ication to Medical Imaging - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f121.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f121.rdf deleted file mode 100644 index 3846d846f4..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f121.rdf +++ /dev/null @@ -1,18 +0,0 @@ - - - - - - Koobus - Bruno - - - - - Sinus - - - 12-1994 - An implicit method for turbulent boundary layers simulation - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f122.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f122.rdf deleted file mode 100644 index 46074a602d..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f122.rdf +++ /dev/null @@ -1,18 +0,0 @@ - - - - - - Retore - Christian - - - - - Meije - - - 12-1994 - A self-dual modality for "before" in the category of coherence spac es and in the category of hypercoherences - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f123.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f123.rdf deleted file mode 100644 index 81454dfcf6..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f123.rdf +++ /dev/null @@ -1,42 +0,0 @@ - - - - - - Boissonnat - Jean-Daniel - - - - - Cerezo - Andre - - - - - Devillers - Olivier - - - - - Duquesne - Jacqueline - - - - - Yvinec - Mariette - - - - - Prisme - - - 11-1993 - An Algorithm for constructing the convex hull of a set of spheres i n dimension d - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f124.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f124.rdf deleted file mode 100644 index 2ed7ec8d43..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f124.rdf +++ /dev/null @@ -1,18 +0,0 @@ - - - - - - Abgrall - Remi - - - - - Sinus - - - 12-1994 - Some remarks about the Riemann problem of first order Hamilton--Jac obi equations on general geometries - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f125.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f125.rdf deleted file mode 100644 index d2c2ec60f6..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f125.rdf +++ /dev/null @@ -1,24 +0,0 @@ - - - - - - Boudol - Gerard - - - - - Laneve - Cosimo - - - - - Meije - - - 12-1994 - The discriminating power of multiplicities in the $\lambda$-calculus - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f126.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f126.rdf deleted file mode 100644 index ececf797a1..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f126.rdf +++ /dev/null @@ -1,24 +0,0 @@ - - - - - - Abalakin - Ilya - - - - - Koobus - Bruno - - - - - Sinus - - - 11-2000 - The behavior of two near-wall models for k-\varepsilon prediction of stall - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f127.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f127.rdf deleted file mode 100644 index bf31d6690c..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f127.rdf +++ /dev/null @@ -1,36 +0,0 @@ - - - - - - Rothwell - Charlie - - - - - Mundy - Joe - - - - - Hoffman - Bill - - - - - Nguyen - Van-Duc - - - - - Robotvis - - - 12-1994 - Sophia Antipolis, Projet Robotvis , Decembre 1994 So - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f128.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f128.rdf deleted file mode 100644 index 745da03e58..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f128.rdf +++ /dev/null @@ -1,24 +0,0 @@ - - - - - - Blaszka - Thierry - - - - - Deriche - Rachid - - - - - Robotvis - - - 11-1994 - Recovering and Characterizing Image Features Using An Efficient Mod el Based Approach - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f129.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f129.rdf deleted file mode 100644 index d097b57ff3..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f129.rdf +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - Godart - Cyril - - - - - Salvetti - Maria-Vittoria - - - - - Desideri - Jean-Antoine - - - - - Sinus - - - 12-1994 - Etude numrique de modles thermochimiques coupls pour les coulem ents hypersoniques eulriens - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f13.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f13.rdf deleted file mode 100644 index 34088358c1..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f13.rdf +++ /dev/null @@ -1,24 +0,0 @@ - - - - - - Artiges - Damien - - - - - Nain - Philippe - - - - - Mistral - - - 11-1995 - Upper and Lower Bounds on Overflow Probabilities for a Multiplexer with Multiclass Markovian Sources - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f130.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f130.rdf deleted file mode 100644 index 527252dcc4..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f130.rdf +++ /dev/null @@ -1,24 +0,0 @@ - - - - - - Martin - Regis - - - - - Guillard - Herve - - - - - Sinus - - - 11-1994 - A Second Order Defect Correction Scheme for Unsteady Problems Sophia Antipolis, Projet Sinus , Novembre 1994 - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f131.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f131.rdf deleted file mode 100644 index 654b6d0b3e..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f131.rdf +++ /dev/null @@ -1,18 +0,0 @@ - - - - - - Koole - Ger - - - - - Mistral - - - 12-1994 - On the pathwise optimal Bernoulli routing policy for homogeneous pa rallel servers - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f132.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f132.rdf deleted file mode 100644 index ab7648ec9b..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f132.rdf +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - Volden - Espen - - - - - Giraudon - Gerard - - - - - Berthod - Marc - - - - - Pastis - - - 12-1994 - Modelling Image Redundancy - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f133.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f133.rdf deleted file mode 100644 index 981366dcf9..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f133.rdf +++ /dev/null @@ -1,18 +0,0 @@ - - - - - - Berlandier - Pierre - - - - - Secoia - - - 12-1994 - Deux variations sur le thme de la consistance d'arcs : maintien et renforcement - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f134.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f134.rdf deleted file mode 100644 index cba87fa688..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f134.rdf +++ /dev/null @@ -1,18 +0,0 @@ - - - - - - Cerou - Frederic - - - - - Mefisto - - - 12-1994 - Long time asymptotics for some dynamical noise free non-linear filt ering problems - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f135.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f135.rdf deleted file mode 100644 index 9dfa30f52c..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f135.rdf +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - Feldmar - Jacques - - - - - Ayache - Nicholas - - - - - Betting - Fabienne - - - - - Epidaure - - - 12-1994 - 3D-2D projective registration of free-form curves and surfaces Sophia Antipolis, Projet Epidaure , Decembre 1994 - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f136.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f136.rdf deleted file mode 100644 index 7307b31609..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f136.rdf +++ /dev/null @@ -1,18 +0,0 @@ - - - - - - Pottier - Loc - - - - - Lemme - - - 11-2000 - Quotients dans le CCI - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f137.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f137.rdf deleted file mode 100644 index d099776dce..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f137.rdf +++ /dev/null @@ -1,36 +0,0 @@ - - - - - - Bascle - Benedicte - - - - - Deriche - Rachid - - - - - Meyer - Francois - - - - - Bouthemy - Patrick - - - - - Robotvis - - - 12-1994 - Tracking complex primitives in an image sequence - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f138.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f138.rdf deleted file mode 100644 index d66657865e..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f138.rdf +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - Liu - Zhen - - - - - Nain - Philippe - - - - - Towsley - Don - - - - - Mistral - - - 12-1994 - On a Generalization of Kingman's Bounds - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f139.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f139.rdf deleted file mode 100644 index 84c1a2c710..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f139.rdf +++ /dev/null @@ -1,36 +0,0 @@ - - - - - - Boissonnat - Jean-Daniel - - - - - Czyzowicz - Jurek - - - - - Devillers - Olivier - - - - - Yvinec - Mariette - - - - - Prisme - - - 11-1994 - Circular Separability of Polygons - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f14.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f14.rdf deleted file mode 100644 index 196b984561..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f14.rdf +++ /dev/null @@ -1,19 +0,0 @@ - - - - - - Loriot - M. - - - - - Fezoui - L. - - - 9-1993 - A Parallel Compressible 3D Navier-Stokes Solver Using Unstructured Meshes - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f140.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f140.rdf deleted file mode 100644 index 10cbbfa677..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f140.rdf +++ /dev/null @@ -1,18 +0,0 @@ - - - - - - Griniasty - Meir - - - - - Mefisto - - - 11-1994 - Autonomous algorithms for image restoration - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f141.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f141.rdf deleted file mode 100644 index 6d9e508e53..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f141.rdf +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - Kato - Zoltan - - - - - Berthod - Marc - - - - - Zerubia - Josiane - - - - - Pastis - - - 8-1994 - A hierarchical Markov random field model and multi-temperature anne aling for parallel image classification - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f142.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f142.rdf deleted file mode 100644 index d096fa3c1a..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f142.rdf +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - Baccelli - Francois - - - - - Gaujal - Bruno - - - - - Foss - Sergei - - - - - Mistral - - - 11-1994 - Structural, temporal and stochastic properties of unbounded free-ch oice Petri nets - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f143.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f143.rdf deleted file mode 100644 index 2959d1319d..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f143.rdf +++ /dev/null @@ -1,18 +0,0 @@ - - - - - - Viville - Thierry - - - - - Robotvis - - - 11-2000 - Using markers to compensate displacements in MRI volume sequences. - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f144.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f144.rdf deleted file mode 100644 index abb39c7bc4..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f144.rdf +++ /dev/null @@ -1,24 +0,0 @@ - - - - - - Bossy - Mireille - - - - - Talay - Denis - - - - - Omega - - - 11-1994 - Convergence Rate for the Approximation of the Limit Law of Weakly I nteracting Particles 2: Application to the Burgers Equation - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f145.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f145.rdf deleted file mode 100644 index a937db5e4a..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f145.rdf +++ /dev/null @@ -1,18 +0,0 @@ - - - - - - Grimm - Jose - - - - - Safir - - - 11-1994 - Implementation en C de l'arithmetique de Sisyphe - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f146.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f146.rdf deleted file mode 100644 index 1824a675a5..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f146.rdf +++ /dev/null @@ -1,18 +0,0 @@ - - - - - - Aboulalaa - Adnan - - - - - Mistral - - - 11-1994 - Sur un theoreme de limite conditionnelle - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f147.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f147.rdf deleted file mode 100644 index f3b5e5ca0e..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f147.rdf +++ /dev/null @@ -1,18 +0,0 @@ - - - - - - Abgrall - Remi - - - - - Sinus - - - 10-1994 - How to prevent pressure oscillations in multicomponent flow calcul ations : a quasi conservative approach - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f148.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f148.rdf deleted file mode 100644 index f05dc0dfd7..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f148.rdf +++ /dev/null @@ -1,36 +0,0 @@ - - - - - - Campillo - Fabien - - - - - Bernier - Herve - - - - - Cerou - Frederic - - - - - Gland - Le - - - - - Mefisto - - - 11-1994 - Parallelisme de donnees et filtrage non lineaire : Analyse de perfo rmance - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f149.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f149.rdf deleted file mode 100644 index 3044742d59..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f149.rdf +++ /dev/null @@ -1,24 +0,0 @@ - - - - - - Florack - Luc - - - - - Nielsen - Mads - - - - - Robotvis - - - 7-1994 - The Intrinsic Structure of the Optic Flow Field - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f15.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f15.rdf deleted file mode 100644 index 8da8f9cee0..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f15.rdf +++ /dev/null @@ -1,19 +0,0 @@ - - - - - - Depeyre - S. - - - - - Issautier - D. - - - 6-1995 - Application aux schmas volumes finis d'une mthode de pnalisation des contraintes pour le systme de Maxwell - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f150.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f150.rdf deleted file mode 100644 index 27396360d6..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f150.rdf +++ /dev/null @@ -1,24 +0,0 @@ - - - - - - Fidrich - Marta - - - - - Thirion - Jean-Philippe - - - - - Epidaure - - - 10-1994 - Multiscale Extraction and Representation of Features from Medical I mages - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f151.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f151.rdf deleted file mode 100644 index 898eb2c8c8..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f151.rdf +++ /dev/null @@ -1,54 +0,0 @@ - - - - - - Castelluccia - Claude - - - - - Chrisment - Isabelle - - - - - Dabbous - Walid - - - - - Diot - Christophe - - - - - Huitema - Christian - - - - - Siegel - Ellen - - - - - Simone - De - - - - - Rodeo - - - 10-1994 - Tailored Protocol Development Using ESTEREL - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f152.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f152.rdf deleted file mode 100644 index 420ffb49c7..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f152.rdf +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - Viville - Thierry - - - - - Lingrand - Diane - - - - - Francois - and - - - - - Robotvis - - - 11-2000 - Implementing a variant of the Kanatani's estimation method. - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f153.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f153.rdf deleted file mode 100644 index 610de747cd..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f153.rdf +++ /dev/null @@ -1,24 +0,0 @@ - - - - - - Dery - Anne-Marie - - - - - Lejouad - Wided - - - - - Secoia - - - 11-1994 - From Modular to Distributed Architectures: Centaur and Smeci Experi ments - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f154.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f154.rdf deleted file mode 100644 index 8ec7bbf61f..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f154.rdf +++ /dev/null @@ -1,24 +0,0 @@ - - - - - - Campillo - Fabien - - - - - Traore - Abdoulaye - - - - - Mefisto - - - 11-1994 - Lyapunov exponents of controlled SDE's and stabilizability property : Some examples - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f155.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f155.rdf deleted file mode 100644 index fca7b9479e..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f155.rdf +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - Baratchart - Laurent - - - - - Leblond - Juliette - - - - - Partington - Jonathan - - - - - Miaou - - - 10-1994 - Hardy approximation to $L^p$ functions on subsets of the circle Sophia Antipolis, Projet Miaou , Octobre 1994 - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f156.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f156.rdf deleted file mode 100644 index ea89cec5ee..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f156.rdf +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - Boissonnat - Jean-Daniel - - - - - Czyzowicz - Jurek - - - - - Devillers - Olivier - - - - - Prisme - - - 11-1994 - Convex Tours of Bounded Curvature - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f157.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f157.rdf deleted file mode 100644 index ff891c808e..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f157.rdf +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - Tidball - Mabel - - - - - Pourtallier - Odile - - - - - Altman - Eitan - - - - - Mistral - - - 10-1994 - Approximations in dynamic zero-sum games, II - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f158.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f158.rdf deleted file mode 100644 index d79f609034..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f158.rdf +++ /dev/null @@ -1,18 +0,0 @@ - - - - - - Thirion - Jean-Philippe - - - - - Epidaure - - - 12-1993 - The Extremal mesh and the understanding of 3D surfaces - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f159.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f159.rdf deleted file mode 100644 index 1592069c97..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f159.rdf +++ /dev/null @@ -1,24 +0,0 @@ - - - - - - Thirion - Jean-Philippe - - - - - Benayoun - Serge - - - - - Epidaure - - - 8-1993 - Image surface extremal points, new feature points for image registr ation - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f16.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f16.rdf deleted file mode 100644 index 7d03533e34..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f16.rdf +++ /dev/null @@ -1,18 +0,0 @@ - - - - - - Devernay - Frdric - - - - - Robotvis - - - 11-1995 - A Non-Maxima Suppression Method for Edge Detection with Sub-Pixel Accuracy - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f160.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f160.rdf deleted file mode 100644 index 765a3846fb..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f160.rdf +++ /dev/null @@ -1,18 +0,0 @@ - - - - - - Thirion - Jean-Philippe - - - - - Epidaure - - - 5-1993 - New feature points based on geometric invariants for 3D image regis tration - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f161.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f161.rdf deleted file mode 100644 index 91f65d73eb..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f161.rdf +++ /dev/null @@ -1,24 +0,0 @@ - - - - - - Thirion - Jean-Philippe - - - - - Gourdon - Alexis - - - - - Epidaure - - - 4-1993 - The Marching lines algorithm : new results and proofs : part 2. - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f162.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f162.rdf deleted file mode 100644 index 515c7a8a97..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f162.rdf +++ /dev/null @@ -1,24 +0,0 @@ - - - - - - Thirion - Jean-Philippe - - - - - Gourdon - Alexis - - - - - Epidaure - - - 4-1993 - The Marching lines algorithm : new results and proofs : part 1. - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f163.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f163.rdf deleted file mode 100644 index 33f938256f..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f163.rdf +++ /dev/null @@ -1,18 +0,0 @@ - - - - - - Thirion - Jean-Philippe - - - - - Epidaure - - - 11-1992 - The Gradient and laplacien filtered back projection operators Sophia Antipolis, Projet Epidaure , Novembre 1992 - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f164.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f164.rdf deleted file mode 100644 index d90d4ea1bc..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f164.rdf +++ /dev/null @@ -1,24 +0,0 @@ - - - - - - Thirion - Jean-Philippe - - - - - Gourdon - Alexis - - - - - Epidaure - - - 5-1992 - The 3D marching lines algorithm and its application to crest lines extraction - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f165.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f165.rdf deleted file mode 100644 index 46c2a32ef0..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f165.rdf +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - Bertot - Yves - - - - - Pons - Olivier - - - - - Pottier - Loc - - - - - Lemme - - - 11-2000 - Graphes de dpendance pour les dmonstrateurs de thormes intractifs - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f166.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f166.rdf deleted file mode 100644 index 12cbce1e29..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f166.rdf +++ /dev/null @@ -1,18 +0,0 @@ - - - - - - Thirion - Jean-Philippe - - - - - Epidaure - - - 6-1991 - A geometric alternative to computed tomography - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f167.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f167.rdf deleted file mode 100644 index 97b7e0acfb..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f167.rdf +++ /dev/null @@ -1,18 +0,0 @@ - - - - - - Nielsen - Mads - - - - - Robotvis - - - 3-1994 - Surface Reconstruction: GNCs and MFAs - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f168.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f168.rdf deleted file mode 100644 index 4b07fa31c0..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f168.rdf +++ /dev/null @@ -1,24 +0,0 @@ - - - - - - Abgrall - Remi - - - - - Harten - Ami - - - - - Sinus - - - 9-1994 - Multiresolution Representation in Unstructured Meshes : I. Prelimin ary Report - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f169.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f169.rdf deleted file mode 100644 index dfba9b298f..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f169.rdf +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - Nielsen - Mads - - - - - Florack - Luc - - - - - Deriche - Rachid - - - - - Robotvis - - - 7-1994 - Regularization and Scale Space - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f17.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f17.rdf deleted file mode 100644 index f66788bccf..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f17.rdf +++ /dev/null @@ -1,24 +0,0 @@ - - - - - - Devernay - Frdric - - - - - Faugeras - Olivier - - - - - Robotvis - - - 11-1995 - From Projective to Euclidean Reconstruction - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f170.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f170.rdf deleted file mode 100644 index 7f9b909d52..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f170.rdf +++ /dev/null @@ -1,18 +0,0 @@ - - - - - - Nielsen - Mads - - - - - Robotvis - - - 3-1994 - Adaptive Regularization: Towards Self-Calibrated Reconstruction - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f171.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f171.rdf deleted file mode 100644 index 8ff39d7d1f..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f171.rdf +++ /dev/null @@ -1,24 +0,0 @@ - - - - - - Robert - Luc - - - - - Faugeras - Olivier - - - - - Robotvis - - - 9-1994 - Relative 3D Positioning and 3D Convex Hull Computation from a Weakl y Calibrated Stereo Pair - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f172.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f172.rdf deleted file mode 100644 index c1a60b0e45..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f172.rdf +++ /dev/null @@ -1,18 +0,0 @@ - - - - - - Abgrall - Remi - - - - - Sinus - - - 9-1994 - Approximation of the multidimensional Riemann problem in Compressib le Fluid Mechanics by a Roe type method - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f173.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f173.rdf deleted file mode 100644 index b8ca4ffe23..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f173.rdf +++ /dev/null @@ -1,18 +0,0 @@ - - - - - - Zhang - Zhengyou - - - - - Robotvis - - - 9-1994 - Estimating Motion and Structure from Correspondences of Line Segmen ts Between Two Perspective Images - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f174.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f174.rdf deleted file mode 100644 index 1ecd99126a..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f174.rdf +++ /dev/null @@ -1,24 +0,0 @@ - - - - - - Dupont - Stphane - - - - - Berthod - Marc - - - - - Pastis - - - 9-1994 - Interferometrie radar et Deroulement de phase - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f175.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f175.rdf deleted file mode 100644 index 810c68ce97..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f175.rdf +++ /dev/null @@ -1,24 +0,0 @@ - - - - - - Dery - Anne-Marie - - - - - Rideau - Laurence - - - - - Croap - - - 8-1994 - Distributed programming environments: an example of a message proto col - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f176.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f176.rdf deleted file mode 100644 index a8f3d2b22f..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f176.rdf +++ /dev/null @@ -1,36 +0,0 @@ - - - - - - Devillers - Olivier - - - - - Golin - Mordecai - - - - - Kedem - Klara - - - - - Schirra - Stefan - - - - - Prisme - - - 9-1994 - Revenge of the Dog: Queries on Voronoi Diagrams of Moving Points - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f177.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f177.rdf deleted file mode 100644 index 9d6548cc7f..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f177.rdf +++ /dev/null @@ -1,24 +0,0 @@ - - - - - - Aranda-Bricaire - Eduardo - - - - - Moog - Claude - - - - - Miaou - - - 7-1994 - Infinitesimal Brunovsky Form for Nonlinear Systems with Applicatio ns to Dynamic Linearization - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f178.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f178.rdf deleted file mode 100644 index d4112acb9b..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f178.rdf +++ /dev/null @@ -1,24 +0,0 @@ - - - - - - Lobry - Claude - - - - - Sari - Tewfik - - - - - Comore - - - 11-2000 - The peaking phenomenon and singular perturbations : an extension of Tikhonov's theorem - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f179.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f179.rdf deleted file mode 100644 index 670351c7c3..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f179.rdf +++ /dev/null @@ -1,18 +0,0 @@ - - - - - - Pomet - Jean-Baptiste - - - - - Miaou - - - 7-1994 - A Differential Geometric Setting for Dynamic Equivalence and Dynami c Linearization - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f18.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f18.rdf deleted file mode 100644 index b98854b354..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f18.rdf +++ /dev/null @@ -1,18 +0,0 @@ - - - - - - Sausse - Alain - - - - - Safir - - - 12-1995 - tude par le calcul formel d'une question issue du problme 4 corps - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f180.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f180.rdf deleted file mode 100644 index 7409185e89..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f180.rdf +++ /dev/null @@ -1,18 +0,0 @@ - - - - - - Koobus - Bruno - - - - - Lallemand - Marie-Helene - - - An Additive Standpoint in Parallel Two-Level Multigrid Algorithms - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f181.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f181.rdf deleted file mode 100644 index 4fb02f23ae..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f181.rdf +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - Marco - Nathalie - - - - - Koobus - Bruno - - - - - Dervieux - Alain - - - - - Sinus - - - 8-1994 - An Additive Multilevel Preconditioning Method - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f182.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f182.rdf deleted file mode 100644 index 06e5b123a6..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f182.rdf +++ /dev/null @@ -1,24 +0,0 @@ - - - - - - Boudol - Grard - - - - - Castellani - Ilaria - - - - - Mimosa - - - 9-2001 - Noninterference for Concurrent Programs and Thread Systems - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f183.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f183.rdf deleted file mode 100644 index 55aeacd90b..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f183.rdf +++ /dev/null @@ -1,24 +0,0 @@ - - - - - - Duval - Benoit - - - - - Guillard - Herve - - - - - Sinus - - - 7-1994 - Gestion de maillages triangulaires deformables - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f184.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f184.rdf deleted file mode 100644 index d7143da4d0..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f184.rdf +++ /dev/null @@ -1,24 +0,0 @@ - - - - - - Zeller - Cyril - - - - - Faugeras - Olivier - - - - - Robotvis - - - 7-1994 - Applications of Non-Metric Vision to Some Visual Guided Tasks Sophia Antipolis, Projet Robotvis , Juillet 1994 - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f185.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f185.rdf deleted file mode 100644 index dd240907ee..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f185.rdf +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - Avnaim - Francis - - - - - Boissonnat - Jean-Daniel - - - - - Devillers - Olivier - - - - - Preparata - Franco - - - Evaluating signs of determinants using single-precision arithmetic - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f186.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f186.rdf deleted file mode 100644 index ee76a3ddf4..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f186.rdf +++ /dev/null @@ -1,24 +0,0 @@ - - - - - - Navab - Nassir - - - - - Faugeras - Olivier - - - - - Robotvis - - - 7-1994 - The Critical Sets of Lines for Camera Displacement Estimation : A M ixed Euclidean-Projective and Constructive Approach - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f187.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f187.rdf deleted file mode 100644 index 2936533c79..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f187.rdf +++ /dev/null @@ -1,18 +0,0 @@ - - - - - - Faure - Christele - - - - - Safir - - - 7-1994 - Objets conditionnels et objets inconnus - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f188.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f188.rdf deleted file mode 100644 index faa4d24fb9..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f188.rdf +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - Baccelli - Franois - - - - - Klein - Maurice - - - - - Zuyev - Serguei - - - - - Mistral - - - 3-1994 - Perturbation Analysis of Functionals of Random Measures - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f189.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f189.rdf deleted file mode 100644 index 6d716ac912..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f189.rdf +++ /dev/null @@ -1,18 +0,0 @@ - - - - - - Zuyev - Sergei - - - - - Mistral - - - 7-1994 - Poisson Power Tesselations - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f19.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f19.rdf deleted file mode 100644 index 07d91c955d..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f19.rdf +++ /dev/null @@ -1,48 +0,0 @@ - - - - - - Moisan - Sabine - - - - - Vincent - Rgis - - - - - Thonnat - Monique - - - - - Clment - Vronique - - - - - van - John - - - - - Elst - den - - - - - Orion - - - 11-1995 - Manuel de rfrence du Logiciel OCAPI Version 2.0 - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f190.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f190.rdf deleted file mode 100644 index a271b8d030..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f190.rdf +++ /dev/null @@ -1,18 +0,0 @@ - - - - - - Bertot - Yves - - - - - Lemme - - - 11-2000 - A Coq formalization of a Type Checker for Object Initialization in the Java Virtual Machine - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f191.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f191.rdf deleted file mode 100644 index 798e75b5a2..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f191.rdf +++ /dev/null @@ -1,24 +0,0 @@ - - - - - - Devernay - Frederic - - - - - Faugeras - Olivier - - - - - Robotvis - - - 7-1994 - Computing Differential Properties of 3-D Shapes from Stereoscopic I mages without 3-D Models - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f192.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f192.rdf deleted file mode 100644 index ac6ecd07f7..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f192.rdf +++ /dev/null @@ -1,24 +0,0 @@ - - - - - - Finta - Lucian - - - - - Liu - Zhen - - - - - Mistral - - - 5-1994 - Scheduling of Parallel Programs in Single-Bus Multiprocessor Systems - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f193.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f193.rdf deleted file mode 100644 index 76a709c1b0..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f193.rdf +++ /dev/null @@ -1,24 +0,0 @@ - - - - - - Benayoun - Serge - - - - - Ayache - Nicholas - - - - - Cohen - Isaac - - - An adaptive model for 2D and 3D dense non rigid motion computation - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f194.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f194.rdf deleted file mode 100644 index 82b502c16e..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f194.rdf +++ /dev/null @@ -1,18 +0,0 @@ - - - - - - Tidball - Mabel - - - - - Miaou - - - 6-1994 - Undiscounted zero sum differential games with stopping times - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f195.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f195.rdf deleted file mode 100644 index 025a8f7972..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f195.rdf +++ /dev/null @@ -1,18 +0,0 @@ - - - - - - Jiang - Zhong - - - - - Miaou - - - 6-1994 - A note on robust control of nonlinear systems with input unmodeled dynamics - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f196.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f196.rdf deleted file mode 100644 index cfa8e44e76..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f196.rdf +++ /dev/null @@ -1,24 +0,0 @@ - - - - - - Despeyroux - Joelle - - - - - Hirschowitz - Andre - - - - - Croap - - - 6-1994 - Higher-order abstract syntax with induction in Coq - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f197.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f197.rdf deleted file mode 100644 index 0dfb927e33..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f197.rdf +++ /dev/null @@ -1,24 +0,0 @@ - - - - - - Merlet - Jean-Pierre - - - - - Mouly - Nicolas - - - - - Prisme - - - 2-1994 - Espaces de travail et planification de trajectoire des robots paral leles plans - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f198.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f198.rdf deleted file mode 100644 index dfaa641a09..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f198.rdf +++ /dev/null @@ -1,7 +0,0 @@ - - - - 10-1993 - Comparison and Analysis of some Numerical Schemes for Stiff Complex Chemistry Problems - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f199.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f199.rdf deleted file mode 100644 index 6cdfa2db5b..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f199.rdf +++ /dev/null @@ -1,24 +0,0 @@ - - - - - - Campillo - Fabien - - - - - Lejay - Antoine - - - - - Sysdys - - - 11-2000 - A Monte Carlo Method without Grid to Compute the Exchange Coefficient in the Double Porosity Model. Part I: From the Matrix to the Fissures - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f2.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f2.rdf deleted file mode 100644 index cbc00f05c9..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f2.rdf +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - Baccelli - Franois - - - - - Hasenfuss - Sven - - - - - Schmidt - Volker - - - - - Mistral - - - 1-1996 - Expansions for Steady-State Characteristics in (max,+) -Linear Systems - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f20.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f20.rdf deleted file mode 100644 index 79058fe660..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f20.rdf +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - Ferreira - Afonso - - - - - Prennes - Stphane - - - - - Rivano - Herv - - - - - Mascotte - - - 1-2001 - Fractional Coloring of Bounded Degree Trees - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f200.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f200.rdf deleted file mode 100644 index 6e40d69796..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f200.rdf +++ /dev/null @@ -1,12 +0,0 @@ - - - - - - Keriven - R. - - - CLP++, Programmation Logique avec Contraintes en C++ - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f201.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f201.rdf deleted file mode 100644 index e9e86522a4..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f201.rdf +++ /dev/null @@ -1,12 +0,0 @@ - - - - - - Souflis - D. - - - Un Langage Logique Concurrent par Contraintes - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f202.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f202.rdf deleted file mode 100644 index 24f072b632..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f202.rdf +++ /dev/null @@ -1,12 +0,0 @@ - - - - - - Caplain - G. - - - Quelques Rsultats sur l'Agrgation d'Echelles de Prfrences Individuelles - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f203.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f203.rdf deleted file mode 100644 index 1b1831e391..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f203.rdf +++ /dev/null @@ -1,24 +0,0 @@ - - - - - - Devillers - Olivier - - - - - Golin - Mordecai - - - - - Prisme - - - 6-1994 - Incremental algorithms for finding the convex hulls of circles and the lower envelopes of parabolas - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f204.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f204.rdf deleted file mode 100644 index 5ea13eef8a..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f204.rdf +++ /dev/null @@ -1,18 +0,0 @@ - - - - - - Castellani - Ilaria - - - - - Meije - - - 5-1994 - Observing distribution in processes : static and dynamic localities - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f205.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f205.rdf deleted file mode 100644 index 9c90395a95..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f205.rdf +++ /dev/null @@ -1,36 +0,0 @@ - - - - - - Morin - Pascal - - - - - Samson - Claude - - - - - Pomet - Jean-Baptitste - - - - - Jiang - Zhong - - - - - Icare - - - 5-1994 - Time-varying feedback stabilization of the attitude of a rigid spac ecraft - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f206.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f206.rdf deleted file mode 100644 index b4b22870dd..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f206.rdf +++ /dev/null @@ -1,24 +0,0 @@ - - - - - - Pennec - Xavier - - - - - Ayache - Nicholas - - - - - Epidaure - - - 5-1994 - An 0(n2) algorithm for 3D substructure matching of proteins - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f207.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f207.rdf deleted file mode 100644 index 6048d93274..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f207.rdf +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - Zhang - Zhengyou - - - - - Deriche - Rachid - - - - - Faugeras - Olivier - - - - - Robotvis - - - 5-1994 - A robust technique for matching two uncalibrated images through the recovery of the unknown epipolar geometry - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f208.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f208.rdf deleted file mode 100644 index 9a3bd0d035..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f208.rdf +++ /dev/null @@ -1,24 +0,0 @@ - - - - - - Bally - V. - - - - - Talay - Denis - - - - - Omega - - - 3-1994 - The Law of the Euler scheme for stochastic differential equations : I. convergence rate of the distribution function - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f209.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f209.rdf deleted file mode 100644 index f5e262ea9b..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f209.rdf +++ /dev/null @@ -1,24 +0,0 @@ - - - - - - Devillers - Olivier - - - - - Golin - Mordecai - - - - - Prisme - - - 4-1994 - Dog bites postman: point location in the moving Voronoi diagram and related problems - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f21.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f21.rdf deleted file mode 100644 index 41612d3252..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f21.rdf +++ /dev/null @@ -1,24 +0,0 @@ - - - - - - Castelluccia - Claude - - - - - Dabbous - Walid - - - - - Rodeo - - - 12-1995 - HIPPCO: A High Performance Protocol Code Optimizer - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f210.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f210.rdf deleted file mode 100644 index 39e7e34caa..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f210.rdf +++ /dev/null @@ -1,18 +0,0 @@ - - - - - - Berg - Mark - - - - - Prisme - - - 3-1994 - On lazy randomized incremental construction - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f211.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f211.rdf deleted file mode 100644 index c1404788b7..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f211.rdf +++ /dev/null @@ -1,24 +0,0 @@ - - - - - - Mriaux - Maud - - - - - Piperno - Serge - - - - - Caiman - - - 11-2000 - Mthodes de volumes finis en maillages variables pour des quations hyperboliques en une dimension - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f212.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f212.rdf deleted file mode 100644 index 801a21f9f7..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f212.rdf +++ /dev/null @@ -1,18 +0,0 @@ - - - - - - Anderson - Penny - - - - - Croap - - - 3-1994 - Program extraction in a logical framework setting - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f213.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f213.rdf deleted file mode 100644 index d609f6b751..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f213.rdf +++ /dev/null @@ -1,18 +0,0 @@ - - - - - - Delingette - Herve - - - - - Epidaure - - - 3-1994 - Simplex meshes : a general representation for 3D shape reconstructi on - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f214.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f214.rdf deleted file mode 100644 index e52ff164d0..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f214.rdf +++ /dev/null @@ -1,18 +0,0 @@ - - - - - - Borovkov - Alexander - - - - - Mistral - - - 1-1994 - Asymptotic expansions for functionals processes - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f215.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f215.rdf deleted file mode 100644 index e3ae0636ad..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f215.rdf +++ /dev/null @@ -1,36 +0,0 @@ - - - - - - Ferrante - Patrick - - - - - Mussi - Philippe - - - - - Siegel - Gunther - - - - - Mallet - Lionel - - - - - Mistral - - - 4-1994 - Object oriented simulation : Highlighs on the PROSIT : parallel dis crete event simulator - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f216.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f216.rdf deleted file mode 100644 index 498cf5b4ba..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f216.rdf +++ /dev/null @@ -1,24 +0,0 @@ - - - - - - Mussi - Philippe - - - - - Rakotoarisoa - Hery - - - - - Mistral - - - 4-1994 - PARSEVAL : a workbench for queueing networks parallel simulation - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f217.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f217.rdf deleted file mode 100644 index 7af8e0caaa..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f217.rdf +++ /dev/null @@ -1,18 +0,0 @@ - - - - - - Anderson - Penny - - - - - Croap - - - 5-1994 - Representing proof transformations for program optimization - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f218.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f218.rdf deleted file mode 100644 index 784f33dcff..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f218.rdf +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - Dalmas - Stephane - - - - - Gaetano - Marc - - - - - Sausse - Alain - - - - - Safir - - - 3-1994 - ASAP : a protocol for symbolic computation systems - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f219.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f219.rdf deleted file mode 100644 index 4e77d40c75..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f219.rdf +++ /dev/null @@ -1,24 +0,0 @@ - - - - - - Liu - Zhen - - - - - Mussi - Philippe - - - - - Mistral - - - 4-1994 - Deadlock free routing on a ring : a performance evaluation - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f22.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f22.rdf deleted file mode 100644 index 929d0fc566..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f22.rdf +++ /dev/null @@ -1,18 +0,0 @@ - - - - - - Sacile - Roberto - - - - - Acacia - - - 11-1995 - Using CommonKADS to build an expertise model for breast cancer - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f220.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f220.rdf deleted file mode 100644 index c8f1087807..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f220.rdf +++ /dev/null @@ -1,24 +0,0 @@ - - - - - - Mallet - Lionel - - - - - Mussi - Philippe - - - - - Mistral - - - 4-1994 - Object oriented parallel discrete event simulation : the PROSIT app roach - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f221.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f221.rdf deleted file mode 100644 index 13c0e884cf..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f221.rdf +++ /dev/null @@ -1,18 +0,0 @@ - - - - - - Gourdon - Alexis - - - - - Ayache - Nicholas - - - Registration of a curve on a surface using differential properties - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f222.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f222.rdf deleted file mode 100644 index 217a977541..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f222.rdf +++ /dev/null @@ -1,24 +0,0 @@ - - - - - - Abalakin - Ilya - - - - - Dervieux - Alain - - - - - Sinus - - - 11-2000 - On time averaging in Organised Eddy Simulation modelling - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f223.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f223.rdf deleted file mode 100644 index 7415d67cb2..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f223.rdf +++ /dev/null @@ -1,18 +0,0 @@ - - - - - - Gaujal - Bruno - - - - - Mistral - - - 3-1994 - Optimal allocation sequences of two processes sharing a resource - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f224.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f224.rdf deleted file mode 100644 index 999f2b6e32..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f224.rdf +++ /dev/null @@ -1,18 +0,0 @@ - - - - - - Pottier - Loc - - - - - Safir - - - 3-1994 - Groebner bases of toric ideals - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f225.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f225.rdf deleted file mode 100644 index 5e785077a3..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f225.rdf +++ /dev/null @@ -1,24 +0,0 @@ - - - - - - Feldmar - Jacques - - - - - Ayache - Nicholas - - - - - Epidaure - - - 3-1994 - Rigid, affine and locally affine registration of free-form surfaces - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f226.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f226.rdf deleted file mode 100644 index 1f0db90289..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f226.rdf +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - Subsol - Gerard - - - - - Thirion - Jean-Philippe - - - - - Ayache - Nicholas - - - - - Epidaure - - - 3-1994 - First steps towards automatic building of anatomical atlases - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f227.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f227.rdf deleted file mode 100644 index 4988b60784..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f227.rdf +++ /dev/null @@ -1,18 +0,0 @@ - - - - - - Foss - Serguei - - - - - Meval - - - 7-1993 - On a certain segment process with Voronoi clustering - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f228.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f228.rdf deleted file mode 100644 index 9a5c387564..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f228.rdf +++ /dev/null @@ -1,18 +0,0 @@ - - - - - - Mairesse - Jean - - - - - Meval - - - 6-1993 - Products of irreducible random matrices in the $(Max,+)$ Algebra : part 1 - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f229.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f229.rdf deleted file mode 100644 index f450d2add4..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f229.rdf +++ /dev/null @@ -1,18 +0,0 @@ - - - - - - Mer - Katherine - - - - - Sinus - - - 3-1994 - Variational analysis of a mixed finite element : finite volume sche me on general triangulation - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f23.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f23.rdf deleted file mode 100644 index 29519fe251..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f23.rdf +++ /dev/null @@ -1,24 +0,0 @@ - - - - - - Deriche - Rachid - - - - - Faugeras - Olivier - - - - - Robotvis - - - 11-1995 - Les EDP en Traitement des Images et Vision par Ordinateur - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f230.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f230.rdf deleted file mode 100644 index b8a2306184..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f230.rdf +++ /dev/null @@ -1,18 +0,0 @@ - - - - - - Robert - Luc - - - - - Robotvis - - - 2-1994 - Camera calibration without feature extraction - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f231.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f231.rdf deleted file mode 100644 index 24b9a1dc22..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f231.rdf +++ /dev/null @@ -1,24 +0,0 @@ - - - - - - Farhat - Charbel - - - - - Lanteri - Stephane - - - - - Sinus - - - 1-1994 - Simulation of compressible viscous flows on a variety pf MPPs : com putational algorithms for unstructured dynamic meshes and performance results - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f232.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f232.rdf deleted file mode 100644 index bf172df6b9..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f232.rdf +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - Weigl - Konrad - - - - - Giraudon - Gerard - - - - - Berthod - Marc - - - - - Pastis - - - 12-1993 - Application of projection learning to the detection of urban areas in SPOT satellite images - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f233.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f233.rdf deleted file mode 100644 index 1950e8521e..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f233.rdf +++ /dev/null @@ -1,19 +0,0 @@ - - - - - - He - L. - - - - - B. - et - - - 12-1993 - Moving Grid Numerical Simulations of Planar Time-Dependent Detonations - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f234.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f234.rdf deleted file mode 100644 index 9d17bba9c5..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f234.rdf +++ /dev/null @@ -1,24 +0,0 @@ - - - - - - Magaud - Nicolas - - - - - Bertot - Yves - - - - - Lemme - - - 10-2000 - Changements de reprsentation des donnes dans le calcul des constructions inductives - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f235.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f235.rdf deleted file mode 100644 index 066f7a1f6e..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f235.rdf +++ /dev/null @@ -1,24 +0,0 @@ - - - - - - Laveau - Stephane - - - - - Faugeras - Olivier - - - - - Robotvis - - - 2-1994 - 3-D Scene Representation as a Collection of Images and Fundamenta l Matrices - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f236.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f236.rdf deleted file mode 100644 index 354143fc69..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f236.rdf +++ /dev/null @@ -1,24 +0,0 @@ - - - - - - Finta - Lucian - - - - - Liu - Zhen - - - - - Mistral - - - 1-1994 - Single Machine Scheduling Subject to Precedence Delays - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f237.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f237.rdf deleted file mode 100644 index 680eecc5b3..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f237.rdf +++ /dev/null @@ -1,31 +0,0 @@ - - - - - - Carpentier - R. - - - - - de - A. - - - - - Bourdonnaye - la - - - - - Larrouturou - B. - - - 1-1994 - On the Derivation of the Modified Equation for the Analysis of Linear Numerical Methods - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f238.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f238.rdf deleted file mode 100644 index 9cf5423cdf..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f238.rdf +++ /dev/null @@ -1,31 +0,0 @@ - - - - - - Issautier - D. - - - - - Poupaud - F. - - - - - Fezoui - L. - - - - - J.P. - et - - - 4-1993 - A Parallel Weighted Particle Algorithm for Solving the Boltzmann (B.G.K) Equation on the Connection Machine - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f239.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f239.rdf deleted file mode 100644 index e8d1357bf5..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f239.rdf +++ /dev/null @@ -1,18 +0,0 @@ - - - - - - Ciccoli - Marie-Claude - - - - - Sinus - - - 2-1994 - Numerical simulation of 3D hypersonic flows - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f24.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f24.rdf deleted file mode 100644 index cd35f78c3e..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f24.rdf +++ /dev/null @@ -1,18 +0,0 @@ - - - - - - FRANCESCATTO - Jrme - - - - - Sinus - - - 11-1995 - Rsolution de l'quation de Poisson sur des maillages tirs par une mthode multigrille - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f240.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f240.rdf deleted file mode 100644 index 50a59068f2..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f240.rdf +++ /dev/null @@ -1,36 +0,0 @@ - - - - - - Delingette - Herve - - - - - Subsol - Gerard - - - - - Cotin - Stephane - - - - - Pignon - Jerome - - - - - Epidaure - - - 2-1994 - A Craniofacial surgery simulation testbed - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f241.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f241.rdf deleted file mode 100644 index 0ceca7f521..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f241.rdf +++ /dev/null @@ -1,24 +0,0 @@ - - - - - - Bossy - Mireille - - - - - Talay - Denis - - - - - Omega - - - 2-1994 - Convergence rate for the approximation of the limit law of weakly i nteracting particles 1: smooth interacting kernels - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f242.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f242.rdf deleted file mode 100644 index 8ffab0cb42..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f242.rdf +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - Boissonnat - Jean-Daniel - - - - - Cerezo - Andre - - - - - Leblond - Juliette - - - - - Prisme - - - 1-1994 - A note on shortest paths in the plane subject to a constraint on t he derivative of the curvature - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f243.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f243.rdf deleted file mode 100644 index 6f634757f0..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f243.rdf +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - Picinbono - Guillaume - - - - - Delingette - Herv - - - - - Ayache - Nicholas - - - - - Epidaure - - - 10-2000 - Non-Linear Anisotropic Elasticity for Real-Time Surgery Simulation - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f244.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f244.rdf deleted file mode 100644 index 0b6cb2d59e..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f244.rdf +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - Urago - Sabine - - - - - Zerubia - Josiane - - - - - Berthod - Marc - - - - - Pastis - - - 2-1994 - A Markovian Model For Contour Grouping - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f245.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f245.rdf deleted file mode 100644 index c781c55eb2..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f245.rdf +++ /dev/null @@ -1,18 +0,0 @@ - - - - - - Mourrain - Bernard - - - - - Safir - - - 11-1993 - About the rational map - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f246.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f246.rdf deleted file mode 100644 index a8b79bd295..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f246.rdf +++ /dev/null @@ -1,13 +0,0 @@ - - - - - - Lebastard - F. - - - 12-1993 - CHOOE: Un gestionnaire d'environnement distribu - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f247.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f247.rdf deleted file mode 100644 index f0671f4a19..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f247.rdf +++ /dev/null @@ -1,13 +0,0 @@ - - - - - - Issautier - D. - - - 10-1993 - Algorithmes Particulaires pour Calculateurs Architecture Massivement Parallle - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f248.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f248.rdf deleted file mode 100644 index a3ac55b8d1..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f248.rdf +++ /dev/null @@ -1,24 +0,0 @@ - - - - - - Caplain - G. - - - - - Lalement - R. - - - - - T. - et - - - Semantic analysis of a control-parallel extension of Fortran - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f249.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f249.rdf deleted file mode 100644 index fd54c5b75d..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f249.rdf +++ /dev/null @@ -1,25 +0,0 @@ - - - - - - Piperno - S. - - - - - Larrouturou - B. - - - - - M. - et - - - 6-1993 - Analysis and Compensation of Numerical Damping in a one-dimensional Aeroelastic Problem - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f25.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f25.rdf deleted file mode 100644 index e03f212eac..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f25.rdf +++ /dev/null @@ -1,24 +0,0 @@ - - - - - - Mussi - Philippe - - - - - Siegel - Gunther - - - - - Sloop - - - 11-1995 - Sequential Simulation in Prosit: Programming Model and Implementation - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f250.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f250.rdf deleted file mode 100644 index 3a12e84f6c..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f250.rdf +++ /dev/null @@ -1,19 +0,0 @@ - - - - - - de - A. - - - - - Bourdonnaye - la - - - 6-1993 - High Frequency Approximation of Integral Equations Modelizing Scattering Phenomena - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f251.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f251.rdf deleted file mode 100644 index 963770fcce..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f251.rdf +++ /dev/null @@ -1,19 +0,0 @@ - - - - - - de - A. - - - - - Bourdonnaye - la - - - 3-1993 - Diverses Formulations du couplage entre Mthode Volumique et Mthode Intgrale pour l'Equation de Helmholtz et l'Electromagntisme - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f252.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f252.rdf deleted file mode 100644 index b0bdcf0456..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f252.rdf +++ /dev/null @@ -1,18 +0,0 @@ - - - - - - Sainsaulieu - L. - - - - - B. - et - - - Modlisation Eulrienne des Ecoulements Diphasiques Disperss et Rsolution par une Mthode Dcentre - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f253.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f253.rdf deleted file mode 100644 index 253e43f956..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f253.rdf +++ /dev/null @@ -1,13 +0,0 @@ - - - - - - Lebastard - F. - - - 10-1992 - DRIVER : Version 1.34 Manuel de Rfrence - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f254.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f254.rdf deleted file mode 100644 index 9a623db8ea..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f254.rdf +++ /dev/null @@ -1,13 +0,0 @@ - - - - - - Lebastard - F. - - - 10-1992 - DRIVER : Une Couche Objet pour les Bases de Donnes Relationnelles - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f255.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f255.rdf deleted file mode 100644 index 2f698b79a1..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f255.rdf +++ /dev/null @@ -1,13 +0,0 @@ - - - - - - Piperno - S. - - - 10-1992 - Numerical Methods Used in Aeroelasticity Simulations - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f256.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f256.rdf deleted file mode 100644 index a2ce67b0fc..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f256.rdf +++ /dev/null @@ -1,19 +0,0 @@ - - - - - - de - A. - - - - - Bourdonnaye - la - - - 3-1992 - A Preconditioner for Integral Equations Modeling Helmholtz Equation - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f257.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f257.rdf deleted file mode 100644 index b69975eb64..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f257.rdf +++ /dev/null @@ -1,18 +0,0 @@ - - - - - - Pottier - Loc - - - - - Lemme - - - 10-2000 - Extraction dans le CCI - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f258.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f258.rdf deleted file mode 100644 index 912b5e077f..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f258.rdf +++ /dev/null @@ -1,36 +0,0 @@ - - - - - - Bui - Xuan-Nam - - - - - Soueres - Philippe - - - - - Boissonnat - Jean-Daniel - - - - - Laumond - Jean-Paul - - - - - Prisme - - - 12-1993 - The shortest path synthesis for non-holonomic robots moving forward - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f259.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f259.rdf deleted file mode 100644 index 23f1d07838..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f259.rdf +++ /dev/null @@ -1,24 +0,0 @@ - - - - - - Bonnet - A. - - - - - Larrouturou - B. - - - - - L. - et - - - On the Stability of Multiple Steady Planar Flames When the Lewis Number is Less Than 1 - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f26.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f26.rdf deleted file mode 100644 index 7940b820e4..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f26.rdf +++ /dev/null @@ -1,35 +0,0 @@ - - - - - - Attali - Isabelle - - - - - Caromel - Denis - - - - - Ould - Sidi - - - - - Sloop - - - - - Croap - - - 11-1995 - An Operational Semantics for the Eiffel// Language - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f260.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f260.rdf deleted file mode 100644 index 3bf0fb6fd0..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f260.rdf +++ /dev/null @@ -1,24 +0,0 @@ - - - - - - Papadopoulo - Theodore - - - - - Faugeras - Olivier - - - - - Robotvis - - - 1-1994 - Motion field of curves : applications - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f261.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f261.rdf deleted file mode 100644 index b15ee66563..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f261.rdf +++ /dev/null @@ -1,18 +0,0 @@ - - - - - - Berg - Mark - - - - - Prisme - - - 1-1994 - Reaching a goal with directional uncertainty - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f262.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f262.rdf deleted file mode 100644 index 22c68ce29d..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f262.rdf +++ /dev/null @@ -1,18 +0,0 @@ - - - - - - Bui - Xuan - - - - - Prisme - - - 1-1994 - Accessibility region for a car that only moves forwards along optim al paths - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f263.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f263.rdf deleted file mode 100644 index 0e64cf6beb..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f263.rdf +++ /dev/null @@ -1,24 +0,0 @@ - - - - - - Papadopoulo - Theodore - - - - - Faugeras - Olivier - - - - - Robotvis - - - 1-1994 - Analyse du mouvement tridimensionnel a partir de sequences d'images en utilisant des surfaces spatio-temporelles - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f264.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f264.rdf deleted file mode 100644 index 8e7a346ee6..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f264.rdf +++ /dev/null @@ -1,24 +0,0 @@ - - - - - - Pomet - Jean-Baptiste - - - - - Samson - Claude - - - - - Icare - - - 12-1993 - Time-varying exponential stabilization of nonholonomic systems in p ower form - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f265.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f265.rdf deleted file mode 100644 index f4deb61a7a..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f265.rdf +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - Boussinot - Frdric - - - - - Hazard - Laurent - - - - - Susini - Jean-Ferdy - - - - - Mimosa - - - 10-2000 - Programming with Junior - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f266.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f266.rdf deleted file mode 100644 index 1181cd8a23..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f266.rdf +++ /dev/null @@ -1,24 +0,0 @@ - - - - - - Kutoyants - Yurii - - - - - Gland - Le - - - - - Mefisto - - - 12-1993 - Identification d'un systeme non-lineaire partiellement observe par la methode de la distance minimale - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f267.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f267.rdf deleted file mode 100644 index 68d9e63d69..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f267.rdf +++ /dev/null @@ -1,24 +0,0 @@ - - - - - - Weigl - Konrad - - - - - Berthod - Marc - - - - - Pastis - - - 12-1993 - Neural networks as dynamical bases in function space - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f268.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f268.rdf deleted file mode 100644 index 9a61af2e14..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f268.rdf +++ /dev/null @@ -1,18 +0,0 @@ - - - - - - Pennec - Xavier - - - - - Epidaure - - - 11-1993 - Correctness and robustness of 3D rigid matching with bounded sensor error - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f269.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f269.rdf deleted file mode 100644 index 879bd7c970..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f269.rdf +++ /dev/null @@ -1,18 +0,0 @@ - - - - - - Rao - Zusheng - - - - - Mefisto - - - 11-1993 - Filtrage d'une diffusion reflechie a sauts observee a travers un pr ocessus ponctuel marque - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f27.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f27.rdf deleted file mode 100644 index d1447ccd09..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f27.rdf +++ /dev/null @@ -1,24 +0,0 @@ - - - - - - Mathieu-Marni - Sandrine - - - - - Berthod - Marc - - - - - Pastis - - - 12-1995 - COCKTAIL : Manuel d'utilisation - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f270.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f270.rdf deleted file mode 100644 index d410828050..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f270.rdf +++ /dev/null @@ -1,18 +0,0 @@ - - - - - - Prunet - Vincent - - - - - Croap - - - 11-1993 - Take pity on the user ! the RED customization package - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f271.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f271.rdf deleted file mode 100644 index 64fe2539ba..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f271.rdf +++ /dev/null @@ -1,18 +0,0 @@ - - - - - - Malandain - Gregoire - - - - - Epidaure - - - 11-1993 - On topology in multidimensional discrete - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f272.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f272.rdf deleted file mode 100644 index 1b302c1faa..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f272.rdf +++ /dev/null @@ -1,24 +0,0 @@ - - - - - - Micaelli - Alain - - - - - Samson - Claude - - - - - Icare - - - 11-1993 - Trajectory tracking for unicycle-type and two-steering-wheels mobil e robots - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f273.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f273.rdf deleted file mode 100644 index 81cef09639..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f273.rdf +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - Koobus - Bruno - - - - - Lallemand - Marie-Helene - - - - - Dervieux - Alain - - - - - Sinus - - - 6-1993 - Unstructured volume-agglomeration MG : solution of the Poisson equa tion - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f274.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f274.rdf deleted file mode 100644 index 792dc6886d..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f274.rdf +++ /dev/null @@ -1,36 +0,0 @@ - - - - - - Giai-Checa - Bernard - - - - - Deriche - Rachid - - - - - Vieville - Thierry - - - - - Faugeras - Olivier - - - - - Robotvis - - - 11-1993 - Suivi de segments dans une sequence d'images monoculaire - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f275.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f275.rdf deleted file mode 100644 index 64b4f2f6c5..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f275.rdf +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - Zhang - Zhengyou - - - - - Luong - Quang-Tuan - - - - - Faugeras - Olivier - - - - - Robotvis - - - 11-1993 - Motion of an uncalibrated stereo rig : self-calibration and metric reconstruction - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f276.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f276.rdf deleted file mode 100644 index 2d6464ad61..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f276.rdf +++ /dev/null @@ -1,18 +0,0 @@ - - - - - - Mairesse - Jean - - - - - Mistral - - - 10-1993 - A Graphical representation for matrices in the,Max,+ algebra - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f277.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f277.rdf deleted file mode 100644 index 9d776d7e9a..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f277.rdf +++ /dev/null @@ -1,18 +0,0 @@ - - - - - - Zhang - Zhengyou - - - - - Robotvis - - - 10-1993 - Token tracking in a cluttered scene - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f278.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f278.rdf deleted file mode 100644 index be504b2a05..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f278.rdf +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - Enciso - Reyes - - - - - Vieville - Thierry - - - - - Faugeras - Olivier - - - - - Robotvis - - - 10-1993 - Approximation du changement de focale et de mise au point par une t ransformation affine a trois parametres - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f279.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f279.rdf deleted file mode 100644 index d31edbc30d..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f279.rdf +++ /dev/null @@ -1,18 +0,0 @@ - - - - - - Boussinot - Frdric - - - - - Mimosa - - - 10-2000 - Junior Automata - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f28.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f28.rdf deleted file mode 100644 index cd6c4c7b11..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f28.rdf +++ /dev/null @@ -1,18 +0,0 @@ - - - - - - Debiez - Christophe - - - - - Sinus - - - 10-1995 - Etude d'un traitement par petites perturbations du domaine pour l'quation d'Euler instationnaire - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f280.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f280.rdf deleted file mode 100644 index 1c23919750..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f280.rdf +++ /dev/null @@ -1,24 +0,0 @@ - - - - - - Marco - Nathalie - - - - - Beux - Francois - - - - - Sinus - - - 10-1993 - Multilevel optimization : application to shape optimum design with a one-shot method - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f281.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f281.rdf deleted file mode 100644 index c133bd5369..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f281.rdf +++ /dev/null @@ -1,24 +0,0 @@ - - - - - - Kostov - Vladimir - - - - - Degtiariova-Kostova - Elena - - - - - Prisme - - - 9-1993 - Suboptimal paths in the problem of a planar motion with bounded der ivative of the curvature - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f282.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f282.rdf deleted file mode 100644 index fdedc99ead..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f282.rdf +++ /dev/null @@ -1,24 +0,0 @@ - - - - - - Canales - Miguel - - - - - Gaujal - Bruno - - - - - Mistral - - - 9-1993 - Marking optimization and parallelism of marked graphs - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f283.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f283.rdf deleted file mode 100644 index 5d32d00f60..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f283.rdf +++ /dev/null @@ -1,24 +0,0 @@ - - - - - - Labidi - Sofiane - - - - - Lejouad - Wided - - - - - Secoia - - - 8-1993 - De l'intelligence artificielle distribuee aux systemes multi-agents - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f284.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f284.rdf deleted file mode 100644 index 2e566208ff..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f284.rdf +++ /dev/null @@ -1,18 +0,0 @@ - - - - - - Menec - Le - - - - - Miaou - - - 7-1993 - Games : gestion d'arbres d'etats multiples en SMECI - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f285.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f285.rdf deleted file mode 100644 index ff2fd94385..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f285.rdf +++ /dev/null @@ -1,18 +0,0 @@ - - - - - - Menec - Le - - - - - Miaou - - - 9-1993 - ADAM : aide au duel aerien moderne : theorie des jeux differentiels et programmation symbolique appliquees au probleme de l'Amraam - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f286.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f286.rdf deleted file mode 100644 index 1b3564ed92..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f286.rdf +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - Dobrindt - Katrin - - - - - Mehlhorn - Kurt - - - - - Yvinec - Mariette - - - - - Prisme - - - 9-1993 - A Complete and efficient algorithm for the intersection of a genera l ans a convex polyhedron - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f287.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f287.rdf deleted file mode 100644 index b9ff2dae5e..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f287.rdf +++ /dev/null @@ -1,24 +0,0 @@ - - - - - - Faugeras - Olivier - - - - - Robert - Luc - - - - - Robotvis - - - 9-1993 - What can two images tell us about a third one - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f288.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f288.rdf deleted file mode 100644 index a90482a7f6..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f288.rdf +++ /dev/null @@ -1,36 +0,0 @@ - - - - - - Viville - Thierry - - - - - Droulez - Jacques - - - - - Peh - Chin-Hwee - - - - - Ngri - Alexandre - - - - - Robotvis - - - 10-2000 - How do we perceive the eye intrinsic parameters ? - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f289.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f289.rdf deleted file mode 100644 index 60bdb4997d..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f289.rdf +++ /dev/null @@ -1,24 +0,0 @@ - - - - - - Luong - Quang-Tuan - - - - - Faugeras - Olivier - - - - - Robotvis - - - 8-1993 - Self-calibration of a stereo rig from unknown camera motions and po int correspondences - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f29.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f29.rdf deleted file mode 100644 index 67ac723c6b..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f29.rdf +++ /dev/null @@ -1,36 +0,0 @@ - - - - - - BACCELLI - Franois - - - - - KLEIN - Maurice - - - - - LEBOURGES - Marc - - - - - ZUYEV - Sergue - - - - - Mistral - - - 5-1995 - Gomtrie Alatoire et Architecture de Rseaux de Communications - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f290.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f290.rdf deleted file mode 100644 index f470a26166..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f290.rdf +++ /dev/null @@ -1,18 +0,0 @@ - - - - - - Salvetti - Maria - - - - - Sinus - - - 8-1993 - Modeles pratiques de catalyse a la paroi pour les calculs d'ecoulem ents hypersoniques - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f291.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f291.rdf deleted file mode 100644 index dcc0eb769d..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f291.rdf +++ /dev/null @@ -1,24 +0,0 @@ - - - - - - Desideri - Jean-Antoine - - - - - Guillard - Herve - - - - - Sinus - - - 8-1993 - Methodes numeriques pour la combustion supersonique : bilan et p erspectives - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f292.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f292.rdf deleted file mode 100644 index 7ff68701db..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f292.rdf +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - Thonnat - Monique - - - - - Clement - Veronique - - - - - den - Van - - - - - Pastis - - - 6-1993 - Supervision of perception tasks for autonomous systems : the OCAPI approach - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f293.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f293.rdf deleted file mode 100644 index 67e625c308..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f293.rdf +++ /dev/null @@ -1,24 +0,0 @@ - - - - - - Kim - Hahnsang - - - - - Turletti - Thierry - - - - - Plante - - - 9-2001 - An Esterel-based Development Environment for Designing Software Radio Applications - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f294.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f294.rdf deleted file mode 100644 index 7ba9896621..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f294.rdf +++ /dev/null @@ -1,18 +0,0 @@ - - - - - - Faugeras - Olivier - - - - - Robotvis - - - 7-1993 - Sur l'evolution de courbes simples du plan projectif reel - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f295.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f295.rdf deleted file mode 100644 index a61ae42d68..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f295.rdf +++ /dev/null @@ -1,18 +0,0 @@ - - - - - - Samson - Claude - - - - - Icare - - - 7-1993 - Mobile robot control Part 2 : control of chained systems and applic ation to path following and time-varying point-stabilization of wheele d vehicles - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f296.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f296.rdf deleted file mode 100644 index 624874cdc4..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f296.rdf +++ /dev/null @@ -1,18 +0,0 @@ - - - - - - Merlet - Jean-Pierre - - - - - Prisme - - - 6-1993 - Manipulateurs paralleles 7eme partie : verification et planificatio n de trajectoire dans l'espace de travail - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f297.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f297.rdf deleted file mode 100644 index 6a77306836..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f297.rdf +++ /dev/null @@ -1,24 +0,0 @@ - - - - - - Altman - Eitan - - - - - Foss - Serguei - - - - - Meval - - - 7-1993 - Polling on a graph with general arrival and service time distributi on - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f298.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f298.rdf deleted file mode 100644 index 11aea6e045..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f298.rdf +++ /dev/null @@ -1,18 +0,0 @@ - - - - - - Atallah - Mikhail - - - - - Prisme - - - 7-1993 - On the multisearching problem for hypercubes - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f299.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f299.rdf deleted file mode 100644 index f758e69711..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f299.rdf +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - Giai-Checa - Bernard - - - - - Bouthemy - Patrick - - - - - Vieville - Thierry - - - - - Robotvis - - - 5-1993 - Detection d'objets en mouvement - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f3.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f3.rdf deleted file mode 100644 index de826479c8..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f3.rdf +++ /dev/null @@ -1,24 +0,0 @@ - - - - - - Bertot - Yves - - - - - Fraer - Ranan - - - - - Croap - - - 1-1996 - Reasoning with Executable Specifications - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f30.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f30.rdf deleted file mode 100644 index 2af2b19dcb..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f30.rdf +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - Simon - Daniel - - - - - Castillo - Eduardo - - - - - Freedman - Paul - - - - - Icare, - - - 11-1995 - On the Validation of Robotics Control Systems Part II: Analysis of real-time closed-loop control tasks - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f300.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f300.rdf deleted file mode 100644 index c7afec1327..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f300.rdf +++ /dev/null @@ -1,24 +0,0 @@ - - - - - - Merlet - Nicolas - - - - - Zerubia - Josiane - - - - - Prisme - - - 4-1993 - Classical mechanics and roads detection in SPOT images - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f301.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f301.rdf deleted file mode 100644 index 64ed8d0d0f..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f301.rdf +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - Capolsini - Patrick - - - - - Dalmas - Stephane - - - - - Papegay - Yves - - - - - Safir - - - 1-1993 - "Quaterman" : une bibliotheque Maple de calculs et de manipulations sur l'algebre des quaternions - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f302.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f302.rdf deleted file mode 100644 index 74bd7741a9..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f302.rdf +++ /dev/null @@ -1,18 +0,0 @@ - - - - - - Morano - Eric - - - - - Sinus - - - 5-1993 - Resolution par multigrilles stationnaires en maillages non structur es des equations d'Euler - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f303.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f303.rdf deleted file mode 100644 index 4277d5f413..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f303.rdf +++ /dev/null @@ -1,18 +0,0 @@ - - - - - - Mathieu - Herve - - - - - Robotvis - - - 5-1993 - MD96 - A multi-DSP96002 board - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f304.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f304.rdf deleted file mode 100644 index 55fe88a1fb..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f304.rdf +++ /dev/null @@ -1,18 +0,0 @@ - - - - - - Merlet - Jean-Pierre - - - - - Prisme - - - 5-1993 - Manipulateurs paralleles, 6eme partie : determination des espaces d e travail en orientation - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f305.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f305.rdf deleted file mode 100644 index 55ca2b5295..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f305.rdf +++ /dev/null @@ -1,18 +0,0 @@ - - - - - - Olsder - Geert - - - - - Miaou - - - 5-1993 - Analyse de systemes MIN-MAX - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f306.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f306.rdf deleted file mode 100644 index de01b4d198..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f306.rdf +++ /dev/null @@ -1,18 +0,0 @@ - - - - - - Renversade - Mathieu - - - - - Sinus - - - 10-2000 - Optimisation d'un dispositif hyper-sustentateur par Algorithmes Gntiques - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f307.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f307.rdf deleted file mode 100644 index 9eab53079e..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f307.rdf +++ /dev/null @@ -1,18 +0,0 @@ - - - - - - Guillard - Herve - - - - - Sinus - - - 5-1993 - Node-nested multi-grid method with Delaunay coarsening - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f308.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f308.rdf deleted file mode 100644 index 8308ef2d1a..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f308.rdf +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - Buffa - Michel - - - - - Faugeras - Olivier - - - - - Zhang - Zhengyou - - - - - Robotvis - - - 5-1993 - A Stereovision-based navigation system for a mobile robot - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f309.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f309.rdf deleted file mode 100644 index dd29b185e2..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f309.rdf +++ /dev/null @@ -1,36 +0,0 @@ - - - - - - Luong - Quang-Tuan - - - - - Deriche - Rachid - - - - - Faugeras - Olivier - - - - - Papadopoulo - Theodore - - - - - Robotvis - - - 5-1993 - On determining the fundamental matrix : analysis of diferent method s and experimental results - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f31.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f31.rdf deleted file mode 100644 index 2cf63de4ba..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f31.rdf +++ /dev/null @@ -1,36 +0,0 @@ - - - - - - Espiau - Bernard - - - - - Kapellos - Konstantin - - - - - Jourdan - Muriel - - - - - Simon - Daniel - - - - - Bip - - - 11-1995 - On the Validation of Robotics Control Systems Part I: High Level Specification and Formal Verification - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f310.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f310.rdf deleted file mode 100644 index ffda00d7d1..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f310.rdf +++ /dev/null @@ -1,18 +0,0 @@ - - - - - - Deriche - Rachid - - - - - Robotvis - - - 5-1993 - Recursively implementating the Gaussian and its derivatives - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f311.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f311.rdf deleted file mode 100644 index 8c5286a45b..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f311.rdf +++ /dev/null @@ -1,24 +0,0 @@ - - - - - - Malandain - Gregoire - - - - - Rocchisani - Jean-Marie - - - - - Epidaure - - - 4-1993 - Matching of 3D medical images with a potential based method - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f312.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f312.rdf deleted file mode 100644 index de4bc9d91f..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f312.rdf +++ /dev/null @@ -1,18 +0,0 @@ - - - - - - Guillard - Herve - - - - - Sinus - - - 4-1993 - Convergence analysis of a multi-level relaxation method - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f313.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f313.rdf deleted file mode 100644 index bcab77bd12..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f313.rdf +++ /dev/null @@ -1,24 +0,0 @@ - - - - - - Devillers - Olivier - - - - - Fabri - Andreas - - - - - Prisme - - - 4-1993 - Scalable algorithms for bichromatic line segment intersection probl ems on coarse grained multicomputers - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f314.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f314.rdf deleted file mode 100644 index 64e618af81..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f314.rdf +++ /dev/null @@ -1,36 +0,0 @@ - - - - - - Beux - Francois - - - - - Lanteri - Stephane - - - - - Dervieux - Alain - - - - - Larrouturou - Bernard - - - - - Sinus - - - 4-1993 - Upwind stabilization of Navier-Stokes solvers - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f315.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f315.rdf deleted file mode 100644 index 5cd48b5ffd..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f315.rdf +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - Picinbono - Guillaume - - - - - Lombardo - Jean-Christophe - - - - - Delingette - Herv - - - - - Epidaure - - - 9-2000 - Improving Realism of a Surgery Simulator: Linear Anisotropic Elasticity, Complex Interactions and Force Extrapolation - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f316.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f316.rdf deleted file mode 100644 index bc81d24240..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f316.rdf +++ /dev/null @@ -1,24 +0,0 @@ - - - - - - Nkonga - Boniface - - - - - Guillard - Herve - - - - - Sinus - - - 4-1993 - Godunov type method on non-structured meshes for three-dimensional moving boundary problems - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f317.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f317.rdf deleted file mode 100644 index dd3659ec69..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f317.rdf +++ /dev/null @@ -1,24 +0,0 @@ - - - - - - Pissard-Gibollet - Roger - - - - - Rives - Patrick - - - - - Prisme - - - 12-1991 - Asservissement visuel applique a un robot mobile : etat de l'art et modelisation cinematique - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f318.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f318.rdf deleted file mode 100644 index ba0b9b214b..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f318.rdf +++ /dev/null @@ -1,24 +0,0 @@ - - - - - - Michel - Henri - - - - - Rives - Patrick - - - - - Icare - - - 2-1993 - Singularities in the determination of the situation of a robot effe ctor from the perspective view of 3 points - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f319.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f319.rdf deleted file mode 100644 index d7e415b1eb..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f319.rdf +++ /dev/null @@ -1,18 +0,0 @@ - - - - - - Boucherie - Richard - - - - - Meval - - - 3-1993 - A Characterisation of independence for competing Markov chains with applications to stochastic Petri nets - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f32.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f32.rdf deleted file mode 100644 index 14ed70ea08..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f32.rdf +++ /dev/null @@ -1,18 +0,0 @@ - - - - - - Del - Facundo - - - - - Sinus - - - 11-2000 - A Lagrangian Approach Based on the Natural Neighbor Interpolation - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f320.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f320.rdf deleted file mode 100644 index 3af1014bf7..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f320.rdf +++ /dev/null @@ -1,18 +0,0 @@ - - - - - - Boucherie - Richard - - - - - Meval - - - 4-1993 - Batch routing queuing networks with jump-over blocking - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f321.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f321.rdf deleted file mode 100644 index 6e040b50ad..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f321.rdf +++ /dev/null @@ -1,18 +0,0 @@ - - - - - - Desideri - Jean-Antoine - - - - - Sinus - - - 4-1993 - La Technique d'annihilation de modes propres et applications - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f322.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f322.rdf deleted file mode 100644 index 340fec967a..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f322.rdf +++ /dev/null @@ -1,24 +0,0 @@ - - - - - - Beux - Francois - - - - - Dervieux - Alain - - - - - Sinus - - - 3-1993 - A Hierarchical approach for shape optimisation - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f323.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f323.rdf deleted file mode 100644 index 8d714233e4..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f323.rdf +++ /dev/null @@ -1,36 +0,0 @@ - - - - - - Jacobs - Ian - - - - - Montagnac - Francis - - - - - Bertot - Janet - - - - - Clement - Dominique - - - - - Croap - - - 2-1993 - The Sophtalk reference manual - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f324.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f324.rdf deleted file mode 100644 index 3a528cf755..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f324.rdf +++ /dev/null @@ -1,24 +0,0 @@ - - - - - - Jacobs - Ian - - - - - Bertot - Janet - - - - - Croap - - - 2-1993 - Sophtalk Tutorials - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f325.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f325.rdf deleted file mode 100644 index f693fe6e57..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f325.rdf +++ /dev/null @@ -1,18 +0,0 @@ - - - - - - Abgrall - Remi - - - - - Sinus - - - 2-1993 - A Genuinely multidimensional Riemann solver - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f326.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f326.rdf deleted file mode 100644 index dd0c2237d5..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f326.rdf +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - Dery - Anne-Marie - - - - - Huitema - Christian - - - - - Maille - William - - - - - Rodeo - - - 2-1993 - Environnement de programmation pour ASN.1 - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f327.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f327.rdf deleted file mode 100644 index f1eb4c3de9..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f327.rdf +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - Cohen - Laurent - - - - - Bardinet - Eric - - - - - Ayache - Nicholas - - - - - Epidaure - - - 12-1992 - Surface reconstruction using active contour models - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f328.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f328.rdf deleted file mode 100644 index e7815abd41..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f328.rdf +++ /dev/null @@ -1,24 +0,0 @@ - - - - - - Mourrain - Bernard - - - - - Prieto - Hlne - - - - - Saga - - - 9-2000 - A framework for symbolic and numeric computations - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f329.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f329.rdf deleted file mode 100644 index 527bd93192..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f329.rdf +++ /dev/null @@ -1,18 +0,0 @@ - - - - - - Turletti - Thierry - - - - - Rodeo - - - 1-1993 - H.261 software Codec for videoconferencing over the internet - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f33.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f33.rdf deleted file mode 100644 index 787b6652b9..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f33.rdf +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - Shekarforoush - Hassan - - - - - Berthod - Marc - - - - - Zerubia - Josiane - - - - - Pastis - - - 4-1995 - Subpixel Image Registration by Estimating the Polyphase Decomposition of the \\ Cross Power Spectrum - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f330.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f330.rdf deleted file mode 100644 index 6fb7631172..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f330.rdf +++ /dev/null @@ -1,18 +0,0 @@ - - - - - - Chleq - Nicolas - - - - - Secoia - - - 12-1992 - Un Mecanisme de prediction deductive pour le raisonnement temporel - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f331.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f331.rdf deleted file mode 100644 index 9ad3781e56..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f331.rdf +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - Dehne - Frank - - - - - Fabri - Andreas - - - - - Rau-Chaplin - Andrew - - - - - Prisme - - - 12-1992 - Scalable parallel geometric algorithms for coarse grained multicomp uters - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f332.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f332.rdf deleted file mode 100644 index 7f9a6d8120..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f332.rdf +++ /dev/null @@ -1,36 +0,0 @@ - - - - - - Simon - Daniel - - - - - Espiau - Bernard - - - - - Castillo - Eduardo - - - - - Kapellos - Konstantinos - - - - - Icare - - - 12-1992 - Computer-aided design of a generic robot controller handling reacti vity and real-time control issues - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f333.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f333.rdf deleted file mode 100644 index a7ba11006e..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f333.rdf +++ /dev/null @@ -1,18 +0,0 @@ - - - - - - Trombettoni - Gilles - - - - - Secoia - - - 12-1992 - Conception d'un algorithme de maintien de solutions dans un reseau de contraintes - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f334.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f334.rdf deleted file mode 100644 index 7cd38c8dd2..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f334.rdf +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - Boissonnat - Jean-Daniel - - - - - Devillers - Olivier - - - - - Preparata - Franco - - - - - Prisme - - - 10-1992 - Motion planning of legged robots : the spider robot problem - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f335.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f335.rdf deleted file mode 100644 index 6985b9c327..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f335.rdf +++ /dev/null @@ -1,18 +0,0 @@ - - - - - - Corby - Olivier - - - - - Secoia - - - 10-1992 - NMS : un module multi-specialistes pour le generateur de systemes e xperts Smeci - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f336.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f336.rdf deleted file mode 100644 index 9fe4957bc3..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f336.rdf +++ /dev/null @@ -1,18 +0,0 @@ - - - - - - Berlandier - Pierre - - - - - Secoia - - - 11-1992 - PROSE : une boite a outils fonctionnelle pour l'interpretation de c ontraintes : guide d'utilisation - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f337.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f337.rdf deleted file mode 100644 index ffd1dcd5be..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f337.rdf +++ /dev/null @@ -1,18 +0,0 @@ - - - - - - Dabbous - Walid - - - - - Rodeo - - - 11-1992 - Applicability of the session and the presentation layers for the su pport of high speed applications - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f338.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f338.rdf deleted file mode 100644 index 34b5468676..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f338.rdf +++ /dev/null @@ -1,24 +0,0 @@ - - - - - - Baccelli - Francois - - - - - Canales - Miguel - - - - - Meval - - - 9-1991 - Parallel simulation of stochastic Petri nets using recursive equati ons - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f339.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f339.rdf deleted file mode 100644 index 3c74349be1..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f339.rdf +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - Faure - Christle - - - - - Davenport - James - - - - - Naciri - Hanane - - - - - Cafe - - - 9-2000 - Multi-valued Computer Algebra - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f34.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f34.rdf deleted file mode 100644 index 96cefebc50..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f34.rdf +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - Shekarforoush - Hassan - - - - - Berthod - Marc - - - - - Zerubia - Josiane - - - - - Pastis - - - 10-1995 - 3D Super-resolution Using Generalised Sampling Expansion - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f340.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f340.rdf deleted file mode 100644 index 60fb26f3d8..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f340.rdf +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - Abgrall - Remi - - - - - Desideri - Jean-Antoine - - - - - Mallet - Michel - - - - - Sinus - - - 6-1992 - Hypersonic flows for reentry problems - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f341.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f341.rdf deleted file mode 100644 index 78c917fb4b..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f341.rdf +++ /dev/null @@ -1,36 +0,0 @@ - - - - - - Clement - Veronique - - - - - Giraudon - Gerard - - - - - Houzelle - Stephane - - - - - Sandakly - Fadi - - - - - Pastis - - - 10-1992 - Interpretation of remotely sensed images in a context of multisenso r fusion using a multi-specialist architecture - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f342.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f342.rdf deleted file mode 100644 index bd08c4ab68..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f342.rdf +++ /dev/null @@ -1,42 +0,0 @@ - - - - - - Dehne - Frank - - - - - Fabri - Andreas - - - - - Nassar - Mostafa - - - - - Rau-Chaplin - Andrew - - - - - Valiveti - Rada - - - - - Prisme - - - 9-1992 - Construction of d-dimensional hyperoctrees on a hypercube multiprocessor - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f343.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f343.rdf deleted file mode 100644 index 3eb0f0a50e..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f343.rdf +++ /dev/null @@ -1,18 +0,0 @@ - - - - - - Altman - Eitan - - - - - Meval - - - 2-1992 - Flow control using the theory of zero sum Markov games - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f344.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f344.rdf deleted file mode 100644 index b3a909197f..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f344.rdf +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - Aubert - Pierre - - - - - Ciccoli - Marie-Claude - - - - - Desideri - Jean-Antoine - - - - - Sinus - - - 8-1992 - Une Methode de parttition de domaine pour l'equation d'advection-di ffu sion - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f345.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f345.rdf deleted file mode 100644 index 1f6b3d34a7..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f345.rdf +++ /dev/null @@ -1,18 +0,0 @@ - - - - - - Teillaud - Monique - - - - - Prisme - - - 7-1992 - Towards dynamic randomized algorithms in computational geometry - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f346.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f346.rdf deleted file mode 100644 index f1660d9d5c..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f346.rdf +++ /dev/null @@ -1,24 +0,0 @@ - - - - - - Jacobs - Ian - - - - - Rideau-Gallot - Laurence - - - - - Croap - - - n/a-n/a - A Centaur tutorial - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f347.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f347.rdf deleted file mode 100644 index cad5bec35c..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f347.rdf +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - Boissonnat - Jean-Daniel - - - - - Devillers - Olivier - - - - - Teillaud - Monique - - - - - Prisme - - - 4-1990 - A dynamic construction of higher order Voronoi diagrams and its ran domized analysis - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f348.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f348.rdf deleted file mode 100644 index c30e313ddd..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f348.rdf +++ /dev/null @@ -1,18 +0,0 @@ - - - - - - Ciccoli - Marie-Claude - - - - - Sinus - - - 4-1992 - Homenthalpic-flow approach for hypersonic inviscid non-equilibrium flows - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f349.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f349.rdf deleted file mode 100644 index c3efeb8902..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f349.rdf +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - Cioni - Jean-Pierre - - - - - Fezoui - Loula - - - - - Steve - Herve - - - - - Sinus - - - 2-1992 - Approximation des equations de Maxwell par des schemas decentres en elements finis - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f35.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f35.rdf deleted file mode 100644 index d1d4897695..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f35.rdf +++ /dev/null @@ -1,36 +0,0 @@ - - - - - - Zhang - Zhi-Li - - - - - Liu - Zhen - - - - - Kurose - Jim - - - - - Towsley - Don - - - - - Mistral - - - 11-1995 - Call Admission Control Schemes under the Generalized Processor Sharing Scheduling - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f350.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f350.rdf deleted file mode 100644 index 8015b3f672..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f350.rdf +++ /dev/null @@ -1,24 +0,0 @@ - - - - - - Campillo - Fabien - - - - - Gland - Le - - - - - Mefisto - - - 7-1992 - Asymptotics of the GLRT for the disorder problem in diffusion proce sses - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f351.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f351.rdf deleted file mode 100644 index 3e54f13fac..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f351.rdf +++ /dev/null @@ -1,24 +0,0 @@ - - - - - - Boissonnat - Jean-Daniel - - - - - Cazals - Frdric - - - - - Prisme - - - 9-2000 - Natural Neighbour Coordinates of Points on a Surface - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f352.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f352.rdf deleted file mode 100644 index 605ee1e6a8..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f352.rdf +++ /dev/null @@ -1,18 +0,0 @@ - - - - - - Arnon - Dennis - - - - - Prisme - - - 7-1992 - Language-based document processing - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f353.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f353.rdf deleted file mode 100644 index 47ac8d5b33..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f353.rdf +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - Devloo - Philippe - - - - - Fezoui - Loula - - - - - Lacire - Stephane - - - - - Sinus - - - 5-1992 - Une Interface C++ pour programmer sur la connection machine - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f354.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f354.rdf deleted file mode 100644 index c4d40ed8a5..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f354.rdf +++ /dev/null @@ -1,18 +0,0 @@ - - - - - - Palmerio - Bernadette - - - - - Sinus - - - 5-1992 - Mesh adaptation for compressible flows - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f355.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f355.rdf deleted file mode 100644 index f50cc5522c..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f355.rdf +++ /dev/null @@ -1,24 +0,0 @@ - - - - - - Altman - Eitan - - - - - Nain - Philippe - - - - - Meval - - - 3-1992 - Closed-loop control with delayed information - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f356.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f356.rdf deleted file mode 100644 index a230ad6169..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f356.rdf +++ /dev/null @@ -1,24 +0,0 @@ - - - - - - Altman - Eitan - - - - - Nain - Philippe - - - - - Meval - - - 3-1992 - Optimal control of the M/G/1/ queue with repeated vacations of the server - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f357.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f357.rdf deleted file mode 100644 index 2eb30b3045..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f357.rdf +++ /dev/null @@ -1,18 +0,0 @@ - - - - - - Altman - Eitan - - - - - Meval - - - 2-1992 - Asymptotic properties of constrained Markov decision processes - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f358.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f358.rdf deleted file mode 100644 index 72d329d404..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f358.rdf +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - Altman - Eitan - - - - - Konstantopoulos - Panagiotis - - - - - Liu - Zhen - - - - - Meval - - - 2-1992 - Some qualitative properties in polling systems - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f359.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f359.rdf deleted file mode 100644 index 08973c28da..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f359.rdf +++ /dev/null @@ -1,18 +0,0 @@ - - - - - - Altman - Eitan - - - - - Meval - - - 12-1991 - Denumerable constrained Markov decision problems and finite approxi mations - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f36.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f36.rdf deleted file mode 100644 index 8f1499f4fd..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f36.rdf +++ /dev/null @@ -1,18 +0,0 @@ - - - - - - Liu - Zhen - - - - - Mistral - - - 11-1995 - Worst-Case Analysis of Scheduling Heuristics of Parallel Systems - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f360.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f360.rdf deleted file mode 100644 index c0399cd10e..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f360.rdf +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - Dervieux - Alain - - - - - Fezoui - Loula - - - - - Loriot - Francoise - - - - - Prisme - - - 6-1992 - On high resolution extensions of Lagrange-Galerkin finite-element s chemes - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f361.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f361.rdf deleted file mode 100644 index 55d8ed1c08..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f361.rdf +++ /dev/null @@ -1,24 +0,0 @@ - - - - - - Boissonnat - Jean-Daniel - - - - - Devillers-Teillaud - Monique - - - - - Prisme - - - 12-1989 - On the randomized construction of the Delaunay tree - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f362.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f362.rdf deleted file mode 100644 index 7257e14ef5..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f362.rdf +++ /dev/null @@ -1,24 +0,0 @@ - - - - - - Boissonnat - Jean-Daniel - - - - - Geiger - Bernhard - - - - - Prisme - - - 5-1992 - Three dimensional reconstruction of complex shapes based on the Del aunay triangulation - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f363.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f363.rdf deleted file mode 100644 index bbd910e8af..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f363.rdf +++ /dev/null @@ -1,24 +0,0 @@ - - - - - - Gomes - Jos - - - - - Faugeras - Olivier - - - - - Robotvis - - - 10-2000 - Representing and evolving smooth manifolds of arbitrary dimension embedded in R n as the intersection of n hypersurfaces: The vector distance functions - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f364.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f364.rdf deleted file mode 100644 index 1b85ba51e0..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f364.rdf +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - Thery - Laurent - - - - - Bertot - Yves - - - - - Kahn - Gilles - - - - - Croap - - - 5-1992 - Real theorem provers deserve real user-interfaces - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f365.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f365.rdf deleted file mode 100644 index 8df3ef03de..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f365.rdf +++ /dev/null @@ -1,24 +0,0 @@ - - - - - - Rakotoarisoa - Hery - - - - - Mussi - Philippe - - - - - Meval - - - 9-1991 - PARSEVAL: parallelisation sur reseaux de transputers de simulations pour l'evaluation de performances - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f366.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f366.rdf deleted file mode 100644 index f7d2008f04..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f366.rdf +++ /dev/null @@ -1,18 +0,0 @@ - - - - - - Fournie - Eric - - - - - Omega - - - 5-1992 - Un Test de type Kolmogorov-smirnov pour processus de diffusion ergodiques - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f367.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f367.rdf deleted file mode 100644 index 585ad0d57c..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f367.rdf +++ /dev/null @@ -1,24 +0,0 @@ - - - - - - Icart - Sylvie - - - - - Leblond - Juliette - - - - - Samson - Claude - - - Some results on feedback stabilization of a one-link flexible arm - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f368.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f368.rdf deleted file mode 100644 index e241ea64b8..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f368.rdf +++ /dev/null @@ -1,18 +0,0 @@ - - - - - - Afifi - Hossam - - - - - Rodeo - - - 3-1992 - Solving names within X500 - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f369.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f369.rdf deleted file mode 100644 index a5023346b0..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f369.rdf +++ /dev/null @@ -1,24 +0,0 @@ - - - - - - Vieville - Thierry - - - - - Sander - Peter - - - - - Robotvis - - - 5-1992 - Using pseudo Kalman-filters in the presence of constraints application to sensing behaviors - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f37.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f37.rdf deleted file mode 100644 index c92047fa50..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f37.rdf +++ /dev/null @@ -1,42 +0,0 @@ - - - - - - Boissonnat - Jean-Daniel - - - - - Czyzowicz - Jurek - - - - - Devillers - Olivier - - - - - Urrutia - Jorge - - - - - Yvinec - Mariette - - - - - Prisme - - - 11-1995 - Computing Largest Circles Separating Two Sets of Segments - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f370.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f370.rdf deleted file mode 100644 index e0bcb93ab1..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f370.rdf +++ /dev/null @@ -1,18 +0,0 @@ - - - - - - Boussinot - Frederic - - - - - Meije - - - 1-1992 - Reseaux de processus reactifs - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f371.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f371.rdf deleted file mode 100644 index 96b3a054a9..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f371.rdf +++ /dev/null @@ -1,24 +0,0 @@ - - - - - - Garnesson - Philippe - - - - - Giraudon - Gerard - - - - - Pastis - - - 2-1992 - L'Approximation polygonale : bilans et perspectives - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f372.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f372.rdf deleted file mode 100644 index b73e7456a7..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f372.rdf +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - Devillers - Olivier - - - - - Meiser - Stefan - - - - - Teillaud - Monique - - - - - Prisme - - - 12-1990 - Fully dynamic Delaunay triangulation in logarithmic expected time per operation - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f373.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f373.rdf deleted file mode 100644 index c282769b50..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f373.rdf +++ /dev/null @@ -1,18 +0,0 @@ - - - - - - Merlet - Jean-Pierre - - - - - Prisme - - - 11-1990 - An algorithm for the forward kinematics of general 6 D.O.F. parallel manipulators - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f374.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f374.rdf deleted file mode 100644 index 1035037e11..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f374.rdf +++ /dev/null @@ -1,24 +0,0 @@ - - - - - - Gomes - Jos - - - - - Faugeras - Olivier - - - - - Robotvis - - - 10-2000 - Shape representation as the intersection of n - k hypersurfaces. - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f375.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f375.rdf deleted file mode 100644 index e92e0e865e..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f375.rdf +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - Boissonnat - Jean-Daniel - - - - - Devillers - Olivier - - - - - Preparata - Franco - - - - - Prisme - - - 10-1990 - Computing the union of 3-colored triangles - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f376.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f376.rdf deleted file mode 100644 index 83e0174dfe..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f376.rdf +++ /dev/null @@ -1,42 +0,0 @@ - - - - - - Boissonnat - Jean-Daniel - - - - - Devillers - Olivier - - - - - Schott - Rene - - - - - Teillaud - Monique - - - - - Yvinec - Mariette - - - - - Prisme - - - 8-1990 - Applications of random sampling to on-line algorithms in computational geometry - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f377.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f377.rdf deleted file mode 100644 index 559e4ad3f1..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f377.rdf +++ /dev/null @@ -1,18 +0,0 @@ - - - - - - Devillers - Olivier - - - - - Prisme - - - 3-1990 - Simultaneous containment of several polygons : analysis of the contact configurations - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f378.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f378.rdf deleted file mode 100644 index 5b4cc8965f..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f378.rdf +++ /dev/null @@ -1,18 +0,0 @@ - - - - - - Merlet - Jean-Pierre - - - - - Prisme - - - 12-1989 - Manipulateurs paralleles, 4eme partie : mode d'assemblage et cinematique directe sous forme polynomiale - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f379.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f379.rdf deleted file mode 100644 index b20c90ffa8..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f379.rdf +++ /dev/null @@ -1,18 +0,0 @@ - - - - - - Merlet - Jean-Pierre - - - - - Prisme - - - 3-1989 - Manipulateurs paralleles. 3e partie : applications - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f38.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f38.rdf deleted file mode 100644 index 346e58c5b8..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f38.rdf +++ /dev/null @@ -1,24 +0,0 @@ - - - - - - Lingrand - Diane - - - - - Viville - Thierry - - - - - Robotvis - - - 10-1995 - Dynamic Foveal 3D Sensing Using Affine Models - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f380.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f380.rdf deleted file mode 100644 index 2983efdc22..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f380.rdf +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - Kato - Zoltan - - - - - Zerubia - Josiane - - - - - Berthod - Marc - - - - - Pastis - - - 2-1992 - Image classification using Markov random fields with two new relaxation methods : deterministic pseudo annealing and modified metropolis dynamics - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f381.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f381.rdf deleted file mode 100644 index 1c69baea56..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f381.rdf +++ /dev/null @@ -1,18 +0,0 @@ - - - - - - Campillo - Fabien - - - - - Mefisto - - - 6-1990 - Optimal ergodic control of nonlinear stochastic systems - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f382.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f382.rdf deleted file mode 100644 index d68e227b04..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f382.rdf +++ /dev/null @@ -1,18 +0,0 @@ - - - - - - Zhang - Zhengyou - - - - - Robotvis - - - 4-1992 - Iterative point matching for registration of free-form curves Sophia Antipolis, Projet Robotvis , Avril 1992 - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f383.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f383.rdf deleted file mode 100644 index 907195899d..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f383.rdf +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - Lefebvre-Barbaroux - Sophie - - - - - Jean-Marie - Alain - - - - - Chaouiya - Claudine - - - - - Meval - - - 1-1992 - Problemes d'ordonnancement d'une superposition de flux periodiques sous contrainte temps-reel - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f384.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f384.rdf deleted file mode 100644 index d61b2c1806..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f384.rdf +++ /dev/null @@ -1,36 +0,0 @@ - - - - - - Samson - Christophe - - - - - Blanc-Fraud - Laure - - - - - Aubert - Gilles - - - - - Zerubia - Josiane - - - - - Ariana - - - 9-2000 - Classification d'Images Multibandes par Modles Variationnels - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f385.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f385.rdf deleted file mode 100644 index 265bec70d5..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f385.rdf +++ /dev/null @@ -1,18 +0,0 @@ - - - - - - Grimm - Jose - - - - - Safir - - - 12-1991 - L'Arithmetique generique de Sisyphe - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f386.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f386.rdf deleted file mode 100644 index 655291f2ff..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f386.rdf +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - Falzon - Frederic - - - - - Giraudon - Gerard - - - - - Berthod - Marc - - - - - Pastis - - - 3-1992 - Vers un modele pour l'analyse multiechelle de surface 3D - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f387.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f387.rdf deleted file mode 100644 index 861c682d4d..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f387.rdf +++ /dev/null @@ -1,36 +0,0 @@ - - - - - - Boissonnat - Jean-Daniel - - - - - Cerezo - Andre - - - - - Devillers - Olivier - - - - - Teillaud - Monique - - - - - Prisme - - - 4-1991 - Output sensitive construction of the 3D Delaunay triangulation of constrained sets of points - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f388.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f388.rdf deleted file mode 100644 index fcc00f57c5..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f388.rdf +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - Devillers - Olivier - - - - - Teillaud - Monique - - - - - Yvinec - Mariette - - - - - Prisme - - - 11-1991 - Dynamic location in an arrangement of line segments in the plane - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f389.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f389.rdf deleted file mode 100644 index 799dd1a9df..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f389.rdf +++ /dev/null @@ -1,18 +0,0 @@ - - - - - - Devillers - Olivier - - - - - Prisme - - - 4-1991 - Randomization yields simple O(n log* n) algorithms for difficult Omega(n) problems - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f39.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f39.rdf deleted file mode 100644 index b16cba1085..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f39.rdf +++ /dev/null @@ -1,18 +0,0 @@ - - - - - - Kaplan-Terrasse - Delphine - - - - - Tick - - - 12-2000 - Vers la certification du compilateur v5 d'Esterel dans Coq - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f390.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f390.rdf deleted file mode 100644 index 71153b61af..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f390.rdf +++ /dev/null @@ -1,18 +0,0 @@ - - - - - - Lebastard - Franck - - - - - Secoia - - - 2-1990 - DRIVER : Couche objet virtuelle persistante & raisonnement - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f391.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f391.rdf deleted file mode 100644 index da98ec5e18..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f391.rdf +++ /dev/null @@ -1,18 +0,0 @@ - - - - - - Merlet - Jean-Pierre - - - - - Prisme - - - 3-1992 - Manipulateurs paralleles, 5eme partie : determination de l'espace de travail a orientation constante - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f392.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f392.rdf deleted file mode 100644 index 714bfee307..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f392.rdf +++ /dev/null @@ -1,18 +0,0 @@ - - - - - - Merlet - Jean-Pierre - - - - - Prisme - - - 2-1988 - Parallel manipulators. Part 2 : Theory. Singular configurations and Grassmann geometry - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f393.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f393.rdf deleted file mode 100644 index 95ff2ced28..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f393.rdf +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - Devillers - Olivier - - - - - Meiser - Stefan - - - - - Teillaud - Monique - - - - - Prisme - - - 2-1992 - The space of spheres, a geometric tool to unify duality results on Voronoi diagrams - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f394.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f394.rdf deleted file mode 100644 index 8849b48af2..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f394.rdf +++ /dev/null @@ -1,18 +0,0 @@ - - - - - - Devillers - Olivier - - - - - Prisme - - - 2-1992 - Robust and efficient implementation of the Delaunay tree - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f395.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f395.rdf deleted file mode 100644 index 98f84ef86d..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f395.rdf +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - Pony - Olivier - - - - - Descombes - Xavier - - - - - Zerubia - Josiane - - - - - Ariana - - - 9-2000 - Classification d'images satellitaires hyperspectrales en zone rurale et priurbaine - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f396.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f396.rdf deleted file mode 100644 index 1b14267aaf..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f396.rdf +++ /dev/null @@ -1,18 +0,0 @@ - - - - - - Oniboni - Julien - - - - - Sinus - - - 8-2001 - Modlisation et simulation numrique de l'influx cardiaque - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f397.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f397.rdf deleted file mode 100644 index 8bf787443c..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f397.rdf +++ /dev/null @@ -1,18 +0,0 @@ - - - - - - Grimm - Jos - - - - - Miaou - - - 9-2000 - Rational approximation of transfer functions in the hyperion software - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f398.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f398.rdf deleted file mode 100644 index 292787c4e3..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f398.rdf +++ /dev/null @@ -1,24 +0,0 @@ - - - - - - Boissonnat - Jean-Daniel - - - - - Vigneron - Antoine - - - - - Prisme - - - 11-1999 - Elementary Algorithms for Reporting Intersections of Curve Segments - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f399.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f399.rdf deleted file mode 100644 index 397f4c6a81..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f399.rdf +++ /dev/null @@ -1,24 +0,0 @@ - - - - - - Boissonnat - Jean-Daniel - - - - - Vigneron - Antoine - - - - - Prisme - - - 9-2000 - An Elementary Algorithm for Reporting Intersections of Red/Blue Curve Segments - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f4.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f4.rdf deleted file mode 100644 index c331ed57a9..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f4.rdf +++ /dev/null @@ -1,18 +0,0 @@ - - - - - - Bernhard - Pierre - - - - - Miaou - - - 12-1995 - A Separation Theorem for Expected Value and Feared Value Discrete Time Control - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f40.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f40.rdf deleted file mode 100644 index 0f0d9dbaf5..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f40.rdf +++ /dev/null @@ -1,24 +0,0 @@ - - - - - - Viville - Thierry - - - - - Lingrand - Diane - - - - - Robotvis - - - 10-1995 - Using Singular Displacements for Uncalibrated Monocular Visual Systems - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f400.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f400.rdf deleted file mode 100644 index 2ad85bba19..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f400.rdf +++ /dev/null @@ -1,36 +0,0 @@ - - - - - - Altman - Eitan - - - - - Barakat - Chadi - - - - - Manuel - Victor - - - - - Ramos - Ramos - - - - - Mistral - - - 9-2000 - Queueing analysis of simple FEC schemes for IP Telephony - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f401.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f401.rdf deleted file mode 100644 index 39f0d3a048..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f401.rdf +++ /dev/null @@ -1,36 +0,0 @@ - - - - - - May - Martin - - - - - Diot - Christophe - - - - - Lyles - Bryan - - - - - Bolot - Jean - - - - - Rodeo - - - 8-2000 - Influence of Active Queue Management Parameters on Aggregate Traffic Performance - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f402.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f402.rdf deleted file mode 100644 index b33c5ca13d..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f402.rdf +++ /dev/null @@ -1,24 +0,0 @@ - - - - - - Dube - Parijat - - - - - Altman - Eitan - - - - - Mistral - - - 8-2000 - Queueing Analysis of Partial Message Discard Policy - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f403.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f403.rdf deleted file mode 100644 index dec80fc54a..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f403.rdf +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - Andrianov - Nikolai - - - - - Saurel - Richard - - - - - Warnecke - Gerald - - - - - Smash - - - 9-2001 - A Simple Method for Compressible Multiphase Mixtures and Interfaces - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f404.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f404.rdf deleted file mode 100644 index 8b231490de..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f404.rdf +++ /dev/null @@ -1,24 +0,0 @@ - - - - - - Devillers - Olivier - - - - - Guigue - Philippe - - - - - Prisme - - - 8-2000 - Le tampon mlangeur - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f405.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f405.rdf deleted file mode 100644 index 5576071267..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f405.rdf +++ /dev/null @@ -1,24 +0,0 @@ - - - - - - Boissonnat - Jean-Daniel - - - - - Cazals - Frdric - - - - - Prisme - - - 8-2000 - Smooth Surface Reconstruction via Natural Neighbour Interpolation of Distance Functions - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f406.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f406.rdf deleted file mode 100644 index c52cba4132..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f406.rdf +++ /dev/null @@ -1,18 +0,0 @@ - - - - - - Altman - Eitan - - - - - Mistral - - - 8-2000 - Applications of Markov Decision Processes in Communication Networks: a Survey - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f407.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f407.rdf deleted file mode 100644 index 751cea48f9..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f407.rdf +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - Elizondo - David - - - - - Faure - Christle - - - - - Cappelaere - Bernard - - - - - Tropics - - - 7-2000 - Automatic- versus Manual- differentiation for non-linear inverse modeling - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f408.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f408.rdf deleted file mode 100644 index 4e4ff6cfe0..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f408.rdf +++ /dev/null @@ -1,42 +0,0 @@ - - - - - - Roche - Alexis - - - - - Pennec - Xavier - - - - - Malandain - Grgoire - - - - - Ayache - Nicholas - - - - - Ourselin - Sbastien - - - - - Epidaure - - - 7-2000 - Generalized Correlation Ratio for Rigid Registration of 3D Ultrasound with MR Images - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f409.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f409.rdf deleted file mode 100644 index 85316ccd58..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f409.rdf +++ /dev/null @@ -1,24 +0,0 @@ - - - - - - Dolean - Victorita - - - - - Lanteri - Stphane - - - - - Sinus - - - 6-2000 - A non-overlapping domain decomposition method for solving the Navier-Stokes equations on unstructured triangular meshes - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f41.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f41.rdf deleted file mode 100644 index d4c4a8a762..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f41.rdf +++ /dev/null @@ -1,24 +0,0 @@ - - - - - - Bally - Vlad - - - - - Talay - Denis - - - - - Omega - - - 10-1995 - The Law of the Euler Scheme for Stochastic Differential Equations: II. Convergence Rate of the Density - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f410.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f410.rdf deleted file mode 100644 index 11e5f35222..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f410.rdf +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - Arino - Julien - - - - - Gouz - Jean-Luc - - - - - Sciandra - Antoine - - - - - Comore - - - 6-2000 - A discrete, size-structured model of phytoplankton growth in the chemostat. - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f411.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f411.rdf deleted file mode 100644 index 2146a44306..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f411.rdf +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - Papadopoulo - Thodore - - - - - Manolis - and - - - - - Lourakis - I.A. - - - - - Robotvis - - - 6-2000 - Estimating the Jacobian of the Singular Value Decomposition: Theory and Applications - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f412.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f412.rdf deleted file mode 100644 index da60fd7cb3..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f412.rdf +++ /dev/null @@ -1,36 +0,0 @@ - - - - - - Montagnat - Johan - - - - - Delingette - Herv - - - - - Scapel - Nicolas - - - - - Ayache - Nicholas - - - - - Epidaure - - - 5-2000 - Representation, shape, topology and evolution of deformable surfaces. Application to 3D medical image segmentation. - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f413.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f413.rdf deleted file mode 100644 index 0d64324c22..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f413.rdf +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - Jalobeanu - Andr - - - - - Blanc-Fraud - Laure - - - - - Zerubia - Josiane - - - - - Ariana - - - 6-2000 - Satellite image deconvolution using complex wavelet packets - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f414.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f414.rdf deleted file mode 100644 index 75c613edfc..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f414.rdf +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - Jalobeanu - Andr - - - - - Blanc-Fraud - Laure - - - - - Zerubia - Josiane - - - - - Ariana - - - 6-2000 - Adaptive parameter estimation for satellite image deconvolution - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f415.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f415.rdf deleted file mode 100644 index 622a318422..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f415.rdf +++ /dev/null @@ -1,42 +0,0 @@ - - - - - - Ferreira - A. - - - - - Prennes - S. - - - - - Richa - A.W - - - - - Rivano - H. - - - - - Stier - N. - - - - - Mascotte - - - 8-2001 - On the design of multifiber WDM networks - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f416.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f416.rdf deleted file mode 100644 index fe5db2ad5a..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f416.rdf +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - Jalobeanu - Andr - - - - - Blanc-Fraud - Laure - - - - - Zerubia - Josiane - - - - - Ariana - - - 6-2000 - Etude de la restitution des paramtres instrumentaux en imagerie satellitaire - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f417.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f417.rdf deleted file mode 100644 index a83a029a2a..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f417.rdf +++ /dev/null @@ -1,24 +0,0 @@ - - - - - - Kleptsyna - Marina - - - - - Piatnitski - Andrey - - - - - Sysdys - - - 6-2000 - Averaging of non-selfadjoint parabolic equations with random evolution (dynamics) - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f418.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f418.rdf deleted file mode 100644 index cfbe44ca38..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f418.rdf +++ /dev/null @@ -1,18 +0,0 @@ - - - - - - VIGO - Guillaume - - - - - Sinus - - - 5-2000 - The extension of P.O.D. to complex system with non-homogenous boundary conditions, application to a turbulent pulsed jet. - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f419.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f419.rdf deleted file mode 100644 index 6eeb45e746..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f419.rdf +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - Rellier - Guillaume - - - - - Descombes - Xavier - - - - - Zerubia - Josiane - - - - - Ariana - - - 5-2000 - Local registration and deformation of a road cartographic database on a SPOT satellite image - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f42.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f42.rdf deleted file mode 100644 index d439a16f37..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f42.rdf +++ /dev/null @@ -1,29 +0,0 @@ - - - - - - Faugeras - Olivier - - - - - Mourrain - Bernard - - - - - Safir - - - - - Robotvis - - - 9-1995 - On the geometry and algebra of the point and line correspondences between $N$ images - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f420.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f420.rdf deleted file mode 100644 index 4f8dbb46d1..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f420.rdf +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - Boussinot - Frdric - - - - - Susini - Jean-Ferdy - - - - - Hazard - Laurent - - - - - Meije - - - 3-1998 - Distributed Reactive Machines - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f421.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f421.rdf deleted file mode 100644 index 95c26c9794..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f421.rdf +++ /dev/null @@ -1,18 +0,0 @@ - - - - - - Bossy - Mireille - - - - - Omega - - - 5-2000 - Optimal Rate of Convergence of a Stochastic Particle Method to Solutions of 1D Viscous Scalar Conservation Law Equations - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f422.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f422.rdf deleted file mode 100644 index 0bfe1203a0..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f422.rdf +++ /dev/null @@ -1,24 +0,0 @@ - - - - - - Filali - Fethi - - - - - Dabbous - Walid - - - - - Rodeo - - - 4-2000 - Optimization of GEO Satellite Links Deployment in the Internet - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f423.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f423.rdf deleted file mode 100644 index a76e32d8b6..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f423.rdf +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - Boudol - Grard - - - - - Germain - Florence - - - - - Lacoste - Marc - - - - - Mimosa - - - 4-2000 - Analyse des Langages et Modles de la Mobilit - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f424.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f424.rdf deleted file mode 100644 index 17e3c7cf60..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f424.rdf +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - Stoica - Radu - - - - - Descombes - Xavier - - - - - Zerubia - Josiane - - - - - Ariana - - - 4-2000 - A Markov Point Process for Road Extraction in Remote Sensed Images - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f425.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f425.rdf deleted file mode 100644 index af729493ed..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f425.rdf +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - Dolean - V. - - - - - Lanteri - S. - - - - - F. - and - - - - - Sinus - - - 4-2000 - Convergence analysis of a Schwarz type domain decomposition method for the solution of the Euler equations - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f426.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f426.rdf deleted file mode 100644 index 748c2dbff9..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f426.rdf +++ /dev/null @@ -1,18 +0,0 @@ - - - - - - M. - Roberto - - - - - Mimosa - - - 3-2000 - On the reachability problem in cryptographic protocols - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f427.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f427.rdf deleted file mode 100644 index 557de0f55d..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f427.rdf +++ /dev/null @@ -1,18 +0,0 @@ - - - - - - I.A. - Manolis - - - - - Robotvis - - - 3-2000 - Camera Self-Calibration Using the Kruppa Equations and the SVD of the Fundamental Matrix: The Case of Varying Intrinsic Parameters - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f428.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f428.rdf deleted file mode 100644 index 5307db7dab..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f428.rdf +++ /dev/null @@ -1,24 +0,0 @@ - - - - - - Devillers - Olivier - - - - - Gandoin - Pierre-Marie - - - - - Prisme - - - 3-2000 - Geometric Compression for Interactive Transmission - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f429.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f429.rdf deleted file mode 100644 index cfff537c2f..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f429.rdf +++ /dev/null @@ -1,18 +0,0 @@ - - - - - - CARPENTIER - Romuald - - - - - Sinus - - - 4-2000 - Schma de haute prcision en maillage quadrangulaire structur pour des coulements compressibles non visqueux. - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f43.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f43.rdf deleted file mode 100644 index 5bad11a246..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f43.rdf +++ /dev/null @@ -1,18 +0,0 @@ - - - - - - Zhang - Zhengyou - - - - - Robotvis - - - 10-1995 - Parameter Estimation Techniques: A Tutorial with Application to Conic Fitting - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f430.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f430.rdf deleted file mode 100644 index 26e7fc2c01..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f430.rdf +++ /dev/null @@ -1,24 +0,0 @@ - - - - - - Barakat - Chadi - - - - - Altman - Eitan - - - - - Mistral - - - 3-2000 - On ACK Filtering on a Slow Reverse Channel - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f431.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f431.rdf deleted file mode 100644 index a545c85408..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f431.rdf +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - Faure - Christle - - - - - Souli - Edgar - - - - - Berclaz - Tho - - - - - Tropics - - - 3-2000 - Rsonance paramagntique lectronique, optimisation et diffrentiation automatique - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f432.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f432.rdf deleted file mode 100644 index 8e3a89c7c2..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f432.rdf +++ /dev/null @@ -1,24 +0,0 @@ - - - - - - Cachier - Pascal - - - - - Ayache - Nicholas - - - - - Epidaure - - - 8-2001 - Regularization Methods in Non-Rigid Registration: II. Isotropic Energies, Filters and Splines. - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f433.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f433.rdf deleted file mode 100644 index 5567232919..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f433.rdf +++ /dev/null @@ -1,18 +0,0 @@ - - - - - - Dellire - Stphane - - - - - Caf - - - 2-2000 - Pgcd de deux polynmes paramtres : approche par la clture constructible dynamique et gnralisation de la mthode de S.A. Abramov, K.Yu. Kvashenko - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f434.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f434.rdf deleted file mode 100644 index eadefd96a0..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f434.rdf +++ /dev/null @@ -1,24 +0,0 @@ - - - - - - Imberty - Mikael - - - - - Descombes - Xavier - - - - - Ariana - - - 2-2000 - Simulation de processus objets : Etude de faisabilit pour une application la segmentation d'image - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f435.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f435.rdf deleted file mode 100644 index b71874697c..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f435.rdf +++ /dev/null @@ -1,24 +0,0 @@ - - - - - - Delingette - Herv - - - - - Montagnat - Johan - - - - - Epidaure - - - 1-2000 - Topology and shape constraints on parametric active contours - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f436.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f436.rdf deleted file mode 100644 index 0b12a026bc..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f436.rdf +++ /dev/null @@ -1,18 +0,0 @@ - - - - - - Darrot - Eric - - - - - Sloop - - - 2-2000 - Rseaux rarrangeables commutateurs lamelles - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f437.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f437.rdf deleted file mode 100644 index 66fc9d9aad..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f437.rdf +++ /dev/null @@ -1,24 +0,0 @@ - - - - - - Alvarez - Luis - - - - - Deriche - Rachid - - - - - Robotvis - - - 1-2000 - Dense Disparity Map Estimation Respecting Image Discontinuities: A PDE and Scale-Space Based Approach - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f438.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f438.rdf deleted file mode 100644 index b90763792c..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f438.rdf +++ /dev/null @@ -1,24 +0,0 @@ - - - - - - Morin - Pascal - - - - - Samson - Claude - - - - - Icare - - - 1-2000 - A characterization of the Lie Algebra Rank Condition by transverse periodic functions - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f439.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f439.rdf deleted file mode 100644 index 8de8ded83a..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f439.rdf +++ /dev/null @@ -1,18 +0,0 @@ - - - - - - Bournet - Pierre-Emmanuel - - - - - Caiman - - - 1-2000 - Validation du code NS3IFS et comparaison avec des donnes exprimentales pour des coulements autour de tabliers de ponts - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f44.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f44.rdf deleted file mode 100644 index b4456d37ab..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f44.rdf +++ /dev/null @@ -1,18 +0,0 @@ - - - - - - Rothwell - Charlie - - - - - Robotvis - - - 10-1995 - The Importance of Reasoning about Occlusions during Hypothesis Verification in Object Recognition - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f440.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f440.rdf deleted file mode 100644 index 222293a074..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f440.rdf +++ /dev/null @@ -1,18 +0,0 @@ - - - - - - Held - Christophe - - - - - Sinus - - - 1-2000 - Optimisation de formes en arodynamique sans gradient par rsolution simultane - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f441.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f441.rdf deleted file mode 100644 index 0d69c1e8ae..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f441.rdf +++ /dev/null @@ -1,24 +0,0 @@ - - - - - - Clerget - Antoine - - - - - Dabbous - Walid - - - - - Rodeo - - - 11-1999 - Tag-based Fair Bandwidth Sharing for Responsive and Unresponsive flows - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f442.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f442.rdf deleted file mode 100644 index 0719318640..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f442.rdf +++ /dev/null @@ -1,24 +0,0 @@ - - - - - - Camarri - Simone - - - - - Vittoria - Maria - - - - - Sinus - - - 12-1999 - Towards the Large-Eddy simulation of complex engineering flows with unstructured grids - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f443.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f443.rdf deleted file mode 100644 index fbfb8843d6..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f443.rdf +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - Dsidri - Jean-Antoine - - - - - Peigin - Sergey - - - - - Timchenko - Sergey - - - - - Sinus - - - 12-1999 - Application of Genetic Algorithms to the Solution of the Space Vehicle Reentry Trajectory Optimization Problem - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f444.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f444.rdf deleted file mode 100644 index b98a07f177..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f444.rdf +++ /dev/null @@ -1,24 +0,0 @@ - - - - - - Amadio - Roberto - - - - - Meyssonnier - Charles - - - - - Mimosa - - - 8-2001 - On the decidability of fragments of the asynchronous Pi -calculus - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f445.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f445.rdf deleted file mode 100644 index a53e2c3ba3..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f445.rdf +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - Beauquier - Bruno - - - - - Perennes - Stephane - - - - - Delmas - Olivier - - - - - Sloop - - - 12-1999 - Tight Bounds for Broadcasting in the Linear Cost Model - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f446.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f446.rdf deleted file mode 100644 index 228e9b0c35..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f446.rdf +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - Prima - Sylvain - - - - - Ourselin - Sbastien - - - - - Ayache - Nicholas - - - - - Epidaure - - - 12-1999 - Computation of the mid-sagittal plane in 3D medical images of the head - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f447.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f447.rdf deleted file mode 100644 index 587685e457..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f447.rdf +++ /dev/null @@ -1,36 +0,0 @@ - - - - - - Liu - Zhen - - - - - Niclausse - Nicolas - - - - - Jalpa-Villanueva - Cesar - - - - - in - Sylva - - - - - Mistral - - - 12-1999 - Traffic Model and Performance Evaluation of Web Servers - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f448.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f448.rdf deleted file mode 100644 index ee85f934c5..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f448.rdf +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - Hordijk - Arie - - - - - Liu - Zhen - - - - - Towsley - Don - - - - - Mistral - - - 12-1999 - Smoothing Effect of the Superposition of Homogeneous Sources in Tandem Networks - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f449.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f449.rdf deleted file mode 100644 index d551d7992e..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f449.rdf +++ /dev/null @@ -1,41 +0,0 @@ - - - - - - Devillers - Olivier - - - - - Fronville - Alexandra - - - - - Mourrain - Bernard - - - - - Teillaud - Monique - - - - - Saga - - - - - Prisme - - - 12-1999 - Algebraic methods and arithmetic filtering for exact predicates on circle arcs - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f45.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f45.rdf deleted file mode 100644 index f03df6ec17..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f45.rdf +++ /dev/null @@ -1,24 +0,0 @@ - - - - - - Altman - Eitan - - - - - Koole - Ger - - - - - Mistral - - - 10-1995 - On submodular value functions of dynamic programming - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f450.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f450.rdf deleted file mode 100644 index 64efc74bba..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f450.rdf +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - Altman - Eitan - - - - - Avrachenkov - Kostia - - - - - Barakat - Chadi - - - - - Mistral - - - 11-1999 - A stochastic model of TCP/IP with stationary ergodic random losses - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f451.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f451.rdf deleted file mode 100644 index be10a48010..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f451.rdf +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - Matta - Nada - - - - - Corby - Olivier - - - - - Ribiere - Myriam - - - - - Acacia - - - 11-1999 - Mthodes de capitalisation de mmoire de projet - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f452.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f452.rdf deleted file mode 100644 index 005238f4b1..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f452.rdf +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - Coudert - D. - - - - - Ferreira - A. - - - - - Prennes - S. - - - - - Sloop - - - 11-1999 - Digraph Isomorphisms and Free Space Optical Networks - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f453.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f453.rdf deleted file mode 100644 index d92322143c..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f453.rdf +++ /dev/null @@ -1,24 +0,0 @@ - - - - - - Faugeras - Olivier - - - - - Hermosillo - Gerardo - - - - - Robotvis - - - 8-2001 - Well-posedness of eight problems of multi-modal statistical image-matching - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f454.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f454.rdf deleted file mode 100644 index fe25e501d9..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f454.rdf +++ /dev/null @@ -1,24 +0,0 @@ - - - - - - Campillo - Fabien - - - - - Piatnitski - Andrey - - - - - Sysdys - - - 11-1999 - Effective diffusion in vanishing viscosity - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f455.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f455.rdf deleted file mode 100644 index 693b8e715f..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f455.rdf +++ /dev/null @@ -1,18 +0,0 @@ - - - - - - El - Rachid - - - - - Mistral - - - 12-1999 - Perturbation of Linear Quadratic Systems with Jump Parameters and Hybrid Controls - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f456.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f456.rdf deleted file mode 100644 index 05092fc649..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f456.rdf +++ /dev/null @@ -1,24 +0,0 @@ - - - - - - Faure - Christle - - - - - Charpentier - Isabelle - - - - - Tropics - - - 11-1999 - Comparing strategies for coding adjoints - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f457.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f457.rdf deleted file mode 100644 index 4273e44d5b..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f457.rdf +++ /dev/null @@ -1,36 +0,0 @@ - - - - - - Tabary - Marie-Laure - - - - - Ayache - Nicholas - - - - - Darcourt - Jacques - - - - - Malandain - Grgoire - - - - - Epidaure - - - 11-1999 - Analyse statistique d'images mdicales : tude et utilisation du logiciel SPM - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f458.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f458.rdf deleted file mode 100644 index 36d0773c76..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f458.rdf +++ /dev/null @@ -1,18 +0,0 @@ - - - - - - Le - Alain - - - - - Sysdys - - - 11-1999 - Asymptotic Optimality of Approximate Filters in Stochastic Systems with Colored Noises - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f459.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f459.rdf deleted file mode 100644 index ab5701c79a..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f459.rdf +++ /dev/null @@ -1,18 +0,0 @@ - - - - - - Bronstein - Manuel - - - - - Cafe - - - 11-1999 - On solutions of linear ordinary difference equations in their coefficient field - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f46.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f46.rdf deleted file mode 100644 index 6dce411ff7..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f46.rdf +++ /dev/null @@ -1,24 +0,0 @@ - - - - - - Liu - Zhen - - - - - Righter - Rhonda - - - - - Mistral, - - - 9-1995 - Optimal Load Balancing on Distributed Homogeneous Unreliable Processors - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f460.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f460.rdf deleted file mode 100644 index 2af1677544..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f460.rdf +++ /dev/null @@ -1,36 +0,0 @@ - - - - - - Guimond - Alexandre - - - - - Roche - Alexis - - - - - Ayache - Nicholas - - - - - Meunier - Jean - - - - - Epidaure - - - 11-1999 - Multimodal Brain Warping Using the Demons Algorithm and Adaptative Intensity Corrections - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f461.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f461.rdf deleted file mode 100644 index c6cd0c344b..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f461.rdf +++ /dev/null @@ -1,24 +0,0 @@ - - - - - - Beauquier - Bruno - - - - - Darrot - Eric - - - - - Sloop - - - 10-1999 - On Arbitrary Waksman Networks and their Vulnerability - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f462.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f462.rdf deleted file mode 100644 index 72b9141490..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f462.rdf +++ /dev/null @@ -1,24 +0,0 @@ - - - - - - Paragios - Nikos - - - - - Deriche - Rachid - - - - - Robotvis - - - 10-1999 - Coupled Geodesic Active Regions for Image Segmentation - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f463.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f463.rdf deleted file mode 100644 index fdb3916fad..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f463.rdf +++ /dev/null @@ -1,18 +0,0 @@ - - - - - - Devillers - Olivier - - - - - Prisme - - - 7-2001 - On the number of cylindrical shells - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f464.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f464.rdf deleted file mode 100644 index b3bac9cc6d..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f464.rdf +++ /dev/null @@ -1,18 +0,0 @@ - - - - - - Faure - Christle - - - - - Tropics - - - 10-1999 - Adjoining strategies for Multi-layered Programs - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f465.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f465.rdf deleted file mode 100644 index 336f8e9564..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f465.rdf +++ /dev/null @@ -1,24 +0,0 @@ - - - - - - Faure - Christle - - - - - Dutto - Patrick - - - - - Tropics - - - 10-1999 - Extension of Odysse to the MPI library - Reverse mode - - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f466.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f466.rdf deleted file mode 100644 index 90a9232d13..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f466.rdf +++ /dev/null @@ -1,24 +0,0 @@ - - - - - - Devillers - Olivier - - - - - Gandoin - Pierre-Marie - - - - - Prisme - - - 9-1999 - Compression gomtrique pour une transmission progressive - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f467.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f467.rdf deleted file mode 100644 index 8a218036e3..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f467.rdf +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - Baratchart - Laurent - - - - - Leblond - Juliette - - - - - R. - Jonathan - - - - - Miaou - - - 9-1999 - Constrained $H^p$ interpolation on subsets of the circle - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f468.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f468.rdf deleted file mode 100644 index e1fa6d3016..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f468.rdf +++ /dev/null @@ -1,12 +0,0 @@ - - - - - - Prisme - - - 9-1999 - The union of unit balls has quadratic complexity, even if they all contain the origin - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f469.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f469.rdf deleted file mode 100644 index 8ecea8fa1e..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f469.rdf +++ /dev/null @@ -1,36 +0,0 @@ - - - - - - Guzengar - Dominique - - - - - Herv - and - - - - - and - Guillard - - - - - Dussauge - Jean-Paul - - - - - Sinus - - - 9-1999 - Modelling the dissipation equation in supersonic turbulent mixing layers with high density gradients - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f47.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f47.rdf deleted file mode 100644 index abc0a0e468..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f47.rdf +++ /dev/null @@ -1,18 +0,0 @@ - - - - - - Liu - Zhen - - - - - Mistral - - - 8-1995 - Performance Analysis of Stochastic Timed Petri Nets using Linear Programming Approach - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f470.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f470.rdf deleted file mode 100644 index 5ba955fd56..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f470.rdf +++ /dev/null @@ -1,18 +0,0 @@ - - - - - - I.A. - Manolis - - - - - Robotvis - - - 8-1999 - Camera Self-Calibration Using the Singular Value Decomposition of the Fundamental Matrix: From Point Correspondences to 3D Measurements - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f471.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f471.rdf deleted file mode 100644 index 4985e8aca1..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f471.rdf +++ /dev/null @@ -1,24 +0,0 @@ - - - - - - Descombes - Xavier - - - - - Pechersky - Eugne - - - - - Ariana - - - 8-1999 - Isotropic properties of some multi-body interaction models: two quality criteria for Markov Priors in image processing - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f472.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f472.rdf deleted file mode 100644 index 021bed4272..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f472.rdf +++ /dev/null @@ -1,29 +0,0 @@ - - - - - - Malandain - Grgoire - - - - - Boissonnat - Jean-Daniel - - - - - Epidaure - - - - - Prisme - - - 7-2001 - Computing the Diameter of a Point Set - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f473.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f473.rdf deleted file mode 100644 index 80a5fb36b3..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f473.rdf +++ /dev/null @@ -1,24 +0,0 @@ - - - - - - Dolean - V. - - - - - S. - and - - - - - Sinus - - - 9-1999 - A domain decomposition approach to finite volume solutions of the Euler equations on triangular meshes - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f474.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f474.rdf deleted file mode 100644 index e7cd0a99de..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f474.rdf +++ /dev/null @@ -1,24 +0,0 @@ - - - - - - Devillers - Olivier - - - - - P. - Franco - - - - - Prisme - - - 7-1999 - Evaluating the cylindricity of a nominally cylindrical point set (draft) - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f475.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f475.rdf deleted file mode 100644 index 10351207c4..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f475.rdf +++ /dev/null @@ -1,18 +0,0 @@ - - - - - - Persson - Henrik - - - - - Lemme - - - 9-2001 - An Integrated Development of Buchberger's Algorithm in Coq - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f476.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f476.rdf deleted file mode 100644 index 87427de220..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f476.rdf +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - Roche - Alexis - - - - - Malandain - Grgoire - - - - - Ayache - Nicholas - - - - - Epidaure - - - 7-1999 - Unifying Maximum Likelihood Approaches in Medical Image Registration - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f477.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f477.rdf deleted file mode 100644 index 61196849c6..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f477.rdf +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - Altman - Eitan - - - - - Avrachenkov - Kostya - - - - - Barakat - Chadi - - - - - Mistral - - - 7-1999 - TCP in presence of bursty losses - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f478.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f478.rdf deleted file mode 100644 index 1a76ee8d9e..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f478.rdf +++ /dev/null @@ -1,35 +0,0 @@ - - - - - - Barakat - Chadi - - - - - Altman - Eitan - - - - - Dabbous - Walid - - - - - Rodeo - - - - - Mistral - - - 7-1999 - On TCP Performance in an Heterogeneous Network: A Survey - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f479.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f479.rdf deleted file mode 100644 index 6b38744265..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f479.rdf +++ /dev/null @@ -1,42 +0,0 @@ - - - - - - Krissian - Karl - - - - - Malandain - Grgoire - - - - - Ayache - Nicholas - - - - - Vaillant - Rgis - - - - - Trousset - Yves - - - - - Epidaure - - - 7-1999 - Model Based Detection of Tubular Structures in 3D Images - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f48.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f48.rdf deleted file mode 100644 index 21832035b5..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f48.rdf +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - Pennec - Xavier - - - - - Cachier - Pascal - - - - - Ayache - Nicolas - - - - - Epidaure - - - 12-2000 - Tracking brain deformations in time-sequences of 3D US images - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f480.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f480.rdf deleted file mode 100644 index 4fdf232fc6..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f480.rdf +++ /dev/null @@ -1,12 +0,0 @@ - - - - - - Caf - - - 7-1999 - Reducibility of linear difference operators : a Galois-theoretic perspective - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f481.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f481.rdf deleted file mode 100644 index 21b67c180d..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f481.rdf +++ /dev/null @@ -1,18 +0,0 @@ - - - - - - M. - Roberto - - - - - Meije - - - 7-1999 - The game of the name in cryptographic tables - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f482.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f482.rdf deleted file mode 100644 index 3ac2753b33..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f482.rdf +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - Hazard - Laurent - - - - - Susini - Jean-Ferdy - - - - - Boussinot - Frdric - - - - - Meije - - - 7-1999 - The Junior Reactive Kernel - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f483.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f483.rdf deleted file mode 100644 index 998c5d6e44..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f483.rdf +++ /dev/null @@ -1,24 +0,0 @@ - - - - - - Attali - Dominique - - - - - Boissonnat - Jean-Daniel - - - - - Prisme - - - 7-2001 - Complexity of the Delaunay triangulation of points on polyhedral surfaces - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f484.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f484.rdf deleted file mode 100644 index 234bfa4455..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f484.rdf +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - Guimond - Alexandre - - - - - Meunier - Jean - - - - - Thirion - Jean-Philippe - - - - - Epidaure - - - 7-1999 - Average Brain Models: A Convergence Study - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f485.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f485.rdf deleted file mode 100644 index d22cfc5ae9..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f485.rdf +++ /dev/null @@ -1,35 +0,0 @@ - - - - - - Lty - Emmanuel - - - - - Turletti - Thierry - - - - - Baccelli - Franois - - - - - Ens-dmi - - - - - Rodeo - - - 7-1999 - Cell-based Multicast Grouping in Large-Scale Virtual Environments - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f486.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f486.rdf deleted file mode 100644 index 673b883000..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f486.rdf +++ /dev/null @@ -1,18 +0,0 @@ - - - - - - Clerget - Antoine - - - - - Rodeo - - - 7-1999 - TUF : A Tag-based UDP Multicast Flow Control Protocol - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f487.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f487.rdf deleted file mode 100644 index 237a31f4d9..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f487.rdf +++ /dev/null @@ -1,41 +0,0 @@ - - - - - - Altman - Eitan - - - - - Bhulai - Sandjai - - - - - Gaujal - Bruno - - - - - Hordijk - Arie - - - - - Sloop - - - - - Mistral - - - 6-1999 - Optimal Routing Problems and Multimodularity - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f488.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f488.rdf deleted file mode 100644 index 35a82d05cc..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f488.rdf +++ /dev/null @@ -1,18 +0,0 @@ - - - - - - Remaki - Malika - - - - - Caiman - - - 7-1999 - A New Finite Volume Scheme for Solving Maxwell System - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f489.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f489.rdf deleted file mode 100644 index 6d614f9439..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f489.rdf +++ /dev/null @@ -1,24 +0,0 @@ - - - - - - Faubourg - Ludovic - - - - - Pomet - Jean-Baptiste - - - - - Miaou - - - 7-1999 - Design of control Lyapunov functions for homogeneous Jurdjevic-Quinn systems - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f49.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f49.rdf deleted file mode 100644 index b67c365e2b..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f49.rdf +++ /dev/null @@ -1,24 +0,0 @@ - - - - - - Rothwell - Charlie - - - - - Stern - Julien - - - - - Robotvis - - - 10-1995 - Understanding the Shape Properties of Trihedral Polyhedra - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f490.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f490.rdf deleted file mode 100644 index 6f09ec6f2d..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f490.rdf +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - MATTA - Nada - - - - - RIBIERE - Myriam - - - - - CORBY - Olivier - - - - - Acacia - - - 6-1999 - Dfinition d'un Modle de mmoire de projet - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f491.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f491.rdf deleted file mode 100644 index 8721369ab8..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f491.rdf +++ /dev/null @@ -1,24 +0,0 @@ - - - - - - Faure - Christle - - - - - Dutto - Patrick - - - - - Tropics - - - 6-1999 - Extension of Odysse to the MPI library - Direct mode - - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f492.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f492.rdf deleted file mode 100644 index 3a33af4cf5..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f492.rdf +++ /dev/null @@ -1,24 +0,0 @@ - - - - - - Strandlie - Are - - - - - Zerubia - Josiane - - - - - Ariana - - - 6-1999 - A deterministic annealing PMHT algorithm with an application to particle tracking - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f493.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f493.rdf deleted file mode 100644 index 4cbb2bddb1..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f493.rdf +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - Baratchart - Laurent - - - - - Chyba - Monique - - - - - Pomet - Jean-Baptiste - - - - - Miaou - - - 7-2001 - Topological versus Smooth Linearization of Control Systems - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f494.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f494.rdf deleted file mode 100644 index 8a7a6429fe..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f494.rdf +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - Cachier - Pascal - - - - - Pennec - Xavier - - - - - Ayache - Nicholas - - - - - Epidaure - - - 6-1999 - Fast Non Rigid Matching by Gradient Descent: Study and Improvements of the ``Demons'' Algorithm - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f495.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f495.rdf deleted file mode 100644 index dccd14029a..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f495.rdf +++ /dev/null @@ -1,24 +0,0 @@ - - - - - - Tchoumatchenko - Konstantin - - - - - Zuyev - Sergei - - - - - Mistral - - - 6-1999 - Aggregate and Fractal Tessellations - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f496.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f496.rdf deleted file mode 100644 index 2629c13374..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f496.rdf +++ /dev/null @@ -1,18 +0,0 @@ - - - - - - Henry-Grard - Loc - - - - - Meije - - - 5-1999 - Proof of the subject reduction property for a -calculus in COQ - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f497.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f497.rdf deleted file mode 100644 index 7783118215..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f497.rdf +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - Beauquier - Bruno - - - - - Prennes - Stphane - - - - - David - and - - - - - Sloop - - - 6-1999 - All-to-All Routing and Coloring in Weighted Trees of Rings - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f498.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f498.rdf deleted file mode 100644 index 7721aff444..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f498.rdf +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - Vanek - Petr - - - - - Janka - Ales - - - - - Herv - and - - - - - Sinus - - - 5-1999 - Convergence of Algebraic Multigrid Based on Smoothed Aggregation II: Extension to a Petrov-Galerkin Method - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f499.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f499.rdf deleted file mode 100644 index cd21e97150..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f499.rdf +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - Baccelli - Franois - - - - - Gloaguen - Catherine - - - - - Sergei - and - - - - - Mistral - - - 5-1999 - Superposition of Planar Voronoi Tessellations - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f5.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f5.rdf deleted file mode 100644 index 06ef500f76..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f5.rdf +++ /dev/null @@ -1,25 +0,0 @@ - - - - - - Depeyre - S. - - - - - Larrouturou - B. - - - - - Carpentier - R. - - - 8-1995 - Mthodes numriques dcentres d'ordre lev en deux dimensions d'espace - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f50.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f50.rdf deleted file mode 100644 index e0bd40abf4..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f50.rdf +++ /dev/null @@ -1,42 +0,0 @@ - - - - - - Dulbecco - Philippe - - - - - Gaffard - Jean-Luc - - - - - Laurent - Philippe - - - - - Leblond - Juliette - - - - - Pomet - Jean-Baptiste - - - - - Miaou - - - 9-1995 - Un modle dynamique de comportement d'une entreprise - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f500.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f500.rdf deleted file mode 100644 index b95b8457ce..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f500.rdf +++ /dev/null @@ -1,18 +0,0 @@ - - - - - - Naumann - Uwe - - - - - Tropics - - - 5-1999 - Heuristics for Efficiently Calculating Jacobians by Edge Elimination in Computational Graphs - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f501.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f501.rdf deleted file mode 100644 index 65eb4cd295..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f501.rdf +++ /dev/null @@ -1,18 +0,0 @@ - - - - - - Naumann - Uwe - - - - - Tropics - - - 5-1999 - Efficient Calculation of Jacobians using Dynamic Programming - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f502.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f502.rdf deleted file mode 100644 index a4fb8c9b5c..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f502.rdf +++ /dev/null @@ -1,24 +0,0 @@ - - - - - - de - Armel - - - - - Bourdonnaye - La - - - - - Caiman - - - 5-1999 - High order scheme for a non linear Maxwell system modelling Kerr effect. - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f503.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f503.rdf deleted file mode 100644 index 8ac5b78069..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f503.rdf +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - Moresino - Francesco - - - - - Pourtallier - Odile - - - - - Mabel - and - - - - - Miaou - - - 5-1999 - Using Viscosity Solution for Approximations in Piecewise Deterministic Control Systems - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f504.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f504.rdf deleted file mode 100644 index 0478193d8c..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f504.rdf +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - Marco - Nathalie - - - - - Dsidri - Jean-Antoine - - - - - Stphane - and - - - - - Sinus - - - 4-1999 - Multi-Objective Optimization in CFD by Genetic Algorithms - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f505.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f505.rdf deleted file mode 100644 index 4b1c16fb39..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f505.rdf +++ /dev/null @@ -1,18 +0,0 @@ - - - - - - Chicli - Laurent - - - - - Lemme - - - 6-2001 - Une formalisation des faisceaux et des schmas affines en thorie des types avec Coq - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f506.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f506.rdf deleted file mode 100644 index 4224fc23bd..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f506.rdf +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - Cotin - Stphane - - - - - Delingette - Herv - - - - - Ayache - Nicholas - - - - - Epidaure - - - 9-1998 - Efficient linear elastic models of soft tissues for real-time surgery simulation - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f507.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f507.rdf deleted file mode 100644 index eda4d88f76..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f507.rdf +++ /dev/null @@ -1,18 +0,0 @@ - - - - - - Lingrand - Diane - - - - - Robotvis - - - 4-1999 - Perspective projection's approximations: combined model and homographic singularities - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f508.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f508.rdf deleted file mode 100644 index b05de78e4f..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f508.rdf +++ /dev/null @@ -1,69 +0,0 @@ - - - - - - Faugeras - O. - - - - - Clment - F. - - - - - Deriche - R. - - - - - Keriven - R. - - - - - Papadopoulo - T. - - - - - Roberts - J. - - - - - Viville - T. - - - - - Cermics - - - - - Robotvis - - - - - Estime - - - - - Ondes - - - 5-1999 - The inverse EEG and MEG problems: The adjoint state approach I: The continuous case - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f509.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f509.rdf deleted file mode 100644 index 9f4210545e..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f509.rdf +++ /dev/null @@ -1,18 +0,0 @@ - - - - - - Z. - Ioannis - - - - - Saga - - - 4-1999 - Sign methods for counting and computing real roots of algebraic systems - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f51.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f51.rdf deleted file mode 100644 index b5528a95c8..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f51.rdf +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - Livre - Hlne - - - - - Dsidri - Jean-Antoine - - - - - Habbal - Abderrahmane - - - - - Sinus - - - 9-2001 - Optimisation numrique de profils d'aile par Algorithmes Gntiques et Jeux de Nash. - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f510.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f510.rdf deleted file mode 100644 index fca7ab7c99..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f510.rdf +++ /dev/null @@ -1,18 +0,0 @@ - - - - - - CARPENTIER - Romuald - - - - - Sinus - - - 4-1999 - The beta/gamma scheme for axisymetric calculus. - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f511.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f511.rdf deleted file mode 100644 index ed216a8e82..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f511.rdf +++ /dev/null @@ -1,18 +0,0 @@ - - - - - - M. - Jorn - - - - - Mistral - - - 4-1999 - Real-Time Scheduling: Non-Preemption, Critical Sections and Round Robin. - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f512.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f512.rdf deleted file mode 100644 index 26d9fc6b75..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f512.rdf +++ /dev/null @@ -1,18 +0,0 @@ - - - - - - Naumann - Uwe - - - - - Tropics - - - 4-1999 - SAVE - Simulated Annealing applied to the Vertex Elimination Problem in Computational Graphs - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f513.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f513.rdf deleted file mode 100644 index 6494448167..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f513.rdf +++ /dev/null @@ -1,24 +0,0 @@ - - - - - - Thirion - Bertrand - - - - - Faugeras - Olivier - - - - - Robotvis - - - 6-2001 - Activation detection and characterisation in brain fMRI sequences. Application to the study of monkey vision. - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f514.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f514.rdf deleted file mode 100644 index cca01add79..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f514.rdf +++ /dev/null @@ -1,18 +0,0 @@ - - - - - - Naumann - Uwe - - - - - Tropics - - - 4-1999 - Optimizing the Accumulation of Jacobians by Edge Elimination in the Computational Graph - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f515.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f515.rdf deleted file mode 100644 index 582d4b3f0a..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f515.rdf +++ /dev/null @@ -1,24 +0,0 @@ - - - - - - Gomes - Jos - - - - - Olivier - and - - - - - Robotvis - - - 4-1999 - Reconciling Distance Functions and Level Sets - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f516.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f516.rdf deleted file mode 100644 index 3de8de8d18..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f516.rdf +++ /dev/null @@ -1,36 +0,0 @@ - - - - - - Bermond - Jean-Claude - - - - - Marlin - Nausica - - - - - Peleg - David - - - - - Prenns - Stphane - - - - - Sloop - - - 4-1999 - Directed Virtual Path Layouts in ATM networks - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f517.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f517.rdf deleted file mode 100644 index 49ec10a81b..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f517.rdf +++ /dev/null @@ -1,18 +0,0 @@ - - - - - - Dal-Zilio - Silvano - - - - - Meije - - - 4-1999 - A Bisimulation for the Blue Calculus - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f518.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f518.rdf deleted file mode 100644 index 9a505968ca..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f518.rdf +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - HERMOSILLO - Gerardo - - - - - FAUGERAS - Olivier - - - - - Jos - and - - - - - Robotvis - - - 4-1999 - Cortex Unfolding Using Level Set Methods - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f519.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f519.rdf deleted file mode 100644 index ed5d59d99a..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f519.rdf +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - Samson - Christophe - - - - - Blanc-Fraud - Laure - - - - - Aubert - Gilles - - - - - Ariana - - - 4-1999 - Multiphase Evolution and Variational Image Classification - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f52.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f52.rdf deleted file mode 100644 index 3de4ff040f..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f52.rdf +++ /dev/null @@ -1,36 +0,0 @@ - - - - - - Finta - Lucian - - - - - Liu - Zhen - - - - - Milis - Ioannis - - - - - Bampis - Evripidis - - - - - Mistral - - - 5-1995 - Scheduling UET-UCT Series-Parallel Graphs on Two Processors - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f520.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f520.rdf deleted file mode 100644 index fb79e08c43..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f520.rdf +++ /dev/null @@ -1,12 +0,0 @@ - - - - - - Sinus - - - 3-1999 - Parallelization of finite element codes with automatic placement of communications - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f521.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f521.rdf deleted file mode 100644 index deed1324ab..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f521.rdf +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - Attali - Isabelle - - - - - Caromel - Denis - - - - - Guider - Romain - - - - - Oasis - - - 3-1999 - Static Analysis of Java for distributed and parallel programming - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f522.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f522.rdf deleted file mode 100644 index 38ef47e35f..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f522.rdf +++ /dev/null @@ -1,24 +0,0 @@ - - - - - - Paragios - Nikos - - - - - Deriche - Rachid - - - - - Robotvis - - - 3-1999 - Geodesic Active Regions for Motion Estimation and Tracking - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f523.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f523.rdf deleted file mode 100644 index 0c682ddab0..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f523.rdf +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - Heydemann - Marie-Claude - - - - - Marlin - Nausica - - - - - Prennes - Stphane - - - - - Sloop - - - 2-1999 - Cayley Graphs with Complete Rotations - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f524.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f524.rdf deleted file mode 100644 index af0879f7da..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f524.rdf +++ /dev/null @@ -1,36 +0,0 @@ - - - - - - Garcin - Laurent - - - - - Descombes - Xavier - - - - - Zerubia - Josiane - - - - - Le Men - Hervé - - - - - Ariana - - - 6-2001 - Building Detection by Markov Object processes and a MCMC algorithm - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f525.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f525.rdf deleted file mode 100644 index 13a62fc741..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f525.rdf +++ /dev/null @@ -1,24 +0,0 @@ - - - - - - Marco-Blaszka - Nathalie - - - - - Dsidri - Jean-Antoine - - - - - Sinus - - - 2-1999 - Numerical solution of optimization test-cases by Genetic Algorithms - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f526.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f526.rdf deleted file mode 100644 index 44e0d01549..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f526.rdf +++ /dev/null @@ -1,18 +0,0 @@ - - - - - - Galtier - Jrme - - - - - Sloop - - - 1-1999 - Using Parallel Computing to Reduce CPU Power - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f527.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f527.rdf deleted file mode 100644 index 27a63818fe..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f527.rdf +++ /dev/null @@ -1,24 +0,0 @@ - - - - - - Barakat - Chadi - - - - - Altman - Eitan - - - - - Mistral - - - 2-1999 - Analysis of TCP with Several Bottleneck Nodes - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f528.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f528.rdf deleted file mode 100644 index da181cbbcd..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f528.rdf +++ /dev/null @@ -1,24 +0,0 @@ - - - - - - Becker - Roland - - - - - Hansbo - Peter - - - - - Caiman - - - 1-1999 - A finite element method for domain decomposition with non-matching grids - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f529.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f529.rdf deleted file mode 100644 index df694955f4..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f529.rdf +++ /dev/null @@ -1,24 +0,0 @@ - - - - - - Flammini - Michele - - - - - Prenns - Stphane - - - - - Sloop - - - 1-1999 - Lower Bounds on the Broadcasting and Gossiping Time of Restricted Protocols - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f53.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f53.rdf deleted file mode 100644 index d8b2494dad..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f53.rdf +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - Boussinot - Frdric - - - - - Doumenc - Guillaume - - - - - Stefani - Jean-Bernard - - - - - Meije - - - 10-1995 - Reactive Objects - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f530.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f530.rdf deleted file mode 100644 index f0ba860767..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f530.rdf +++ /dev/null @@ -1,36 +0,0 @@ - - - - - - Gargano - Luisa - - - - - Pelc - Andrzej - - - - - Prennes - Stphane - - - - - Vaccaro - Ugo - - - - - Sloop - - - 1-1999 - Efficient Communication in Unknown Networks - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f531.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f531.rdf deleted file mode 100644 index ef1c064c4a..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f531.rdf +++ /dev/null @@ -1,24 +0,0 @@ - - - - - - Ait-Hellal - Omar - - - - - Altman - Eitan - - - - - Mistral - - - 1-1999 - Fonctionnement de TCP: problmes et amliorations - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f532.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f532.rdf deleted file mode 100644 index 030488b0b3..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f532.rdf +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - Cotin - Stphane - - - - - Delingette - Herv - - - - - Ayache - Nicholas - - - - - Epidaure - - - 9-1998 - Real-time elastic deformations of soft tissues for surgery simulation - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f533.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f533.rdf deleted file mode 100644 index 1a07d7227c..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f533.rdf +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - Iollo - Angelo - - - - - Lanteri - Stphane - - - - - Dsidri - Jean-Antoine - - - - - Sinus - - - 12-1998 - Stability Properties of POD-Galerkin Approximations for the Compressible Navier-Stokes Equations - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f534.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f534.rdf deleted file mode 100644 index 067574597f..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f534.rdf +++ /dev/null @@ -1,42 +0,0 @@ - - - - - - Ourselin - Sbastien - - - - - Roche - Alexis - - - - - Subsol - Grard - - - - - Pennec - Xavier - - - - - Sattonnet - Christophe - - - - - Epidaure - - - 12-1998 - Automatic Alignment of Histological Sections for 3D Reconstruction and Analysis - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f535.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f535.rdf deleted file mode 100644 index 1037ce0445..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f535.rdf +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - Stoica - Radu - - - - - Zerubia - Josiane - - - - - M. - Joseph - - - - - Ariana - - - 12-1998 - Indexing and Retrieval in Multimedia Libraries Through Parametric Texture Modeling using the 2D Wold Decomposition - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f536.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f536.rdf deleted file mode 100644 index bb008a81d2..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f536.rdf +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - Agrawal - Rajeev - - - - - Baccelli - Franois - - - - - Rajan - Rajendran - - - - - Mistral - - - 5-1998 - An Algebra for Queueing Networks with Time Varying Service and its application to the analysis of integrated service networks - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f537.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f537.rdf deleted file mode 100644 index c1b3ce2455..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f537.rdf +++ /dev/null @@ -1,24 +0,0 @@ - - - - - - Gouz - Jean-Luc - - - - - Sari - Tewfik - - - - - Comore - - - 6-2001 - A class of piecewise linear differential equations arising in biological models - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f538.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f538.rdf deleted file mode 100644 index faf98f52da..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f538.rdf +++ /dev/null @@ -1,24 +0,0 @@ - - - - - - Barakat - Chadi - - - - - Altman - Eitan - - - - - Mistral - - - 12-1998 - Analysis of TCP in Networks with Small Buffering Capacity and Large Bandwidth-Delay Product - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f539.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f539.rdf deleted file mode 100644 index aa574bae69..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f539.rdf +++ /dev/null @@ -1,36 +0,0 @@ - - - - - - Chaher - Nesrine - - - - - Barakat - Chadi - - - - - Dabbous - Walid - - - - - Altman - Eitan - - - - - Mistral - - - 12-1998 - Improving TCP/IP over Geostationary Satellite Links - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f54.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f54.rdf deleted file mode 100644 index 4eaec5dbdb..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f54.rdf +++ /dev/null @@ -1,24 +0,0 @@ - - - - - - Merlet - Nicolas - - - - - Zerubia - Josiane - - - - - Pastis - - - 9-1995 - ELIESER : Manuel utilisateur - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f540.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f540.rdf deleted file mode 100644 index fe1492c3a2..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f540.rdf +++ /dev/null @@ -1,24 +0,0 @@ - - - - - - Elkadi - Mohamed - - - - - Mourrain - Bernard - - - - - Saga - - - 12-1998 - Some applications of Bezoutians in Effective Algebraic Geometry - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f541.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f541.rdf deleted file mode 100644 index 75d8789d83..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f541.rdf +++ /dev/null @@ -1,18 +0,0 @@ - - - - - - Faure - Christle - - - - - Safir - - - 9-1998 - Automatic Differentiation for adjoint code generation - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f542.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f542.rdf deleted file mode 100644 index 09f88737ca..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f542.rdf +++ /dev/null @@ -1,18 +0,0 @@ - - - - - - Lejay - Antoine - - - - - Sysdys - - - 12-1998 - Approche probabiliste de l'homognisation des oprateurs sous forme divergence en milieu priodique - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f543.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f543.rdf deleted file mode 100644 index 5562363f3b..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f543.rdf +++ /dev/null @@ -1,24 +0,0 @@ - - - - - - Gaudron - Guillaume - - - - - Pardoux - Etienne - - - - - Sysdys - - - 11-1998 - Convergence en loi d'EDSR et application l'homognisation d'EDP semi-linaires paraboliques - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f544.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f544.rdf deleted file mode 100644 index b558a0abd2..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f544.rdf +++ /dev/null @@ -1,36 +0,0 @@ - - - - - - Rey - David - - - - - Subsol - Grard - - - - - Delingette - Herv - - - - - Ayache - Nicholas - - - - - Epidaure - - - 11-1998 - Automatic Detection and Segmentation of Evolving Processes in 3D Medical Images: Application to Multiple Sclerosis - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f545.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f545.rdf deleted file mode 100644 index 3ec2f77f60..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f545.rdf +++ /dev/null @@ -1,18 +0,0 @@ - - - - - - Bonald - Thomas - - - - - Mistral - - - 11-1998 - Comparison of TCP Reno and TCP Vegas via Fluid Approximation - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f546.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f546.rdf deleted file mode 100644 index ffb3f29f35..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f546.rdf +++ /dev/null @@ -1,18 +0,0 @@ - - - - - - Bronstein - Manuel - - - - - Safir - - - 11-1998 - The Lazy Hermite Reduction - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f547.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f547.rdf deleted file mode 100644 index faefc297e7..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f547.rdf +++ /dev/null @@ -1,18 +0,0 @@ - - - - - - M. - Jorn - - - - - Mistral - - - 11-1998 - Timing Analysis of Real-Time Scheduling Policies: A Trajectory Based Model - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f548.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f548.rdf deleted file mode 100644 index 79fd84bdaa..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f548.rdf +++ /dev/null @@ -1,24 +0,0 @@ - - - - - - Papadopoulo - Tho - - - - - Faugeras - Olivier - - - - - Robotvis - - - 12-1995 - Computing Structure and Motion of General 3D Rigid Curves from Monocular Sequences of Perspective Images - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f549.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f549.rdf deleted file mode 100644 index 25942875b6..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f549.rdf +++ /dev/null @@ -1,24 +0,0 @@ - - - - - - Baccelli - Franois - - - - - Hong - Dohy - - - - - Mistral - - - 11-1998 - Analyticity of Iterates of Random Non-Expansive Maps - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f55.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f55.rdf deleted file mode 100644 index db2b74140c..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f55.rdf +++ /dev/null @@ -1,19 +0,0 @@ - - - - - - Merlet - Nicolas - - - - - Zerubia - Josiane - - - 9-1995 - ELIESER : User Manual - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f550.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f550.rdf deleted file mode 100644 index f2449e979a..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f550.rdf +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - Lala - Stphanie - - - - - de - Armel - - - - - Bourdonnaye - La - - - - - Caiman - - - 11-1998 - A finite-element method for Maxwell system preserving Gauss laws and Energy - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f551.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f551.rdf deleted file mode 100644 index 0762b5b8b4..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f551.rdf +++ /dev/null @@ -1,18 +0,0 @@ - - - - - - Bostan - Mihai - - - - - Caiman - - - 11-1998 - Periodic solutions of the 1D Vlasov-Maxwell system with boundary conditions - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f552.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f552.rdf deleted file mode 100644 index 801198b6af..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f552.rdf +++ /dev/null @@ -1,18 +0,0 @@ - - - - - - Piperno - Serge - - - - - Caiman - - - 9-1998 - Numerical simulation of aeroelastic instabilities of elementary bridge decks - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f553.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f553.rdf deleted file mode 100644 index 1f215762ef..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f553.rdf +++ /dev/null @@ -1,18 +0,0 @@ - - - - - - Bertot - Yves - - - - - Croap - - - 10-1998 - The CtCoq System: Design and Architecture - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f554.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f554.rdf deleted file mode 100644 index b894dbfb66..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f554.rdf +++ /dev/null @@ -1,24 +0,0 @@ - - - - - - Piatnitski - Andrey - - - - - Remy - Elisabeth - - - - - Sysdys - - - 10-1998 - Homogenization of elliptic difference operators - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f555.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f555.rdf deleted file mode 100644 index 0b492b75ad..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f555.rdf +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - Declerck - Jrme - - - - - Ayache - Nicholas - - - - - R. - Elliot - - - - - Epidaure - - - 10-1998 - Use of a 4D planispheric transformation for the tracking and the analysis of LV motion with tagged MR images - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f556.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f556.rdf deleted file mode 100644 index d204f7cd26..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f556.rdf +++ /dev/null @@ -1,24 +0,0 @@ - - - - - - Bostan - Mihai - - - - - Frdric - et - - - - - Caiman - - - 10-1998 - tude numrique des solutions priodiques des systmes de Maxwell et de Vlasov-Maxwell par une mthode de contrle - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f557.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f557.rdf deleted file mode 100644 index 0479cc5586..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f557.rdf +++ /dev/null @@ -1,42 +0,0 @@ - - - - - - Hert - Susan - - - - - Hoffmann - Michael - - - - - Kettner - Lutz - - - - - Pion - Sylvain - - - - - Seel - Michael - - - - - Prisme - - - 9-2001 - An Adaptable and Extensible Geometry Kernel - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f558.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f558.rdf deleted file mode 100644 index 4c94c3e580..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f558.rdf +++ /dev/null @@ -1,18 +0,0 @@ - - - - - - Devillers - Olivier - - - - - Prisme - - - 10-1998 - Computational Geometry and Discrete Computations - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f559.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f559.rdf deleted file mode 100644 index 1211113b01..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f559.rdf +++ /dev/null @@ -1,36 +0,0 @@ - - - - - - Hivernat - Christine - - - - - Descombes - Xavier - - - - - Randriamasy - Sabine - - - - - Zerubia - Josiane - - - - - Ariana - - - 10-1998 - Mise en correspondance et recalage de graphes : application aux rseaux routiers extraits d'un couple carte/image - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f56.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f56.rdf deleted file mode 100644 index d5958ff646..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f56.rdf +++ /dev/null @@ -1,36 +0,0 @@ - - - - - - Braun - Torsten - - - - - Diot - Christophe - - - - - Hoglander - Anna - - - - - Roca - Vincent - - - - - Rodeo - - - 8-1995 - An Experimental User Level Implementation of TCP. - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f560.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f560.rdf deleted file mode 100644 index 9677d5931c..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f560.rdf +++ /dev/null @@ -1,24 +0,0 @@ - - - - - - Cluzeau - Thomas - - - - - Hubert - Evelyne - - - - - Caf - - - 6-2001 - Resolvent Representation for Regular Differential Ideals - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f561.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f561.rdf deleted file mode 100644 index 2cae2f8237..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f561.rdf +++ /dev/null @@ -1,24 +0,0 @@ - - - - - - Devillers - Olivier - - - - - P. - Franco - - - - - Prisme - - - 10-1998 - Further Results on Arithmetic Filters for Geometric Predicates - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f562.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f562.rdf deleted file mode 100644 index c10b6bac3d..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f562.rdf +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - Devillers - Olivier - - - - - Liotta - Giuseppe - - - - - P. - Franco - - - - - Prisme - - - 10-1998 - Checking the Convexity of Polytopes and the Planarity of Subdivisions - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f563.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f563.rdf deleted file mode 100644 index a80ad0d598..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f563.rdf +++ /dev/null @@ -1,36 +0,0 @@ - - - - - - Samson - Christophe - - - - - Blanc-Fraud - Laure - - - - - Aubert - Gilles - - - - - Zerubia - Josiane - - - - - Ariana - - - 10-1998 - Image Classification Using a Variational Approach - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f564.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f564.rdf deleted file mode 100644 index 13cdf0b436..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f564.rdf +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - Campillo - Fabien - - - - - Kleptsyna - Marina - - - - - Piatnitski - Andrey - - - - - Sysdys - - - 10-1998 - Homogenization of random parabolic operator with large potential - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f565.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f565.rdf deleted file mode 100644 index e8a2d1c0e1..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f565.rdf +++ /dev/null @@ -1,18 +0,0 @@ - - - - - - Faure - Christle - - - - - Safir - - - 10-1998 - Le Gradient de THYC3D par Odysse - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f566.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f566.rdf deleted file mode 100644 index af7643bd47..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f566.rdf +++ /dev/null @@ -1,24 +0,0 @@ - - - - - - Bostan - Mihai - - - - - Frdric - et - - - - - Caiman - - - 10-1998 - Periodic solutions of the Vlasov-Poisson system with boundary conditions - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f567.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f567.rdf deleted file mode 100644 index 1def33a6d6..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f567.rdf +++ /dev/null @@ -1,24 +0,0 @@ - - - - - - Devillers - Olivier - - - - - Mukhopadhyay - Asish - - - - - Prisme - - - 10-1998 - Finding an ordinary conic and an ordinary hyperplane - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f568.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f568.rdf deleted file mode 100644 index 1700b08dfa..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f568.rdf +++ /dev/null @@ -1,24 +0,0 @@ - - - - - - Mourrain - Bernard - - - - - Y. - Victor - - - - - Saga - - - 10-1998 - Multivariate polynomials, duality and structured matrices - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f569.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f569.rdf deleted file mode 100644 index d91476e1cc..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f569.rdf +++ /dev/null @@ -1,18 +0,0 @@ - - - - - - A. - David - - - - - Icare - - - 10-1998 - Non-Robustness of Continuous Homogeneous Stabilizers for Affine Control Systems - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f57.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f57.rdf deleted file mode 100644 index 3c55073081..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f57.rdf +++ /dev/null @@ -1,36 +0,0 @@ - - - - - - Boissonnat - Jean-Daniel - - - - - Sharir - Micha - - - - - Tagansky - Boaz - - - - - Yvinec - Mariette - - - - - Prisme - - - 8-1995 - Voronoi Diagrams in Higher Dimensions under Certain Polyhedral Distance Functions - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f570.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f570.rdf deleted file mode 100644 index fe25ba9cd8..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f570.rdf +++ /dev/null @@ -1,18 +0,0 @@ - - - - - - Boudol - Grard - - - - - Mimosa - - - 6-2001 - The Recursive Record Semantics of Objects Revisited - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f571.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f571.rdf deleted file mode 100644 index dd2d6f5743..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f571.rdf +++ /dev/null @@ -1,18 +0,0 @@ - - - - - - Delingette - Herv - - - - - Epidaure - - - 9-1998 - Towards Realistic Soft Tissue Modeling in Medical Simulation - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f572.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f572.rdf deleted file mode 100644 index 47b1287695..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f572.rdf +++ /dev/null @@ -1,24 +0,0 @@ - - - - - - Remaki - Malika - - - - - Loula - et - - - - - Caiman - - - 9-1998 - Une mthode de Galerkin Discontinu pour la rsolution des quations de Maxwell en milieu htrogne - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f573.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f573.rdf deleted file mode 100644 index 515ddc1172..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f573.rdf +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - Soler - Luc - - - - - Malandain - Grgoire - - - - - Delingette - Herv - - - - - Epidaure - - - 9-1998 - Segmentation automatique : application aux angioscanners 3D du foie - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f574.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f574.rdf deleted file mode 100644 index aa162ccf34..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f574.rdf +++ /dev/null @@ -1,18 +0,0 @@ - - - - - - Bertot - Yves - - - - - Croap - - - 9-1998 - A certified compiler for an imperative language - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f575.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f575.rdf deleted file mode 100644 index 9a476c05b3..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f575.rdf +++ /dev/null @@ -1,18 +0,0 @@ - - - - - - Boussinot - Frdric - - - - - Meije - - - 9-1998 - SugarCubes Implementation of Causality - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f576.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f576.rdf deleted file mode 100644 index 05870937c9..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f576.rdf +++ /dev/null @@ -1,24 +0,0 @@ - - - - - - Faure - Christle - - - - - Papegay - Yves - - - - - Safir - - - 9-1998 - O dy sse User's Guide - Version 1.7 - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f577.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f577.rdf deleted file mode 100644 index 16aac8f5cf..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f577.rdf +++ /dev/null @@ -1,18 +0,0 @@ - - - - - - Piperno - Serge - - - - - Caiman - - - 9-1998 - Stabilit L 2 de schmas volumes finis pour les quations de Maxwell en 2D et 3D sur maillage non-structur quelconque. - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f578.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f578.rdf deleted file mode 100644 index ba5af7a15e..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f578.rdf +++ /dev/null @@ -1,36 +0,0 @@ - - - - - - Dieng - Rose - - - - - Corby - Olivier - - - - - Giboin - Alain - - - - - Ribière - Myriam - - - - - Acacia - - - 9-1998 - Methods and Tools for Corporate Knowledge Management - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f579.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f579.rdf deleted file mode 100644 index 64d25f6fc0..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f579.rdf +++ /dev/null @@ -1,41 +0,0 @@ - - - - - - Devillers - Olivier - - - - - Mourrain - Bernard - - - - - Preparata - Franco - - - - - Trebuchet - Philippe - - - - - Saga - - - - - Prisme - - - 6-2001 - On circular cylinders by four or five points in space - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f58.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f58.rdf deleted file mode 100644 index 8e5db9dff9..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f58.rdf +++ /dev/null @@ -1,18 +0,0 @@ - - - - - - de - Mark - - - - - Prisme - - - 7-1995 - Computing a single cell in the union of two simple polygons - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f580.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f580.rdf deleted file mode 100644 index 4c650214b3..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f580.rdf +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - Renault - Philippe - - - - - Faugeras - Olivier - - - - - Viville - Thierry - - - - - Robotvis - - - 9-1998 - Continuous multi-image preprocessing for Euclidean reconstruction - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f581.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f581.rdf deleted file mode 100644 index 353117ffa1..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f581.rdf +++ /dev/null @@ -1,24 +0,0 @@ - - - - - - Devillers - Olivier - - - - - Gandoin - Pierre-Marie - - - - - Prisme - - - 8-1998 - Rounding Voronoi diagram - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f582.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f582.rdf deleted file mode 100644 index ff2608d981..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f582.rdf +++ /dev/null @@ -1,24 +0,0 @@ - - - - - - Morin - Pascal - - - - - Samson - Claude - - - - - Icare - - - 8-1998 - Exponential stabilization of nonlinear driftless systems with robustness to unmodeled dynamics - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f583.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f583.rdf deleted file mode 100644 index 52bdce6b85..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f583.rdf +++ /dev/null @@ -1,18 +0,0 @@ - - - - - - Sangiorgi - Davide - - - - - Meije - - - 8-1998 - Interpreting Functions as pi-calculus Processes: a Tutorial - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f584.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f584.rdf deleted file mode 100644 index 61121a1566..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f584.rdf +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - Jalobeanu - Andr - - - - - Blanc-Fraud - Laure - - - - - Zerubia - Josiane - - - - - Ariana - - - 8-1998 - Estimation d'hyperparamtres pour la restauration d'images satellitaires par une mthode "MCMCML" - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f585.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f585.rdf deleted file mode 100644 index 206c4eb3ab..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f585.rdf +++ /dev/null @@ -1,36 +0,0 @@ - - - - - - Roche - Alexis - - - - - Malandain - Grgoire - - - - - Pennec - Xavier - - - - - Ayache - Nicholas - - - - - Epidaure - - - 3-1998 - Multimodal Image Registration by Maximization of the Correlation Ratio - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f586.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f586.rdf deleted file mode 100644 index 5576ba4913..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f586.rdf +++ /dev/null @@ -1,24 +0,0 @@ - - - - - - Agrawal - Rajeev - - - - - M. - Armand - - - - - Mistral - - - 8-1998 - On a Reduced Load Equivalence for Fluid Queues Under Subexponentiality - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f587.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f587.rdf deleted file mode 100644 index c0266d613f..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f587.rdf +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - Cournde - Paul-Henry - - - - - Debiez - Christophe - - - - - Dervieux - Alain - - - - - Sinus - - - 7-1998 - A Positive MUSCL Scheme for Triangulations - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f588.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f588.rdf deleted file mode 100644 index 2e25db992d..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f588.rdf +++ /dev/null @@ -1,36 +0,0 @@ - - - - - - Viozat - Ccile - - - - - Held - Christophe - - - - - Mer - Katherine - - - - - Dervieux - Alain - - - - - Sinus - - - 7-1998 - On Vertex-Centered Unstructured Finite-Volume Methods for Stretched Anisotropic Triangulations - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f589.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f589.rdf deleted file mode 100644 index 9137204cac..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f589.rdf +++ /dev/null @@ -1,24 +0,0 @@ - - - - - - Marco - Nathalie - - - - - Lanteri - Stphane - - - - - Sinus - - - 7-1998 - A Two-Level Parallelization Strategy for Genetic Algorithms Applied to Shape Optimum Design - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f59.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f59.rdf deleted file mode 100644 index eea14eeb58..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f59.rdf +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - Alt - Helmut - - - - - Godau - Michael - - - - - Whitesides - Sue - - - - - Prisme - - - 7-1995 - Universal 3-Dimensional Visibility Representations for Graphs - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f590.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f590.rdf deleted file mode 100644 index f18e6fd535..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f590.rdf +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - Carr - Gilles - - - - - Lanteri - Stphane - - - - - Fournier - Luc - - - - - Sinus - - - 7-1998 - Parallel linear multigrid algorithms applied to the acceleration of compressible flows - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f591.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f591.rdf deleted file mode 100644 index 2431869216..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f591.rdf +++ /dev/null @@ -1,18 +0,0 @@ - - - - - - Becker - Roland - - - - - Caiman - - - 7-1998 - Weighted Error Estimators for the Incompressible Navier-Stokes Equations - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f592.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f592.rdf deleted file mode 100644 index 08c0dade2e..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f592.rdf +++ /dev/null @@ -1,24 +0,0 @@ - - - - - - Paragios - Nikos - - - - - Deriche - Rachid - - - - - Robotvis - - - 6-1998 - Geodesic Active Regions for Texture Segmentation - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f593.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f593.rdf deleted file mode 100644 index 72a12070b4..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f593.rdf +++ /dev/null @@ -1,24 +0,0 @@ - - - - - - Chaabane - Slim - - - - - Jaoua - Mohamed - - - - - Miaou - - - 7-1998 - Un algorithme d'identification de frontires soumises des conditions aux limites de Signorini - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f594.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f594.rdf deleted file mode 100644 index 0736d66b69..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f594.rdf +++ /dev/null @@ -1,24 +0,0 @@ - - - - - - Guillard - Herv - - - - - Murrone - Angelo - - - - - Smash - - - 5-2001 - On the behavior of upwind schemes in the low Mach number limit : II. Godunov type schemes. - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f595.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f595.rdf deleted file mode 100644 index bd16efe91e..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f595.rdf +++ /dev/null @@ -1,18 +0,0 @@ - - - - - - Beauquier - Bruno - - - - - Sloop - - - 7-1998 - All-to-All Communication for some Wavelength-Routed All-Optical Networks - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f596.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f596.rdf deleted file mode 100644 index 4a4daa51d3..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f596.rdf +++ /dev/null @@ -1,18 +0,0 @@ - - - - - - Devillers - Olivier - - - - - Prisme - - - 7-1998 - On Deletion in Delaunay Triangulation. - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f597.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f597.rdf deleted file mode 100644 index 4f4b6ede7d..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f597.rdf +++ /dev/null @@ -1,18 +0,0 @@ - - - - - - Degtiariova-Kostova - Elena - - - - - Prisme - - - 6-1998 - The planar motion with two bounded controls - the acceleration and the derivative of the curvature - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f598.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f598.rdf deleted file mode 100644 index 9f47935847..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f598.rdf +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - Krissian - Karl - - - - - Malandain - Grgoire - - - - - Ayache - Nicholas - - - - - Epidaure - - - 6-1998 - Model Based Multiscale Detection and Reconstruction of 3D Vessels - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f599.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f599.rdf deleted file mode 100644 index 58a537859f..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f599.rdf +++ /dev/null @@ -1,24 +0,0 @@ - - - - - - Kleptsyna - M.L. - - - - - Le - A. - - - - - Sysdys - - - 6-1998 - An elementary approach to filtering in systems with fractional Brownian observation noise - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f6.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f6.rdf deleted file mode 100644 index 9ea835a9e6..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f6.rdf +++ /dev/null @@ -1,18 +0,0 @@ - - - - - - V.P.Kostov - E.V.Degtiariova-Kostova - - - - - Prisme - - - 12-1995 - Some properties of clothoids - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f60.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f60.rdf deleted file mode 100644 index be49722613..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f60.rdf +++ /dev/null @@ -1,18 +0,0 @@ - - - - - - Briand - Emmanuel - - - - - Caiman - - - 11-2000 - Manuel d'Utilisation de COSI 0.1 - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f600.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f600.rdf deleted file mode 100644 index 7e01605b49..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f600.rdf +++ /dev/null @@ -1,24 +0,0 @@ - - - - - - Matta - Nada - - - - - Martin - Philippe - - - - - Acacia - - - 5-1998 - CGKAT: User's Manual - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f601.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f601.rdf deleted file mode 100644 index 03c671dd15..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f601.rdf +++ /dev/null @@ -1,24 +0,0 @@ - - - - - - Baccelli - Franois - - - - - Bonald - Thomas - - - - - Mistral - - - 5-1998 - Window Flow Control in FIFO Networks with Cross Traffic - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f602.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f602.rdf deleted file mode 100644 index 35daf5fbed..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f602.rdf +++ /dev/null @@ -1,24 +0,0 @@ - - - - - - Baccelli - Franois - - - - - Hong - Dohy - - - - - Mistral - - - 5-1998 - Analytic Expansions of (max,+) Lyapunov Exponents - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f603.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f603.rdf deleted file mode 100644 index d921fa7317..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f603.rdf +++ /dev/null @@ -1,18 +0,0 @@ - - - - - - Darrot - Eric - - - - - Sloop - - - 5-1998 - Arbres couvrants arte-disjoints dans les grilles toriques d -dimensionnelles pour la diffusion de messages longs - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f604.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f604.rdf deleted file mode 100644 index b8142178bf..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f604.rdf +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - Lorette - Anne - - - - - Descombes - Xavier - - - - - Zerubia - Josiane - - - - - Ariana - - - 5-1998 - Extraction des Zones Urbaines Fonde sur une Analyse de la Texture par Modlisation Markovienne - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f605.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f605.rdf deleted file mode 100644 index 6da687948f..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f605.rdf +++ /dev/null @@ -1,24 +0,0 @@ - - - - - - Cachier - Pascal - - - - - Ayache - Nicholas - - - - - Epidaure - - - 5-2001 - Regularization in Image Non-Rigid Registration: I. Trade-off between Smoothness and Intensity Similarity - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f606.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f606.rdf deleted file mode 100644 index 3a5884eb4c..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f606.rdf +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - Baccelli - Franois - - - - - Tchoumatchenko - Konstantin - - - - - Zuyev - Sergei - - - - - Mistral - - - 5-1998 - Markov Paths on the Poisson-Delaunay Graph with applications to routing in mobile networks - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f607.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f607.rdf deleted file mode 100644 index cca5b0ad95..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f607.rdf +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - Aubert - Gilles - - - - - Deriche - Rachid - - - - - Kornprobst - Pierre - - - - - Robotvis - - - 4-1998 - A Variational Method and its Mathematical Study in Image Sequence Analysis - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f608.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f608.rdf deleted file mode 100644 index 5e4ad16ec9..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f608.rdf +++ /dev/null @@ -1,18 +0,0 @@ - - - - - - A. - David - - - - - Icare - - - 4-1998 - Exponential Stabilization of Certain Configurations of the General N -Trailer System - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f609.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f609.rdf deleted file mode 100644 index 2d8e12d1f7..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f609.rdf +++ /dev/null @@ -1,24 +0,0 @@ - - - - - - Degtiariova-Kostova - Elena - - - - - Kostov - Vladimir - - - - - Prisme - - - 4-1998 - Irregularity of optimal trajectories in a control problem for a car-like robot - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f61.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f61.rdf deleted file mode 100644 index c8b68b004b..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f61.rdf +++ /dev/null @@ -1,18 +0,0 @@ - - - - - - J. - Paul - - - - - Prisme - - - 7-1995 - Simultaneous Dominance Representation of Multiple Posets - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f610.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f610.rdf deleted file mode 100644 index fb4b213248..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f610.rdf +++ /dev/null @@ -1,18 +0,0 @@ - - - - - - Beauquier - Bruno - - - - - Sloop - - - 4-1998 - Broadcasting in WDM Optical Rings and Tori - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f611.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f611.rdf deleted file mode 100644 index 5e8a52e6db..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f611.rdf +++ /dev/null @@ -1,42 +0,0 @@ - - - - - - Fabri - Andreas - - - - - Giezeman - Geert-Jan - - - - - Kettner - Lutz - - - - - Schirra - Stefan - - - - - Schonherr - Sven - - - - - Prisme - - - 4-1998 - On the Design of CGAL, the Computational Geometry Algorithms Library - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f612.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f612.rdf deleted file mode 100644 index 63ed5d85f7..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f612.rdf +++ /dev/null @@ -1,48 +0,0 @@ - - - - - - Baratchart - L. - - - - - Grimm - J. - - - - - Leblond - J. - - - - - Olivi - M. - - - - - Seyfert - F. - - - - - F. - et - - - - - Miaou - - - 3-1998 - Identification d'un filtre hyperfrquences par approximation dans le domaine complexe - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f613.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f613.rdf deleted file mode 100644 index 2ac3985240..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f613.rdf +++ /dev/null @@ -1,18 +0,0 @@ - - - - - - VIGO - Guillaume - - - - - Sinus - - - 3-1998 - La Dcomposition Orthogonale Propre Applique aux quations de Navier-Stokes compressible instationnaire - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f614.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f614.rdf deleted file mode 100644 index a2bf7ad58b..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f614.rdf +++ /dev/null @@ -1,18 +0,0 @@ - - - - - - Pennec - Xavier - - - - - Epidaure - - - 3-1998 - Computing the mean of geometric features : Application to the mean rotation - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f615.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f615.rdf deleted file mode 100644 index 1f0187f8da..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f615.rdf +++ /dev/null @@ -1,24 +0,0 @@ - - - - - - Morin - Pascal - - - - - Samson - Claude - - - - - Icare - - - 5-2001 - Practical stabilization of driftless homogeneous systems based on the use of transverse periodic functions - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f616.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f616.rdf deleted file mode 100644 index ae28c6580b..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f616.rdf +++ /dev/null @@ -1,24 +0,0 @@ - - - - - - Moisan - Sabine - - - - - Rigault - Jean-Paul - - - - - Orion - - - 2-1998 - A C++ Frame Library User Manual and Implementation Notes - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f617.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f617.rdf deleted file mode 100644 index b8daa4bbfc..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f617.rdf +++ /dev/null @@ -1,18 +0,0 @@ - - - - - - Ayache - Nicholas - - - - - Epidaure - - - 2-1998 - L'analyse automatique des images mdicales : Etat de l'art et perspectives - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f618.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f618.rdf deleted file mode 100644 index 7016da73d7..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f618.rdf +++ /dev/null @@ -1,36 +0,0 @@ - - - - - - Fuchs - Michael - - - - - Diot - Christophe - - - - - Turletti - Thierry - - - - - Hofmann - Markus - - - - - Rodeo - - - 2-1998 - A Framework for Reliable Multicast in the Internet - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f619.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f619.rdf deleted file mode 100644 index 183c4c0117..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f619.rdf +++ /dev/null @@ -1,23 +0,0 @@ - - - - - - Dos - Gabriel - - - - - Safir - - - - - Saga - - - 2-1998 - Vers une nouvelle approche du calcul scientifique en C++ - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f62.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f62.rdf deleted file mode 100644 index 8b448112ee..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f62.rdf +++ /dev/null @@ -1,24 +0,0 @@ - - - - - - Baccelli - Franois - - - - - Mairesse - Jean - - - - - Mistral - - - 8-1995 - Ergodic Theorems for Stochastic Operators and Discrete Event Networks - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f620.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f620.rdf deleted file mode 100644 index 77aec57a2a..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f620.rdf +++ /dev/null @@ -1,18 +0,0 @@ - - - - - - Leleu - Pierre - - - - - Croap - - - 2-1998 - Metatheoretic results for a modal lambda calculus - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f621.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f621.rdf deleted file mode 100644 index 9ca500665a..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f621.rdf +++ /dev/null @@ -1,18 +0,0 @@ - - - - - - Carpentier - Romuald - - - - - Sinus - - - 2-1998 - Comparaison entre des schmas 2D de type Roe sur maillage rgulier triangle ou quadrangle. II: calcul au sommet - Le $\beta\gamma$ schma. - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f622.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f622.rdf deleted file mode 100644 index 7bd4c356fc..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f622.rdf +++ /dev/null @@ -1,12 +0,0 @@ - - - - - - Croap - - - 2-1998 - Smantique Naturelle: Spcifications et Preuves - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f623.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f623.rdf deleted file mode 100644 index 5ebe18429e..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f623.rdf +++ /dev/null @@ -1,18 +0,0 @@ - - - - - - Zhang - Zhengyou - - - - - Robotvis - - - 2-1998 - Feature-Based Facial Expression Recognition: Experiments With a Multi-Layer Perceptron - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f624.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f624.rdf deleted file mode 100644 index dcc31e232c..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f624.rdf +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - Remaki - Malika - - - - - Fzoui - Loula - - - - - Poupaud - Frdric - - - - - Caiman - - - 1-1998 - Un nouveau schma de type volumes finis appliqu aux quations de Maxwell en milieu htrogne - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f625.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f625.rdf deleted file mode 100644 index 7ddaea00be..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f625.rdf +++ /dev/null @@ -1,24 +0,0 @@ - - - - - - Aubert - Gilles - - - - - Blanc-Fraud - Laure - - - - - Ariana - - - 1-1998 - An elementary proof of the equivalence between 2D and 3D classical snakes and geodesic active contours - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f626.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f626.rdf deleted file mode 100644 index f8b01dad15..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f626.rdf +++ /dev/null @@ -1,18 +0,0 @@ - - - - - - Iollo - Angelo - - - - - Sinus - - - 12-1997 - Remarks on the Approximation of the Euler Equations by a Low Order Model - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f627.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f627.rdf deleted file mode 100644 index 5762e028fc..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f627.rdf +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - Granger - Sbastien - - - - - Pennec - Xavier - - - - - Roche - Alexis - - - - - Epidaure - - - 4-2001 - Rigid Point-Surface Registration using Oriented Points and an EM Variant of ICP for Computer Guided Oral Implantology - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f628.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f628.rdf deleted file mode 100644 index 47b1e25566..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f628.rdf +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - Baratchart - Laurent - - - - - Leblond - Juliette - - - - - R. - Jonathan - - - - - Miaou - - - 1-1998 - Problems of Adamjan-Arov-Krein type on subsets of the circle and minimal norm extensions - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f629.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f629.rdf deleted file mode 100644 index 9c008e94a3..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f629.rdf +++ /dev/null @@ -1,24 +0,0 @@ - - - - - - Bernard - Olivier - - - - - Gouz - Jean-Luc - - - - - Comore - - - 1-1998 - Global qualitative behavior of a class of nonlinear biological systems; application to the qualitative validation of phytoplankton growth models. - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f63.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f63.rdf deleted file mode 100644 index b869f35c10..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f63.rdf +++ /dev/null @@ -1,36 +0,0 @@ - - - - - - Csurka - Gabriella - - - - - Zeller - Cyril - - - - - Zhang - Zhengyou - - - - - Faugeras - Olivier - - - - - Robotvis - - - 6-1995 - Characterizing the Uncertainty of the Fundamental Matrix - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f630.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f630.rdf deleted file mode 100644 index 5e1452a9a7..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f630.rdf +++ /dev/null @@ -1,18 +0,0 @@ - - - - - - Bouali - Amar - - - - - Meije - - - 12-1997 - Xeve : an Esterel Verification Environment (Version v1_3) - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f631.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f631.rdf deleted file mode 100644 index c5cd0e821d..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f631.rdf +++ /dev/null @@ -1,18 +0,0 @@ - - - - - - Giacometti - Jean-Patrick - - - - - Semir - - - 12-1997 - Mobile Programs for Mobile Users on Malleable Platforms - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f632.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f632.rdf deleted file mode 100644 index 0dafa9faba..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f632.rdf +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - Moisan - Sabine - - - - - Vincent - Rgis - - - - - Thonnat - Monique - - - - - Orion - - - 12-1997 - Program Supervision: from Knowledge Modeling to Dedicated Engines - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f633.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f633.rdf deleted file mode 100644 index b2e13f7d71..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f633.rdf +++ /dev/null @@ -1,18 +0,0 @@ - - - - - - Pomet - Jean-Baptiste - - - - - Miaou - - - 12-1997 - On the curves that may be approached by trajectories of a smooth control affine system - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f634.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f634.rdf deleted file mode 100644 index e5275ca9d0..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f634.rdf +++ /dev/null @@ -1,18 +0,0 @@ - - - - - - Leleu - Pierre - - - - - Croap - - - 12-1997 - A Modal Lambda Calculus with Iteration and Case Constructs - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f635.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f635.rdf deleted file mode 100644 index e8bc6c1068..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f635.rdf +++ /dev/null @@ -1,36 +0,0 @@ - - - - - - G. - E. - - - - - Jr. - Coffman - - - - - Liu - Zhen - - - - - R. - Richard - - - - - Mistral - - - 12-1997 - Optimal Robot Scheduling for Web Search Engines - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f636.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f636.rdf deleted file mode 100644 index 81d562ca02..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f636.rdf +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - Alliez - Pierre - - - - - Devillers - Olivier - - - - - Snoeyink - Jack - - - - - Prisme - - - 12-1997 - Removing degeneracies by perturbing the problem or the world - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f637.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f637.rdf deleted file mode 100644 index 75a5302f24..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f637.rdf +++ /dev/null @@ -1,18 +0,0 @@ - - - - - - Bertot - Yves - - - - - Croap - - - 12-1997 - Programming Language Specifications and Environments - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f638.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f638.rdf deleted file mode 100644 index 1a62b39fb1..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f638.rdf +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - Attali - Isabelle - - - - - Pascual - Valrie - - - - - Roudet - Christophe - - - - - Croap - - - 12-1997 - A language and an integrated environment for program transformations - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f639.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f639.rdf deleted file mode 100644 index c5aeb72b6a..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f639.rdf +++ /dev/null @@ -1,24 +0,0 @@ - - - - - - Faure - Christle - - - - - Papegay - Yves - - - - - Safir - - - 12-1997 - Odysse Version 1.6 . The User's Reference Manual - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f64.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f64.rdf deleted file mode 100644 index 0a05f59531..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f64.rdf +++ /dev/null @@ -1,24 +0,0 @@ - - - - - - PROTTER - Philip - - - - - TALAY - Denis - - - - - Omega - - - 7-1995 - The Euler Scheme for Lvy driven Stochastic Differential Equations - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f640.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f640.rdf deleted file mode 100644 index 61aa059ea6..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f640.rdf +++ /dev/null @@ -1,18 +0,0 @@ - - - - - - Hascot - Laurent - - - - - Tropics - - - 4-2001 - The Data-Dependence Graph of Adjoint Programs - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f641.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f641.rdf deleted file mode 100644 index b4df1b9d38..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f641.rdf +++ /dev/null @@ -1,18 +0,0 @@ - - - - - - Le - Alain - - - - - Sysdys - - - 12-1997 - Asymptotic Behaviour of Reduced - Order Filters - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f642.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f642.rdf deleted file mode 100644 index cf6ff419fd..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f642.rdf +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - Kornprobst - Pierre - - - - - Deriche - Rachid - - - - - Aubert - Gilles - - - - - Robotvis - - - 11-1997 - Image Sequence Restoration: A PDE based coupled method for image restoration and motion segmentation - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f643.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f643.rdf deleted file mode 100644 index 4cbf704d0d..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f643.rdf +++ /dev/null @@ -1,18 +0,0 @@ - - - - - - LAURENT - Olivier - - - - - Croap - - - 11-1997 - Smantique Naturelle et Coq : vers la spcification et les preuves sur les langages objets - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f644.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f644.rdf deleted file mode 100644 index b4765bfa4d..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f644.rdf +++ /dev/null @@ -1,24 +0,0 @@ - - - - - - Molchanov - Ilya - - - - - Zuyev - Sergei - - - - - Mistral - - - 11-1997 - Variational Analysis of Functionals of a Poisson Process - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f645.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f645.rdf deleted file mode 100644 index ef1422cca2..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f645.rdf +++ /dev/null @@ -1,18 +0,0 @@ - - - - - - M. - Roberto - - - - - Meije - - - 11-1997 - Modelling IP Mobility - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f646.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f646.rdf deleted file mode 100644 index df62f806ae..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f646.rdf +++ /dev/null @@ -1,18 +0,0 @@ - - - - - - M. - Roberto - - - - - Meije - - - 11-1997 - Analysis of a guard condition in type theory (preliminary report) - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f647.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f647.rdf deleted file mode 100644 index 335e1ed7c5..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f647.rdf +++ /dev/null @@ -1,36 +0,0 @@ - - - - - - Dourthe - Cdric - - - - - de - Armel - - - - - Bourdonnaye - La - - - - - Pichot - Christian - - - - - Caiman - - - 11-1997 - Imagerie microonde : reconstruction quantitative du profil de permittivit complexe d'htrognits enterres. - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f648.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f648.rdf deleted file mode 100644 index 68203360b6..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f648.rdf +++ /dev/null @@ -1,36 +0,0 @@ - - - - - - Massoni - Jacques - - - - - Saurel - Richard - - - - - Nkonga - Boniface - - - - - Abgrall - Rmi - - - - - Smash - - - 4-2001 - Propositions de mthodes et modles eulriens pour les problmes interfaces entre fluides compressibles en prsence de transfert de chaleur - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f649.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f649.rdf deleted file mode 100644 index 803e4ec42d..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f649.rdf +++ /dev/null @@ -1,18 +0,0 @@ - - - - - - Devillers - Olivier - - - - - Prisme - - - 11-1997 - Improved Incremental Randomized Delaunay Triangulation. - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f65.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f65.rdf deleted file mode 100644 index 8378d16e0b..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f65.rdf +++ /dev/null @@ -1,18 +0,0 @@ - - - - - - Lapalut - Stphane - - - - - Acacia - - - 8-1995 - Text Clustering to Support Knowledge Acquisition from Documents - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f650.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f650.rdf deleted file mode 100644 index 883e05e803..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f650.rdf +++ /dev/null @@ -1,24 +0,0 @@ - - - - - - Turletti - Thierry - - - - - Fosse - Sacha - - - - - Rodeo - - - 11-1997 - Experiments with a Layered Transmission Scheme over the Internet - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f651.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f651.rdf deleted file mode 100644 index a68a1bdb2f..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f651.rdf +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - Yu - Shan - - - - - Berthod - Marc - - - - - Giraudon - Grard - - - - - Pastis - - - 11-1997 - Towards Robust Analysis of Satellite Images Using Map Information Application to Urban Area Detection - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f652.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f652.rdf deleted file mode 100644 index cea018d6dd..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f652.rdf +++ /dev/null @@ -1,24 +0,0 @@ - - - - - - Ernst - Thierry - - - - - Dabbous - Walid - - - - - Rodeo - - - 10-1997 - A Circuit-based Approach for Routing in Unidirectional Links Networks - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f653.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f653.rdf deleted file mode 100644 index f0d5375e03..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f653.rdf +++ /dev/null @@ -1,18 +0,0 @@ - - - - - - Hoschka - Philipp - - - - - W3c - - - 10-1997 - Compact and Efficient Presentation Conversion Routines - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f654.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f654.rdf deleted file mode 100644 index 5abf04f003..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f654.rdf +++ /dev/null @@ -1,42 +0,0 @@ - - - - - - Bertot - J. - - - - - Bertot - Y. - - - - - Coscoy - Y. - - - - - Goguenwith - H. - - - - - F. - and - - - - - Croap - - - 10-1997 - User Guide to the C T COQ Proof Environment - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f655.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f655.rdf deleted file mode 100644 index e0fe9ad0d8..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f655.rdf +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - Bonnet - Frdric - - - - - Bostan - Mihai - - - - - Loula - et - - - - - Caiman - - - 10-1997 - tude d'une classe de $\beta$-$\gamma$ schmas en formulation volumes finis pour des problmes hyperboliques. - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f656.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f656.rdf deleted file mode 100644 index 5868c484d1..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f656.rdf +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - Bertot - Yves - - - - - Kleymann-Schreiber - Thomas - - - - - Sequeira - Dilip - - - - - Croap - - - 10-1997 - Implementing Proof by Pointing without a Structure Editor - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f657.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f657.rdf deleted file mode 100644 index 0688f581c6..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f657.rdf +++ /dev/null @@ -1,18 +0,0 @@ - - - - - - Bourdells - Michel - - - - - Meije - - - 10-1997 - The steam boiler controller problem in ESTEREL and its verification by means of symbolic analysis - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f658.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f658.rdf deleted file mode 100644 index 8fad2ec5d1..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f658.rdf +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - de - Armel - - - - - Bourdonnaye - La - - - - - Tolentino - Marc - - - - - Caiman - - - 10-1997 - Rduction du conditionnement pour les problmes de discrtisation microlocale - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f659.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f659.rdf deleted file mode 100644 index 6f6ab5a04d..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f659.rdf +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - Beauquier - Bruno - - - - - Hell - Pavol - - - - - Prennes - Stphane - - - - - Sloop - - - 10-1997 - Optimal Wavelength Routed Multicasting - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f66.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f66.rdf deleted file mode 100644 index 78bdf2925c..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f66.rdf +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - Cleaveland - Rance - - - - - Madelaine - Eric - - - - - Sims - Steve - - - - - Meije - - - 7-1995 - A Front-End Generator for Verification Tools - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f660.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f660.rdf deleted file mode 100644 index a5d02b5242..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f660.rdf +++ /dev/null @@ -1,18 +0,0 @@ - - - - - - Thry - Laurent - - - - - Croap - - - 10-1997 - Proving and Computing: a certified version of the Buchberger's algorithm - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f661.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f661.rdf deleted file mode 100644 index 21ed6b6fcf..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f661.rdf +++ /dev/null @@ -1,24 +0,0 @@ - - - - - - Boissonnat - Jean-Daniel - - - - - P. - Franco - - - - - Prisme - - - 9-1997 - Robust plane sweep for intersecting segments - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f662.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f662.rdf deleted file mode 100644 index d0728ef3e9..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f662.rdf +++ /dev/null @@ -1,48 +0,0 @@ - - - - - - de - Armel - - - - - Bourdonnaye - La - - - - - Farhat - Charbel - - - - - Macedo - Antonini - - - - - Magouls - Frdric - - - - - Roux - Franois-Xavier - - - - - Caiman - - - 10-1997 - A non overlapping domain decomposition method for the exterior Helmholtz problem - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f663.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f663.rdf deleted file mode 100644 index b46c83a1f3..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f663.rdf +++ /dev/null @@ -1,24 +0,0 @@ - - - - - - Galtier - Jrme - - - - - Penna - Paolo - - - - - Mascotte - - - 4-2001 - Complexity Links Between Matrix Multiplication, Klee's Measure and Call Access Control for Satellite Constellations - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f664.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f664.rdf deleted file mode 100644 index d6eea01a82..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f664.rdf +++ /dev/null @@ -1,35 +0,0 @@ - - - - - - Altman - Eitan - - - - - Gaujal - Bruno - - - - - Hordijk - Arie - - - - - Sloop - - - - - Mistral - - - 9-1997 - Optimal Open-Loop Control of Vacations, Polling and Service Assignment - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f665.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f665.rdf deleted file mode 100644 index 131c30a88b..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f665.rdf +++ /dev/null @@ -1,18 +0,0 @@ - - - - - - Carpentier - Romuald - - - - - Sinus - - - 9-1997 - Analyse des erreurs dispersives et dissipatives de quelques schmas advectifs modernes. Application l'aro-acoustique - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f666.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f666.rdf deleted file mode 100644 index 60f013e137..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f666.rdf +++ /dev/null @@ -1,18 +0,0 @@ - - - - - - Sigelle - Marc - - - - - Pastis - - - 9-1997 - Simultaneous Image Restoration and Hyperparameter Estimation for Incomplete Data by a Cumulant Analysis - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f667.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f667.rdf deleted file mode 100644 index 1575cbe90e..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f667.rdf +++ /dev/null @@ -1,24 +0,0 @@ - - - - - - Gautier - Laurent - - - - - Diot - Christophe - - - - - Rodeo - - - 9-1997 - MiMaze, a Multiuser Game on the Internet - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f668.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f668.rdf deleted file mode 100644 index 0839c5cda7..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f668.rdf +++ /dev/null @@ -1,24 +0,0 @@ - - - - - - Boussinot - Frdric - - - - - Susini - Jean-Ferdy - - - - - Meije - - - 9-1997 - The SugarCubes Tool Box - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f669.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f669.rdf deleted file mode 100644 index d914199969..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f669.rdf +++ /dev/null @@ -1,18 +0,0 @@ - - - - - - Dal-Zilio - Silvano - - - - - Meije - - - 9-1997 - Implicit Polymorphic Type System for the Blue Calculus - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f67.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f67.rdf deleted file mode 100644 index acfebcc3a5..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f67.rdf +++ /dev/null @@ -1,42 +0,0 @@ - - - - - - Santos - Aristide - - - - - Espiau - Bernard - - - - - Rives - Patrick - - - - - Simon - Daniel - - - - - Rigaud - Vincent - - - - - Icare - - - 7-1995 - Sensor-Based Control of Holonomic Autonomous Underwater Vehicles - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f670.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f670.rdf deleted file mode 100644 index d5054ecd22..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f670.rdf +++ /dev/null @@ -1,18 +0,0 @@ - - - - - - Merlet - Jean-Pierre - - - - - Prisme - - - 9-1997 - Estimation efficace des caractristiques de robots parallles: Extremums des raideurs et des coordonnes, vitesses, forces articulaires et Singularits dans un espace de travail en translation - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f671.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f671.rdf deleted file mode 100644 index 736f000866..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f671.rdf +++ /dev/null @@ -1,24 +0,0 @@ - - - - - - Merlet - Nicolas - - - - - Zerubia - Josiane - - - - - Pastis - - - 8-1997 - Integration of global information for roads detection in satellite images - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f672.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f672.rdf deleted file mode 100644 index 73d862082a..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f672.rdf +++ /dev/null @@ -1,24 +0,0 @@ - - - - - - Piperno - Serge - - - - - Farhat - Charbel - - - - - Caiman - - - 9-1997 - Design and Evaluation of Staggered Partitioned Procedures for Fluid-Structure Interaction Simulations - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f673.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f673.rdf deleted file mode 100644 index 4c0bc41fb1..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f673.rdf +++ /dev/null @@ -1,41 +0,0 @@ - - - - - - May - Martin - - - - - Bolot - Jean-Chrysostome - - - - - Diot - Christophe - - - - - Jean-Marie - Alain - - - - - Mistral - - - - - Rodeo - - - 8-1997 - 1-Bit Schemes for Service Discrimination in the Internet: Analysis and Evaluation - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f674.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f674.rdf deleted file mode 100644 index cf931bef30..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f674.rdf +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - Piperno - Serge - - - - - Remaki - Malika - - - - - Fezoui - Loula - - - - - Caiman - - - 4-2001 - A centered second-order finite volume scheme for the heterogeneous Maxwell equations in three dimensions on arbitrary unstructured meshes - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f675.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f675.rdf deleted file mode 100644 index e50fc5d7ef..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f675.rdf +++ /dev/null @@ -1,36 +0,0 @@ - - - - - - Liu - Zhen - - - - - Nain - Philippe - - - - - Towsley - Don - - - - - Zhang - Zhi-Li - - - - - Mistral - - - 8-1997 - Asymptotic Behavior of a Multiplexer Fed by a Long-Range Dependent Process - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f676.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f676.rdf deleted file mode 100644 index 49dc1dddf2..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f676.rdf +++ /dev/null @@ -1,24 +0,0 @@ - - - - - - Faugeras - Olivier - - - - - Papadopoulo - Theodore - - - - - Robotvis - - - 7-1997 - Grassmann-Cayley algebra for modeling systems of cameras and the algebraic equations of the manifold of trifocal tensors - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f677.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f677.rdf deleted file mode 100644 index c87fe5c4e5..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f677.rdf +++ /dev/null @@ -1,24 +0,0 @@ - - - - - - Altman - Eitan - - - - - Traore - Karim - - - - - Mistral - - - 7-1997 - On the Integration of Best-Effort and Guaranteed Performance Services - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f678.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f678.rdf deleted file mode 100644 index f4cb42e277..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f678.rdf +++ /dev/null @@ -1,24 +0,0 @@ - - - - - - Faugeras - Olivier - - - - - Papadopoulo - Theodore - - - - - Robotvis - - - 7-1997 - A nonlinear method for estimating the projective geometry of three views - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f679.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f679.rdf deleted file mode 100644 index 01a53c62b2..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f679.rdf +++ /dev/null @@ -1,24 +0,0 @@ - - - - - - Diot - Christophe - - - - - Gagnon - Francois - - - - - Rodeo - - - 7-1997 - Impact of Out-of-Sequence Processing on the Performance of Data Transmission - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f68.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f68.rdf deleted file mode 100644 index fa2ec5b036..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f68.rdf +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - Amadio - Roberto - - - - - Boudol - Grard - - - - - Lhoussaine - Cdric - - - - - Mimosa - - - 11-2000 - The Receptive Distributed $\pi$-Calculus - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f680.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f680.rdf deleted file mode 100644 index d7efe2f26a..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f680.rdf +++ /dev/null @@ -1,24 +0,0 @@ - - - - - - Jaczynski - Michel - - - - - Trousse - Brigitte - - - - - Aid - - - 7-1997 - CBR*Tools : une bibliothque objet pour l'indexation des cas par situation comportementale - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f681.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f681.rdf deleted file mode 100644 index b105244c8f..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f681.rdf +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - Boissonnat - Jean-Daniel - - - - - Devillers - Olivier - - - - - Lazard - Sylvain - - - - - Prisme - - - 7-1997 - Motion Planning of Legged Robots - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f682.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f682.rdf deleted file mode 100644 index b9877b9d41..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f682.rdf +++ /dev/null @@ -1,24 +0,0 @@ - - - - - - Bronnimann - Herv - - - - - Z. - Ioannis - - - - - Prisme - - - 7-1997 - Computing exact geometric predicates using modular arithmetic with single precision - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f683.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f683.rdf deleted file mode 100644 index cdab581b8c..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f683.rdf +++ /dev/null @@ -1,18 +0,0 @@ - - - - - - Z. - Ioannis - - - - - Safir - - - 7-1997 - How to count efficiently all affine roots of a polynomial system - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f684.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f684.rdf deleted file mode 100644 index cad52d06d0..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f684.rdf +++ /dev/null @@ -1,18 +0,0 @@ - - - - - - Lucido - Laurence - - - - - Robotvis - - - 7-1997 - Vers la navigation rfrence terrain par mise en correspondance de cartes bathymtriques - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f685.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f685.rdf deleted file mode 100644 index d82e8e0240..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f685.rdf +++ /dev/null @@ -1,18 +0,0 @@ - - - - - - L. - Georgy - - - - - Pastis - - - 7-1997 - Gibbs fields with multiple pairwise pixel interactions for texture simulation and segmentation - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f686.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f686.rdf deleted file mode 100644 index a50d209985..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f686.rdf +++ /dev/null @@ -1,24 +0,0 @@ - - - - - - Baccelli - Franois - - - - - R. - D. - - - - - Mistral - - - 6-1997 - Rare Events for Stationary Processes - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f687.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f687.rdf deleted file mode 100644 index 4dd24770db..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f687.rdf +++ /dev/null @@ -1,48 +0,0 @@ - - - - - - Chazelle - Bernard - - - - - Devillers - Olivier - - - - - Hurtado - Ferran - - - - - Mora - Merc - - - - - Sacristn - Vera - - - - - Teillaud - Monique - - - - - Prisme - - - 4-2001 - Splitting a Delaunay Triangulation in Linear Time - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f688.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f688.rdf deleted file mode 100644 index ab9d1dc51e..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f688.rdf +++ /dev/null @@ -1,24 +0,0 @@ - - - - - - Butt - Paolo - - - - - Picco - Pierre - - - - - Sysdys - - - 6-1997 - Large deviation principle for one dimensional vector spin models with Kac potentials - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f689.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f689.rdf deleted file mode 100644 index 0d82fddf71..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f689.rdf +++ /dev/null @@ -1,36 +0,0 @@ - - - - - - Lucido - Laurence - - - - - Deriche - Rachid - - - - - Alvarez - Luis - - - - - Rigaud - Vincent - - - - - Robotvis - - - 6-1997 - Sur quelques schmas numriques pour la rsolution d'quations aux drives partielles pour le traitement d'images - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f69.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f69.rdf deleted file mode 100644 index 6676ff39a8..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f69.rdf +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - Kato - Zoltan - - - - - Zerubia - Josiane - - - - - Berthod - Marc - - - - - Pastis - - - 4-1995 - Unsupervised Parallel Image Classification Using a Hierarchical Markovian Model - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f690.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f690.rdf deleted file mode 100644 index a5a974dc8b..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f690.rdf +++ /dev/null @@ -1,35 +0,0 @@ - - - - - - Altman - Eitan - - - - - Gaujal - Bruno - - - - - Hordijk - Arie - - - - - Sloop - - - - - Mistral - - - 6-1997 - Multimodularity,Convexity and Optimization Properties - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f691.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f691.rdf deleted file mode 100644 index 4e05d74dd0..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f691.rdf +++ /dev/null @@ -1,35 +0,0 @@ - - - - - - Altman - Eitan - - - - - Gaujal - Bruno - - - - - Hordijk - Arie - - - - - Sloop - - - - - Mistral - - - 6-1997 - Balanced Sequences and Optimal Routing - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f692.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f692.rdf deleted file mode 100644 index cc4da4c29d..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f692.rdf +++ /dev/null @@ -1,31 +0,0 @@ - - - - - - Altman - Eitan - - - - - Gaujal - Bruno - - - - - Hordijk - Arie - - - - - Mistral - Sloop - - - 6-1997 - Admission Control in Stochastic Event Graphs - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f693.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f693.rdf deleted file mode 100644 index 221cf47e65..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f693.rdf +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - Thirion - Jean-Philippe - - - - - Prima - Sylvain - - - - - Subsol - Grard - - - - - Epidaure - - - 6-1997 - Statistical Analysis of Dissymmetry in Volumetric Medical Images - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f694.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f694.rdf deleted file mode 100644 index f60f6f2f09..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f694.rdf +++ /dev/null @@ -1,24 +0,0 @@ - - - - - - Cioni - Jean-Pierre - - - - - Remaki - Malika - - - - - Caiman - - - 5-1997 - Comparaison de deux mthodes de volumes finis en lectromagnetisme - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f695.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f695.rdf deleted file mode 100644 index 8169e4cd3a..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f695.rdf +++ /dev/null @@ -1,48 +0,0 @@ - - - - - - Beauquier - Bruno - - - - - Bermond - Jean-Claude - - - - - Gargano - Luisa - - - - - Hell - Pavol - - - - - Prennes - Stphane - - - - - Vaccaro - Ugo - - - - - Sloop - - - 5-1997 - Graph Problems Arising from Wavelength-Routing in All-Optical Networks - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f696.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f696.rdf deleted file mode 100644 index c9f55f4b9c..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f696.rdf +++ /dev/null @@ -1,24 +0,0 @@ - - - - - - PARAGIOS - Nikolaos - - - - - DERICHE - Rachid - - - - - Robotvis - - - 5-1997 - A PDE-based Level-Set Approach for Detection and Tracking of Moving Objects - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f697.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f697.rdf deleted file mode 100644 index 74fdeeaaf0..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f697.rdf +++ /dev/null @@ -1,24 +0,0 @@ - - - - - - Thirion - Jean-Philippe - - - - - Calmon - Guillaume - - - - - Epidaure - - - 2-1997 - Deformation Analysis to Detect and Quantify Active Lesions in 3D Medical Image Sequences - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f698.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f698.rdf deleted file mode 100644 index 0c89921b43..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f698.rdf +++ /dev/null @@ -1,18 +0,0 @@ - - - - - - Dieng - Rose - - - - - Acacia - - - 4-1997 - Comparison of Conceptual Graphs for Modelling Knowledge of Multiple Experts : Application to Traffic Accident Analysis - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f699.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f699.rdf deleted file mode 100644 index 26c1357e75..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f699.rdf +++ /dev/null @@ -1,24 +0,0 @@ - - - - - - Guillard - Herv - - - - - Viozat - Ccile - - - - - Sinus - - - 4-1997 - On the Behavior of Upwind Schemes in the Low Mach Number Limit - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f7.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f7.rdf deleted file mode 100644 index 5faea45d61..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f7.rdf +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - Baratchart - Laurent - - - - - Berthod - Marc - - - - - Pottier - Loc - - - - - Pastis - - - 10-1995 - Optimization of positive generalized polynomials under l p constraints - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f70.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f70.rdf deleted file mode 100644 index 69450c3c31..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f70.rdf +++ /dev/null @@ -1,18 +0,0 @@ - - - - - - Lanteri - Stphane - - - - - Sinus - - - 6-1995 - Parallel Solutions of Three-Dimensional Compressible Flows - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f700.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f700.rdf deleted file mode 100644 index dd28946fec..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f700.rdf +++ /dev/null @@ -1,18 +0,0 @@ - - - - - - Zuyev - Sergei - - - - - Mistral - - - 3-1997 - Stopping sets: Gamma-type results and hitting properties - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f701.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f701.rdf deleted file mode 100644 index 206829aa46..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f701.rdf +++ /dev/null @@ -1,54 +0,0 @@ - - - - - - Altman - Eitan - - - - - Bolot - Jean - - - - - Nain - Philippe - - - - - Elouadghiri - Driss - - - - - Erramdani - Mohammed - - - - - Brown - Patrick - - - - - Collange - Denis - - - - - Mistral - - - 3-1997 - Performance Modeling of TCP/IP in a Wide-Area Network - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f702.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f702.rdf deleted file mode 100644 index 8dab0a7f77..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f702.rdf +++ /dev/null @@ -1,24 +0,0 @@ - - - - - - Bronnimann - Herv - - - - - Yvinec - Mariette - - - - - Prisme - - - 3-1997 - Efficient Exact Evaluation of Signs of Determinants - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f703.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f703.rdf deleted file mode 100644 index 52920f15b4..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f703.rdf +++ /dev/null @@ -1,24 +0,0 @@ - - - - - - Rideau - Laurence - - - - - Thry - Laurent - - - - - Croap - - - 3-1997 - Interactive Programming Environment for ML - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f704.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f704.rdf deleted file mode 100644 index 4ed8ada048..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f704.rdf +++ /dev/null @@ -1,24 +0,0 @@ - - - - - - Shekarforoush - Hassan - - - - - Zerubia - Josiane - - - - - Pastis - - - 3-1997 - PERSIA: Manuel Utilisateur - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f705.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f705.rdf deleted file mode 100644 index b67a0db501..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f705.rdf +++ /dev/null @@ -1,24 +0,0 @@ - - - - - - Devillers - Olivier - - - - - Gandoin - Pierre-Marie - - - - - Prisme - - - 3-2001 - Compression interactive de maillages triangulaires arbitraires - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f706.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f706.rdf deleted file mode 100644 index fc399d2b8b..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f706.rdf +++ /dev/null @@ -1,24 +0,0 @@ - - - - - - Shekarforoush - Hassan - - - - - Zerubia - Josiane - - - - - Pastis - - - 3-1997 - SURPRISE: Manuel Utilisateur - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f707.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f707.rdf deleted file mode 100644 index 8bcfaea060..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f707.rdf +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - Gerbeau - Jean-Frdric - - - - - Glinsky-Olivier - Nathalie - - - - - Larrouturou - Bernard - - - - - Caiman - - - 3-1997 - Semi-implicit Roe-type fluxes for low-Mach number flows - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f708.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f708.rdf deleted file mode 100644 index 499b45ff68..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f708.rdf +++ /dev/null @@ -1,36 +0,0 @@ - - - - - - Ait-Hellal - Omar - - - - - Altman - Eitan - - - - - Elouadghiri - Driss - - - - - Erramdani - Mohammed - - - - - Mistral - - - 2-1997 - Performance Evaluation of the Rate-Based Flow Control Mechanism for ABR Service - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f709.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f709.rdf deleted file mode 100644 index 5c8ead902d..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f709.rdf +++ /dev/null @@ -1,24 +0,0 @@ - - - - - - MORIN - Pascal - - - - - SAMSON - Claude - - - - - Icare - - - 3-1997 - Control of Nonlinear Chained Systems. From the Routh-Hurwitz Stability Criterion to Time-Varying Exponential Stabilizers - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f71.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f71.rdf deleted file mode 100644 index dd7ef2eac8..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f71.rdf +++ /dev/null @@ -1,24 +0,0 @@ - - - - - - Bardinet - Eric - - - - - D. - Laurent - - - - - Epidaure - - - 7-1995 - A parametric deformable model to fit unstructured 3D data - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f710.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f710.rdf deleted file mode 100644 index 35ca5c35e5..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f710.rdf +++ /dev/null @@ -1,18 +0,0 @@ - - - - - - Delingette - Herv - - - - - Epidaure - - - 2-1997 - General Object Reconstruction based on Simplex Meshes - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f711.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f711.rdf deleted file mode 100644 index 4d67f944c5..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f711.rdf +++ /dev/null @@ -1,18 +0,0 @@ - - - - - - Z. - Ioannis - - - - - Safir - - - 1-1997 - A General Solver Based on Sparse Resultants: Numerical Issues and Kinematic Applications - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f712.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f712.rdf deleted file mode 100644 index 284d31c20b..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f712.rdf +++ /dev/null @@ -1,18 +0,0 @@ - - - - - - M. - Roberto - - - - - Meije - - - 2-1997 - An asynchronous model of locality, failure, and process mobility - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f713.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f713.rdf deleted file mode 100644 index 797d1a44e0..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f713.rdf +++ /dev/null @@ -1,35 +0,0 @@ - - - - - - Bossy - Mireille - - - - - Fezoui - Loula - - - - - Piperno - Serge - - - - - Omega - - - - - Caiman - - - 1-1997 - Comparaison d'une mthode stochastique et d'une mthode dterministe appliques l'quation de Burgers - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f714.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f714.rdf deleted file mode 100644 index d3a36393e6..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f714.rdf +++ /dev/null @@ -1,24 +0,0 @@ - - - - - - Janson - Svante - - - - - Szpankowski - Wojciech - - - - - Mistral - - - 1-1997 - Analysis of an Asymmetric Leader Election Algorithm - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f715.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f715.rdf deleted file mode 100644 index 97a207f659..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f715.rdf +++ /dev/null @@ -1,18 +0,0 @@ - - - - - - Viozat - Ccile - - - - - Sinus - - - 1-1997 - Implicit Upwind Schemes for Low Mach Number Compressible Flows - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f716.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f716.rdf deleted file mode 100644 index 2b718266c0..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f716.rdf +++ /dev/null @@ -1,24 +0,0 @@ - - - - - - Devillers - Olivier - - - - - P. - Franco - - - - - Prisme - - - 4-2001 - Culling a set of points for roundness or cylindricity evaluations - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f717.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f717.rdf deleted file mode 100644 index e2b1387955..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f717.rdf +++ /dev/null @@ -1,18 +0,0 @@ - - - - - - Jean-Marie - Alain - - - - - Mistral - - - 1-1997 - The Waiting Time Distribution in Poisson-Driven Deterministic Systems - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f718.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f718.rdf deleted file mode 100644 index 31b6892d72..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f718.rdf +++ /dev/null @@ -1,35 +0,0 @@ - - - - - - Morin - Pascal - - - - - Pomet - Jean-Baptiste - - - - - Samson - Claude - - - - - Miaou - - - - - Icare - - - 12-1996 - Design of homogeneous time-varying stabilizing control laws for driftless controllable systems via oscillatory approximation of Lie brackets in closed-loop - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f719.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f719.rdf deleted file mode 100644 index 42b9b51f1a..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f719.rdf +++ /dev/null @@ -1,18 +0,0 @@ - - - - - - Carpentier - Romuald - - - - - Sinus - - - 12-1996 - Le schma de MacCormack sur l'quation d'advection bidimensionnelle. Application au cas test C1 de l'ONERA. - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f72.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f72.rdf deleted file mode 100644 index 1180728a1b..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f72.rdf +++ /dev/null @@ -1,54 +0,0 @@ - - - - - - Faugeras - Olivier - - - - - Hotz - Bernard - - - - - Mathieu - Herv - - - - - Viville - Thierry - - - - - Zhang - Zhengyou - - - - - Fua - Pascal - - - - - Thron - Eric - - - - - Robotvis - - - 8-1993 - Real time correlation-based stereo: algorithm, implementations and applications - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f720.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f720.rdf deleted file mode 100644 index b394c282dc..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f720.rdf +++ /dev/null @@ -1,24 +0,0 @@ - - - - - - Matta - Nada - - - - - Corby - Olivier - - - - - Acacia - - - 12-1996 - Modles Gnriques de Gestion de Conflits dans la Conception Concourante - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f721.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f721.rdf deleted file mode 100644 index ebe281e6f1..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f721.rdf +++ /dev/null @@ -1,18 +0,0 @@ - - - - - - Z. - Ioannis - - - - - Safir - - - 12-1996 - Polynomial system solving: the case of a six-atom molecule - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f722.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f722.rdf deleted file mode 100644 index 3e11682830..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f722.rdf +++ /dev/null @@ -1,24 +0,0 @@ - - - - - - Boissonnat - Jean-Daniel - - - - - de - Eelco - - - - - Prisme - - - 12-1996 - Minkowski Operations For Satellite Antenna Layout - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f723.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f723.rdf deleted file mode 100644 index 19948e2bcb..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f723.rdf +++ /dev/null @@ -1,24 +0,0 @@ - - - - - - Boissonnat - Jean-Daniel - - - - - Nullans - Stphane - - - - - Prisme - - - 12-1996 - Reconstruction of Geological Structures from Heterogeneous and Sparse Data - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f724.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f724.rdf deleted file mode 100644 index 776151ac45..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f724.rdf +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - Krissian - Karl - - - - - Malandain - Grgoire - - - - - Ayache - Nicholas - - - - - Epidaure - - - 12-1996 - Directional Anisotropic Diffusion applied to segmentation of vessels in 3D images - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f725.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f725.rdf deleted file mode 100644 index f656c264cb..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f725.rdf +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - Chechkin - Gregory - - - - - Friedman - Avner - - - - - Piatnitski - Andrey - - - - - Sysdys - - - 12-1996 - The Boundary-Value Problem in Domains with Very Rapidly Oscillating Boundary - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f726.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f726.rdf deleted file mode 100644 index aacccc2ba7..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f726.rdf +++ /dev/null @@ -1,24 +0,0 @@ - - - - - - Piatnitski - Andrey - - - - - Remy - Elisabeth - - - - - Sysdys - - - 12-1996 - Comportement asymptotique du coefficient effectif pour un oprateur alatoire aux diffrences - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f727.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f727.rdf deleted file mode 100644 index 93b6de8d8f..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f727.rdf +++ /dev/null @@ -1,18 +0,0 @@ - - - - - - Ben - Amel - - - - - Miaou - - - 3-2001 - Identification de fissures droites depuis des mesures frontire incompltes - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f728.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f728.rdf deleted file mode 100644 index ce56242cf7..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f728.rdf +++ /dev/null @@ -1,18 +0,0 @@ - - - - - - Delamarre - Quentin - - - - - Robotvis - - - 12-1996 - Modlisation de la main pour sa localisation dans une squence d'images - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f729.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f729.rdf deleted file mode 100644 index 5fc93bee9b..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f729.rdf +++ /dev/null @@ -1,24 +0,0 @@ - - - - - - Bronnimann - Herv - - - - - Yvinec - Mariette - - - - - Prisme - - - 11-1996 - A complete analysis of Clarkson's algorithm for safe determinant evaluation - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f73.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f73.rdf deleted file mode 100644 index c6f2da3414..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f73.rdf +++ /dev/null @@ -1,24 +0,0 @@ - - - - - - Santos - Aristide - - - - - Bitmead - Robert - - - - - Icare - - - 7-1995 - Preserving Linear Design Capabilities in the Nonlinear Control of Nonholonomic Autonomous Underwater Vehicles - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f730.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f730.rdf deleted file mode 100644 index 266f5bd4fd..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f730.rdf +++ /dev/null @@ -1,18 +0,0 @@ - - - - - - Liu - Zhen - - - - - Mistral - - - 11-1996 - Dynamic Scheduling of Parallel Computations - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f731.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f731.rdf deleted file mode 100644 index 007a65f156..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f731.rdf +++ /dev/null @@ -1,24 +0,0 @@ - - - - - - Liu - Zhen - - - - - Righter - Rhonda - - - - - Mistral - - - 11-1996 - The Impact of Cell Dropping Policies in ATM Networks - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f732.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f732.rdf deleted file mode 100644 index 1d9a4a7ca3..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f732.rdf +++ /dev/null @@ -1,24 +0,0 @@ - - - - - - Baccelli - Franois - - - - - Zuyev - Sergei - - - - - Mistral - - - 11-1996 - Poisson-Voronoi Spanning Trees with Applications to the Optimization of Communication Networks - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f733.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f733.rdf deleted file mode 100644 index 94219feb7d..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f733.rdf +++ /dev/null @@ -1,18 +0,0 @@ - - - - - - Dalle - Olivier - - - - - Sloop - - - 11-1996 - LoadBuilder : a tool for generating and modeling workloads in distributed workstation environments - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f734.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f734.rdf deleted file mode 100644 index 0473245658..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f734.rdf +++ /dev/null @@ -1,18 +0,0 @@ - - - - - - C. - Benjamin - - - - - Meije - - - 11-1996 - Behavioral Equivalence in the Polymorphic Pi-Calculus - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f735.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f735.rdf deleted file mode 100644 index f2a04876a8..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f735.rdf +++ /dev/null @@ -1,24 +0,0 @@ - - - - - - Godart - Cyril - - - - - Vittoria - Maria - - - - - Sinus - - - 11-1996 - Catalyse htrogne pour les coulements hypersoniques. - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f736.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f736.rdf deleted file mode 100644 index ea217a5fcd..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f736.rdf +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - Declerck - Jrme - - - - - Feldmar - Jacques - - - - - Ayache - Nicholas - - - - - Epidaure - - - 11-1996 - Definition of a 4D continuous polar transformation for the tracking and the analysis of LV motion - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f737.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f737.rdf deleted file mode 100644 index fd258b9a58..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f737.rdf +++ /dev/null @@ -1,36 +0,0 @@ - - - - - - Rellier - Guillaume - - - - - Descombes - Xavier - - - - - Falzon - Frdric - - - - - Zerubia - Josiane - - - - - Ariana - - - 3-2001 - La poursuite de projection pour la classification d'image hyperspectrale texture - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f738.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f738.rdf deleted file mode 100644 index 5052f92c94..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f738.rdf +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - Coste-Manire - Eve - - - - - Rigaud - Vincent - - - - - al. - et - - - - - Icare - - - 11-1996 - UNION: UNderwater Intelligent Operation and Navigation - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f739.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f739.rdf deleted file mode 100644 index 6541d0a786..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f739.rdf +++ /dev/null @@ -1,18 +0,0 @@ - - - - - - Boussinot - Frdric - - - - - Meije - - - 10-1996 - Icobj Programming - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f74.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f74.rdf deleted file mode 100644 index f6201d0dfd..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f74.rdf +++ /dev/null @@ -1,36 +0,0 @@ - - - - - - Robert - Luc - - - - - Zeller - Cyril - - - - - Faugeras - Olivier - - - - - Hbert - Martial - - - - - Robotvis - - - 6-1995 - Applications of non-metric vision to some visually guided robotics tasks - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f740.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f740.rdf deleted file mode 100644 index d9983f471a..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f740.rdf +++ /dev/null @@ -1,24 +0,0 @@ - - - - - - Franois - Charles - - - - - Claude - - - - - - - Icare - - - 11-1996 - Energy Efficient Control of Running Legged Robots. A Case Study : The Planar One-Legged Hopper - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f741.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f741.rdf deleted file mode 100644 index afb8598d69..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f741.rdf +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - Baccelli - Franois - - - - - Hasenfuss - Sven - - - - - Schmidt - Volker - - - - - Mistral - - - 10-1996 - Transient and Stationary Waiting Times in (max,+)-Linear Systems with Poisson Input - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f742.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f742.rdf deleted file mode 100644 index e08d254101..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f742.rdf +++ /dev/null @@ -1,24 +0,0 @@ - - - - - - Faugeras - Olivier - - - - - Keriven - Renaud - - - - - Robotvis - - - 10-1996 - Variational principles, Surface Evolution, PDE's, level set methods and the Stereo Problem - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f743.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f743.rdf deleted file mode 100644 index 1f7ccca38d..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f743.rdf +++ /dev/null @@ -1,18 +0,0 @@ - - - - - - Despeyroux - Thierry - - - - - Croap - - - 9-1996 - AS, for Abstract Syntax - Manual - V1.0 - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f744.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f744.rdf deleted file mode 100644 index 124fe436f7..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f744.rdf +++ /dev/null @@ -1,18 +0,0 @@ - - - - - - Botella - Olivier - - - - - Sinus - - - 10-1996 - Rsolution des quations de Navier-Stokes par des schmas de projection Tchebychev - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f745.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f745.rdf deleted file mode 100644 index b5f5efe3bd..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f745.rdf +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - Morris - Robin - - - - - Descombes - Xavier - - - - - Zerubia - Josiane - - - - - Pastis - - - 10-1996 - Fully Bayesian Image Segmentation -- an Engineering Perspective - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f746.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f746.rdf deleted file mode 100644 index caf15e0cf3..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f746.rdf +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - Morris - Robin - - - - - Descombes - Xavier - - - - - Zerubia - Josiane - - - - - Pastis - - - 10-1996 - An analysis of some models used in image segmentation - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f747.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f747.rdf deleted file mode 100644 index ff950da723..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f747.rdf +++ /dev/null @@ -1,35 +0,0 @@ - - - - - - Touati - Corinne - - - - - Altman - Eitan - - - - - Galtier - Jrme - - - - - Mascotte - - - - - Mistral - - - 9-2001 - On fairness in Bandwidth Allocation - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f748.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f748.rdf deleted file mode 100644 index c083e6e798..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f748.rdf +++ /dev/null @@ -1,36 +0,0 @@ - - - - - - Descombes - Xavier - - - - - Morris - Robin - - - - - Zerubia - Josiane - - - - - Berthod - Marc - - - - - Pastis - - - 10-1996 - Estimation of Markov Random Field prior parameters using Markov chain Monte Carlo Maximum Likelihood - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f749.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f749.rdf deleted file mode 100644 index dafaa98d95..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f749.rdf +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - Vincent - Rgis - - - - - Moisan - Sabine - - - - - Thonnat - Monique - - - - - Orion - - - 10-1996 - Une bibliothque pour des moteurs de pilotage de programmes - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f75.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f75.rdf deleted file mode 100644 index 2e14391c7d..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f75.rdf +++ /dev/null @@ -1,24 +0,0 @@ - - - - - - Mathieu - Herv - - - - - Devernay - Frdric - - - - - Robotvis - - - 6-1995 - Systme de miroirs pour la stroscopie - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f750.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f750.rdf deleted file mode 100644 index 8e5d163ada..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f750.rdf +++ /dev/null @@ -1,24 +0,0 @@ - - - - - - Gaspard - Franois - - - - - Viville - Thierry - - - - - Robotvis - - - 10-1996 - Hierarchical visual perception without calibration - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f751.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f751.rdf deleted file mode 100644 index 5c7942d550..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f751.rdf +++ /dev/null @@ -1,18 +0,0 @@ - - - - - - Sangiorgi - Davide - - - - - Meije - - - 10-1996 - An interpretation of Typed Objects into Typed -calculus - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f752.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f752.rdf deleted file mode 100644 index 9a4b223dfb..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f752.rdf +++ /dev/null @@ -1,29 +0,0 @@ - - - - - - Robert - Luc - - - - - Malandain - Grgoire - - - - - Robotvis - - - - - pidaure - - - 10-1996 - Fast Binary Image Processing Using Binary Decision Diagrams - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f753.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f753.rdf deleted file mode 100644 index 7999585062..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f753.rdf +++ /dev/null @@ -1,18 +0,0 @@ - - - - - - M. - Roberto - - - - - Mimosa - - - n/a-n/a - On the symbolic reduction of processes with cryptographic functions - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f754.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f754.rdf deleted file mode 100644 index a873d511f5..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f754.rdf +++ /dev/null @@ -1,18 +0,0 @@ - - - - - - Debiez - Christophe - - - - - Sinus - - - 9-1996 - Contribution l'tude des schmas aux volumes finis dcentrs faible dissipation transverse - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f755.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f755.rdf deleted file mode 100644 index d7254fbafa..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f755.rdf +++ /dev/null @@ -1,24 +0,0 @@ - - - - - - Baratchart - Laurent - - - - - Olivi - Martine - - - - - Miaou - - - 9-1996 - Critical points and error rank in best $H_2$ matrix rational approximation of fixed McMillan degree. - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f756.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f756.rdf deleted file mode 100644 index b67c335204..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f756.rdf +++ /dev/null @@ -1,24 +0,0 @@ - - - - - - Devillers - Olivier - - - - - P. - Franco - - - - - Prisme - - - 9-1996 - A Probabilistic Analysis of the Power of Arithmetic Filters - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f757.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f757.rdf deleted file mode 100644 index 1e170ed0a7..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f757.rdf +++ /dev/null @@ -1,18 +0,0 @@ - - - - - - Y. - Victor - - - - - Safir - - - 9-1996 - Numerical Computation of a Polynomial GCD and Extensions - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f758.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f758.rdf deleted file mode 100644 index 008293af76..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f758.rdf +++ /dev/null @@ -1,24 +0,0 @@ - - - - - - Finta - Lucian - - - - - Liu - Zhen - - - - - Mistral - - - 8-1996 - Complexity of Task Graph Scheduling with Fixed Communication Capacity - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f759.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f759.rdf deleted file mode 100644 index 8dac5aa4f9..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f759.rdf +++ /dev/null @@ -1,24 +0,0 @@ - - - - - - Tancredi - Luc - - - - - Teillaud - Monique - - - - - Prisme - - - 8-1996 - Gomtrie synthtique et robots parallles - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f76.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f76.rdf deleted file mode 100644 index 73880801e3..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f76.rdf +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - Subsol - Grard - - - - - Thirion - Jean-Philippe - - - - - Ayache - Nicholas - - - - - Epidaure - - - 5-1995 - A General Scheme for Automatically Building 3D Morphometric Anatomical Atlases: application to a Skull Atlas - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f760.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f760.rdf deleted file mode 100644 index eb8c7fef00..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f760.rdf +++ /dev/null @@ -1,18 +0,0 @@ - - - - - - M. - Ellen - - - - - Meije - - - 7-1996 - Latch Optimization in Circuits Generated from High-level Descriptions - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f761.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f761.rdf deleted file mode 100644 index cdf4940ef8..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f761.rdf +++ /dev/null @@ -1,18 +0,0 @@ - - - - - - Mer - Katherine - - - - - Sinus - - - 7-1996 - Fourth-Order Dissipation on Unstructured Anisotropic meshes for Convection-Diffusion problems - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f762.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f762.rdf deleted file mode 100644 index 3164cc7f26..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f762.rdf +++ /dev/null @@ -1,24 +0,0 @@ - - - - - - Francescatto - Jrme - - - - - Dervieux - Alain - - - - - Sinus - - - 7-1996 - A Semi-Coarsening Strategy for Unstructured MG with Agglomeration - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f763.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f763.rdf deleted file mode 100644 index ed8974c48d..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f763.rdf +++ /dev/null @@ -1,24 +0,0 @@ - - - - - - Naciri - Hanane - - - - - Rideau - Laurence - - - - - Lemme - - - 3-2001 - Affichage et manipulation interactive de formules mathmatiques dans les documents structurs - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f764.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f764.rdf deleted file mode 100644 index e0173ced90..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f764.rdf +++ /dev/null @@ -1,24 +0,0 @@ - - - - - - Marco - Nathalie - - - - - Dervieux - Alain - - - - - Sinus - - - 7-1996 - Multilevel Parametrization for Aerodynamical Optimization of 3D Shapes - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f765.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f765.rdf deleted file mode 100644 index e8fbd60bf6..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f765.rdf +++ /dev/null @@ -1,42 +0,0 @@ - - - - - - Marco - Nathalie - - - - - Godart - Cyril - - - - - Dsidri - Jean-Antoine - - - - - Mantel - Bertrand - - - - - Priaux - Jacques - - - - - Sinus - - - 7-1996 - A genetic algorithm compared with a gradient-based method for the solution of an active-control model problem - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f766.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f766.rdf deleted file mode 100644 index f3ace03fb1..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f766.rdf +++ /dev/null @@ -1,18 +0,0 @@ - - - - - - Pomet - Jean-Baptiste - - - - - Miaou - - - 12-1995 - On Dynamic Feedback Linearization of Four-dimensional Affine Control Systems with Two Inputs - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f767.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f767.rdf deleted file mode 100644 index e74982a5cb..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f767.rdf +++ /dev/null @@ -1,24 +0,0 @@ - - - - - - Pourtallier - Odile - - - - - Tidball - Mabel - - - - - Miaou - - - 7-1996 - Approximation of the value function for a class of differential games with target - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f768.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f768.rdf deleted file mode 100644 index 9c9b31432a..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f768.rdf +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - Grimm - Jos - - - - - Pottier - Loc - - - - - Rostaing-Schmidt - Nicole - - - - - Safir - - - 2-1996 - Optimal time and minimum space-time product for reversing a certain class of programs - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f769.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f769.rdf deleted file mode 100644 index 7524bee34a..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f769.rdf +++ /dev/null @@ -1,24 +0,0 @@ - - - - - - Bolot - Jean-Chrysostome - - - - - Grossglauser - Matthias - - - - - Rodeo - - - 3-1996 - Parsimonious Markov Modeling of Processes with Long Range Dependence - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f77.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f77.rdf deleted file mode 100644 index b039106b05..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f77.rdf +++ /dev/null @@ -1,18 +0,0 @@ - - - - - - Katz - Matthew - - - - - Prisme - - - 6-1995 - 3-D Vertical Ray Shooting and 2-D Point Enclosure, Range Searching, and Arc Shooting Amidst Convex Fat Objects - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f770.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f770.rdf deleted file mode 100644 index f319b4bda2..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f770.rdf +++ /dev/null @@ -1,18 +0,0 @@ - - - - - - Vanwelkenhuysen - Johan - - - - - Acacia - - - 4-1996 - Cooperative Design - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f771.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f771.rdf deleted file mode 100644 index f3aa6edc32..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f771.rdf +++ /dev/null @@ -1,18 +0,0 @@ - - - - - - M. - Mabel - - - - - Miaou - - - 7-1996 - Robustness of convex optimization with application to controled Markov chains - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f772.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f772.rdf deleted file mode 100644 index eeba1cbb55..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f772.rdf +++ /dev/null @@ -1,24 +0,0 @@ - - - - - - Delmas - Olivier - - - - - Perennes - Stphane - - - - - Sloop - - - 7-1996 - Circuit-switched gossiping in the 3-dimensional torus networks - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f773.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f773.rdf deleted file mode 100644 index 941d04f771..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f773.rdf +++ /dev/null @@ -1,18 +0,0 @@ - - - - - - Zhang - Zhengyou - - - - - Robotvis - - - 7-1996 - Determining the Epipolar Geometry and its Uncertainty: A Review - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f774.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f774.rdf deleted file mode 100644 index 1a4714c4b2..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f774.rdf +++ /dev/null @@ -1,18 +0,0 @@ - - - - - - Boussinot - Frdric - - - - - Mimosa - - - 2-2001 - Java Fair Threads - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f775.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f775.rdf deleted file mode 100644 index 22e6ef6c92..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f775.rdf +++ /dev/null @@ -1,18 +0,0 @@ - - - - - - TIDBALL - Mabel - - - - - Miaou - - - 7-1996 - Rate of convergence of a numerical procedure for impulsive control problems - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f776.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f776.rdf deleted file mode 100644 index b04ab6bf67..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f776.rdf +++ /dev/null @@ -1,36 +0,0 @@ - - - - - - Bermond - Jean-Claude - - - - - Darrot - Eric - - - - - Delmas - Olivier - - - - - Perennes - Stphane - - - - - Sloop - - - 7-1996 - Hamilton circuits in the directed Butterfly network - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f777.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f777.rdf deleted file mode 100644 index 734c58762c..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f777.rdf +++ /dev/null @@ -1,18 +0,0 @@ - - - - - - Zhang - Zhengyou - - - - - Robotvis - - - 12-1993 - Le problme de la mise en correspondance : L'tat de l'art - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f778.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f778.rdf deleted file mode 100644 index 4093fe273a..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f778.rdf +++ /dev/null @@ -1,36 +0,0 @@ - - - - - - Bermond - Jean-Claude - - - - - Darrot - Eric - - - - - Delmas - Olivier - - - - - Perennes - Stphane - - - - - Sloop - - - 6-1996 - Hamilton cycle decomposition of the Butterfly network - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f779.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f779.rdf deleted file mode 100644 index da5d240baf..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f779.rdf +++ /dev/null @@ -1,24 +0,0 @@ - - - - - - Dery - Anne-Marie - - - - - Rideau - Laurence - - - - - Croap - - - 6-1996 - Distributed Architecture for Programming Environments - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f78.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f78.rdf deleted file mode 100644 index c650af45f8..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f78.rdf +++ /dev/null @@ -1,24 +0,0 @@ - - - - - - Nielsen - Franck - - - - - Yvinec - Mariette - - - - - Prisme - - - 5-1995 - An Output-Sensitive Convex Hull Algorithm for Planar Objects - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f780.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f780.rdf deleted file mode 100644 index 7fa290c1c8..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f780.rdf +++ /dev/null @@ -1,18 +0,0 @@ - - - - - - M. - Roberto - - - - - Meije - - - 6-1996 - On Bisimulations for the Asynchronous pi-calculus - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f781.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f781.rdf deleted file mode 100644 index 4d21995fdb..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f781.rdf +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - Descombes - Xavier - - - - - Morris - Robin - - - - - Zerubia - Josiane - - - - - Pastis - - - 6-1996 - Quelques amliorations la segmentation d'images bayesienne - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f782.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f782.rdf deleted file mode 100644 index 602122f99f..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f782.rdf +++ /dev/null @@ -1,12 +0,0 @@ - - - - - - Orion - - - 3-2001 - AI techniques for VSIS human tracker - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f783.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f783.rdf deleted file mode 100644 index 95f946853c..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f783.rdf +++ /dev/null @@ -1,24 +0,0 @@ - - - - - - Elkadi - Mohamed - - - - - Mourrain - Bernard - - - - - Safir - - - 5-1996 - Approche Effective des Rsidus Algbriques - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f784.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f784.rdf deleted file mode 100644 index 4a4424f325..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f784.rdf +++ /dev/null @@ -1,18 +0,0 @@ - - - - - - Zhang - Zhengyou - - - - - Robotvis - - - 5-1996 - A New Multistage Approach to Motion and Structure Estimation: From Essential Parameters to Euclidean Motion Via Fundamental Matrix - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f785.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f785.rdf deleted file mode 100644 index dfc350433b..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f785.rdf +++ /dev/null @@ -1,18 +0,0 @@ - - - - - - Gaujal - Bruno - - - - - Sloop - - - 2-1996 - Liveness in Weighted Routed Nets - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f786.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f786.rdf deleted file mode 100644 index 9a9daeed81..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f786.rdf +++ /dev/null @@ -1,24 +0,0 @@ - - - - - - Boissonnat - Jean-Daniel - - - - - Lazard - Sylvain - - - - - Prisme - - - 5-1996 - A polynomial-time algorithm for computing a shortest path of bounded curvature amidst moderate obstacles - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f787.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f787.rdf deleted file mode 100644 index e3f9271764..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f787.rdf +++ /dev/null @@ -1,18 +0,0 @@ - - - - - - Y. - Victor - - - - - Safir - - - 6-1996 - On Approximating Complex Polynomial Zeros: Modified Quadtree (Weyl's) Construction and Improved Newton's Iteration - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f788.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f788.rdf deleted file mode 100644 index 2003dbcc1c..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f788.rdf +++ /dev/null @@ -1,18 +0,0 @@ - - - - - - Giacometti - Jean-Patrick - - - - - Rodeo - - - 4-1996 - Chimaera 1.0 Tutorial & Reference - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f789.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f789.rdf deleted file mode 100644 index be87949243..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f789.rdf +++ /dev/null @@ -1,18 +0,0 @@ - - - - - - E. - Ercan - - - - - Ariana - - - 2-2001 - Modelling SAR Images with a Generalisation of the Rayleigh Distribution - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f79.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f79.rdf deleted file mode 100644 index 0c94b85b0c..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f79.rdf +++ /dev/null @@ -1,24 +0,0 @@ - - - - - - Rapaport - Alain - - - - - Gouz - Jean-Luc - - - - - Comore - - - 11-2000 - Practical and polytopic observers for nonlinear uncertain systems - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f790.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f790.rdf deleted file mode 100644 index 0cdcd6b43b..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f790.rdf +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - Urago - Sabine - - - - - Zerubia - Josiane - - - - - Berthod - Marc - - - - - Pastis - - - 4-1996 - Modlisation markovienne pour le groupement de contours avec une coopration contours-rgions - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f791.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f791.rdf deleted file mode 100644 index f2f1bfbf17..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f791.rdf +++ /dev/null @@ -1,18 +0,0 @@ - - - - - - Fidrich - Marta - - - - - Epidaure - - - 3-1996 - Iso-surface Extraction in 4D with Applications related to Scale Space - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f792.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f792.rdf deleted file mode 100644 index 47147180ff..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f792.rdf +++ /dev/null @@ -1,24 +0,0 @@ - - - - - - Grossglauser - Matthias - - - - - Bolot - Jean-Chrysostome - - - - - Rodeo - - - 3-1996 - On the Relevance of Long-Range Dependence in Network Traffic - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f793.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f793.rdf deleted file mode 100644 index ad35a2733b..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f793.rdf +++ /dev/null @@ -1,18 +0,0 @@ - - - - - - J. - Matthew - - - - - Prisme - - - 5-1996 - On Piercing Sets of Objects - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f794.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f794.rdf deleted file mode 100644 index f27187547e..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f794.rdf +++ /dev/null @@ -1,24 +0,0 @@ - - - - - - Boreale - Michele - - - - - Sangiorgi - Davide - - - - - Meije - - - 4-1996 - Some Congruence Properties for \pi-calculus Bisimilarities - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f795.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f795.rdf deleted file mode 100644 index 14b5985392..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f795.rdf +++ /dev/null @@ -1,24 +0,0 @@ - - - - - - Devillers - Olivier - - - - - J. - Matthew - - - - - Prisme - - - 4-1996 - Optimal Line Bipartitions of Point Sets - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f796.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f796.rdf deleted file mode 100644 index 3cf44326f7..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f796.rdf +++ /dev/null @@ -1,24 +0,0 @@ - - - - - - Baratchart - Laurent - - - - - B. - Edward - - - - - Miaou - - - 4-1996 - A criterion for uniqueness of a critical point in H 2 rational approximation - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f797.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f797.rdf deleted file mode 100644 index be4f322042..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f797.rdf +++ /dev/null @@ -1,36 +0,0 @@ - - - - - - Bouali - Amar - - - - - Ressouche - Annie - - - - - Roy - Valrie - - - - - de - Robert - - - - - Meije - - - 4-1996 - The FCTOOLS User Manual (Version 1.0) - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f798.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f798.rdf deleted file mode 100644 index c7bf39a3a2..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f798.rdf +++ /dev/null @@ -1,18 +0,0 @@ - - - - - - El - Rachid - - - - - Mistral - - - 2-2001 - Perturbation of Multivariable Linear Quadratic Systems with Jump Parameters and Hybrid Controls - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f799.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f799.rdf deleted file mode 100644 index 55e936c383..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f799.rdf +++ /dev/null @@ -1,24 +0,0 @@ - - - - - - Boussinot - Frdric - - - - - Hazard - Laurent - - - - - Meije - - - 5-1996 - Reactive Scripts - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f8.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f8.rdf deleted file mode 100644 index 638bbb9b2f..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f8.rdf +++ /dev/null @@ -1,18 +0,0 @@ - - - - - - Bertrand - Pierre - - - - - Omega - - - 9-1995 - On Estimating Stochastic Volatility of a Diffusion Process I. Comparison of Haar basis Estimator and some Kernel Estimators. - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f80.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f80.rdf deleted file mode 100644 index d5731212ba..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f80.rdf +++ /dev/null @@ -1,18 +0,0 @@ - - - - - - Altman - Eitan - - - - - Mistral - - - 5-1995 - Constrained Markov Decision Processes - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f800.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f800.rdf deleted file mode 100644 index 32d3a8a1cc..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f800.rdf +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - Liu - Zhen - - - - - Nain - Philippe - - - - - Towsley - Don - - - - - Mistral - - - 4-1996 - Exponential Bounds with Applications to Call Admission - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f801.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f801.rdf deleted file mode 100644 index f3a46bb192..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f801.rdf +++ /dev/null @@ -1,24 +0,0 @@ - - - - - - Leblond - Juliette - - - - - Olivi - Martine - - - - - Miaou - - - 4-1996 - Weighted H 2 approximation of transfer functions - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f802.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f802.rdf deleted file mode 100644 index 6678136ea5..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f802.rdf +++ /dev/null @@ -1,18 +0,0 @@ - - - - - - Fraer - Ranan - - - - - Croap - - - 3-1996 - Tracing the Origins of Verification Conditions - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f803.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f803.rdf deleted file mode 100644 index a18a2272c7..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f803.rdf +++ /dev/null @@ -1,18 +0,0 @@ - - - - - - Pomet - Jean-Baptiste - - - - - Miaou - - - 12-1995 - On Dynamic Feedback Linearization of Four-dimensional Affine Control Systems with Two Inputs - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f804.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f804.rdf deleted file mode 100644 index 2ba0ed461f..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f804.rdf +++ /dev/null @@ -1,18 +0,0 @@ - - - - - - Nielsen - Franck - - - - - Prisme - - - 4-1996 - Fast Stabbing of Boxes in High Dimensions - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f805.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f805.rdf deleted file mode 100644 index 4def8bf624..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f805.rdf +++ /dev/null @@ -1,18 +0,0 @@ - - - - - - G. - Renzo - - - - - Omega - - - 3-1996 - Jumps and Diffusions in Volatility: It Takes Two to Tango. - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f806.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f806.rdf deleted file mode 100644 index a9aff671bf..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f806.rdf +++ /dev/null @@ -1,18 +0,0 @@ - - - - - - Debiez - Christophe - - - - - Sinus - - - 2-1996 - Upwind approximations with weak dissipation for hyperbolic problems - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f807.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f807.rdf deleted file mode 100644 index 35a6301073..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f807.rdf +++ /dev/null @@ -1,29 +0,0 @@ - - - - - - Baccelli - Franois - - - - - Gaujal - Bruno - - - - - Sloop - - - - - Mistral - - - 3-1996 - Liveness in Free-Choice Petri Nets An Algebraic Approach - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f808.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f808.rdf deleted file mode 100644 index f5bf769eea..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f808.rdf +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - Devillers - Olivier - - - - - Pion - Sylvain - - - - - Teillaud - Monique - - - - - Prisme - - - 2-2001 - Walking in a triangulation - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f809.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f809.rdf deleted file mode 100644 index 9f41ff7f39..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f809.rdf +++ /dev/null @@ -1,18 +0,0 @@ - - - - - - de - Mark - - - - - Prisme - - - 3-1996 - Computing the Maximum Overlap of Two Convex Polygons Under Translations - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f81.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f81.rdf deleted file mode 100644 index 9ff9337f33..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f81.rdf +++ /dev/null @@ -1,42 +0,0 @@ - - - - - - Faugeras - Olivier - - - - - Laveau - Stphane - - - - - Robert - Luc - - - - - Csurka - Gabriella - - - - - Zeller - Cyril - - - - - Robotvis - - - 6-1995 - 3-D Reconstruction of Urban Scenes from Sequences of Images - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f810.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f810.rdf deleted file mode 100644 index b68cc41128..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f810.rdf +++ /dev/null @@ -1,18 +0,0 @@ - - - - - - Carpentier - Romuald - - - - - Sinus - - - 2-1996 - Comparaison entre des schmas 2D de type Roe sur maillage rgulier triangle ou quadrangle. I: calcul au sommet - pentes centres - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f811.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f811.rdf deleted file mode 100644 index 8a195a59d2..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f811.rdf +++ /dev/null @@ -1,18 +0,0 @@ - - - - - - Francescatto - Jrme - - - - - Sinus - - - 3-1996 - Modles bas-Reynolds appliqus une couche limite compressible - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f812.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f812.rdf deleted file mode 100644 index 6da07e1eab..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f812.rdf +++ /dev/null @@ -1,24 +0,0 @@ - - - - - - Ciccoli - M.C. - - - - - Dsidri - J.A. - - - - - Sinus - - - 3-1996 - Spectral analysis of Defect-Correction algorithms for hyperbolic equations - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f813.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f813.rdf deleted file mode 100644 index 9bc693ba20..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f813.rdf +++ /dev/null @@ -1,18 +0,0 @@ - - - - - - Viville - Thierry - - - - - Robotvis - - - 3-1996 - Mascotte : A few Maple Routines for Real-Time Code Generation - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f814.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f814.rdf deleted file mode 100644 index 155f77ba51..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f814.rdf +++ /dev/null @@ -1,24 +0,0 @@ - - - - - - Koobus - Bruno - - - - - Farhat - Charbel - - - - - Sinus - - - 3-1996 - Time-Accurate Schemes for Computing Two- and Three-Dimensional Viscous Fluxes on Unstructured Dynamic Meshes - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f815.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f815.rdf deleted file mode 100644 index 2f15e67770..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f815.rdf +++ /dev/null @@ -1,18 +0,0 @@ - - - - - - Torkhani - Nabil - - - - - Miaou - - - 1-1996 - Robust interpolation and approximation for disc algebra functions on subsets of the circle - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f816.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f816.rdf deleted file mode 100644 index b106b35293..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f816.rdf +++ /dev/null @@ -1,12 +0,0 @@ - - - - - - Prcovic - N. - - - Un algorithme distribu pour la rsolution des problmes de contraintes en domaines finis - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f817.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f817.rdf deleted file mode 100644 index 84e03eb136..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f817.rdf +++ /dev/null @@ -1,24 +0,0 @@ - - - - - - Pennec - Xavier - - - - - Ayache - Nicholas - - - - - Epidaure - - - 3-1996 - Randomness and Geometric Features in Computer Vision - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f818.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f818.rdf deleted file mode 100644 index 7863d92b09..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f818.rdf +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - Tancredi - Luc - - - - - Teillaud - Monique - - - - - Devillers - Olivier - - - - - Prisme - - - 2-1996 - Symbolic Elimination for parallel manipulators - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f819.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f819.rdf deleted file mode 100644 index f825ee87d2..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f819.rdf +++ /dev/null @@ -1,18 +0,0 @@ - - - - - - Merlet - Jean-Pierre - - - - - Prisme - - - 3-1996 - Modlisation gomtrique de mcanismes de suspension automobile - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f82.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f82.rdf deleted file mode 100644 index b9b228f79b..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f82.rdf +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - Gaujal - Bruno - - - - - Jean-Marie - Alain - - - - - Mairesse - Jean - - - - - Mistral - - - 6-1995 - Minimal Representation of Uniform Recurrence Equations - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f820.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f820.rdf deleted file mode 100644 index bb45179d3b..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f820.rdf +++ /dev/null @@ -1,24 +0,0 @@ - - - - - - Bardinet - Eric - - - - - D. - Laurent - - - - - Epidaure - - - 2-1996 - Analyzing the deformation of the left ventricle of the heart with a parametric deformable model - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f821.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f821.rdf deleted file mode 100644 index be1006015e..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f821.rdf +++ /dev/null @@ -1,18 +0,0 @@ - - - - - - Papadopoulo - Tho - - - - - Robotvis - - - 1-1996 - Motion Analysis of 3D Rigid Curves from Monocular Image Sequences - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f822.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f822.rdf deleted file mode 100644 index c33770b718..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f822.rdf +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - Eyssette - Frdric - - - - - Faure - Christle - - - - - Charles - Jean - - - - - Safir - - - 2-1996 - Applicabilit de la diffrentiation automatique un systme d'quations aux drives partielles rgissant les phnomnes thermohydrauliques dans un tube chauffant. - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f823.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f823.rdf deleted file mode 100644 index 309f381db2..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f823.rdf +++ /dev/null @@ -1,48 +0,0 @@ - - - - - - Devillers - Olivier - - - - - Estkowski - Regina - - - - - Gandoin - Pierre-Marie - - - - - Hurtado - Ferran - - - - - Ramos - Pedro - - - - - Vera - and - - - - - Prisme - - - 2-2001 - Minimal Set of Constraints for 2D Constrained Delaunay Reconstruction - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f824.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f824.rdf deleted file mode 100644 index 070d3f5647..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f824.rdf +++ /dev/null @@ -1,18 +0,0 @@ - - - - - - Alpay - Laurence - - - - - Acacia - - - 2-1996 - Modelling of reasoning strategies, and representation through conceptual graphs: application to accidentology - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f825.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f825.rdf deleted file mode 100644 index 5740b84824..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f825.rdf +++ /dev/null @@ -1,24 +0,0 @@ - - - - - - Felty - Amy - - - - - Thry - Laurent - - - - - Croap - - - 2-1996 - Interactive Theorem Proving with Temporal Logic - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f826.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f826.rdf deleted file mode 100644 index e8625832ae..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f826.rdf +++ /dev/null @@ -1,13 +0,0 @@ - - - - - - Depeyre - S. - - - 6-1995 - Stability analysis for finite volume schemes on rectangular and triangular meshes applied to the two-dimensionnal Maxwell system - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f827.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f827.rdf deleted file mode 100644 index a9b4ae1e4a..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f827.rdf +++ /dev/null @@ -1,36 +0,0 @@ - - - - - - Bermudez - A. - - - - - Dervieux - A. - - - - - Dsidri - J.A. - - - - - Vazquez - M.E. - - - - - Sinus - - - 12-1995 - Upwind schemes for the two-dimensional shallow water equations with variable depth using unstructured meshes - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f828.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f828.rdf deleted file mode 100644 index 1a4885060f..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f828.rdf +++ /dev/null @@ -1,24 +0,0 @@ - - - - - - Morin - Pascal - - - - - Samson - Claude - - - - - Icare - - - 2-1996 - Application of Backstepping Techniques to the Time-varying Exponential Stabilization of Chained Form Systems - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f829.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f829.rdf deleted file mode 100644 index 264c0d2618..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f829.rdf +++ /dev/null @@ -1,48 +0,0 @@ - - - - - - Braun - T. - - - - - Chrisment - I. - - - - - Diot - C. - - - - - Gagnon - F. - - - - - Gautier - L. - - - - - Hoschka - P. - - - - - Rodeo - - - 1-1996 - ALFred, an ALF/ILP Protocol Compiler forDistributed Application Automated Design. - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f83.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f83.rdf deleted file mode 100644 index d9f569fb41..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f83.rdf +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - Campillo - Fabien - - - - - Crou - Frdric - - - - - Le - Franois - - - - - Mefisto - - - 6-1995 - Particle and cell approximationsfor nonlinear filtering - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f830.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f830.rdf deleted file mode 100644 index 46992c69e3..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f830.rdf +++ /dev/null @@ -1,24 +0,0 @@ - - - - - - Zeller - Cyril - - - - - Faugeras - Olivier - - - - - Robotvis - - - 2-1996 - Camera Self-Calibration from Video Sequences: the Kruppa Equations Revisited - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f831.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f831.rdf deleted file mode 100644 index 4c0230489e..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f831.rdf +++ /dev/null @@ -1,35 +0,0 @@ - - - - - - Zuyev - Sergei - - - - - Desnogues - Pascal - - - - - Rakotoarisoa - Hery - - - - - Prisme - - - - - Mistral - - - 1-1996 - Simulations of large telecommunication networks based on probabilistic modeling - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f84.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f84.rdf deleted file mode 100644 index d518211a76..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f84.rdf +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - Despeyroux - Joelle - - - - - Felty - Amy - - - - - Hirschowitz - Andr - - - - - Croap - - - 5-1995 - Higher-order abstract syntax in Coq - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f85.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f85.rdf deleted file mode 100644 index 896e8c4fc0..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f85.rdf +++ /dev/null @@ -1,18 +0,0 @@ - - - - - - Thirion - Jean-Philippe - - - - - Epidaure - - - 5-1995 - Fast Non-Rigid Matching of 3D Medical Images - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f86.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f86.rdf deleted file mode 100644 index 289a807c1c..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f86.rdf +++ /dev/null @@ -1,18 +0,0 @@ - - - - - - Z. - Ioannis - - - - - Safir - - - 5-1995 - A Complete Implementation for Computing General Dimensional Convex Hulls - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f87.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f87.rdf deleted file mode 100644 index 86d9f2d883..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f87.rdf +++ /dev/null @@ -1,24 +0,0 @@ - - - - - - Boudol - Grard - - - - - Laneve - Cosimo - - - - - Meije - - - 6-1995 - $\lambda$-Calculus, Multiplicities and the $\pi$-Calculus - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f88.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f88.rdf deleted file mode 100644 index c0f2444b4b..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f88.rdf +++ /dev/null @@ -1,18 +0,0 @@ - - - - - - Lapalut - Stphane - - - - - Acacia - - - 5-1995 - Intgration de Connaissance Qualitatives dans KATEMES - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f89.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f89.rdf deleted file mode 100644 index a10a5c98bc..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f89.rdf +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - Shekarforoush - Hassan - - - - - Berthod - Marc - - - - - Zerubia - Josiane - - - - - Pastis - - - 4-1995 - Direct Search Generalized Simplex Algorithm for Optimizing Non- linear Functions - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f9.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f9.rdf deleted file mode 100644 index 18219ad6be..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f9.rdf +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - Declerck - Jrme - - - - - Feldmar - Jacques - - - - - L. - Michael - - - - - Epidaure - - - 1-1996 - Automatic Registration and Alignment on a Template of Cardiac Stress & Rest SPECT Images - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f90.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f90.rdf deleted file mode 100644 index 79c19e2597..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f90.rdf +++ /dev/null @@ -1,24 +0,0 @@ - - - - - - Montagnat - Johan - - - - - Delingette - Herv - - - - - Epidaure - - - 11-2000 - Spatial and temporal shape constrained deformable surfaces for 3D and 4D medical image segmentation - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f91.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f91.rdf deleted file mode 100644 index f5edcabe13..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f91.rdf +++ /dev/null @@ -1,18 +0,0 @@ - - - - - - Crepey - Stephane - - - - - Mistral - - - 4-1995 - Mthode de gradients en optimisation combinatoire. Applications a un problme de sac dos et au modle d'Ising. - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f92.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f92.rdf deleted file mode 100644 index 5f896e7d6b..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f92.rdf +++ /dev/null @@ -1,18 +0,0 @@ - - - - - - Crou - F. - - - - - Mefisto - - - 4-1995 - Long time asymptotics for some dynamical noise free non-linear filtering problems, new cases. - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f93.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f93.rdf deleted file mode 100644 index 525414b149..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f93.rdf +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - Rothwell - Charlie - - - - - Csurka - Gabriella - - - - - Faugeras - Olivier - - - - - Robotvis - - - 4-1995 - A Comparison of Projective Reconstruction Methods for Pairs of Views - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f94.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f94.rdf deleted file mode 100644 index 13c6c2b51e..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f94.rdf +++ /dev/null @@ -1,12 +0,0 @@ - - - - - - Sangiorgi - Davide - - - $\pi$-Calculus, Internal Mobility, and Agent-Passing Calculi Sophia Antipolis, Projet Meije , Avril 1995 - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f95.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f95.rdf deleted file mode 100644 index 467e429dbc..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f95.rdf +++ /dev/null @@ -1,24 +0,0 @@ - - - - - - Fulcheri - Pascale - - - - - Olivi - Martine - - - - - Miaou - - - 4-1995 - Identification and matrix rational $H^2$ approximation : a gradient algorithm based on Schur analysis. - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f96.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f96.rdf deleted file mode 100644 index ab165c3c7e..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f96.rdf +++ /dev/null @@ -1,31 +0,0 @@ - - - - - - Gimonet - G. - - - - - Cioni - J.P. - - - - - Fezoui - L. - - - - - Poupaud - F. - - - 4-1995 - Approximation numrique des quations de Maxell en milieu htrogne monodimensionnel par un solveur de Riemann exact - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f97.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f97.rdf deleted file mode 100644 index 2f294c2b6e..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f97.rdf +++ /dev/null @@ -1,18 +0,0 @@ - - - - - - MERLET - Jean-Pierre - - - - - Prisme - - - 4-1995 - Designing a parallel manipulator for a specific workspace - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f98.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f98.rdf deleted file mode 100644 index 3f21823fc2..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f98.rdf +++ /dev/null @@ -1,18 +0,0 @@ - - - - - - Sangiorgi - Davide - - - - - Meije - - - 4-1995 - Lazy functions and mobile processes - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f99.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f99.rdf deleted file mode 100644 index 0735bf0765..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/data2/f99.rdf +++ /dev/null @@ -1,25 +0,0 @@ - - - - - - de - A. - - - - - Bourdonnaye - la - - - - - Tolentino - M. - - - 2-1995 - Numerical simulation of scattering problems with Fourier Integral operators - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/fail.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/fail.rdf deleted file mode 100644 index aa60f028f3..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/comma/fail.rdf +++ /dev/null @@ -1,26 +0,0 @@ - - - - - - -]> - - - - - - - - - - - - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/engine/data/test.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/engine/data/test.rdf deleted file mode 100644 index ecb03b0935..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/engine/data/test.rdf +++ /dev/null @@ -1,123 +0,0 @@ - - - - - - - -]> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/engine/ontology/test.rdfs b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/engine/ontology/test.rdfs deleted file mode 100644 index 7ad74086e5..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/engine/ontology/test.rdfs +++ /dev/null @@ -1,83 +0,0 @@ - - - - - - - - -]> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/engine/rule/meta.rul b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/engine/rule/meta.rul deleted file mode 100644 index 2a1f2abf78..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/engine/rule/meta.rul +++ /dev/null @@ -1,99 +0,0 @@ - - - - - - - - -]> - - - - - - - - - - -prefix c: <http://www.inria.fr/acacia/comma#> -prefix w3c: <http://www.w3.org> - -construct { -?x ?p1 ?y -} -where { -filter(! strstarts(?p1 , w3c:) ) -?p2 rdfs:subPropertyOf ?p1 -?x ?p2 ?y -} - - - - - - - - -prefix c: <http://www.inria.fr/acacia/comma#> -construct { -?x rdf:type ?c2 -} -where { -filter(! strstarts(?c2, owl:)) -?c1 rdfs:subClassOf ?c2 -?x rdf:type ?c1 -} - - - - - - - - - - -prefix c: <http://www.inria.fr/acacia/comma#> -construct { -?y ?p ?x -} -where { -filter(! strstarts(?p , rdf:)) -?p rdf:type owl:SymmetricProperty -?x ?p ?y -} - - - - - - -prefix c: <http://www.inria.fr/acacia/comma#> -construct { -?x ?p ?z -} -where { -filter(! strstarts(?p , rdf:)) -?p rdf:type owl:TransitiveProperty -?x ?p ?y -?y ?p ?z -} - - - - - - diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/engine/rule/test2.brul b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/engine/rule/test2.brul deleted file mode 100644 index 391662b702..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/engine/rule/test2.brul +++ /dev/null @@ -1,220 +0,0 @@ - - - - - - - - -]> - - - - - - -prefix c: <http://www.inria.fr/acacia/comma#> -construct -{ -?x c:hasBrother ?z -} -where -{ -filter(?x != ?z) -?x c:hasParent ?y -?z c:hasParent ?y -?z rdf:type c:Man - -} - - - - - -prefix c: <http://www.inria.fr/acacia/comma#> -construct -{ -?x c:hasSister ?z -} -where -{ -filter(?x != ?z) -?x c:hasParent ?y -?z c:hasParent ?y -?z rdf:type c:Woman - -} - - - - - -prefix c: <http://www.inria.fr/acacia/comma#> -construct -{ -?x c:hasUncle ?z -} -where -{ -?x c:hasParent ?y -?y c:hasBrother ?z - -} - - - - - - -prefix c: <http://www.inria.fr/acacia/comma#> -construct -{ -?x c:hasAunt ?z -} -where -{ -?x c:hasParent ?y -?y c:hasSister ?z - -} - - - - - - - -prefix c: <http://www.inria.fr/acacia/comma#> -construct -{ -?x c:hasGrandParent ?z -} -where -{ -?x c:hasParent ?y -?y c:hasParent ?z - -} - - - - - - -prefix c: <http://www.inria.fr/acacia/comma#> -construct -{ -?x c:hasCousin ?t -} -where -{ -?x c:hasParent ?y -?y c:hasParent ?a - -?t c:hasParent ?z -?z c:hasParent ?a - -filter(?z != ?y) -filter(?x != ?t) -} - - - - - - - - - -prefix c: <http://www.inria.fr/acacia/comma#> -construct -{ -?x c:hasBrotherSister ?y -} -where -{ -?x c:hasParent ?z -?y c:hasParent ?z -filter(?x != ?y) -} - - - - - - - - -prefix c: <http://www.inria.fr/acacia/comma#> -construct -{ -?z c:hasRelation ?y -} -where -{ -?z c:hasParent ?y -} - - - - - - -prefix c: <http://www.inria.fr/acacia/comma#> -construct -{ -?z c:hasRelation ?y -} -where -{ -?z c:hasCousin ?y -} - - - - - - -prefix c: <http://www.inria.fr/acacia/comma#> -construct -{ -?z c:hasRelation ?y -} -where -{ -?z c:hasParent ?t ?t c:hasParent ?y - -} - - - - - - -prefix c: <http://www.inria.fr/acacia/comma#> -construct -{ -?z c:hasRelation ?y -} -where -{ -?z c:hasBrotherSister ?y -} - - - - - - - - - diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/human/human.rdfs b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/human/human.rdfs deleted file mode 100644 index 73c7459fe4..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/human/human.rdfs +++ /dev/null @@ -1,211 +0,0 @@ - - - - - ]> - - - - - - a living organism characterized by voluntary movement. - - être vivant doué de sensibilite de mobilité. - - - - - - an animal that produces gametes (spermatozoa) that can fertilize female gametes (ova). - - individu appartenant au sexe qui possède le pouvoir de fécondation. - - - - - - an animal that produces gametes (ova) that can be fertilized by male gametes (spermatozoa). - - animal appartenant au sexe apte à produire des ovules. - - - - - - - an adult male person - - mâle adulte de l'espèce humaine. - - - - - - - - a member of the human species - - - - - un membre de l'espèce humaine. - - - - - - someone who lectures professionally - - personne qui enseigne une discipline, une technique, un art. - - - - - - - - a person who devotes himself to doing research - - - personne adonnée à des recherches spécialisées. - - - - - - - an adult female person - - femelle adulte de l'espèce humaine. - - - - - - - relation between an animal and another animal from which it is descended. - - relation entre un animal et un autre animal duquel il descend. - - - - - - relation between an animal and another animal which gave birth to it. - - relation entre un animal et un autre animal qui lui a donné naissance. - - - - - relation between an animal and another animal to which it gave birth. - - relation entre un animal et un autre animal auquel il a donné naissance. - - - - - - - to have for parent a male. - - avoir pour parent un mâle. - - - - - - - to have for parent a female. - - avoir pour parent un femmelle. - - - - - - - relation with a male who has the same parents. - - relation avec un mâle ayant les mêmes parents. - - - - - - - relation with a female who has the same parents. - - relation avec une femelle ayant les mêmes parents. - - - - - - - relation between a person and another person he or she knows well and regards with affection and trust. - - relation entre une personne et une autre personne qui est l'objet d'un attachement privilégié. - - - - - - designation of something. - désignation de quelque chose. - - - - - - - - express in some way the approximate length of the shoes for a person. - taille, exprimée en points, des chaussures d'une personne. - - - - - - - complete existence duration. - durée complète d'existence. - - - - - - - - - express in some way the approximate dimensions of the shirts of a person. - dimensions approximatives des chemises portées par une personne. - - - - - - - - - express in some way the approximate dimensions of the trousers of a person. - dimensions approximatives des pantalons portés par une personne. - - - - - - - - a person's partner in marriage. - le partenaire d'une personne dans un mariage. - - - - diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/human/human1.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/human/human1.rdf deleted file mode 100644 index ec62f346b7..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/human/human1.rdf +++ /dev/null @@ -1,84 +0,0 @@ - - - ]> - - - - - 2015-01-29 - - - - Harry - - - 32 08 98 - 25 - - - - - John - 14 - 37 - - - - Mark - 8 - 14 - 9 - 36 - - - - - - - Eve - - - - - - - David - - - - - Alice - - - - - - Jack - - - - 95 - - - Flora - - - - - Laura - - - - - Jennifer - - - - diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/human/human2.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/human/human2.rdf deleted file mode 100644 index 49bc45bc8a..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/human/human2.rdf +++ /dev/null @@ -1,88 +0,0 @@ - - - ]> - - - - - - - 7 - 28 - 12 - 8 - Lucas - - - - - - 11 - 38 - 102 - 12 - Gaston - - - - - - - - - 10 - 42 - 46 - 13 - William - - - - 8 - 71 - 30 - 9 - Pierre - - - - - - 7 - 36 - 9 - 40 - - - - Sophie - - - - - - Catherine - - - - Laura - - - - 12 - 44 - - - - - - - - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/math/data/data.ttl b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/math/data/data.ttl deleted file mode 100644 index 6c2f18b8b9..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/math/data/data.ttl +++ /dev/null @@ -1,43 +0,0 @@ -@prefix m: -@prefix pp: - -m:ex1 - m:label "My favourite equation"; - m:author "JL"; - m:problems (m:InverseProblem) ; - m:applications (m:Engineering) ; - m:kind (m:Algebraic); - - -a m:Integral ; -m:from 0 ; -m:to 1 ; - -m:args ( - -# 3x^2 + 2x + 1 - -# plus( -# mult(3 power(x 2)) -# mult(2 x) -# 1) - -[a m:Plus ; m:args( - - [a m:Mult ; m:args(3 [a m:Power ; m:args ([m:name "x"] 2)])] - - [a m:Plus ; m:args( - - [a m:Mult ; m:args(2 [m:name "x"] )] - - 1 - - )] - -)] - -) ; -m:var [m:name "x"] - - - diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/math/data/data2.ttl b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/math/data/data2.ttl deleted file mode 100644 index 013981ed68..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/math/data/data2.ttl +++ /dev/null @@ -1,48 +0,0 @@ -@prefix m: - -m:ex2 - m:label "My favourite equation"; - m:author "JL"; - m:problems (m:InverseProblem) ; - m:applications (m:Engineering) ; - m:kind (m:Algebraic); - - -a m:Integral ; -m:from 0 ; -m:to m:pi ; - -m:args ( - -# 3xy + 2x + 1 dxdy - -# plus( -# mult(3 x y) -# mult(2 x) -# 1) -[a m:Integral ; - m:from 0 ; - m:to m:pi ; - - m:args( - - [a m:Plus ; m:args( - - [a m:Mult ; m:args(3 - [a m:Mult ; m:args([m:name "x"] [m:name "y"])] )] - - [a m:Plus ; m:args( - - [a m:Mult ; m:args(2 [m:name "x"] )] - - 1 - )] - )] -) ; - -m:var [m:name "x"] - -] -) ; - -m:var [m:name "y"] diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/math/data/fact.ttl b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/math/data/fact.ttl deleted file mode 100644 index ef470a9990..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/math/data/fact.ttl +++ /dev/null @@ -1,37 +0,0 @@ -@prefix m: - -m:ex3 - m:label "My favourite equation"; - m:author "JL"; - m:problems (m:InverseProblem) ; - m:applications (m:Engineering) ; - m:kind (m:Algebraic); - - -a m:Sigma ; - - m:var [m:name "n"] ; - m:from 0 ; - m:to [m:name "p"] ; - -m:args ( - -# 1/n! - -[a m:Div ; m:args( - [a m:Power ; m:args( - [m:name "x"; m:index "n"] - 2 - )] - - [a m:Factorial ; m:args ( - [a m:Minus ; m:args( - [m:name "x"; m:index "n"] - 1 - )] - )] -)] -) - - - diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/math/data/latex.rul b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/math/data/latex.rul deleted file mode 100644 index 1dbafdb569..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/math/data/latex.rul +++ /dev/null @@ -1,287 +0,0 @@ - - - - - - -template kg:start { -"\\documentclass{article}" "\n" -"\\title{Mathematics meet the Semantic Web}" "\n" -"\\author{WiFi}" "\n" -"\\begin{document}" "\n" -"\\maketitle" "\n" - - - group { -# "\\section{" ?l "}" "\n" - "\\begin{equation}" - - ?in - - "\\end{equation}" - ; separator = "\n\n" } - -"\n" -"\\end{document}" -"\n" -} -where { - ?in a ?t ; m:label ?l - filter not exists {?x ?p ?in} - filter (strstarts(?t, m:)) -} -]]> - - - - - - - -template kg:row { - ?e ; separator = " & " -} -where { - ?in rdf:rest*/rdf:first ?e -} - -]]> - - - - - - - -template kg:nbcol { - "c" -} -where { - ?in a m:Matrix ; - m:args/rdf:first ?row - ?row rdf:rest*/rdf:first ?e -} - -]]> - - - - - - - -template { - ?f " " ?t " " ?r -} -where { - ?in a ?t - filter(?t in ( - m:Plus, m:Minus, m:Mult, - m:Eq, m:Lt, m:Le, m:Ne, m:Gt, m:Ge)) - ?in m:args(?f ?r) -} -]]> - - - - - - - -template { - ?t - if (bound(?fr), - (concat( "_{", ?v, "=", ?fr, "}^{", ?to, "}\\,")), "") - - if (bound(?p), "(", "") - ?e - if (bound(?p), ")", "") - - "\\," - if (?t = m:Integral, concat("d", ?v), "") -} -where { - ?in a ?t ; - m:args (?e) - - filter(?t in (m:Integral, m:Sigma, m:Prod)) - - optional { ?in m:var ?v } - optional { ?in m:from ?fr ; m:to ?to } - optional { ?e a ?p filter(?p = m:Plus) } - -} - - -]]> - - - - - - - -template { - ?v - if (bound(?i), concat("_", ?i), "") -} -where { - ?in m:name ?v - optional { ?in m:index ?i } -} -pragma { kg:template kg:priority 101 } -]]> - - - - - - -template { - ?l -} -where { - ?in rdfs:label ?l -} -pragma {kg:template kg:priority 1000} -]]> - - - - - - - -template { - ?e ; separator = " " -} -where { - ?in rdf:rest*/rdf:first ?e -} - -]]> - - - - - - - -template { - ?f "(" group { ?e ; separator = ", " } ")" -} -where { - ?in a m:Function ; - m:name ?f ; - m:args/rdf:rest*/rdf:first ?e -} - -]]> - - - - - - - -template { - ?t - if (bound(?r), concat("[", ?r, "]"), "") - "{" ?e "}" -} -where { - ?in a ?t, m:Sqrt ; - m:args ?a - ?a rdf:first ?e - optional { ?a rdf:rest[rdf:first ?r] } -} -]]> - - - - - - - -template { - ?f "^{" ?r "}" -} -where { - ?in a m:Power ; - m:args(?f ?r) -} -]]> - - - - - - - -template { - "(" ?e ")\\,!" -} -where { - ?in a m:Factorial ; - m:args(?e) -} - - -]]> - - - - - - - -template { - ?t "{" ?f "}" "{" ?r "}" -} -where { - ?in a m:Div, ?t - ?in m:args(?f ?r) -} -]]> - - - - - - - -template { -"\\left(\n" -"\\begin{array}{" kg:template(kg:nbcol, ?in) "}\n" - - group { kg:template(kg:row, ?row) ; separator = " \\\\\n" } - -"\n" -"\\end{array}\n" -"\\right)" -} -where { - ?in a m:Matrix ; - m:args/rdf:rest*/rdf:first ?row -} - -]]> - - - - diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/math/data/matrix.ttl b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/math/data/matrix.ttl deleted file mode 100644 index 0e423c1f1e..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/math/data/matrix.ttl +++ /dev/null @@ -1,20 +0,0 @@ -@prefix m: - -m:ex4 - m:label "My favourite equation"; - m:author "JL"; - m:problems (m:InverseProblem) ; - m:applications (m:Engineering) ; - m:kind (m:Algebraic); - - -a m:Matrix ; m:args( - (1 2 3) - (4 5 6) - (7 8 9) -) - - - - - diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/math/data/onto.ttl b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/math/data/onto.ttl deleted file mode 100644 index 69cb1bb8e2..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/math/data/onto.ttl +++ /dev/null @@ -1,51 +0,0 @@ -@prefix m: - - - a m:PrettyPrinter - -m:pi rdfs:label "\\pi" - -m:infinity rdfs:label "\\infty" - -m:phi rdfs:label "\\phi" - - - -m:Integral rdfs:label "\\int" - -m:Sigma rdfs:label "\\sum" - -m:Prod rdfs:label "\\prod" - -m:Plus rdfs:label "+" - -m:Minus rdfs:label "-" - -m:Mult rdfs:label "\\," - -m:Div rdfs:label "\\frac" - -m:Power rdfs:label "^" - -m:Sqrt rdfs:label "\\sqrt" - - -m:Le rdfs:label "\\le" - -m:Lt rdfs:label "<" - -m:Eq rdfs:label "=" - -m:Ne rdfs:label "\\ne" - -m:Ge rdfs:label "\\ge" - -m:Gt rdfs:label ">" - - - - - - - - diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/math/data/phi.ttl b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/math/data/phi.ttl deleted file mode 100644 index 689e76de13..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/math/data/phi.ttl +++ /dev/null @@ -1,21 +0,0 @@ -@prefix m: - - -m:ex6 - m:label "My favourite equation"; - m:author "JL"; - m:problems (m:InverseProblem) ; - m:applications (m:Engineering) ; - m:kind (m:Algebraic); - -a m:Eq ; -m:args( - [a m:Power; m:args( - [m:name m:phi] - 2 - )] - [a m:Plus; m:args( - [m:name m:phi] - 1 - )] -) \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/math/data/prod.ttl b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/math/data/prod.ttl deleted file mode 100644 index a24876791d..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/math/data/prod.ttl +++ /dev/null @@ -1,37 +0,0 @@ -@prefix m: - -m:ex7 - m:label "My favourite equation"; - m:author "JL"; - m:problems (m:InverseProblem) ; - m:applications (m:Engineering) ; - m:kind (m:Algebraic); - - -a m:Prod ; - - m:var [m:name "n"] ; - m:from 0 ; - m:to [m:name "p"] ; - -m:args ( - -# 1/n! - -[a m:Div ; m:args( - [a m:Power ; m:args( - [m:name "x"; m:index "n"] - 2 - )] - - [a m:Factorial ; m:args ( - [a m:Minus ; m:args( - [m:name "x"; m:index "n"] - 1 - )] - )] -)] -) - - - diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/math/deriv/power.rq b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/math/deriv/power.rq deleted file mode 100644 index 64672f91a8..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/math/deriv/power.rq +++ /dev/null @@ -1,16 +0,0 @@ -@prefix m: -template { - "[a m:Mult ; m:args(" - ?n - if (?n = 1, ?x, - concat("[a m:Power ; m:args(", - ?x, - ?n - 1, - ")]") - ")]" -} -where { - ?in a m:Power ; - m:args(?x ?n) - filter(isLiteral(?n)) -} \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/math/eval.ttl b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/math/eval.ttl deleted file mode 100644 index ce5ef21d51..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/math/eval.ttl +++ /dev/null @@ -1,26 +0,0 @@ -@prefix m: - - -[a m:Mult; m:args( - 2 - [a m:Plus; m:args( - [m:name 'x'] - [a m:Power; m:args( - [m:name 'y'] - [m:name 'x'] - )] - )] -)] - - -[a m:Fact; m:args( - [m:name 'z'] -)] - - - -[a m:Env; m:args( - [m:name 'x'; m:value 2] - [m:name 'y'; m:value 3] - [m:name 'z'; m:value 5] -)] \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/math/eval/fact.rq b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/math/eval/fact.rq deleted file mode 100644 index c6e8a233ee..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/math/eval/fact.rq +++ /dev/null @@ -1,8 +0,0 @@ -@prefix m: - -template { - kg:template(kg:recfact, kg:eval(?n)) -} -where { - ?in a m:Fact ; m:args (?n) -} diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/math/eval/power.rq b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/math/eval/power.rq deleted file mode 100644 index e13e2e8a99..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/math/eval/power.rq +++ /dev/null @@ -1,8 +0,0 @@ -@prefix m: - -template { - kg:template(kg:recpower, kg:eval(?n), kg:eval(?x)) -} -where { - ?in a m:Power ; m:args (?x ?n) -} diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/math/eval/rec.rq b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/math/eval/rec.rq deleted file mode 100644 index 83758fc8d2..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/math/eval/rec.rq +++ /dev/null @@ -1,7 +0,0 @@ -template kg:rec { - if (?in = 0, 1, - ?in_1 * kg:template(kg:rec, ?in - 1, ?in_1)) -} -where { - optional { ?x rdf:value ?in, ?in_1 } -} \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/math/eval/recfact.rq b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/math/eval/recfact.rq deleted file mode 100644 index 603c1be61f..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/math/eval/recfact.rq +++ /dev/null @@ -1,7 +0,0 @@ -template kg:recfact { - if (?in = 1, 1, - ?in * kg:template(kg:recfact, ?in - 1)) -} -where { - optional { ?x rdf:value ?in } -} \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/math/eval/recpower.rq b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/math/eval/recpower.rq deleted file mode 100644 index 775634997c..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/math/eval/recpower.rq +++ /dev/null @@ -1,7 +0,0 @@ -template kg:recpower { - if (?in = 0, 1, - ?in_1 * kg:template(kg:recpower, ?in - 1, ?in_1)) -} -where { - optional { ?x rdf:value ?in, ?in_1 } -} \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/math/eval/start.rq b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/math/eval/start.rq deleted file mode 100644 index f4021f6bb0..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/math/eval/start.rq +++ /dev/null @@ -1,12 +0,0 @@ -@prefix m: - -template kg:start { - kg:turtle(?t) " = " - ?in - ; separator = "\n" -} -where { - ?in a ?t - filter not exists { ?x ?p ?in } - filter not exists { ?in a m:Env } -} diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/math/eval/term.rq b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/math/eval/term.rq deleted file mode 100644 index 8352f5611d..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/math/eval/term.rq +++ /dev/null @@ -1,14 +0,0 @@ -@prefix m: - -template { - if (?t = m:Plus, kg:eval(?f) + kg:eval(?r), - if (?t = m:Mult, kg:eval(?f) * kg:eval(?r), - if (?t = m:Minus, kg:eval(?f) - kg:eval(?r), - if (?t = m:Div, kg:eval(?f) / kg:eval(?r), - "")))) -} -where { - ?in a ?t - filter(?t in (m:Plus, m:Mult, m:Minus, m:Div)) - ?in m:args(?f ?r) -} diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/math/eval/term.save b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/math/eval/term.save deleted file mode 100644 index 214959039d..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/math/eval/term.save +++ /dev/null @@ -1,14 +0,0 @@ -@prefix m: - -template { - if (?t = m:Plus, - xsd:integer(kg:pprint(?f)) + xsd:integer(kg:pprint(?r)), - if (?t = m:Mult, - xsd:integer(kg:pprint(?f)) * xsd:integer(kg:pprint(?r)), - "")) -} -where { - ?in a ?t - filter(?t in (m:Plus, m:Mult)) - ?in m:args(?f ?r) -} diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/math/eval/var.rq b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/math/eval/var.rq deleted file mode 100644 index 7d6f30b9ad..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/math/eval/var.rq +++ /dev/null @@ -1,9 +0,0 @@ -@prefix m: - -template { - ?v -} -where { - ?in m:name ?n - [m:name ?n; m:value ?v] -} diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/math/latex.rul b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/math/latex.rul deleted file mode 100644 index 1dbafdb569..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/math/latex.rul +++ /dev/null @@ -1,287 +0,0 @@ - - - - - - -template kg:start { -"\\documentclass{article}" "\n" -"\\title{Mathematics meet the Semantic Web}" "\n" -"\\author{WiFi}" "\n" -"\\begin{document}" "\n" -"\\maketitle" "\n" - - - group { -# "\\section{" ?l "}" "\n" - "\\begin{equation}" - - ?in - - "\\end{equation}" - ; separator = "\n\n" } - -"\n" -"\\end{document}" -"\n" -} -where { - ?in a ?t ; m:label ?l - filter not exists {?x ?p ?in} - filter (strstarts(?t, m:)) -} -]]> - - - - - - - -template kg:row { - ?e ; separator = " & " -} -where { - ?in rdf:rest*/rdf:first ?e -} - -]]> - - - - - - - -template kg:nbcol { - "c" -} -where { - ?in a m:Matrix ; - m:args/rdf:first ?row - ?row rdf:rest*/rdf:first ?e -} - -]]> - - - - - - - -template { - ?f " " ?t " " ?r -} -where { - ?in a ?t - filter(?t in ( - m:Plus, m:Minus, m:Mult, - m:Eq, m:Lt, m:Le, m:Ne, m:Gt, m:Ge)) - ?in m:args(?f ?r) -} -]]> - - - - - - - -template { - ?t - if (bound(?fr), - (concat( "_{", ?v, "=", ?fr, "}^{", ?to, "}\\,")), "") - - if (bound(?p), "(", "") - ?e - if (bound(?p), ")", "") - - "\\," - if (?t = m:Integral, concat("d", ?v), "") -} -where { - ?in a ?t ; - m:args (?e) - - filter(?t in (m:Integral, m:Sigma, m:Prod)) - - optional { ?in m:var ?v } - optional { ?in m:from ?fr ; m:to ?to } - optional { ?e a ?p filter(?p = m:Plus) } - -} - - -]]> - - - - - - - -template { - ?v - if (bound(?i), concat("_", ?i), "") -} -where { - ?in m:name ?v - optional { ?in m:index ?i } -} -pragma { kg:template kg:priority 101 } -]]> - - - - - - -template { - ?l -} -where { - ?in rdfs:label ?l -} -pragma {kg:template kg:priority 1000} -]]> - - - - - - - -template { - ?e ; separator = " " -} -where { - ?in rdf:rest*/rdf:first ?e -} - -]]> - - - - - - - -template { - ?f "(" group { ?e ; separator = ", " } ")" -} -where { - ?in a m:Function ; - m:name ?f ; - m:args/rdf:rest*/rdf:first ?e -} - -]]> - - - - - - - -template { - ?t - if (bound(?r), concat("[", ?r, "]"), "") - "{" ?e "}" -} -where { - ?in a ?t, m:Sqrt ; - m:args ?a - ?a rdf:first ?e - optional { ?a rdf:rest[rdf:first ?r] } -} -]]> - - - - - - - -template { - ?f "^{" ?r "}" -} -where { - ?in a m:Power ; - m:args(?f ?r) -} -]]> - - - - - - - -template { - "(" ?e ")\\,!" -} -where { - ?in a m:Factorial ; - m:args(?e) -} - - -]]> - - - - - - - -template { - ?t "{" ?f "}" "{" ?r "}" -} -where { - ?in a m:Div, ?t - ?in m:args(?f ?r) -} -]]> - - - - - - - -template { -"\\left(\n" -"\\begin{array}{" kg:template(kg:nbcol, ?in) "}\n" - - group { kg:template(kg:row, ?row) ; separator = " \\\\\n" } - -"\n" -"\\end{array}\n" -"\\right)" -} -where { - ?in a m:Matrix ; - m:args/rdf:rest*/rdf:first ?row -} - -]]> - - - - diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/math/latex/tmp.aux b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/math/latex/tmp.aux deleted file mode 100644 index f23e54680b..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/math/latex/tmp.aux +++ /dev/null @@ -1 +0,0 @@ -\relax diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/math/latex/tmp.dvi b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/math/latex/tmp.dvi deleted file mode 100644 index 797ac9916e7cad4ec2275c375efc0769acd9862d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 948 zcmey)#MnIPfQ&T*5HP=xRtQOrP{=PWDJU&bFfuSS)-y2HGcvX^G&i>B2C85LDI)~_ z1Hl5ON(P4B1%DSaFf3rQ2Q!}l$=-=}3=E(74_)(Hz`&Q5#=rwKi!C`fslw1`mto(; zFrU-Dm9tsX($W&A_M9o3oL^d$S&}*l}APh7qwZhO~byQ#P{4aMhf$EM-jQ-5yulT5yfgLCh!mP=;#g*pU4g2Pc zI0yh$9FU*#neFD}1wn8XEXlb=<{J(A`X(`)+w$TwyZ6V0O1Kq3?L~$Ln>36+b8#<7 zvV)5QtM?0){4oSv?m*CPGnrQVrxo8AJ7Ag zT^0{FX&7qu_4Tb(*0X_x%PycULLsma?EP&Oav<*`dGtVq{AW&s)agZVZvb7In`yp9 z66Vo8Y!MJo9iLzZbpO_h%85)txaB5)0o)WR!hBX~wPX$Yoe@Ob?jug8=|c@I`3= diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/math/latex/tmp.pdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/math/latex/tmp.pdf deleted file mode 100644 index 2901fbfb480722817d382db8a8b3d925d189a008..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 18637 zcmbt+1z1&E(=Z4qQqmxK5EPI&=WvqlmQJO+yIT}cq!f@+Km=)|MCndJx=TPpx}-tA zjo$Fy`@Y}%{@;Hd*w5OtXU(2HYu28%X3xw`WeF)RC^sDMX76CjC>{(10XZ03g9HTd zz<12-EnF=@Fdhi#=MN7oWo7GX<_rQ$*&4Z;Ntl^9n3~}U3E{c8I-42U;dzeRsft=R zL5QnYDSY0gP0MjumGP0wz2e38W`oWXd&|(rW3PzOil3amU8hzh_3bU9F*ldiA6)cb zzEK`DZ+!n)kBMWyp6*%DtLdiqp3{4e-cRhcEvjoytM--I2{Y9s)Ze?Bdh?Cg-2qdz zTkPW>cFOc~@E^J)m}K;|K)sE#Wt4Zu%v^LCu9PSu#K{E(Lx`6MK7RrQC_BwP*qOSn zz0^ZV#AB{G))3ey7jj#IzJp~Oy-f;PoHu(V89UR!Y*YJ89QE$fWz8J?;mvv;rLrR) zqI`d%cbwm@-XOb0YROmXS5`DqMWOxe?u>=0y9vA#PuS2-zsuM+NM4w9YT{~hb{3(_ z;ce$WgTkj}%w^KDI}SJ%%Ic9{+>K{uZ~B`kffg_fcs#!hhq{-e83?RwWMPH}7I(0BHM4hh0bPujDjrzX%*DaY z*~H8R1pNt6Ff+9>5_9kb=|BJgf)~NfgF=GPa40vLR}T-M;tX^L@%}&-5(52pyNk}h zkG>Re3qTEkv4$c*@C(F?CK81By$J;&e`}&ZsNY&>5c)?8&7 z1XefmbOq@F>hj0kE?B#GN*x3Q;PF5F^Po`NXwa`m)CENELTDF6puaH>P($)^BmRW{ zCPM%YgK+bLPzVU{kLE^zP*6BG3WVlCT|i-IZXOU44&#P`P-rAK41|V3fg>Eo%MCm; z0uJD#;k*C@iG~0WUK9ktL_=T~bdWp%XGk~?2*rDG4TboD2ZaF?5okC!9O!d_fk4B6 z{=D!D2%6`D1H=zn7gv!W7#a=m@#_%^0YviS0EZ$0P7y#KBnZyK3($qbeo*9r094>e z#04CE!6_UC;GvKJ1`N0la19EKIMDNgFCJd>#hpfFb_v1o1_LpGV#wD*h`3fxJ)*9zf{<(E}3(P@sRb ze}(*{42N8(z^`o{6awJnCxxHzpS^yA|4^-;5EP(nfXe;g@K^kw>IVZjgaQM}3()`3 z{&R|7ypw)^Z~e4dz}$rK{BFW{Ku}&J{P#0JV}Eagco4uq{`mc8+g1?mBM@sv+eR@> zP2Nf=zxTMqOOe1_q9Zc;GA~Qp9aztnsUp95LZ~(SIQdGeUxP6x|Qj{U!oF_nh^dRlWV}r}w$XZ3@@#8W>;t_A2q$E@NjdhztRy2xF9AhIhgE=-iW{5(`F7}NsOG^0)FSlaR!cH;GSNga_8?3rd`e6+G9H5J62 z=g77MlkPg`%Il|z7@=K+Sl3Hv$a(0uj8#BSIYcf+y7J8&9Z6!(T$Q^2Qs(KCAR`C{ z#cRhvaYMG|pfn*^1;mQ8ez6DgyzM(b#Z~7UrpouX@iMQ19%hszxMGUnSV3ZG<%bDl zi%*4%YPmPM(g&v6!+RFAZtX=0Bx3gA1n_DTAfxb|F-XJkoD&Rm{2GL3Wk3{j(Aw@w z#}3!WbL|9g9^S`k#S49Z3?q_6i~BxZ!E|Cb!icyNg`qVEiaADv+WK?Qu?2t`Q9V=U z0R`?imqkMobR95hv3m_BIcRnzJ42cS4@EF&LZwVhrN)jR2rIqZ zPDgYXBgXGWVk2fBHHNXOs1U}ESu-0;Ov`gYOw$-%yk2d((WRQXZHy;7yzgE^N*LI- zg!{+wM2b7;xFs^xm}u6+2p?i8lbqiyz$8BiYkrMM9w7PMg`3}_uVLimJQPP zZs^z#Iiy{7Z_mNx|HPoU=jY%!pcCO4(WD&ey}~h~O8z{Awm-)?oJ86uZSDl#Y<=$* z?{$5fOm?-vhCH3p4P=3d?y;3viC4Iu9rCQ%&>d1DT5P+CAFlAWn^v0I$G$1JnsPR_e1G!8{_*k^I%^wU*}~^ij0rQ+djlF( zdUKJP8~bkCi342SeHrA-{p%hJtNE8YU!2ljC+eEWYW;Z7VigkaVYJ?3G&;0IlETC& zbYq$(Mf2%pE^eY~1I0nBmzff)omK`q>o(>uDg^sSZ9itv7o;Cj%QA!Uz31l=K$SiHJ@ zS1qRM@xucNnC_lwRLdkWOPhm_o(Wk@6J6Cl6CbJ0l0UHp74>n>L|Xl>od37PF9Wa| zP1*oHT;^7;nB+e)ZQv%Nd`wNI7 z_{=^?Eqbh#)?4>hr}w!E!)9}5aj?sf@l5?<%4MzhJfg)TZjKw1R*y;Mej*o>V@LHMJu+f%z1*mvXNo^n-q735E$8)%j|KjjkaKPgAKN%GpXFKm7a!MHR`$Qs zT|2LMiF49$1;3hc=0N`{f6DYbmOhzIO#LNsWbcjn#|qIO;*)5yEx_x)&yOe&Lpk$Iyl6|{)4S(Ij zzUh2K(ySux@WF28L$`)Zok3CeFi*~1{#_llEZXeiOJ2K=zxWz$mqimXRY3zB3vTXt zUC!Z}nUomCND5@T?ZqqsE;CbXxm;+qjMvs8*7@ji?%bRn(e-W{q2&x$!S?Ij2bIh# zUOG5-i7f`J9z*VMZQ5m;=z5Uv@x!>WT&?1Oo#VvCC5FH^fxWM?^;epi=?xaEB=KeU z?23i%J;yQgK*O4)XV+Wehu}uc8dH6ED5aEOS}tJF%ZK}egG=_YZUYn2>V<)VZ4A-?ZSdzz}4yh2e^R5p@2Qbpfi?CvXT+xHABCCmaoT681{ zTYjQ$!@*0r-UrQ3RfZ^xCzT#QS4@!RTh%~Hl7zoc zrmRV=5*QJNrG^tkCd?tM>@&%)6~=V)veSNM-4CjCJN14fwOsA%M9LkJJXvHWcotbD z604EETWT>Ykc9SHRGIE)Xe#)8gLdx9@weLx4h8;w*3OX>$CO=o+FJyQw04sAKTj!B)(cIpY0s9FqsW8tr4 zIewTh5hC>|%$I{FjbZU)TTXfq%&VNn)cn0<{|xfltn(sI?tZMZ`;+noV`~vHMNcr= z0gv%ct70so9?RHQ@)4QZ?K`c{qcr8GLv5Q3v?+HX;jfk`Z{B#_*Tf=O^NO&IdTD$_ zE`qN|NJ&lcNk2ICdv6ZIiR;pdFUKgYpV8;XZ|AWC-_Y#cEBP9VFl1jW@m7jEc{8U_W&i$QjnZ;Ogu&h0vB0-jXDqwvy`o^#+JnXbtWTGx#QwPh z2NvLet}TCV!7p~k5@s$Y&Q^}D4$i>B5ja;gvI92f_tZ2LRb@ED6%=Hlz#}cfd zYGq_=YGrN?b^*JBJ=uRU1o(2yK)~Mq!h!J1ruTk+pUdoD z*V0fViub=>OREOJW0x7SJ~?I@%XIel!8&8xPoFmQeoVO2Z0cSl;oR26U)@!`>1iR= zN`0pKvVe{J$gNYRjH1{nr$X9Zu2R#k)MM4Y^Bx>IRn)748)iOm{5Rlb_uj!Yxn!6KmS zBy&t-@qGvu&WvXqh>^jhQ-9k!Gf#fgaluv>bcFGqpwaLdF{VHo4^H$fLPCuFv4kWf zLtPD1=QhrRU@|<=eRASB%+MT(%UF+%o{_SMc0j~3xMc7oS=hF`s3`O1H`T5aXVyz% zjz}ibVsfj7-%v#mi<924V}0WB(2?u>+FkiD7Y)^A#WdTr(+4U6a`Swf=&pR~a zaIpl`35?oRtqHy<(q1ENx;@r!o2|+gENRPf7Z3Beia39!G4W}_H4aI3ksGnMU$vlv z9>+haPu7VQ!9U{Ue%a;`fEs9_Gr(p3$X0fGkc&Sr*>#BZWy8?%*5j-%`#g>}zSn%d z$+=7s{#Y3r&Vr?si6S;mP*!L*xE7fp(u4uI5yFER8;YN)LZTkZh*{2h4R=XgI_?n&H%AUZZC$)a!NyDRBXo~^knrA641hf*Q?JIdt|J4%AeF+8dF zk$U-`nC~KL*Q-Z}wK1cap@#62ZZSvUZ_0Zs%!C?ui5fx;lt%Y1FYWTQqRN&{I$X#% zgT7bJHh_ws&}g$@Nr5B<6AK`R=z zllxxXqN<#Kf#RB7DRrFM^FE?Ay1BNUf}0MA-1;5t_wN-&gC5Diaztq@Ty8{bYP(HO zH3sP0X-%z>GYqpAHCZa+1jYzorpV4A#H#vo7-DkCW_pcTf3RfD{fR;b+0Fxh!U~S}(}G{0 zcu^f*VL!n=sG-G^oFtM~q#FJrw#({(=VR+Fa5fpdwG*AH@T8|M&^Yt5dd50ol;~JO z_q#Homhs%KrEjHJG1wEmN&%0xxDN8udX|$koN7NYzp;*RjUFi`0&%@(OsD+f7gv*6= zy@g)9);zvz94g-nOLd4WBI6&HV#!Eo8a#Y6+%et6=f7jUE$t)tg@9E$dn3 zU&i9H0&e$yYCzxF>dYb)`FU-6^Lo{aY5^9mZ0!iAD*wIexp4!XkacKR{rRh+PP!=z zdD*>lt6L0q`^K(%sI`DQlo~HsGMsh|{6~eJcV1ui-@o-;(Z4>VY@}K@OrWQ6wg$Om zBk{4x;r*%}efxCuM$=F+N2*45ga(1Z`77HZH(ImKyrg_BqIXgXyYD`&eBFwHO{MgX zR<~*$kn9CXx97^74f&^ks+FBhWRfauMK9a9*qDC?zg&Ej(Tuz6@F~TzXJq8Oxw?RG zw8-J*5|+Fe>CT;#JDP-3361t}1qw$(A9sS6VgocL=hmYnGkafdis#V@dLCD`Dqf2m z*mYB6s=0H|h>5k$Ryj$cg7!`GU8af}==%CY~<8 zHk*YRr>519FT{Z>Ka7wPR2=Bu_Odz=cg9;3Do+-BEb!I+N!4O!D`B;Xna#kUhf(61 zdGo`f2Xsj4ns@;cHcA7dao)8DbsJsTbEP?A2RwIVRki5#8Nt3w`VPYw$9I zSU+ET@uRCJ(jJcS4{J~s@SK5H*=a5Qh0(w8V*hRg|C7;| z(Y$v@K^ZXms{hXB^B|zV8+`~bh!=U`f&V`lePB)T)8r$0|Ez#?{#*4&y`IMUt&T;4i z(t8KHtbBS`>d^aaVn^KA&oT`|<(>@mJ|#(@s1G&T5 z^pyu747>=DV=S3~dxj9)h=#sMjCYAa7~RyIs|Rkk<**EsH{YaY;NB+;ct#q*89-v^ zV>s%ddbxhffQ40>IXr7=Q%E97)A{UL?3Ma#12&~yvGm^d&zIr+T>%hmG5*N2f=3vJ zFF7cWbU;d-5mmuQcCWDSV?7&94L+X^$-LDnEF-5$^fWrni=BfV^T|#>)4BAOgBIgw zmXlGB6m^#C*1}&4VzBfx0&jZS)_RT2@;A}x^5SLq-kn5Y12&a|tTaPHw3bF;bT!hO zD&OvX*6~d;Ez?PHS~)zOJ#zU_o3b5hLxfx(J|f>pPC&jB-dsYbl8kz`T5~l)47*oP z-RDVt$h;g)?xswa2OKL{J#m{2Tk8SG@7$3{Ls2H&!dbp&cg9d=KCPnsuD@do(kA^Z z$PDKby1!c9WPVHS16nnjNI~U>_|#SxAt_m2g8Ao|Dx9us(Ff~Dq5ZrGXA461Nr?l3 zh;kwy@AAeuvbVDB$?|OFFUAfJS2vnCi|!S2-bF(RffpLb^~_gOj!afx_k?{LqDsU? zNn#$VI51F8Mq@r(3@i1!|6{)E+w%Q@ zJC${Ed}=Xq3~t4boe^w`mv;CgNDoA8QfCC)!J`yH%Z&Bfi z&0-Tv3&Y$vVZ7abHQhd2z@rF>k=XpV_sf#yI@8v>TB*o=RzATyrHo~66~CB+!PkoH zN+;&m(*2LOIU8y4t3R&qUM1cikT?Ij7x2ziH=GqyiF(oSUPo%~Y(cmeiQG}f=2=RN z#)i;&Mzu|-=n~H6oc3iQA_^g1aEyaw=R~MA_gU6q)MbMq`D%uU?k9;Kq&oy!sW>FS znggtD8`REkir-~j#gp75>l2qn%5j&#@c3DcK-xnDLZzkGb#I=ry`xN1_UyY)T8vtAwZ%buhwFmr?w z10Vi`I|a@4IsAttwny{hrh7z%Uh|4EO1g)OryZjO`3Yz1Zi=g_(~7OW+-6d0>v5zg z+TJqAaB(C&tTN#d&W4KlG`*w;*z9)hXQiHG?y(Ws_myVJY7TPJqPwbVaeJbD>2_gM zZzF6EpVP2RROAo0hoFnL+RWpGlooaCn3($esApHIJ!7*hOdOMjR0H#iK#tw|irwy2 zD23LxOFrk1+ci@?TS#}C@LHS|4&+N|R%5Qep>mKftl+y62vJ5@D)~s{^B}F{=XuqG zNAgSG%eH~+)ljhU>@h3W%iLo&IhcScpU``PL*fq&E=}qht)+Z1^*;U` z@mJHN9mH(#2T-f5=hoRY!Zxuqk%MblysDLb;gQ^kf8O<{`axKulIve zE83<-%7PxK2z^cccsWGC*y*uwW}dS$ep8b+l(sGcVaEh?2h37byE#(W~pv2U=_$ zHE{x;8RpQw9B6VynpY3xC`Flf`?{ia4O1dHcyfoP^h7T|Prc)rOz$OfWXOH}=x+Ao zY17OHo!e)f*UP*w6LyD=U&1HrinLds`%1ED^dalsp4bZ~D>nY}*nyfM_D}77)%S;4 zCr_ALZC6z_$1Pos$4Z8Iy8U{dO=p$0AD76ggh==Y&X3v z#bpL_zMAMOoI#mudg33khbB)RDVHZ(gnluyEH6DlU@ja75|Ht^JmD@0R^yjYeZvwQ z(K!G7hP8|C_WViz3EAWq)V<1D${JiZPq_u(wr(M#l!lqJNg)E+@|veBJGU;K-oUJ2 zR=g+VQB}Y+Z|sG0Hn04xgWJ`t^f~;+SbM**Bgt1|s3Z5*-AD=@j2B#G+=JC?UsS-% zi?Bl$Z;o_A&Nl)9Pg&3)_I@{)!@Z9s8i=PmYnQek*avAo{07y?qICbd6)#pFGyQ2s zvL~+IxsEB6w!=d*B>4@N56ih#mu`5t*E=-IU!@{6=Tb_%r4--MC+sAmm;)L*=@6bI zqucRMs>t3B^V+JW;_?*m${LIyDct7poHsb{I#t5a}7LV(1@ zIXUbx^I;4hs&_7npr9iuOpm-%xS@4@7iVZ#s()L?RweDbXiY6sM3%zL?T+P=_>(4^ z3kUhK~{f zuX96s^`KQT&-?fT`iprw6U}xzuKIG150&_9O%d#z3fcr~XC4l?slG@z^7^oD7sF6z zcR0rWdMaK!W3i2)DR%f{M~z$IZmfg&L3LmIT++v$%rdIvM=he_5QT2t_GhW)MB0cmZ8sZ^{c_GlFbyvMURXg z;TrTStP9_i`WRU_^?{sd?rGUuO>W9DOxA2y0tmd_^(AtXmnm)#bv}Q@-l@c}6nbT; z0_r)r64rR5YS;-TU1QlP|X-=B&nDk=$GiFpJDUlV0zOOI2Rd*pFUg5~0s$;3OoW4O;s zuLB;!SL_Jl9IGyfN!CC!?i;qfk_=5~lT^s}M6>50T)wd2xq0_o4>WwW@EtGn3CaciEpM9j0Bnnc6*c8?iL zsX|zgw|j+5jE(j=zeFc9^p6!Yy>}Y2#twE~)YT*nj6dxr5jGGV8iJy3cyectPaOoa zDJA3@X{6)gN*L;ae5Akuo6bucB45qd-@LrJ|4!-yZ>qq0?%f@4sZ&yUa3J1U*aGXB^;_X-}@U>^n3 zyLPT=b@~{@J-OBs4MPWod{pL?f?YK%p96hee7wqt#==A^MgSK4{60MsRwH-EM4Q?Q z8~v=l!!<4I)yk3T1bKl-=Tf9F3CfDJfU#-bm~USe&--N`2*GSC*-$QGTl5{gpwEMK zuzP7qZA??#e%P>qO=x>o`ed?P`+BYV;)JUXY;N5pIdDBroPcV=>-!aJF-wMjItPGo z$UnEv|H(NZC!sB?p#8%+0C?&DL`~;zj>|eGmB4HGufHt^p~q0$2-d1bh`R zaj>&90$YNu!1h-5W*6Q9urt`z(%H-m?CRkF_BL~N_>24C?}36mzeWoF;Xb(VfBZbT za38?`a3=iKeSkpx*Y1NDFM&b3gEljE1^ls+`F(nwCPT`Jr?}UvOs|H9L#ZRKw}#(5 z(f`QSsz_oMMjS22WYZC+I#z0?RRXTdIq~?s_wDqgy7pXm(?w{cLa5NCTkDdoHFw^! zgmZJ6ti%&eF`_g)OWGGqv6w-0bSzA13av(Lo}}CGkOyiw#J6wbio~p30?lHG$!ajX zd7_RXi!sh}O_*o8<@qI%cW?Y3$6_jY&|QyeA;vTzXrWl@&JJuL#&98}j7mT3z)Zrv zWVrt&gvu~vxA9qxlcF;S`;ud$3HyEKZX6}-27l^)R=yaFg}Nq1^{4>VX>5)ZQm@eV$qOkR?utbDi7OntyKQ=BA0b&2TyIenu~+IB6PRZReA6%TEK zt6!e#MAx^hL>69q_6~#J&eYu23j53_Mc5^iTHu-S?9#Tw5aV2G_+d-<#?$TE`&_z2 zMADF;@XgeiDMp87;$jw7foH|UPvkH{?zA2TQom>bN!BxB&V(wW4KS8EAp|kZ(QM%y z80oBm_hF#~$52HxGYs=n=5H~|I~ZN3R8VKlb5av;NEcWP6VhgoajCxOob#S)dHX}^&qUh)3&V@cg z;AQNcLXW#yRq@EN@KdjvchRJGI$Ola7WPEY+m}>%;eMAd{X%h z_okVRD@_9rUx}_NgKcZ#++9aWChz)3F$_I?y(A3tl%Mno&)!LR%Powz8}-PIR+RS$ zanLsF@U;zhMkjIvaWdaptd@;yf9`Fmv-W6dT&!Q6X*J`0RQ*(}ie9dt^455Y#hXV1 z17l#nq=ePS#OeXP-{_sq6$yQAm$aICc19#7#17iX4v`t}7-)4OUW{z54Y2th8aaya zapyqi97ESV10H;h-FjQooOYf38OMS9>Y}&g8II}U2b5QcQSI29L@xum?m+?K7bht& zy6gufurEV)Y@DwJjR&$wZ7e(at`U60!fW2F6B^4Cf8Bx2-Zy0%e`lUljZ{mg=c`Lh z&(Lea=GQm8quRojXS1X?_9(znuNe9|rf@)F4P4M;n^*L2mT{yR%W$R#Z->zbbQegz za8Y|iC^;DLk&Ej+@`y*h@vn)Xx-d;b47-xz%|%H$cxbhuZhWp4Fl=x!z}4K z620JCh|QPC>|0y4AaXK z`Hhm7R#>?@*aY$o*2oBL9MH&%;aC?fNO z)$)1oKk-h?$;r#ulF!Wh9!P9R(l(*Un}@5fay7+YJ74DeQ?Tr#sPz-uH#Z}BX)4?V z!V#m7B^Uho3}S5??KBoNlCCE3ysrp?_jt}@9KP9*DwyvI?~^N?D5A`q*v?#itUgPY(j`KtH5LbvLVu(eO_5QVjU7pk6$8A^C-Ta`_- zFu#L*#?K|`ZZvicC3(oB-avG3Gsj@*(FQgF!z5;E>D6b$(nX!7?sJ(Fe7PtSLHGUkS6q$$n`F32QV8u=ngz6+;3OCL0jl<2m$s-yeUDrBv zaXG(`DSL7{8PwfHeP{2Kj%@r^+Oe~{_uSg)IqFQFBPckd?G?v=omlx-h!p(WhTLW*E-72 z;wi)W0;y^0a5BzH!$v0d{+Su}+wYab^1ENAj!qNG!h$7b;(}Ga2)%f?_n7~khtfXf zbkX(Tk7CY;Zc8T5U)pI(+sG3!vtaW-EMJXYuc>2PIsoYr3eXQLMW%+v9o=Cr)i|WO zjDyQxo^m$Yx=1nQ&rKznN>Y@fx|iPs>;xxt{9M|zT5%%J)E{&%t+KKGZ2?|+c5 z|Adr1>e>BT^T75qOog9j_aMX7GDWa!;V$Frg#>z52k!NtxbBJa!>GwxUx6`h$0USR zq}Hp@1K!(@$Dt_!-e353)a#>PHhmw}VVIU15PCF|+I??Luevs(1e=!ve53HCdS{l6 zUlX|KV1? z(^`(BDhKioFQArhl#7WT1v#3DnxNax5EmxNo;IUC}vB?qqUn!ghs z-F^c-7*Ts<%S`qe4#Kn$d7*ro{x-u6xF;MaX?beBx}wN}$o6kj=DL9Y9micJ&v_{Xl0 z;j{QGr$@e=RHwLw>n7-Xi*YTL@}s6h`{xyR$6I<_D}$3kg78mcqE1o%4+=8i@A3m5 zVqIl{Jg2kOEzhxj^Wq&opGsVBhA))!BwzJ?&Pv!b>oCMZTK3F!qDoZeQqu=DnU2D4<+2M_M?z?Eeo;?ATNj&sevN&*KP}E(sp5=N%`~;tG zJw3CrKy8jcuVD1nI2yw%^_2k!*qV&^zK8>I5^d$d3(83-drNwsoPKPHzuvjZ{A;J; zmXzbFXFzSG?ug-R^aoiFTgCH}sgHPjY4aA}b+z3R)`#P-2M-F1F z2tL*uUg|ix!r=Jn+0CQWBlqJLZTvl=Ec)I6)xrYh)|13jTC z1|3`eN~}-uc3U3@yJL1s)gJ@Ed|L_)5IGd;@vf5gw8&LrH8Ir-1DJYts@P!zFv3^kqgFI znBWXK%Z6kv5z-YwT{j+M0r4KH=iN^4E7LWfZw|F)2y`B(_wJdao+nF$iPgnA497gl zAIZ2@$SB-VwSSpQbxw*y1_6pNc)5bg%Re35Pi~s9<81vvlZ!YFXGPXePn)35srQDS zMV93{pGHc_^gnQcC8`>3z|6W{a_?j(_O%b{O?Y@;%ernh zD*0Frp`+(NsnMB1?6N-WpyMMxrrLQqLr}aaOewf+Z<_}^HA5ZXi=U3twskU^^OjZZ zAC#Zn@^tdx5d84`R4zP1S2+t+P@=FoV++3H&C~SIE9mR61XPCXUF{Gv%>(aA>|pD) zb{vCOw*o!xW^%SSHh+ch8{b#);q7q%!0C@J@3SPx++8)jBqF`)p2gAg}L7 z`kMweyJT(}llWMfh?!!&PfL$4jemrQl%C-|YRhROIhrN3uHqq3^clK%^DQ5i>FZ`ThA04eE@A!<4Y|&uX(=@>CTKT- z?QQ_kqyqlGa1#78bMN1W4NBZmRnWNe!%2YpH%U`6 z-yH%_2=BiM8-)Hpq~Q4Js%cQSwWwS6ia?mT(689QAKjNOUt+f}D!A%`^(;P$I(({X zy?;TU+M_6q)PZo2MO{YH1s(72iKveqq{s-(#-*WAHM}GmoY>_X8dPaG%zFHx=V(cw zXP3X{DCM)4z+}d1yo=F|t0cte3c8)(OQMg_{fr{Dcak1SKc;#1j4kldM;R7k5ll?t z8SB{lE!a;DW}e&^p_JIgV3NpHjJU1AvPH0+M1F*2kM~+?frsv~Sq7eLns>VywYE~b zO3>iZCGL>G_71XT5UH&6;C0+J`G+8kbZ1f)COPsf=q)da@&_2-d-{uR?Rl|dsbr}s z*T+2gc8UDPotXrp`o|AiwWXCkn8-WMF%dNtA`gvLP1$4C*`vOzJ%95mVWW`mS#&NF z34)jm^13xk-sGu;r7^Y?f_)(GhH6NfGxytO;(FgWu>qWH%D^{l>{^(?1oG0EJGewj zk6zin5Hpkr3ATScdwl0?QC;@7xD$_D{ISP??7BL^8JXI2whGs1`!_QlCOMgcr7DGi zw{u^dFG)FB)1m!EGBrD0;nv*QkFk*A7%fH;_{3Z-om(weqxmke$-lpZla{IAf9ugz zYSUZL#Ei28LIH-fsp^*t*Wyaqn6Qhr>r6*-FUIardS&s>h+))VVo`hnR zTg=ld6fB#9IfY$|jLZ2+>vk<_DYx&AjGjIpL)Q7kQ@DRq)lTv-5MR@Ft042U+<$7b zI1s!%(PJNKNp%|iLbGJEwOLtePT6ZX3*Urm!FcK*XCrD?dadW>+VLKDo1Amarn8yV z%jM2%n+DXpoO=WjH1EF;+evk{hLdq!!8<)Q!C4p$Y4o6t%XbWO9gWw#+swW8$(3zN zFz*AiFn>jFX2;SCmAU*@r?tllEh(Xgj}+p&sZ)%Xqyq9y?v65tlIdKLFxx`}NbEd` zaBtE3vW(?3CtdmV+xXz(YtGuvMjWbOH@`_et=cgr6IR#ENLY_>ud9p4{!Xxd>*H4G z!Vx?6k2)Qlv~|lfXH7MsLfX_Z0*h;vgR!W(o&J%ouU=nYy%%-3J8zZ4aoFNDG&A|o zCNA^3qz0FX3SI1?*E)8NhfFp4%bOYg)ZOH1&l~U%S-hEahf`Cx53fG@`L^nqioU1V zw9}9sdr&aK&`+wpIeo((_jOoG9cGIpR?lTmvtqtJ*kS= z&Mh09jcE;ZRv$1l;q;(4Irn~<^IKLuZE)CjR&$;abW@IbnM9@Z5v~l=IF_g=RJJZTVfRF?^{T8qKKkZ{%d#%Q2|ld3aOopwnr$$gr92z>4SY=791Bx!WlPN#`e`0Jj@R z+u3S!zQpo%XTSHkh69U36eOjagdZ>WdhqRh5tb);XRpn|*{xg*FBGf{PSvq`8&N?* ze)QDNz~nG8)t9j3tqX#DL!hm&<>=;Zo{QDGkPjgjq%AIT=Mi@k=0$GP0QuO2M< zI|I{-c^`F=$K@k_V-x9&l%F@zZsFyQ5&J{0;|N%vxs?T6`f90V>Zd#Y*?UaEW7;KH zYXW33I?vNtwd*RW`z0nrvgDtoQ(MU{kdMa}tLg-|zN_Rw$tz(@{!Lt$e_^wKOQZc!{NO)1_EqI2G_*u7Z1%q~ z**vJoysUZ z??QhO3j8lZxk%Xfot3{2(7)Ea|BaQutr`Eu%1@#HGCn9kOaBlG6pH+ll^>-Yeu)hI zHUHzklgeMG!rwUgN&Xj35P)v{!O6wR?=rdgr1b0X{2HP9laY(s7cLjYFWdkX1qN2$ z%G3p<^W#~6tt-Lv&w&*;0#aujEG`OP03`lV_k!ow2?EruFm*Els+_PnnwqPdXSI@+2!bAmL@oLvB3KtRqu9E#xO`HgEX9w7gpP0P%fM;wIW2I@qxgKQj)fQe~l z1akkQ%LV)w74UR6GslAf1qkqf3KYNnKu81vh5(s^eup70#C-7s+5Z89155e8!yp$a zMt{MBqIl4N!2bq=!U4_uD-4N70!r{#7z+N6`vUR?!m9s{hd=^~@t3|p;RfId{tiPy zfywwcJQVEjyg;B3^gm&6pr*>-`a)4ahS%R - -template { - "(" ?e ")\\,!" -} -where { - ?in a m:Factorial ; - m:args(?e) -} - - diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/math/latextemplate/frac.rq b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/math/latextemplate/frac.rq deleted file mode 100644 index c2a32af136..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/math/latextemplate/frac.rq +++ /dev/null @@ -1,9 +0,0 @@ -@prefix m: - -template { - ?t "{" ?f "}" "{" ?r "}" -} -where { - ?in a m:Div, ?t - ?in m:args(?f ?r) -} diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/math/latextemplate/fun.rq b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/math/latextemplate/fun.rq deleted file mode 100644 index 6b5954a98b..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/math/latextemplate/fun.rq +++ /dev/null @@ -1,11 +0,0 @@ -@prefix m: - -template { - ?f "(" group { ?e ; separator = ", " } ")" -} -where { - ?in a m:Function ; - m:name ?f ; - m:args/rdf:rest*/rdf:first ?e -} - diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/math/latextemplate/label.rq b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/math/latextemplate/label.rq deleted file mode 100644 index 982f466b44..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/math/latextemplate/label.rq +++ /dev/null @@ -1,8 +0,0 @@ -@prefix m: -template { - ?l -} -where { - ?in rdfs:label ?l -} -pragma {kg:template kg:priority 1000} diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/math/latextemplate/list.rq b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/math/latextemplate/list.rq deleted file mode 100644 index 8d866dfa29..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/math/latextemplate/list.rq +++ /dev/null @@ -1,9 +0,0 @@ -@prefix m: - -template { - ?e ; separator = " " -} -where { - ?in rdf:rest*/rdf:first ?e -} - diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/math/latextemplate/matrix.rq b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/math/latextemplate/matrix.rq deleted file mode 100644 index 1e9d61e59d..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/math/latextemplate/matrix.rq +++ /dev/null @@ -1,17 +0,0 @@ -@prefix m: - -template { -"\\left(\n" -"\\begin{array}{" kg:template(kg:nbcol, ?in) "}\n" - - group { kg:template(kg:row, ?row) ; separator = " \\\\\n" } - -"\n" -"\\end{array}\n" -"\\right)" -} -where { - ?in a m:Matrix ; - m:args/rdf:rest*/rdf:first ?row -} - diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/math/latextemplate/nbcol.rq b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/math/latextemplate/nbcol.rq deleted file mode 100644 index 00a295b9c9..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/math/latextemplate/nbcol.rq +++ /dev/null @@ -1,11 +0,0 @@ -@prefix m: - -template kg:nbcol { - "c" -} -where { - ?in a m:Matrix ; - m:args/rdf:first ?row - ?row rdf:rest*/rdf:first ?e -} - diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/math/latextemplate/power.rq b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/math/latextemplate/power.rq deleted file mode 100644 index 700f67e566..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/math/latextemplate/power.rq +++ /dev/null @@ -1,9 +0,0 @@ -@prefix m: - -template { - ?f "^{" ?r "}" -} -where { - ?in a m:Power ; - m:args(?f ?r) -} diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/math/latextemplate/row.rq b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/math/latextemplate/row.rq deleted file mode 100644 index 9e665657ad..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/math/latextemplate/row.rq +++ /dev/null @@ -1,9 +0,0 @@ -@prefix m: - -template kg:row { - ?e ; separator = " & " -} -where { - ?in rdf:rest*/rdf:first ?e -} - diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/math/latextemplate/sqrt.rq b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/math/latextemplate/sqrt.rq deleted file mode 100644 index 94495f758c..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/math/latextemplate/sqrt.rq +++ /dev/null @@ -1,13 +0,0 @@ -@prefix m: - -template { - ?t - if (bound(?r), concat("[", ?r, "]"), "") - "{" ?e "}" -} -where { - ?in a ?t, m:Sqrt ; - m:args ?a - ?a rdf:first ?e - optional { ?a rdf:rest[rdf:first ?r] } -} diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/math/latextemplate/start.rq b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/math/latextemplate/start.rq deleted file mode 100644 index 7ea9e42321..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/math/latextemplate/start.rq +++ /dev/null @@ -1,28 +0,0 @@ -@prefix m: - -template kg:start { -"\\documentclass{article}" "\n" -"\\title{Mathematics meet the Semantic Web}" "\n" -"\\author{WiFi}" "\n" -"\\begin{document}" "\n" -"\\maketitle" "\n" - - - group { -# "\\section{" ?l "}" "\n" - "\\begin{equation}" - - ?in - - "\\end{equation}" - ; separator = "\n\n" } - -"\n" -"\\end{document}" -"\n" -} -where { - ?in a ?t ; m:label ?l - filter not exists {?x ?p ?in} - filter (strstarts(?t, m:)) -} diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/math/latextemplate/sum.rq b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/math/latextemplate/sum.rq deleted file mode 100644 index ac4b5e048b..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/math/latextemplate/sum.rq +++ /dev/null @@ -1,27 +0,0 @@ -@prefix m: - -template { - ?t - if (bound(?fr), - (concat( "_{", ?v, "=", ?fr, "}^{", ?to, "}\\,")), "") - - if (bound(?p), "(", "") - ?e - if (bound(?p), ")", "") - - "\\," - if (?t = m:Integral, concat("d", ?v), "") -} -where { - ?in a ?t ; - m:args (?e) - - filter(?t in (m:Integral, m:Sigma, m:Prod)) - - optional { ?in m:var ?v } - optional { ?in m:from ?fr ; m:to ?to } - optional { ?e a ?p filter(?p = m:Plus) } - -} - - diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/math/latextemplate/term.rq b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/math/latextemplate/term.rq deleted file mode 100644 index 76a8e10e9c..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/math/latextemplate/term.rq +++ /dev/null @@ -1,12 +0,0 @@ -@prefix m: - -template { - ?f " " ?t " " ?r -} -where { - ?in a ?t - filter(?t in ( - m:Plus, m:Minus, m:Mult, - m:Eq, m:Lt, m:Le, m:Ne, m:Gt, m:Ge)) - ?in m:args(?f ?r) -} diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/math/latextemplate/var.rq b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/math/latextemplate/var.rq deleted file mode 100644 index 0401fb4bc7..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/math/latextemplate/var.rq +++ /dev/null @@ -1,11 +0,0 @@ -@prefix m: - -template { - ?v - if (bound(?i), concat("_", ?i), "") -} -where { - ?in m:name ?v - optional { ?in m:index ?i } -} -pragma { kg:template kg:priority 101 } diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/math/mat.rul b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/math/mat.rul deleted file mode 100644 index ed6ea985ab..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/math/mat.rul +++ /dev/null @@ -1,144 +0,0 @@ - - - - - - -template kg:start { - ?in ; separator = "\n\n" -} -where { - ?in a ?t ; - filter not exists {?x ?p ?in} - filter (strstarts(?t, m:)) -} -]]> - - - - - - - -template { - ?f ?l ?r -} -where { - ?in a ?t ; - m:args(?f ?r) -} -values (?t ?l){ - (m:Plus " + ") - (m:Minus " - ") - (m:Mult "") - (m:Div "/") - (m:Power "^") -} -]]> - - - - - - - -template { - ?v -} -where { - ?in m:name ?v -} -]]> - - - - - - - -template { - ?e ; separator = " " -} -where { - ?in rdf:rest*/rdf:first ?e -} - -]]> - - - - - - - -template { - kg:turtle(?t) - coalesce(concat( "[", ?fr, ", ", kg:uri(?to), "]"), "") - "(" - group distinct { ?e } - ")" - " " - if (bound(?v), group_concat("d", ?v), "") -} -where { - ?in a ?t ; - m:args/rdf:rest*/rdf:first ?e - optional { ?in m:vars/rdf:rest*/rdf:first ?v } - optional { ?in m:from ?fr ; m:to ?to } -} -values ?t { -m:Integral m:Sigma -} - -]]> - - - - - - - -template { - "(" ?e ")!" -} -where { - ?in a ?t ; - m:args(?e) -} -values ?t { -m:Factorial -} - -]]> - - - - - - - -template { -"matrix:(" "\n" - "(" - group { ?row ; separator = ")\n(" } - ")" - "\n" ")" -} -where { - ?in a m:Matrix ; - m:args/rdf:rest*/rdf:first ?row -} - -]]> - - - - diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/math/query/cons.txt b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/math/query/cons.txt deleted file mode 100644 index de755ab1f7..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/math/query/cons.txt +++ /dev/null @@ -1,2 +0,0 @@ -construct {?x ?p ?y} -where {?x ?p ?y} \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/math/query/count.txt b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/math/query/count.txt deleted file mode 100644 index b4d6379d29..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/math/query/count.txt +++ /dev/null @@ -1,13 +0,0 @@ -prefix m: -select * (count(?var) as ?c) -where -{ -?x a m:Integral ; -m:vars/m:term* [m:name ?var] - - -?x m:author ?y ; m:label ?l - - -} -group by ?x \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/math/query/describe.txt b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/math/query/describe.txt deleted file mode 100644 index 32c72a8e05..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/math/query/describe.txt +++ /dev/null @@ -1,5 +0,0 @@ -prefix ex: -describe ?c -pragma { -kg:display kg:template -} \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/math/query/display.txt b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/math/query/display.txt deleted file mode 100644 index d8a6062512..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/math/query/display.txt +++ /dev/null @@ -1,6 +0,0 @@ -prefix m: -select ?x (kg:pprint(?x, pp:math.rul) as ?pp) -where { -?x a ?t -filter(?t in (m:Matrix, m:Integral, m:Sigma)) -} diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/math/query/display.txt.txt b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/math/query/display.txt.txt deleted file mode 100644 index 0419caa4ff..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/math/query/display.txt.txt +++ /dev/null @@ -1,8 +0,0 @@ -prefix m: -select ?x (kg:pprint(?x, pp:math.rul) as ?pp) -where { -?x a ?t -} -values ?t { -m:Matrix m:Integral m:Sigma -} \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/math/query/math.txt b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/math/query/math.txt deleted file mode 100644 index 4bfbe8142a..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/math/query/math.txt +++ /dev/null @@ -1,9 +0,0 @@ -prefix m: -template { - kg:pprintWith(?p) -} -where { - -?p a m:PrettyPrinter - -} diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/math/query/pragma.txt b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/math/query/pragma.txt deleted file mode 100644 index 884fee7b1b..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/math/query/pragma.txt +++ /dev/null @@ -1,7 +0,0 @@ -prefix m: -select ?x (kg:pprint(?x) as ?pp) -where { -?x a ?t -filter(?t in (m:Matrix, m:Integral, m:Sigma)) -} -pragma {kg:display kg:template pp:math.rul} \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/math/query/q1.txt b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/math/query/q1.txt deleted file mode 100644 index f0e06a3992..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/math/query/q1.txt +++ /dev/null @@ -1,11 +0,0 @@ -prefix m: -select * -where -{ -?x a m:Integral ; -m:vars ([m:name ?var]) ; -m:term* -[a m:Power; m:args([m:name ?var] ?n)] - -?x m:author ?y ; m:label ?l -} \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/math/query/query-display.txt b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/math/query/query-display.txt deleted file mode 100644 index 6d6dfe33a9..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/math/query/query-display.txt +++ /dev/null @@ -1,13 +0,0 @@ -prefix m: -template { - kg:pprint(?x, ) - ; separator = "\n\n" -} -where -{ -?x a m:Integral -?x m:var [m:name ?var] -; (m:args|rdf:rest|rdf:first)* [a m:Power; m:args([m:name ?var] ?n)] - -#?x m:author ?y ; m:label ?l -} diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/math/query/query-display.txt.txt b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/math/query/query-display.txt.txt deleted file mode 100644 index 37ab968286..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/math/query/query-display.txt.txt +++ /dev/null @@ -1,13 +0,0 @@ -prefix m: -template { - kg:pprint(?x, ) -; separator = "\n\n" -} -where -{ -?x a m:Integral -?x m:vars @([m:name ?var]) -; (m:args|rdf:rest|rdf:first)* [a m:Power; m:args([m:name ?var] ?n)] - -#?x m:author ?y ; m:label ?l -} diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/math/query/query-display2.txt b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/math/query/query-display2.txt deleted file mode 100644 index 8e283c0ea6..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/math/query/query-display2.txt +++ /dev/null @@ -1,20 +0,0 @@ -prefix m: -template { - kg:pprint(?x, ) - ; separator = "\n\n" -} -where -{ -select distinct ?x where { -?x a m:Integral -?x m:vars @([m:name ?var]) -; (m:args|rdf:rest|rdf:first)* -[a m:Mult; -m:args/rdf:rest*/rdf:first [m:name ?var] ; -m:args/rdf:rest*/rdf:first [m:name ?v] -] -filter(?var != ?v) - -#?x m:author ?y ; m:label ?l -} -} \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/math/query/query-display3.txt b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/math/query/query-display3.txt deleted file mode 100644 index b2428cf2f3..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/math/query/query-display3.txt +++ /dev/null @@ -1,8 +0,0 @@ -prefix m: -select -?a - (kg:pprint(?x, ) as ?e) -where { -?x m:author ?a ; -m:problems (m:InverseProblem) -} \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/math/query/template.txt b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/math/query/template.txt deleted file mode 100644 index 54d799fcf3..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/math/query/template.txt +++ /dev/null @@ -1,6 +0,0 @@ -prefix m: -construct -where {?x ?p ?y} -pragma { -kg:display kg:template -} \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/math/query/test.rq b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/math/query/test.rq deleted file mode 100644 index b575b6fe97..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/math/query/test.rq +++ /dev/null @@ -1,16 +0,0 @@ -prefix m: -select ?g -where -{ -graph ?g {?x a m:Integral } -?x m:vars ([m:name ?var]) ; -(m:args|rdf:rest|rdf:first)* -[a m:Power; m:args([m:name ?var] ?n)] - -?x m:author ?y ; m:label ?l - -graph ?g {?a ?p ?b} -} -pragma { -#kg:display kg:template -} \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/math/template/fact.rq b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/math/template/fact.rq deleted file mode 100644 index d4b87e7739..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/math/template/fact.rq +++ /dev/null @@ -1,13 +0,0 @@ -@prefix m: - -template { - "(" ?e ")!" -} -where { - ?in a ?t ; - m:args(?e) -} -values ?t { -m:Factorial -} - diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/math/template/fun.rq b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/math/template/fun.rq deleted file mode 100644 index ed31e673e7..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/math/template/fun.rq +++ /dev/null @@ -1,21 +0,0 @@ -@prefix m: - -template { - kg:turtle(?t) - coalesce(concat( "[", ?fr, ", ", kg:uri(?to), "]"), "") - "(" - group distinct { ?e } - ")" - " " - if (bound(?v), group_concat("d", ?v), "") -} -where { - ?in a ?t ; - m:args/rdf:rest*/rdf:first ?e - optional { ?in m:vars/rdf:rest*/rdf:first ?v } - optional { ?in m:from ?fr ; m:to ?to } -} -values ?t { -m:Integral m:Sigma -} - diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/math/template/list.rq b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/math/template/list.rq deleted file mode 100644 index 8d866dfa29..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/math/template/list.rq +++ /dev/null @@ -1,9 +0,0 @@ -@prefix m: - -template { - ?e ; separator = " " -} -where { - ?in rdf:rest*/rdf:first ?e -} - diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/math/template/matrix.rq b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/math/template/matrix.rq deleted file mode 100644 index c16558ebaf..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/math/template/matrix.rq +++ /dev/null @@ -1,14 +0,0 @@ -@prefix m: - -template { -"matrix:(" "\n" - "(" - group { ?row ; separator = ")\n(" } - ")" - "\n" ")" -} -where { - ?in a m:Matrix ; - m:args/rdf:rest*/rdf:first ?row -} - diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/math/template/start.rq b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/math/template/start.rq deleted file mode 100644 index 99a1c9442d..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/math/template/start.rq +++ /dev/null @@ -1,10 +0,0 @@ -@prefix m: - -template kg:start { - ?in ; separator = "\n\n" -} -where { - ?in a ?t ; - filter not exists {?x ?p ?in} - filter (strstarts(?t, m:)) -} diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/math/template/term.rq b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/math/template/term.rq deleted file mode 100644 index 22e7895948..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/math/template/term.rq +++ /dev/null @@ -1,16 +0,0 @@ -@prefix m: - -template { - ?f ?l ?r -} -where { - ?in a ?t ; - m:args(?f ?r) -} -values (?t ?l){ - (m:Plus " + ") - (m:Minus " - ") - (m:Mult "") - (m:Div "/") - (m:Power "^") -} \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/math/template/var.rq b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/math/template/var.rq deleted file mode 100644 index b155d0d588..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/math/template/var.rq +++ /dev/null @@ -1,8 +0,0 @@ -@prefix m: - -template { - ?v -} -where { - ?in m:name ?v -} diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/math/tmp.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/math/tmp.rdf deleted file mode 100644 index e31f7561c4..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/math/tmp.rdf +++ /dev/null @@ -1,25 +0,0 @@ - - - - - - - - - -]> - - - - - - - "test" - - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/math/tmp/fun.rq b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/math/tmp/fun.rq deleted file mode 100644 index b87c3d5c05..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/math/tmp/fun.rq +++ /dev/null @@ -1,17 +0,0 @@ -@prefix m: - -template { -"function " ?in -# kg:turtle(?t) -# coalesce(concat( "[", ?fr, ", ", kg:uri(?to), "]"), "") -# "(" group_concat(distinct ?e) ")" -# " " group_concat("d", ?v ; separator = " " ) -} -where { -# ?in a ?t - ?in a m:Function -# m:args/rdf:rest*/rdf:first ?e -# optional { ?in m:vars/rdf:rest*/rdf:first ?v } -# optional {?in m:from ?fr ; m:to ?to} -} - diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/owlrule/owlrllite-junit.rul b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/owlrule/owlrllite-junit.rul deleted file mode 100644 index 82e1c8b724..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/owlrule/owlrllite-junit.rul +++ /dev/null @@ -1,1062 +0,0 @@ - - - - - - - -]> - - - - - - - -CONSTRUCT { - owl:Thing a owl:Class . - owl:Nothing a owl:Class . -} -WHERE {} - - - - - - - - - - - -prefix sp: <http://spinrdf.org/spin#> -CONSTRUCT { - _:b0 a sp:ConstraintViolation . - _:b0 sp:arg1 ?x ; sp:arg2 ?y . - _:b0 sp:violationPath owl:sameAs . - _:b0 rdfs:label "Violates owl:differentFrom" . -} -WHERE { - ?x owl:sameAs ?y . - ?x owl:differentFrom ?y . -} - - - - - - - - -prefix sp: <http://spinrdf.org/spin#> -CONSTRUCT { - _:b0 a sp:ConstraintViolation . - _:b0 sp:violationRoot ?x . - _:b0 sp:arg1 ?zi ; sp:arg2 ?zj . - _:b0 rdfs:label "Violation of owl:AllDifferent" . -} -WHERE { - ?x a owl:AllDifferent . - ?x owl:members ?list1 . - ?list1 rdf:rest* ?list2 . - ?list2 rdf:first ?zi . - ?list2 rdf:rest+ ?list3 . - ?list3 rdf:first ?zj . - ?zi owl:sameAs ?zj . -} - - - - - - - -prefix sp: <http://spinrdf.org/spin#> -CONSTRUCT { - _:b0 a sp:ConstraintViolation . - _:b0 sp:violationRoot ?x . - _:b0 rdfs:label "Violation of owl:AllDifferent" . - _:b0 sp:arg1 ?zi ; sp:arg2 ?zj . -} -WHERE { - ?x a owl:AllDifferent . - ?x owl:distinctMembers ?list1 . - ?list1 rdf:rest* ?list2 . - ?list2 rdf:first ?zi . - ?list2 rdf:rest+ ?list3 . - ?list3 rdf:first ?zj . - ?zi owl:sameAs ?zj . -} - - - - - - - -CONSTRUCT { - ?x a ?c . -} -WHERE { - ?p rdfs:domain ?c . - ?x ?p ?y . -} - - - - - - - -CONSTRUCT { - ?y a ?c . -} -WHERE { - ?p rdfs:range ?c . - ?x ?p ?y . filter(! isLiteral(?y)) -} - - - - - -CONSTRUCT { - ?y1 owl:sameAs ?y2 . -} -WHERE { - ?p a owl:FunctionalProperty . - ?x ?p ?y1 . - ?x ?p ?y2 . - FILTER (?y1 != ?y2) . -} - - - - - -CONSTRUCT { - ?x1 owl:sameAs ?x2 . -} -WHERE { - ?p a owl:InverseFunctionalProperty . - ?x1 ?p ?y . - ?x2 ?p ?y . - FILTER (?x1 != ?x2) . -} - - - - - -prefix sp: <http://spinrdf.org/spin#> -CONSTRUCT { - _:b0 a sp:ConstraintViolation . - _:b0 sp:violationRoot ?x . - _:b0 sp:violationPath ?p . - _:b0 rdfs:label "Irreflexive property" . -} -WHERE { - ?p a owl:IrreflexiveProperty . - ?x ?p ?x . -} - - - - - -CONSTRUCT { - ?y ?p ?x . -} -WHERE { - ?p a owl:SymmetricProperty . - ?x ?p ?y . -} - - - - - -prefix sp: <http://spinrdf.org/spin#> -CONSTRUCT { - _:b0 a sp:ConstraintViolation . - _:b0 sp:violationPath ?p . - _:b0 rdfs:label "Antisymmetric property" . - _:b0 sp:arg1 ?x ; sp:arg2 ?y . -} -WHERE { - ?p a owl:AsymmetricProperty . - ?x ?p ?y . - ?y ?p ?x . -} - - - - - - - -CONSTRUCT { - ?x ?p ?z . -} -WHERE { - ?p a owl:TransitiveProperty . - ?x ?p ?y . - ?y ?p ?z . -} - - - - - - - -CONSTRUCT { - ?x ?p2 ?y . -} -WHERE { - ?p1 rdfs:subPropertyOf ?p2 . filter(?p1 != ?p2) - ?x ?p1 ?y . -} - - - - - - - - -prefix c: <http://www.inria.fr/acacia/comma#> -CONSTRUCT { - ?u ?p ?v . -} -WHERE { - ?p owl:propertyChainAxiom ?x . - {select - (group_concat(concat('<', ?pi, '>'); separator = '/') as ?exp) - (concat('select * where { ?u ', ?exp, ' ?v }') as ?query) - where { - ?x rdf:rest*/rdf:first ?pi - } - } - {select (unnest(kg:sparql(?query)) as (?u, ?v)) where {}} -} - - - - - - - - -CONSTRUCT { - ?x ?p2 ?y . -} -WHERE { - ?p1 owl:equivalentProperty ?p2 . filter(?p1 != ?p2) - ?x ?p1 ?y . -} - - - - - - -CONSTRUCT { - ?x ?p1 ?y . -} -WHERE { - ?p1 owl:equivalentProperty ?p2 . filter(?p1 != ?p2) - ?x ?p2 ?y . -} - - - - - - -prefix sp: <http://spinrdf.org/spin#> -CONSTRUCT { - _:b0 a sp:ConstraintViolation . - _:b0 sp:violationPath ?p1, ?p2 . - _:b0 rdfs:label "Property declared disjoint with" . - _:b0 sp:arg1 ?x ; sp:arg2 ?y . -} -WHERE { - ?p1 owl:propertyDisjointWith ?p2 . - ?x ?p1 ?y . - ?x ?p2 ?y . -} - - - - - - -prefix sp: <http://spinrdf.org/spin#> -CONSTRUCT { - _:b0 a sp:ConstraintViolation . - _:b0 sp:violationRoot ?x . - _:b0 sp:violationPath ?pi . - _:b0 rdfs:label "Violation of owl:AllDisjointProperties" . - _:b0 sp:arg1 ?u ; sp:arg2 ?v . -} -WHERE { - ?x a owl:AllDisjointProperties . - ?x owl:members ?list1 . - ?list1 rdf:rest* ?list2 . - ?list2 rdf:first ?pi . - ?list2 rdf:rest+ ?list3 . - ?list3 rdf:first ?pj . - ?u ?pi ?v . - ?u ?pj ?v . -} - - - - - - -CONSTRUCT { - ?y ?p2 ?x . -} -WHERE { - ?p1 owl:inverseOf ?p2 . - ?x ?p1 ?y . -} - - - - - - -CONSTRUCT { - ?y ?p1 ?x . -} -WHERE { - ?p1 owl:inverseOf ?p2 . - ?x ?p2 ?y . -} - - - - - - -prefix sp: <http://spinrdf.org/spin#> -CONSTRUCT { - _:b0 a sp:ConstraintViolation . - _:b0 sp:violationPath ?p . - _:b0 rdfs:label "Negative Property Assertion" . - _:b0 sp:arg1 ?i1 ; sp:arg2 ?i2 . -} -WHERE { - ?x owl:sourceIndividual ?i1 . - ?x owl:assertionProperty ?p . - ?x owl:targetIndividual ?i2 . - ?i1 ?p ?i2 . -} - - - - - - -prefix sp: <http://spinrdf.org/spin#> -CONSTRUCT { - _:b0 a sp:ConstraintViolation . - _:b0 sp:violationPath ?p . - _:b0 rdfs:label "Negative Property Assertion" . - _:b0 sp:arg1 ?i ; sp:arg2 ?lt . -} -WHERE { - ?x owl:sourceIndividual ?i . - ?x owl:assertionProperty ?p . - ?x owl:targetValue ?lt . - ?i ?p ?lt . -} - - - - - - - - -prefix sp: <http://spinrdf.org/spin#> -CONSTRUCT { - _:b0 a sp:ConstraintViolation . - _:b0 sp:violationRoot ?x . - _:b0 rdfs:label "There exists an instance of owl:Nothing" . -} -WHERE { - ?x a owl:Nothing . -} - - - - - - - -prefix c: <http://www.inria.fr/acacia/comma#> -CONSTRUCT { - ?y a ?c . -} -WHERE { - ?c owl:intersectionOf ?x . - ?x rdf:first ?f - ?y a ?f - filter not exists { - ?x rdf:rest+/rdf:first ?ci - filter not exists { ?y a ?ci } - } -} - - - - - - -CONSTRUCT { - ?y a ?ci . -} -WHERE { - ?c owl:intersectionOf ?x . - ?x rdf:rest*/rdf:first ?ci . - ?y a ?c . -} - - - - - - - - -CONSTRUCT { - ?y a ?c . -} -WHERE { - ?c owl:unionOf ?x . - ?x rdf:rest*/rdf:first ?ci . - ?y a ?ci . -} - - - - - - - - -prefix sp: <http://spinrdf.org/spin#> -CONSTRUCT { - _:b0 a sp:ConstraintViolation . - _:b0 sp:violationRoot ?x . - _:b0 rdfs:label "ComplementOf Violation" . - _:b0 sp:arg1 ?c1 . - _:b0 sp:arg2 ?c2 . -} -WHERE { - ?c1 owl:complementOf ?c2 . - ?x a ?c1 . - ?x a ?c2 . -} - - - - - - -CONSTRUCT { - ?u a ?x . -} -WHERE { - ?x owl:someValuesFrom ?y . - ?x owl:onProperty ?p . - ?u ?p ?v . - ?v a ?y . -} - - - - - - -CONSTRUCT { - ?u a ?x . -} -WHERE { - ?x owl:someValuesFrom owl:Thing . - ?x owl:onProperty ?p . - ?u ?p ?v . -} - - - - - - -CONSTRUCT { - ?v a ?y . -} -WHERE { - ?x owl:allValuesFrom ?y . - ?x owl:onProperty ?p . - ?u a ?x . - ?u ?p ?v . -} - - - - - - -CONSTRUCT { - ?u ?p ?y . -} -WHERE { - ?x owl:hasValue ?y . - ?x owl:onProperty ?p . - ?u a ?x . -} - - - - - - -CONSTRUCT { - ?u a ?x . -} -WHERE { - ?x owl:hasValue ?y . - ?x owl:onProperty ?p . - ?u ?p ?y . -} - - - - - - -prefix sp: <http://spinrdf.org/spin#> -CONSTRUCT { - _:b0 a sp:ConstraintViolation . - _:b0 sp:violationRoot ?x . - _:b0 sp:violationPath ?p . - _:b0 rdfs:label "owl:maxCardinality of 0" . - _:b0 sp:arg1 ?u ; sp:arg2 ?u . -} -WHERE { - ?x owl:maxCardinality "0"^^xsd:nonNegativeInteger . - ?x owl:onProperty ?p . - ?u a ?x . - ?u ?p ?y . -} - - - - - - -CONSTRUCT { - ?y1 owl:sameAs ?y2 . -} -WHERE { - ?x owl:maxCardinality "1"^^xsd:nonNegativeInteger . - ?x owl:onProperty ?p . - ?u a ?x . - ?u ?p ?y1 . - ?u ?p ?y2 . -} - - - - - - -prefix sp: <http://spinrdf.org/spin#> -CONSTRUCT { - _:b0 a sp:ConstraintViolation . - _:b0 sp:violationRoot ?c . - _:b0 sp:violationPath ?p . - _:b0 rdfs:label "Maximum qualified cardinality of 0" . - _:b0 sp:arg1 ?u ; sp:arg2 ?y . -} -WHERE { - ?x owl:maxQualifiedCardinality "0"^^xsd:nonNegativeInteger . - ?x owl:onProperty ?p . - ?x owl:onClass ?c . - ?u a ?x . - ?u ?p ?y . - ?y a ?c . -} - - - - - - -prefix sp: <http://spinrdf.org/spin#> -CONSTRUCT { - _:b0 a sp:ConstraintViolation . - _:b0 sp:violationRoot owl:Thing . - _:b0 sp:violationPath ?p . - _:b0 rdfs:label "Qualified max cardinality 0" . - _:b0 sp:arg1 ?u ; sp:arg2 ?y . -} -WHERE { - ?x owl:maxQualifiedCardinality "0"^^xsd:nonNegativeInteger . - ?x owl:onProperty ?p . - ?x owl:onClass owl:Thing . - ?u a ?x . - ?u ?p ?y . -} - - - - - - -CONSTRUCT { - ?y1 owl:sameAs ?y2 . -} -WHERE { - ?x owl:maxQualifiedCardinality "1"^^xsd:nonNegativeInteger . - ?x owl:onProperty ?p . - ?x owl:onClass ?c . - ?u a ?x . - ?u ?p ?y1 . - ?y1 a ?c . - ?u ?p ?y2 . - ?y2 a ?c . -} - - - - - - -CONSTRUCT { - ?y1 owl:sameAs ?y2 . -} -WHERE { - ?x owl:maxQualifiedCardinality "1"^^xsd:nonNegativeInteger . - ?x owl:onProperty ?p . - ?x owl:onClass owl:Thing . - ?u a ?x . - ?u ?p ?y1 . - ?u ?p ?y2 . -} - - - - - - -CONSTRUCT { - ?yi a ?c . -} -WHERE { - ?c owl:oneOf ?x . - ?x rdf:rest*/rdf:first ?yi . -} - - - - - - - - - - -CONSTRUCT { - ?x a ?c2 . -} -WHERE { - ?c1 rdfs:subClassOf ?c2 . filter(?c1 != ?c2) - ?x a ?c1 . -} - - - - - -CONSTRUCT { - ?x a ?c2 . -} -WHERE { - ?c1 owl:equivalentClass ?c2 . filter(?c1 != ?c2) - ?x a ?c1 . -} - - - - - - -CONSTRUCT { - ?x a ?c1 . -} -WHERE { - ?c1 owl:equivalentClass ?c2 . filter(?c1 != ?c2) - ?x a ?c2 . -} - - - - - - -prefix sp: <http://spinrdf.org/spin#> -CONSTRUCT { - _:b0 a sp:ConstraintViolation . - _:b0 sp:violationRoot ?x . - _:b0 rdfs:label "Shared instance of disjoint classes" . - _:b0 sp:arg1 ?c1 ; - sp:arg2 ?c2 -} -WHERE { - ?c1 owl:disjointWith ?c2 . - ?x a ?c1 . - ?x a ?c2 . -} - - - - - - -prefix sp: <http://spinrdf.org/spin#> -CONSTRUCT { - _:b0 a sp:ConstraintViolation . - _:b0 sp:violationRoot ?x . - _:b0 rdfs:label "Shared instance of classes from an AllDisjointClasses block" . - _:b0 sp:arg1 ?ci ; - sp:arg2 ?cj - } -WHERE { - ?y a owl:AllDisjointClasses . - ?y owl:members ?list1 . - ?list1 rdf:rest* ?list2 . - ?list2 rdf:first ?ci . - ?list2 rdf:rest+ ?list3 . - ?list3 rdf:first ?cj . - ?x a ?ci . - ?x a ?cj . -} - - - - - - - - - -CONSTRUCT { - ?c rdfs:subClassOf ?c . - ?c owl:equivalentClass ?c . - ?c rdfs:subClassOf owl:Thing . - owl:Nothing rdfs:subClassOf ?c . -} -WHERE { - ?c a owl:Class . -} - - - - - - - -CONSTRUCT { - ?c1 rdfs:subClassOf ?c3 . -} -WHERE { - ?c1 rdfs:subClassOf ?c2 . - ?c2 rdfs:subClassOf ?c3 . -} - - - - - - - - -CONSTRUCT { - ?c1 rdfs:subClassOf ?c2 . - ?c2 rdfs:subClassOf ?c1 . -} -WHERE { - ?c1 owl:equivalentClass ?c2 . filter(?c1 != ?c2) -} - - - - - - -CONSTRUCT { - ?c1 owl:equivalentClass ?c2 . -} -WHERE { - ?c1 rdfs:subClassOf ?c2 . filter(?c1 != ?c2) - ?c2 rdfs:subClassOf ?c1 . -} - - - - - - -CONSTRUCT { - ?p rdfs:subPropertyOf ?p . - ?p owl:equivalentProperty ?p . -} -WHERE { - ?p a owl:ObjectProperty . -} - - - - - - -CONSTRUCT { - ?p owl:equivalentProperty ?p . -} -WHERE { - ?p a owl:DatatypeProperty . -} - - - - - - -CONSTRUCT { - ?p1 rdfs:subPropertyOf ?p2 . - ?p2 rdfs:subPropertyOf ?p1 . -} -WHERE { - ?p1 owl:equivalentProperty ?p2 . filter(?p1 != ?p2) -} - - - - - - -CONSTRUCT { - ?p1 owl:equivalentProperty ?p2 . -} -WHERE { - ?p1 rdfs:subPropertyOf ?p2 . filter(?p1 != ?p2) - ?p2 rdfs:subPropertyOf ?p1 . -} - - - - - - -CONSTRUCT { - ?p1 rdfs:subPropertyOf ?p3 . -} -WHERE { - ?p1 rdfs:subPropertyOf ?p2 . - ?p2 rdfs:subPropertyOf ?p3 . -} - - - - - - - -CONSTRUCT { - ?p rdfs:domain ?c2 . -} -WHERE { - ?p rdfs:domain ?c1 . - ?c1 rdfs:subClassOf ?c2 . filter(?c1 != ?c2) -} - - - - - - -CONSTRUCT { - ?p1 rdfs:domain ?c . -} -WHERE { - ?p2 rdfs:domain ?c . - ?p1 rdfs:subPropertyOf ?p2 . filter(?p1 != ?p2) -} - - - - - - - - -CONSTRUCT { - ?p rdfs:range ?c2 . -} -WHERE { - ?p rdfs:range ?c1 . - ?c1 rdfs:subClassOf ?c2 . filter(?c1 != ?c2) -} - - - - - - - - -CONSTRUCT { - ?p1 rdfs:range ?c . -} -WHERE { - ?p2 rdfs:range ?c . - ?p1 rdfs:subPropertyOf ?p2 . filter(?p1 != ?p2) -} - - - - - - - - - -CONSTRUCT { - ?c1 rdfs:subClassOf ?c2 . -} -WHERE { - ?c1 owl:hasValue ?i . - ?c1 owl:onProperty ?p1 . - ?c2 owl:hasValue ?i . - ?c2 owl:onProperty ?p2 . -} - - - - - - -CONSTRUCT { - ?c1 rdfs:subClassOf ?c2 . -} -WHERE { -#here - ?y1 rdfs:subClassOf ?y2 . filter(?y1 != ?y2) - ?c1 owl:someValuesFrom ?y1 . - ?c1 owl:onProperty ?p . - ?c2 owl:someValuesFrom ?y2 . - ?c2 owl:onProperty ?p . -} - - - - - - -CONSTRUCT { - ?c1 rdfs:subClassOf ?c2 . -} -WHERE { - ?p1 rdfs:subPropertyOf ?p2 . filter(?p1 != ?p2) - ?c1 owl:someValuesFrom ?y . - ?c1 owl:onProperty ?p1 . - ?c2 owl:someValuesFrom ?y . - ?c2 owl:onProperty ?p2 . -} - - - - - - -CONSTRUCT { - ?c1 rdfs:subClassOf ?c2 . -} -WHERE { - ?y1 rdfs:subClassOf ?y2 . filter(?y1 != ?y2) - ?c1 owl:allValuesFrom ?y1 . - ?c1 owl:onProperty ?p . - ?c2 owl:allValuesFrom ?y2 . - ?c2 owl:onProperty ?p . -} - - - - - - -CONSTRUCT { - ?c2 rdfs:subClassOf ?c1 . -} -WHERE { - ?p1 rdfs:subPropertyOf ?p2 . filter(?p1 != ?p2) - ?c1 owl:allValuesFrom ?y . - ?c1 owl:onProperty ?p1 . - ?c2 owl:allValuesFrom ?y . - ?c2 owl:onProperty ?p2 . -} - - - - - - -CONSTRUCT { - ?c rdfs:subClassOf ?ci . -} -WHERE { - ?c owl:intersectionOf ?x . - ?x rdf:rest*/rdf:first ?ci . -} - - - - - - -CONSTRUCT { - ?ci rdfs:subClassOf ?c . -} -WHERE { - ?c owl:unionOf ?x . - ?x rdf:rest*/rdf:first ?ci . -} - - - - - diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/owlrule/owlrllite.rul b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/owlrule/owlrllite.rul deleted file mode 100644 index 5dd8c468a6..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/owlrule/owlrllite.rul +++ /dev/null @@ -1,1066 +0,0 @@ - - - - - - - -]> - - - - - - - -CONSTRUCT { - owl:Thing a owl:Class . - owl:Nothing a owl:Class . -} -WHERE {} - - - - - - - - - - - -prefix sp: <http://spinrdf.org/spin#> -CONSTRUCT { - _:b0 a sp:ConstraintViolation . - _:b0 sp:arg1 ?x ; sp:arg2 ?y . - _:b0 sp:violationPath owl:sameAs . - _:b0 rdfs:label "Violates owl:differentFrom" . -} -WHERE { - ?x owl:sameAs ?y . - ?x owl:differentFrom ?y . -} - - - - - - - - -prefix sp: <http://spinrdf.org/spin#> -CONSTRUCT { - _:b0 a sp:ConstraintViolation . - _:b0 sp:violationRoot ?x . - _:b0 sp:arg1 ?zi ; sp:arg2 ?zj . - _:b0 rdfs:label "Violation of owl:AllDifferent" . -} -WHERE { - ?x a owl:AllDifferent . - ?x owl:members ?list1 . - ?list1 rdf:rest* ?list2 . - ?list2 rdf:first ?zi . - ?list2 rdf:rest+ ?list3 . - ?list3 rdf:first ?zj . - ?zi owl:sameAs ?zj . -} - - - - - - - -prefix sp: <http://spinrdf.org/spin#> -CONSTRUCT { - _:b0 a sp:ConstraintViolation . - _:b0 sp:violationRoot ?x . - _:b0 rdfs:label "Violation of owl:AllDifferent" . - _:b0 sp:arg1 ?zi ; sp:arg2 ?zj . -} -WHERE { - ?x a owl:AllDifferent . - ?x owl:distinctMembers ?list1 . - ?list1 rdf:rest* ?list2 . - ?list2 rdf:first ?zi . - ?list2 rdf:rest+ ?list3 . - ?list3 rdf:first ?zj . - ?zi owl:sameAs ?zj . -} - - - - - - - -CONSTRUCT { - ?x a ?c . -} -WHERE { - ?p rdfs:domain ?c . - ?x ?p ?y . -} - - - - - - - -CONSTRUCT { - ?y a ?c . -} -WHERE { - ?p rdfs:range ?c . - ?x ?p ?y . filter(! isLiteral(?y)) -} - - - - - -CONSTRUCT { - ?y1 owl:sameAs ?y2 . -} -WHERE { - ?p a owl:FunctionalProperty . - ?x ?p ?y1 . - ?x ?p ?y2 . - FILTER (?y1 != ?y2) . -} - - - - - -CONSTRUCT { - ?x1 owl:sameAs ?x2 . -} -WHERE { - ?p a owl:InverseFunctionalProperty . - ?x1 ?p ?y . - ?x2 ?p ?y . - FILTER (?x1 != ?x2) . -} - - - - - -prefix sp: <http://spinrdf.org/spin#> -CONSTRUCT { - _:b0 a sp:ConstraintViolation . - _:b0 sp:violationRoot ?x . - _:b0 sp:violationPath ?p . - _:b0 rdfs:label "Irreflexive property" . -} -WHERE { - ?p a owl:IrreflexiveProperty . - ?x ?p ?x . -} - - - - - -CONSTRUCT { - ?y ?p ?x . -} -WHERE { - ?p a owl:SymmetricProperty . - ?x ?p ?y . -} - - - - - -prefix sp: <http://spinrdf.org/spin#> -CONSTRUCT { - _:b0 a sp:ConstraintViolation . - _:b0 sp:violationPath ?p . - _:b0 rdfs:label "Antisymmetric property" . - _:b0 sp:arg1 ?x ; sp:arg2 ?y . -} -WHERE { - ?p a owl:AsymmetricProperty . - ?x ?p ?y . - ?y ?p ?x . -} - - - - - - - -CONSTRUCT { - ?x ?p ?z . -} -WHERE { - ?p a owl:TransitiveProperty . - ?x ?p ?y . - ?y ?p ?z . -} - - - - - - - -CONSTRUCT { - ?x ?p2 ?y . -} -WHERE { - ?p1 rdfs:subPropertyOf ?p2 . filter(?p1 != ?p2) - ?x ?p1 ?y . -} - - - - - - - - -CONSTRUCT { - ?u ?p ?v . -} -WHERE { - { - select ?p - (group_concat(concat('<', ?pi, '>'); separator = '/') as ?exp) - (concat('select * where { ?u ', ?exp, ' ?v }') as ?query) - where { - ?p owl:propertyChainAxiom ?x . - ?x rdf:rest*/rdf:first ?pi - } - group by ?p - } - bind(unnest(kg:sparql(?query)) as (?u, ?v)) -} - - - - - - -CONSTRUCT { - ?x ?p2 ?y . -} -WHERE { - ?p1 owl:equivalentProperty ?p2 . filter(?p1 != ?p2) - ?x ?p1 ?y . -} - - - - - - -CONSTRUCT { - ?x ?p1 ?y . -} -WHERE { - ?p1 owl:equivalentProperty ?p2 . filter(?p1 != ?p2) - ?x ?p2 ?y . -} - - - - - - -prefix sp: <http://spinrdf.org/spin#> -CONSTRUCT { - _:b0 a sp:ConstraintViolation . - _:b0 sp:violationPath ?p1, ?p2 . - _:b0 rdfs:label "Property declared disjoint with" . - _:b0 sp:arg1 ?x ; sp:arg2 ?y . -} -WHERE { - ?p1 owl:propertyDisjointWith ?p2 . - ?x ?p1 ?y . - ?x ?p2 ?y . -} - - - - - - -prefix sp: <http://spinrdf.org/spin#> -CONSTRUCT { - _:b0 a sp:ConstraintViolation . - _:b0 sp:violationRoot ?x . - _:b0 sp:violationPath ?pi . - _:b0 rdfs:label "Violation of owl:AllDisjointProperties" . - _:b0 sp:arg1 ?u ; sp:arg2 ?v . -} -WHERE { - ?x a owl:AllDisjointProperties . - ?x owl:members ?list1 . - ?list1 rdf:rest* ?list2 . - ?list2 rdf:first ?pi . - ?list2 rdf:rest+ ?list3 . - ?list3 rdf:first ?pj . - ?u ?pi ?v . - ?u ?pj ?v . -} - - - - - - -CONSTRUCT { - ?y ?p2 ?x . -} -WHERE { - ?p1 owl:inverseOf ?p2 . - ?x ?p1 ?y . -} - - - - - - -CONSTRUCT { - ?y ?p1 ?x . -} -WHERE { - ?p1 owl:inverseOf ?p2 . - ?x ?p2 ?y . -} - - - - - - -prefix sp: <http://spinrdf.org/spin#> -CONSTRUCT { - _:b0 a sp:ConstraintViolation . - _:b0 sp:violationPath ?p . - _:b0 rdfs:label "Negative Property Assertion" . - _:b0 sp:arg1 ?i1 ; sp:arg2 ?i2 . -} -WHERE { - ?x owl:sourceIndividual ?i1 . - ?x owl:assertionProperty ?p . - ?x owl:targetIndividual ?i2 . - ?i1 ?p ?i2 . -} - - - - - - -prefix sp: <http://spinrdf.org/spin#> -CONSTRUCT { - _:b0 a sp:ConstraintViolation . - _:b0 sp:violationPath ?p . - _:b0 rdfs:label "Negative Property Assertion" . - _:b0 sp:arg1 ?i ; sp:arg2 ?lt . -} -WHERE { - ?x owl:sourceIndividual ?i . - ?x owl:assertionProperty ?p . - ?x owl:targetValue ?lt . - ?i ?p ?lt . -} - - - - - - - - -prefix sp: <http://spinrdf.org/spin#> -CONSTRUCT { - _:b0 a sp:ConstraintViolation . - _:b0 sp:violationRoot ?x . - _:b0 rdfs:label "There exists an instance of owl:Nothing" . -} -WHERE { - ?x a owl:Nothing . -} - - - - - - - -CONSTRUCT { - ?y a ?c . -} -WHERE { - ?c owl:intersectionOf ?x . - ?x rdf:first ?f - ?y a ?f - filter not exists { - ?x rdf:rest+/rdf:first ?ci - filter not exists { ?y a ?ci } - } -} - - - - - - -CONSTRUCT { - ?y a ?ci . -} -WHERE { - ?c owl:intersectionOf ?x . - ?x rdf:rest*/rdf:first ?ci . - ?y a ?c . -} - - - - - - - - -CONSTRUCT { - ?y a ?c . -} -WHERE { - ?c owl:unionOf ?x . - ?x rdf:rest*/rdf:first ?ci . - ?y a ?ci . -} - - - - - - - - -prefix sp: <http://spinrdf.org/spin#> -CONSTRUCT { - _:b0 a sp:ConstraintViolation . - _:b0 sp:violationRoot ?x . - _:b0 rdfs:label "ComplementOf Violation" . - _:b0 sp:arg1 ?c1 . - _:b0 sp:arg2 ?c2 . -} -WHERE { - ?c1 owl:complementOf ?c2 . - ?x a ?c1 . - ?x a ?c2 . -} - - - - - - -CONSTRUCT { - ?u a ?x . -} -WHERE { - ?x owl:someValuesFrom ?y . - ?x owl:onProperty ?p . - ?u ?p ?v . - ?v a ?y . -} - - - - - - -CONSTRUCT { - ?u a ?x . -} -WHERE { - ?x owl:someValuesFrom owl:Thing . - ?x owl:onProperty ?p . - ?u ?p ?v . -} - - - - - - -CONSTRUCT { - ?v a ?y . -} -WHERE { - ?x owl:allValuesFrom ?y . - ?x owl:onProperty ?p . - ?u a ?x . - ?u ?p ?v . -} - - - - - - -CONSTRUCT { - ?u ?p ?y . -} -WHERE { - ?x owl:hasValue ?y . - ?x owl:onProperty ?p . - ?u a ?x . -} - - - - - - -CONSTRUCT { - ?u a ?x . -} -WHERE { - ?x owl:hasValue ?y . - ?x owl:onProperty ?p . - ?u ?p ?y . -} - - - - - - -prefix sp: <http://spinrdf.org/spin#> -CONSTRUCT { - _:b0 a sp:ConstraintViolation . - _:b0 sp:violationRoot ?x . - _:b0 sp:violationPath ?p . - _:b0 rdfs:label "owl:maxCardinality of 0" . - _:b0 sp:arg1 ?u ; sp:arg2 ?u . -} -WHERE { - ?x owl:maxCardinality "0"^^xsd:nonNegativeInteger . - ?x owl:onProperty ?p . - ?u a ?x . - ?u ?p ?y . -} - - - - - - -CONSTRUCT { - ?y1 owl:sameAs ?y2 . -} -WHERE { - ?x owl:maxCardinality "1"^^xsd:nonNegativeInteger . - ?x owl:onProperty ?p . - ?u a ?x . - ?u ?p ?y1 . - ?u ?p ?y2 . -} - - - - - - -prefix sp: <http://spinrdf.org/spin#> -CONSTRUCT { - _:b0 a sp:ConstraintViolation . - _:b0 sp:violationRoot ?c . - _:b0 sp:violationPath ?p . - _:b0 rdfs:label "Maximum qualified cardinality of 0" . - _:b0 sp:arg1 ?u ; sp:arg2 ?y . -} -WHERE { - ?x owl:maxQualifiedCardinality "0"^^xsd:nonNegativeInteger . - ?x owl:onProperty ?p . - ?x owl:onClass ?c . - ?u a ?x . - ?u ?p ?y . - ?y a ?c . -} - - - - - - -prefix sp: <http://spinrdf.org/spin#> -CONSTRUCT { - _:b0 a sp:ConstraintViolation . - _:b0 sp:violationRoot owl:Thing . - _:b0 sp:violationPath ?p . - _:b0 rdfs:label "Qualified max cardinality 0" . - _:b0 sp:arg1 ?u ; sp:arg2 ?y . -} -WHERE { - ?x owl:maxQualifiedCardinality "0"^^xsd:nonNegativeInteger . - ?x owl:onProperty ?p . - ?x owl:onClass owl:Thing . - ?u a ?x . - ?u ?p ?y . -} - - - - - - -CONSTRUCT { - ?y1 owl:sameAs ?y2 . -} -WHERE { - ?x owl:maxQualifiedCardinality "1"^^xsd:nonNegativeInteger . - ?x owl:onProperty ?p . - ?x owl:onClass ?c . - ?u a ?x . - ?u ?p ?y1 . - ?y1 a ?c . - ?u ?p ?y2 . - ?y2 a ?c . -} - - - - - - -CONSTRUCT { - ?y1 owl:sameAs ?y2 . -} -WHERE { - ?x owl:maxQualifiedCardinality "1"^^xsd:nonNegativeInteger . - ?x owl:onProperty ?p . - ?x owl:onClass owl:Thing . - ?u a ?x . - ?u ?p ?y1 . - ?u ?p ?y2 . -} - - - - - - -CONSTRUCT { - ?yi a ?c . -} -WHERE { - ?c owl:oneOf ?x . - ?x rdf:rest*/rdf:first ?yi . - filter (! isLiteral(?yi)) -} - - - - - - - - - - - - - - -CONSTRUCT { - ?x a ?c2 . -} -WHERE { - ?c1 owl:equivalentClass ?c2 . filter(?c1 != ?c2) - ?x a ?c1 . -} - - - - - - -CONSTRUCT { - ?x a ?c1 . -} -WHERE { - ?c1 owl:equivalentClass ?c2 . filter(?c1 != ?c2) - ?x a ?c2 . -} - - - - - - -prefix sp: <http://spinrdf.org/spin#> -CONSTRUCT { - _:b0 a sp:ConstraintViolation . - _:b0 sp:violationRoot ?x . - _:b0 rdfs:label "Shared instance of disjoint classes" . - _:b0 sp:arg1 ?c1 ; - sp:arg2 ?c2 -} -WHERE { - ?c1 owl:disjointWith ?c2 . - ?x a ?c1 . - ?x a ?c2 . -} - - - - - - -prefix sp: <http://spinrdf.org/spin#> -CONSTRUCT { - _:b0 a sp:ConstraintViolation . - _:b0 sp:violationRoot ?x . - _:b0 rdfs:label "Shared instance of classes from an AllDisjointClasses block" . - _:b0 sp:arg1 ?ci ; - sp:arg2 ?cj - } -WHERE { - ?y a owl:AllDisjointClasses . - ?y owl:members ?list1 . - ?list1 rdf:rest* ?list2 . - ?list2 rdf:first ?ci . - ?list2 rdf:rest+ ?list3 . - ?list3 rdf:first ?cj . - ?x a ?ci . - ?x a ?cj . -} - - - - - - - - - -CONSTRUCT { - ?c rdfs:subClassOf ?c . - ?c owl:equivalentClass ?c . - ?c rdfs:subClassOf owl:Thing . - owl:Nothing rdfs:subClassOf ?c . -} -WHERE { - ?c a owl:Class . -} - - - - - - -CONSTRUCT { - ?c1 rdfs:subClassOf ?c2 . - ?c2 rdfs:subClassOf ?c1 . -} -WHERE { - ?c1 owl:equivalentClass ?c2 . filter(?c1 != ?c2) -} - - - - - -CONSTRUCT { - ?c rdfs:subClassOf ?ci . -} -WHERE { - ?c owl:intersectionOf ?x . - ?x rdf:rest*/rdf:first ?ci . -} - - - - - - -CONSTRUCT { - ?ci rdfs:subClassOf ?c . -} -WHERE { - ?c owl:unionOf ?x . - ?x rdf:rest*/rdf:first ?ci . -} - - - - - - - - -CONSTRUCT { - ?c1 owl:equivalentClass ?c2 . -} -WHERE { - ?c1 rdfs:subClassOf ?c2 . filter(?c1 != ?c2) - ?c2 rdfs:subClassOf ?c1 . -} - - - - - - -CONSTRUCT { - ?p rdfs:subPropertyOf ?p . - ?p owl:equivalentProperty ?p . -} -WHERE { - ?p a owl:ObjectProperty . -} - - - - - - -CONSTRUCT { - ?p owl:equivalentProperty ?p . -} -WHERE { - ?p a owl:DatatypeProperty . -} - - - - - - -CONSTRUCT { - ?p1 rdfs:subPropertyOf ?p2 . - ?p2 rdfs:subPropertyOf ?p1 . -} -WHERE { - ?p1 owl:equivalentProperty ?p2 . filter(?p1 != ?p2) -} - - - - - - -CONSTRUCT { - ?p1 owl:equivalentProperty ?p2 . -} -WHERE { - ?p1 rdfs:subPropertyOf ?p2 . filter(?p1 != ?p2) - ?p2 rdfs:subPropertyOf ?p1 . -} - - - - - - -CONSTRUCT { - ?p1 rdfs:subPropertyOf ?p3 . -} -WHERE { - ?p1 rdfs:subPropertyOf ?p2 . - ?p2 rdfs:subPropertyOf ?p3 . -} - - - - - - - -CONSTRUCT { - ?p rdfs:domain ?c2 . -} -WHERE { - ?p rdfs:domain ?c1 . - ?c1 rdfs:subClassOf ?c2 . filter(?c1 != ?c2) -} - - - - - - -CONSTRUCT { - ?p1 rdfs:domain ?c . -} -WHERE { - ?p2 rdfs:domain ?c . - ?p1 rdfs:subPropertyOf ?p2 . filter(?p1 != ?p2) -} - - - - - - - - -CONSTRUCT { - ?p rdfs:range ?c2 . -} -WHERE { - ?p rdfs:range ?c1 . - ?c1 rdfs:subClassOf ?c2 . filter(?c1 != ?c2) -} - - - - - - - - -CONSTRUCT { - ?p1 rdfs:range ?c . -} -WHERE { - ?p2 rdfs:range ?c . - ?p1 rdfs:subPropertyOf ?p2 . filter(?p1 != ?p2) -} - - - - - - - - - -CONSTRUCT { - ?c1 rdfs:subClassOf ?c2 . -} -WHERE { - ?p1 rdfs:subPropertyOf ?p2 . filter(?p1 != ?p2) - ?c1 owl:hasValue ?i . - ?c1 owl:onProperty ?p1 . - ?c2 owl:hasValue ?i . - ?c2 owl:onProperty ?p2 . -} - - - - - - -CONSTRUCT { - ?c1 rdfs:subClassOf ?c2 . -} -WHERE { -#here - ?y1 rdfs:subClassOf ?y2 . filter(?y1 != ?y2) - ?c1 owl:someValuesFrom ?y1 . - ?c1 owl:onProperty ?p . - ?c2 owl:someValuesFrom ?y2 . - ?c2 owl:onProperty ?p . -} - - - - - - -CONSTRUCT { - ?c1 rdfs:subClassOf ?c2 . -} -WHERE { - ?p1 rdfs:subPropertyOf ?p2 . filter(?p1 != ?p2) - ?c1 owl:someValuesFrom ?y . - ?c1 owl:onProperty ?p1 . - ?c2 owl:someValuesFrom ?y . - ?c2 owl:onProperty ?p2 . -} - - - - - - -CONSTRUCT { - ?c1 rdfs:subClassOf ?c2 . -} -WHERE { - ?y1 rdfs:subClassOf ?y2 . filter(?y1 != ?y2) - ?c1 owl:allValuesFrom ?y1 . - ?c1 owl:onProperty ?p . - ?c2 owl:allValuesFrom ?y2 . - ?c2 owl:onProperty ?p . -} - - - - - - -CONSTRUCT { - ?c2 rdfs:subClassOf ?c1 . -} -WHERE { - ?p1 rdfs:subPropertyOf ?p2 . filter(?p1 != ?p2) - ?c1 owl:allValuesFrom ?y . - ?c1 owl:onProperty ?p1 . - ?c2 owl:allValuesFrom ?y . - ?c2 owl:onProperty ?p2 . -} - - - - - - -CONSTRUCT { - ?c1 rdfs:subClassOf ?c3 . -} -WHERE { - ?c1 rdfs:subClassOf ?c2 . - ?c2 rdfs:subClassOf ?c3 . -} - - - - - - -CONSTRUCT { - ?x a ?c2 . -} -WHERE { - ?x a ?c1 . - ?c1 rdfs:subClassOf ?c2 -} - - - - - - diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/rdfa/f1.html b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/rdfa/f1.html deleted file mode 100644 index c7255776b7..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/rdfa/f1.html +++ /dev/null @@ -1,15 +0,0 @@ - - - ... - - - ... -

The Trouble with Bob

-

Date: 2011-09-10

- ... -
- - - diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/rdfa/f2.html b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/rdfa/f2.html deleted file mode 100644 index 940b428494..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/rdfa/f2.html +++ /dev/null @@ -1,16 +0,0 @@ - - - ... - - -
-

The trouble with Bob

- ... -

Alice

-
-

The trouble with Bob is that he takes much better photos than I do:

-
- ... -
- - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/rdfa/f3.html b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/rdfa/f3.html deleted file mode 100644 index 67049d839e..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/rdfa/f3.html +++ /dev/null @@ -1,12 +0,0 @@ - - - ... - - - - ... - - - ... - - diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/test/method.rq b/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/test/method.rq deleted file mode 100644 index 7eee4338f2..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/engine/data/test/method.rq +++ /dev/null @@ -1,110 +0,0 @@ -# -# Method definition and method call -# -@method -select * -#(xt:method(us:area, us:Circle, ?x) as ?aa) -(method(us:area, ?x) as ?a) -(method(us:perimeter, ?x) as ?p) -where { - ?x a us:Circle -} - - -@type dt:literal -function us:area(?x) { - xt:display("area: ", ?x) ; - return (0) -} - -function us:area(?x) { - xt:display("area: ", ?x) ; - return (0) -} - -function us:perimeter(?x) { - xt:display("perimeter: ", ?x) ; - return (0) -} - - - - -@type us:Composite -function us:area(?x) { - method(us:compose, ?x, us:area) -} - -@type us:Composite -function us:perimeter(?x) { - method(us:compose, ?x, us:perimeter) -} - -@type us:Composite -function us:compose(?x, ?fun) { - let (select * (sum(method(?fun, ?e)) as ?sum) - where { ?x us:member/rdf:rest*/rdf:first ?e }) { - ?sum - } -} - - - - - -@type us:Rectangle -function us:area(?x) { - method(us:compose, ?x, lambda(?w, ?l) { ?w * ?l }) -} - -@type us:Rectangle -function us:perimeter(?x) { - method(us:compose, ?x, lambda(?w, ?l) { 2 * (?w + ?l) }) - -} - -@type us:Rectangle -function us:compose(?x, ?fun) { - let (select * where { ?x us:width ?w ; us:length ?l }) { - funcall(?fun, ?w, ?l) - } -} - - - - -@type us:Square -function us:area(?x) { - method(us:compose, ?x, us:size, lambda(?s) { ?s * ?s }) -} - - -@type us:Square -function us:perimeter(?x) { - method(us:compose, ?x, us:size, lambda(?s) { 4 * ?s }) -} - - -@type us:Circle -function us:area(?x) { - method(us:compose, ?x, us:radius, lambda(?r) { 3.1416 * ?r * ?r }) -} - -@type us:Circle -function us:perimeter(?x) { - method(us:compose, ?x, us:radius, lambda(?r) { 2 * 3.1416 * ?r}) -} - - - - -@type us:Figure -function us:compose(?x, ?p, ?fun) { - let (select * where { ?x ?p ?s }) { - funcall(?fun, ?s) - } -} - - - - diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/research/data/test/human.rdfs b/corese-unit-test/src/test/resources/fr/inria/corese/research/data/test/human.rdfs deleted file mode 100644 index 73c7459fe4..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/research/data/test/human.rdfs +++ /dev/null @@ -1,211 +0,0 @@ - - - - - ]> - - - - - - a living organism characterized by voluntary movement. - - être vivant doué de sensibilite de mobilité. - - - - - - an animal that produces gametes (spermatozoa) that can fertilize female gametes (ova). - - individu appartenant au sexe qui possède le pouvoir de fécondation. - - - - - - an animal that produces gametes (ova) that can be fertilized by male gametes (spermatozoa). - - animal appartenant au sexe apte à produire des ovules. - - - - - - - an adult male person - - mâle adulte de l'espèce humaine. - - - - - - - - a member of the human species - - - - - un membre de l'espèce humaine. - - - - - - someone who lectures professionally - - personne qui enseigne une discipline, une technique, un art. - - - - - - - - a person who devotes himself to doing research - - - personne adonnée à des recherches spécialisées. - - - - - - - an adult female person - - femelle adulte de l'espèce humaine. - - - - - - - relation between an animal and another animal from which it is descended. - - relation entre un animal et un autre animal duquel il descend. - - - - - - relation between an animal and another animal which gave birth to it. - - relation entre un animal et un autre animal qui lui a donné naissance. - - - - - relation between an animal and another animal to which it gave birth. - - relation entre un animal et un autre animal auquel il a donné naissance. - - - - - - - to have for parent a male. - - avoir pour parent un mâle. - - - - - - - to have for parent a female. - - avoir pour parent un femmelle. - - - - - - - relation with a male who has the same parents. - - relation avec un mâle ayant les mêmes parents. - - - - - - - relation with a female who has the same parents. - - relation avec une femelle ayant les mêmes parents. - - - - - - - relation between a person and another person he or she knows well and regards with affection and trust. - - relation entre une personne et une autre personne qui est l'objet d'un attachement privilégié. - - - - - - designation of something. - désignation de quelque chose. - - - - - - - - express in some way the approximate length of the shoes for a person. - taille, exprimée en points, des chaussures d'une personne. - - - - - - - complete existence duration. - durée complète d'existence. - - - - - - - - - express in some way the approximate dimensions of the shirts of a person. - dimensions approximatives des chemises portées par une personne. - - - - - - - - - express in some way the approximate dimensions of the trousers of a person. - dimensions approximatives des pantalons portés par une personne. - - - - - - - - a person's partner in marriage. - le partenaire d'une personne dans un mariage. - - - - diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/research/data/test/human1.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/research/data/test/human1.rdf deleted file mode 100644 index a8ed92c296..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/research/data/test/human1.rdf +++ /dev/null @@ -1,83 +0,0 @@ - - - ]> - - - - - 2015-01-29 - - - - Harry - - - 32 08 98 - - - - - John - 14 - 37 - - - - Mark - 8 - 14 - 9 - 36 - - - - - - - Eve - - - - - - - David - - - - - Alice - - - - - - Jack - - - - 95 - - - Flora - - - - - Laura - - - - - Jennifer - - - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/research/data/test/human2.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/research/data/test/human2.rdf deleted file mode 100644 index 49bc45bc8a..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/research/data/test/human2.rdf +++ /dev/null @@ -1,88 +0,0 @@ - - - ]> - - - - - - - 7 - 28 - 12 - 8 - Lucas - - - - - - 11 - 38 - 102 - 12 - Gaston - - - - - - - - - 10 - 42 - 46 - 13 - William - - - - 8 - 71 - 30 - 9 - Pierre - - - - - - 7 - 36 - 9 - 40 - - - - Sophie - - - - - - Catherine - - - - Laura - - - - 12 - 44 - - - - - - - - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/research/data/test/iso.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/research/data/test/iso.rdf deleted file mode 100644 index 2e378032b9..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/research/data/test/iso.rdf +++ /dev/null @@ -1,23 +0,0 @@ - - - - - - - - - -]> - - - - - Jos - - - - diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/research/data/test/iso.ttl b/corese-unit-test/src/test/resources/fr/inria/corese/research/data/test/iso.ttl deleted file mode 100644 index cd30588779..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/research/data/test/iso.ttl +++ /dev/null @@ -1,4 +0,0 @@ -@base . -@prefix c: . - - c:name "Jos" diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/research/data/test/method.rq b/corese-unit-test/src/test/resources/fr/inria/corese/research/data/test/method.rq deleted file mode 100644 index 7eee4338f2..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/research/data/test/method.rq +++ /dev/null @@ -1,110 +0,0 @@ -# -# Method definition and method call -# -@method -select * -#(xt:method(us:area, us:Circle, ?x) as ?aa) -(method(us:area, ?x) as ?a) -(method(us:perimeter, ?x) as ?p) -where { - ?x a us:Circle -} - - -@type dt:literal -function us:area(?x) { - xt:display("area: ", ?x) ; - return (0) -} - -function us:area(?x) { - xt:display("area: ", ?x) ; - return (0) -} - -function us:perimeter(?x) { - xt:display("perimeter: ", ?x) ; - return (0) -} - - - - -@type us:Composite -function us:area(?x) { - method(us:compose, ?x, us:area) -} - -@type us:Composite -function us:perimeter(?x) { - method(us:compose, ?x, us:perimeter) -} - -@type us:Composite -function us:compose(?x, ?fun) { - let (select * (sum(method(?fun, ?e)) as ?sum) - where { ?x us:member/rdf:rest*/rdf:first ?e }) { - ?sum - } -} - - - - - -@type us:Rectangle -function us:area(?x) { - method(us:compose, ?x, lambda(?w, ?l) { ?w * ?l }) -} - -@type us:Rectangle -function us:perimeter(?x) { - method(us:compose, ?x, lambda(?w, ?l) { 2 * (?w + ?l) }) - -} - -@type us:Rectangle -function us:compose(?x, ?fun) { - let (select * where { ?x us:width ?w ; us:length ?l }) { - funcall(?fun, ?w, ?l) - } -} - - - - -@type us:Square -function us:area(?x) { - method(us:compose, ?x, us:size, lambda(?s) { ?s * ?s }) -} - - -@type us:Square -function us:perimeter(?x) { - method(us:compose, ?x, us:size, lambda(?s) { 4 * ?s }) -} - - -@type us:Circle -function us:area(?x) { - method(us:compose, ?x, us:radius, lambda(?r) { 3.1416 * ?r * ?r }) -} - -@type us:Circle -function us:perimeter(?x) { - method(us:compose, ?x, us:radius, lambda(?r) { 2 * 3.1416 * ?r}) -} - - - - -@type us:Figure -function us:compose(?x, ?p, ?fun) { - let (select * where { ?x ?p ?s }) { - funcall(?fun, ?s) - } -} - - - - diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/research/data/test/myshape.ttl b/corese-unit-test/src/test/resources/fr/inria/corese/research/data/test/myshape.ttl deleted file mode 100644 index 1277b69c7d..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/research/data/test/myshape.ttl +++ /dev/null @@ -1,42 +0,0 @@ -@prefix sh: . -@prefix foaf: . - -us:test1 a sh:NodeShape ; -sh:targetClass foaf:Person ; -sh:property [ - sh:path foaf:knows; - sh:minCount 1; - sh:class foaf:Person; - sh:message "Object of foaf:knows should be of type foaf:Person" -] -. - - -us:test2 a sh:NodeShape ; -sh:targetObjectsOf foaf:knows ; -sh:property [ - sh:path [ sh:inversePath foaf:knows ] ; - sh:class foaf:Person ; - sh:message "Subject of foaf:knows should be of type foaf:Person" -] -. - -us:test3 a sh:NodeShape ; -sh:targetObjectsOf foaf:knowsss ; -sh:property [ - sh:path [ sh:inversePath foaf:knows ] ; - sh:class foaf:Person ; - sh:message "Subject of foaf:knows should be of type foaf:Person" -] -. - -us:John a foaf:Person ; -foaf:knows us:James -. - -us:James a foaf:Person ; -foaf:knows us:John, us:Jim -. - - -us:Jesse foaf:knows us:James . diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/research/data/test/primerdata.ttl b/corese-unit-test/src/test/resources/fr/inria/corese/research/data/test/primerdata.ttl deleted file mode 100644 index 7b986bc2e1..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/research/data/test/primerdata.ttl +++ /dev/null @@ -1,5 +0,0 @@ -@prefix f: - -us:John a f:Man, f:Woman -us:Jack a f:Man, f:Woman -. diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/research/data/test/shapeexp.ttl b/corese-unit-test/src/test/resources/fr/inria/corese/research/data/test/shapeexp.ttl deleted file mode 100644 index 400e00205c..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/research/data/test/shapeexp.ttl +++ /dev/null @@ -1,27 +0,0 @@ -@prefix sh: . -@prefix h: - - -us:test1 a sh:NodeShape ; -sh:targetClass h:Person ; -sh:property [ - sh:path h:age ; - sh:evaluate (rq:gt (rq:self) 18) -] ; -#sh:function [ sh:name us:testlist ; sh:value ((h:age 50)(h:shoesize 10)) ] ; -# sh:evaluate return true if property is missing -# sh:compute return error() - -sh:evaluate2 (rq:gt h:age (rq:mult 1 h:shoesize)) ; - -sh:evaluate2 - (rq:lt h:shoesize (rq:if (rq:gt h:age 15) h:shirtsize (rq:coalesce h:undef h:unedf2 h:age))) ; - -sh:evaluate2 (xt:member rdf:type (xt:list (rq:self h:Lecturer) (rq:self h:Man) (rq:self h:Person))) ; - -sh:function2 us:mytest ; - -sh:function2 [ sh:name sh:evaluate ; sh:value (rq:gt h:age (rq:mult 2 h:shoesize)) ] ; - -sh:function2 [ sh:name sh:evaluate ; sh:value (rq:ne (rq:self) (rq:self us:JohnDoe)) ] -. diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/research/data/test/shapeexp1.ttl b/corese-unit-test/src/test/resources/fr/inria/corese/research/data/test/shapeexp1.ttl deleted file mode 100644 index 4c158bfa04..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/research/data/test/shapeexp1.ttl +++ /dev/null @@ -1,12 +0,0 @@ -@prefix sh: . -@prefix xsh: . -@prefix h: - - -us:test1 a sh:NodeShape ; -sh:targetClass h:Person ; -sh:property [ - sh:path h:age ; - xsh:evaluate (rq:gt (rq:self) 18) -] -. diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/research/data/test/shapeexp10.ttl b/corese-unit-test/src/test/resources/fr/inria/corese/research/data/test/shapeexp10.ttl deleted file mode 100644 index 8b330e8ce9..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/research/data/test/shapeexp10.ttl +++ /dev/null @@ -1,23 +0,0 @@ -@prefix sh: . -@prefix xsh: . -@prefix h: - - -us:test1 a sh:NodeShape ; -sh:targetClass h:Person ; - -sh:property [ - sh:path h:hasFather ; - sh:qualifiedValueShape [ - sh:class h:Male - ] ; - sh:qualifiedMinCount 1 -] ; -sh:property [ - sh:path h:hasMother ; - sh:qualifiedValueShape [ - sh:class h:Female - ] ; - sh:qualifiedMinCount 1 -] -. diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/research/data/test/shapeexp2.ttl b/corese-unit-test/src/test/resources/fr/inria/corese/research/data/test/shapeexp2.ttl deleted file mode 100644 index 812618465e..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/research/data/test/shapeexp2.ttl +++ /dev/null @@ -1,20 +0,0 @@ -@prefix sh: . -@prefix xsh: . -@prefix h: - - -us:test1 a sh:NodeShape ; -sh:targetSubjectsOf rdf:type ; -sh:property [ -sh:path (rdf:type [xsh:filter([sh:pattern h:])]); - -xsh:evaluate (xt:member (rq:self) -(rq:list h:Lecturer h:Researcher h:Man h:Woman h:Person) -) - -] - -. - - - diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/research/data/test/shapeexp3.ttl b/corese-unit-test/src/test/resources/fr/inria/corese/research/data/test/shapeexp3.ttl deleted file mode 100644 index c8575ced38..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/research/data/test/shapeexp3.ttl +++ /dev/null @@ -1,12 +0,0 @@ -@prefix sh: . -@prefix xsh: . -@prefix h: - - -us:test1 a sh:NodeShape ; -sh:targetClass h:Person ; -sh:property [ - sh:path h:age ; - xsh:function [ xsh:evaluate (rq:gt (rq:self) 18) ] -] -. diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/research/data/test/shapeexp4.rq b/corese-unit-test/src/test/resources/fr/inria/corese/research/data/test/shapeexp4.rq deleted file mode 100644 index a1b5c17bf4..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/research/data/test/shapeexp4.rq +++ /dev/null @@ -1,11 +0,0 @@ -prefix sh: . - -@public -function us:disjoint(node, exp) { - let ((path1 path2) = exp, - list1 = sh:pathfinder(path1, node), - list2 = sh:pathfinder(path2, node), - res = mapany(xt:member, list1, xt:list(list2))) { - return (! res) - } -} diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/research/data/test/shapeexp4.ttl b/corese-unit-test/src/test/resources/fr/inria/corese/research/data/test/shapeexp4.ttl deleted file mode 100644 index bd50adac02..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/research/data/test/shapeexp4.ttl +++ /dev/null @@ -1,11 +0,0 @@ -@prefix sh: . -@prefix xsh: . -@prefix h: - - -us:test1 a sh:NodeShape ; -sh:targetClass h:Man, h:Woman ; -xsh:function [ -us:disjoint ([ sh:oneOrMorePath h:hasFriend ] [ sh:oneOrMorePath h:hasChild ]) ] - -. diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/research/data/test/shapeexp6.rq b/corese-unit-test/src/test/resources/fr/inria/corese/research/data/test/shapeexp6.rq deleted file mode 100644 index 34b139e2fb..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/research/data/test/shapeexp6.rq +++ /dev/null @@ -1,8 +0,0 @@ -prefix sh: . - -@public -function us:test(node, exp) { - let ((shape) = exp) { - sh:eval(shape, node) - } -} diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/research/data/test/shapeexp6.ttl b/corese-unit-test/src/test/resources/fr/inria/corese/research/data/test/shapeexp6.ttl deleted file mode 100644 index 1e12be1521..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/research/data/test/shapeexp6.ttl +++ /dev/null @@ -1,12 +0,0 @@ -@prefix sh: . -@prefix xsh: . -@prefix h: - - -us:test1 a sh:NodeShape ; -sh:targetClass h:Person ; -xsh:function [ - us:test ( [ sh:class h:Person ] ) -] - -. diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/research/data/test/shapeexp7.rq b/corese-unit-test/src/test/resources/fr/inria/corese/research/data/test/shapeexp7.rq deleted file mode 100644 index bc63158aff..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/research/data/test/shapeexp7.rq +++ /dev/null @@ -1,11 +0,0 @@ -prefix sh: . - -@public -function us:test(exp) { - let ((class) = exp, - select ?class (aggregate(distinct ?s) as ?list) - where { ?s rdf:type ?class } - ) { - return (list) - } -} diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/research/data/test/shapeexp7.ttl b/corese-unit-test/src/test/resources/fr/inria/corese/research/data/test/shapeexp7.ttl deleted file mode 100644 index e65f307c1b..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/research/data/test/shapeexp7.ttl +++ /dev/null @@ -1,9 +0,0 @@ -@prefix sh: . -@prefix xsh: . -@prefix h: - - -us:test1 a sh:NodeShape ; -xsh:targetFunction [ us:test (h:Person) ] ; -sh:class h:Person -. diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/research/data/test/shapeexp8.rq b/corese-unit-test/src/test/resources/fr/inria/corese/research/data/test/shapeexp8.rq deleted file mode 100644 index b11e60a03d..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/research/data/test/shapeexp8.rq +++ /dev/null @@ -1,11 +0,0 @@ -prefix sh: . - -@public -function us:test(subject, node, exp) { - let ((predicate) = exp, - select ?node ?predicate (aggregate(distinct ?object) as ?list) - where { ?node ?predicate ?object } - ) { - return (list) - } -} diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/research/data/test/shapeexp8.ttl b/corese-unit-test/src/test/resources/fr/inria/corese/research/data/test/shapeexp8.ttl deleted file mode 100644 index 7a5bb537f1..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/research/data/test/shapeexp8.ttl +++ /dev/null @@ -1,12 +0,0 @@ -@prefix sh: . -@prefix xsh: . -@prefix h: - - -us:test1 a sh:NodeShape ; -sh:targetClass h:Person ; -sh:property [ - sh:path (h:hasFriend [xsh:function [ us:test (h:hasChild) ]] h:hasFriend ) ; - sh:class h:Person -] -. diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/research/data/test/shapeexp9.rq b/corese-unit-test/src/test/resources/fr/inria/corese/research/data/test/shapeexp9.rq deleted file mode 100644 index 7b5d1b63b3..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/research/data/test/shapeexp9.rq +++ /dev/null @@ -1,12 +0,0 @@ -prefix sh: . -@prefix h: - -@public -function us:test(subject, node, exp) { - let (predicate = h:hasChild, - select ?node ?predicate (aggregate(distinct ?object) as ?list) - where { ?node ?predicate ?object } - ) { - return (list) - } -} diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/research/data/test/shapeexp9.ttl b/corese-unit-test/src/test/resources/fr/inria/corese/research/data/test/shapeexp9.ttl deleted file mode 100644 index aad09fdcad..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/research/data/test/shapeexp9.ttl +++ /dev/null @@ -1,12 +0,0 @@ -@prefix sh: . -@prefix xsh: . -@prefix h: - - -us:test1 a sh:NodeShape ; -sh:targetClass h:Person ; -sh:property [ - sh:path (h:hasFriend [xsh:function us:test ] h:hasFriend ) ; - sh:class h:Person -] -. diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/research/data/test/utf.rdf b/corese-unit-test/src/test/resources/fr/inria/corese/research/data/test/utf.rdf deleted file mode 100644 index c6242e9059..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/research/data/test/utf.rdf +++ /dev/null @@ -1,24 +0,0 @@ - - - - - - - - - -]> - - - - - - José - - - - \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/research/data/test/utf.ttl b/corese-unit-test/src/test/resources/fr/inria/corese/research/data/test/utf.ttl deleted file mode 100644 index d0a274d8fb..0000000000 --- a/corese-unit-test/src/test/resources/fr/inria/corese/research/data/test/utf.ttl +++ /dev/null @@ -1,4 +0,0 @@ -@base . -@prefix c: . - - c:name "José" \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/fr/inria/corese/research/data/test/primer.owl b/corese-unit-test/src/test/resources/primer.owl similarity index 97% rename from corese-unit-test/src/test/resources/fr/inria/corese/research/data/test/primer.owl rename to corese-unit-test/src/test/resources/primer.owl index 026f61b20a..21545f0c0f 100644 --- a/corese-unit-test/src/test/resources/fr/inria/corese/research/data/test/primer.owl +++ b/corese-unit-test/src/test/resources/primer.owl @@ -13,11 +13,10 @@ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:xsd="http://www.w3.org/2001/XMLSchema#"> - - --> + @@ -400,14 +399,6 @@ - - - - - - - - diff --git a/corese-unit-test/src/test/resources/test/data/data.xml b/corese-unit-test/src/test/resources/test/data/data.xml new file mode 100644 index 0000000000..dd242fa6ef --- /dev/null +++ b/corese-unit-test/src/test/resources/test/data/data.xml @@ -0,0 +1,19 @@ + + + + XML Transformation + + 1984 + Georges Orwell + + + + The Age of Surveillance Capitalism + Shoshana Zuboff + + + + LDScript + Olivier Corby + + diff --git a/corese-unit-test/src/test/resources/test/data/xslt.xsl b/corese-unit-test/src/test/resources/test/data/xslt.xsl new file mode 100644 index 0000000000..5e63b9775e --- /dev/null +++ b/corese-unit-test/src/test/resources/test/data/xslt.xsl @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + From dcc340f93ea46871b2d4c6fd736e110ead0f9882 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9mi=20C=C3=A9r=C3=A8s?= Date: Fri, 3 Feb 2023 17:37:10 +0100 Subject: [PATCH 02/32] Update Corese-Server Docker image to version 4.4.0 and fix any issues --- corese-server/build-docker/README.md | 13 ++++++------- corese-server/build-docker/corese/Dockerfile | 4 ++-- ...ies.ini => corese-default-properties.properties} | 8 ++++++++ corese-server/build-docker/corese/corese-server.sh | 6 +++--- corese-server/build-docker/docker-compose.yml | 1 - 5 files changed, 19 insertions(+), 13 deletions(-) rename corese-server/build-docker/corese/{corese-default-properties.ini => corese-default-properties.properties} (89%) diff --git a/corese-server/build-docker/README.md b/corese-server/build-docker/README.md index 93b3b75857..275ca8fd0e 100644 --- a/corese-server/build-docker/README.md +++ b/corese-server/build-docker/README.md @@ -17,6 +17,7 @@ Corese also implements the LDScript and STTL SPARQL extensions. The Docker image tag includes the Corese version installed in the image. The following version is currently available: +- corese:4.4.0 - corese:4.3.0 - corese:4.2.4 @@ -76,7 +77,6 @@ Then run: `docker-compose up -d` ## Loading data at start-up -Corese runs a non-persisted in-memory triple-store. To load data into Corese at start-up, place your data files in mounted folder `data`. Supported extensions are: `.ttl`, `.jsonld`, `.rdf` (for RDF/XML), `.csv`, `.tsv`, `.html` (for rdfa). @@ -87,14 +87,13 @@ Alternatively you may edit a previously created `corese-profile.ttl` file and ch ## Configuration -When it starts, the container will look for two files and create them if it they do not exist: +When it starts, the container will look for two files and create them if they do not exist: -- `config/corese-properties.ini` allows to tune various paremters; -- `config/corese-profile.ttl` defines a standard server and instructs Corese to load files found in `data`. +- `config/corese-properties.properties`: This file allows you to tune various parameters in Corese, such as configuring the [storage system](https://github.com/Wimmics/corese/blob/master/docs/storage/Configuring%20and%20Connecting%20to%20Different%20Storage%20Systems%20in%20Corese.md). [Learn more](https://github.com/Wimmics/corese/blob/master/corese-server/build-docker/corese/corese-default-properties.ini). +- `config/corese-profile.ttl`: This file defines a standard server and instructs Corese to load files found in `data`. It can be used to create multiple endpoints, restrict access to external endpoints, and more. [Learn more](https://github.com/Wimmics/corese/blob/master/docs/getting%20started/Getting%20Started%20With%20Corese-server.md). -You may edit those files and restart the container for changes to be taken into account. +Note: To apply changes, you must edit the files and restart the container. -See the [configuration documentation](https://project.inria.fr/corese/documentation-index/) for further details. ### Changing the JVM heap size @@ -135,6 +134,6 @@ curl \ - [Corese website](https://project.inria.fr/corese) - [Source code](https://github.com/Wimmics/corese) - [Corese server demo](http://corese.inria.fr/) -- [Changelog](https://notes.inria.fr/s/TjriAbX14#) +- [Changelog](https://github.com/Wimmics/corese/blob/master/CHANGELOG.md) - **Mailing list:** corese-users at inria.fr - **Subscribe to mailing list:** corese-users-request at inria.fr **subject:** subscribe diff --git a/corese-server/build-docker/corese/Dockerfile b/corese-server/build-docker/corese/Dockerfile index 65279cb572..f3129ad797 100644 --- a/corese-server/build-docker/corese/Dockerfile +++ b/corese-server/build-docker/corese/Dockerfile @@ -7,11 +7,11 @@ ENV CORESE="/usr/local/corese" RUN mkdir -p $CORESE WORKDIR $CORESE -RUN wget http://files.inria.fr/corese/distrib/corese-server-4.3.0.jar +RUN wget http://files.inria.fr/corese/distrib/corese-server-4.4.0.jar COPY log4j2.xml $CORESE/log4j2.xml COPY corese-default-profile.ttl $CORESE/corese-default-profile.ttl -COPY corese-default-properties.ini $CORESE/corese-default-properties.ini +COPY corese-default-properties.properties $CORESE/corese-default-properties.properties ENV CORESESH=$CORESE/corese-server.sh COPY corese-server.sh $CORESESH diff --git a/corese-server/build-docker/corese/corese-default-properties.ini b/corese-server/build-docker/corese/corese-default-properties.properties similarity index 89% rename from corese-server/build-docker/corese/corese-default-properties.ini rename to corese-server/build-docker/corese/corese-default-properties.properties index 1f4749ec75..53ae3e9ec2 100644 --- a/corese-server/build-docker/corese/corese-default-properties.ini +++ b/corese-server/build-docker/corese/corese-default-properties.properties @@ -119,4 +119,12 @@ SERVICE_LIMIT = 1000 #LOAD_FORMAT = application/rdf+xml +# +# Storage +# + +# configuration of storage system +# STORAGE = TYPE_BD1,ID_DB1,PARAM_BD1 +# STORAGE = jena_tdb1,music,/usr/local/corese/data/music +# Learn more about storage : \ No newline at end of file diff --git a/corese-server/build-docker/corese/corese-server.sh b/corese-server/build-docker/corese/corese-server.sh index 5720e558d6..75ac3fd1fe 100644 --- a/corese-server/build-docker/corese/corese-server.sh +++ b/corese-server/build-docker/corese/corese-server.sh @@ -1,9 +1,9 @@ #!/bin/bash CORESE=/usr/local/corese -JAR=$CORESE/corese-server-4.3.0.jar +JAR=$CORESE/corese-server-4.4.0.jar PROFILE=$CORESE/config/corese-profile.ttl -PROPERTIES=$CORESE/config/corese-properties.ini +PROPERTIES=$CORESE/config/corese-properties.properties LOG4J=file://$CORESE/log4j2.xml DATA=$CORESE/data @@ -58,7 +58,7 @@ if [ -f "$PROPERTIES" ]; then echo "Using user-defined properties file." >> $LOG else echo "Creating new properties file." >> $LOG - cp $CORESE/corese-default-properties.ini $PROPERTIES + cp $CORESE/corese-default-properties.properties $PROPERTIES fi diff --git a/corese-server/build-docker/docker-compose.yml b/corese-server/build-docker/docker-compose.yml index c19bce12c2..bc2506de50 100644 --- a/corese-server/build-docker/docker-compose.yml +++ b/corese-server/build-docker/docker-compose.yml @@ -9,4 +9,3 @@ services: - "./log:/usr/local/corese/log" - "./data:/usr/local/corese/data" - "./config:/usr/local/corese/config" - From 058f1f642d7fad1376869412791703c58a755f90 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9mi=20C=C3=A9r=C3=A8s?= Date: Fri, 3 Feb 2023 17:38:00 +0100 Subject: [PATCH 03/32] Update Corese-Python to version 4.4.0 and fix any issues --- .../Corese-library with Python.md | 68 ++----------------- 1 file changed, 7 insertions(+), 61 deletions(-) diff --git a/docs/corese-python/Corese-library with Python.md b/docs/corese-python/Corese-library with Python.md index 104e7fb413..a41b7c3aed 100644 --- a/docs/corese-python/Corese-library with Python.md +++ b/docs/corese-python/Corese-library with Python.md @@ -4,8 +4,8 @@ 1. Install java and python 2. Install python dependencies `pip install --user py4j` -3. Download [corese-library-python-4.3.0.jar](http://files.inria.fr/corese/distrib/corese-library-python-4.3.0.jar) -4. Place in the same directory `corese-library-python-4.3.0.jar` and your code `myCode.py` +3. Download [corese-library-python-4.4.0.jar](http://files.inria.fr/corese/distrib/corese-library-python-4.4.0.jar) +4. Place in the same directory `corese-library-python-4.4.0.jar` and your code `myCode.py` 5. Run with `python myCode.py` ## 2. Template @@ -22,7 +22,7 @@ from py4j.java_gateway import JavaGateway # Start java gateway java_process = subprocess.Popen( - ['java', '-jar', '-Dfile.encoding=UTF-8', 'corese-library-python-4.3.0.jar']) + ['java', '-jar', '-Dfile.encoding=UTF-8', 'corese-library-python-4.4.0.jar']) sleep(1) gateway = JavaGateway() @@ -39,7 +39,6 @@ atexit.register(exit_handler) ####################### # Type your code here # ####################### - ``` ## 3. A functional example @@ -47,7 +46,6 @@ atexit.register(exit_handler) Here is an example of a python script that shows how to : - Build a graph by program (Corese API); -- Build a graph by program (RDF4 API); - Execute a SPARQL query; - Load a graph from a file; - Export a graph to a file. @@ -61,7 +59,7 @@ from py4j.java_gateway import JavaGateway # Start java gateway java_process = subprocess.Popen( - ['java', '-jar', '-Dfile.encoding=UTF-8', 'corese-library-python-4.3.0.jar']) + ['java', '-jar', '-Dfile.encoding=UTF-8', 'corese-library-python-4.4.0.jar']) sleep(1) gateway = JavaGateway() @@ -80,10 +78,7 @@ Graph = gateway.jvm.fr.inria.corese.core.Graph Load = gateway.jvm.fr.inria.corese.core.load.Load Transformer = gateway.jvm.fr.inria.corese.core.transform.Transformer QueryProcess = gateway.jvm.fr.inria.corese.core.query.QueryProcess -CoreseModel = gateway.jvm.fr.inria.corese.rdf4j.CoreseModel -SimpleValueFactory = gateway.jvm.org.eclipse.rdf4j.model.impl.SimpleValueFactory -RDF = gateway.jvm.org.eclipse.rdf4j.model.vocabulary.RDF - +RDF = gateway.jvm.fr.inria.corese.core.logic.RDF ############### # Build Graph # @@ -101,38 +96,13 @@ def BuildGraphCoreseApi(): # Create and add statement: Edith Piaf is an Singer edith_Piaf_IRI = corese_graph.addResource(ex + "EdithPiaf") - rdf_Type_Property = corese_graph.addProperty(RDF.TYPE.toString()) + rdf_Type_Property = corese_graph.addProperty(RDF.TYPE) singer_IRI = corese_graph.addResource(ex + "Singer") corese_graph.addEdge(edith_Piaf_IRI, rdf_Type_Property, singer_IRI) return corese_graph - -def BuildGraphRdf4jApi(): - """Build a graph with a single statement (Edith Piaf is a singer) with the RDF4J API - :returns: graph with a single statement (Edith Piaf is a singer) - """ - corese_model = CoreseModel() - - # NameSpace - ex = "http://example.org/" - - # Build factory - factory = SimpleValueFactory.getInstance() - - # Create and add statement: Edith Piaf is an Singer - edith_piaf_IRI = factory.createIRI(ex, "EdithPiaf") - rdf_Type_Property = RDF.TYPE - singer_IRI = factory.createIRI(ex, "Singer") - - triple = factory.createStatement( - edith_piaf_IRI, rdf_Type_Property, singer_IRI) - corese_model.add(triple) - - return corese_model - - ########## # Sparql # ########## @@ -205,18 +175,6 @@ print("\nPrint Graph:") print(graph.display()) -### -# Build a graph with the RDF4J API -### -printTitle("Build a graph with the RDF4J API") - -graph = BuildGraphRdf4jApi() -print("Graph build ! (" + str(graph.size()) + " triplets)") - -print("\nPrint Graph:") -print(graph.toString()) - - ### # SPARQL Query ### @@ -229,7 +187,7 @@ print("Graph load ! (" + str(graph.size()) + " triplets)") # List of U2 albums query = """ prefix : - + SELECT ?member WHERE { ?The_Beatles :member ?member @@ -259,7 +217,6 @@ Results : ```plaintext Gateway Server Started -WARNING: sun.reflect.Reflection.getCallerClass is not supported. This will impact performance. @@ -275,16 +232,6 @@ predicate rdf:type [1] -====================================== -== Build a graph with the RDF4J API == -====================================== -Graph build ! (1 triplets) - -Print Graph: -[(http://example.org/EdithPiaf, http://www.w3.org/1999/02/22-rdf-syntax-ns#type, http://example.org/Singer) [null]] - - - ================== == SPARQL Query == ================== @@ -308,5 +255,4 @@ Graph Export in file (export.rdf) Gateway Server Stop! - ``` From 9bb113c850820100d9eaa13686d4ba5587c59a77 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9mi=20C=C3=A9r=C3=A8s?= Date: Fri, 3 Feb 2023 17:38:39 +0100 Subject: [PATCH 04/32] Update Corese code to version 4.4.0 and fix any issues --- README.md | 8 +++--- .../main/java/fr/inria/corese/cli/App.java | 2 +- .../fr/inria/corese/cli/programs/Convert.java | 2 +- .../inria/corese/cli/programs/LDScript.java | 2 +- .../fr/inria/corese/cli/programs/Profile.java | 2 +- .../fr/inria/corese/cli/programs/Sparql.java | 2 +- corese-core/pom.xml | 26 +++++++++++++------ .../fr/inria/corese/gui/core/MainFrame.java | 2 +- corese-jena/pom.xml | 4 +-- .../webservice/EmbeddedJettyServer.java | 2 +- pom.xml | 4 +-- 11 files changed, 33 insertions(+), 23 deletions(-) diff --git a/README.md b/README.md index 2aac9be837..44068003e3 100644 --- a/README.md +++ b/README.md @@ -33,13 +33,13 @@ There are three versions of Corese: fr.inria.corese corese-core - 4.3.0 + 4.4.0 fr.inria.corese corese-rdf4j - 4.3.0 + 4.4.0 ``` @@ -58,7 +58,7 @@ docker run --name my-corese \ - Download [Corese-server jar file](https://project.inria.fr/corese/download/). ```sh -# Replace ${VERSION} with the desired version number (e.g: 4.3.0) +# Replace ${VERSION} with the desired version number (e.g: 4.4.0) wget "files.inria.fr/corese/distrib/corese-server-${VERSION}.jar" java -jar "corese-server-${VERSION}.jar" ``` @@ -70,7 +70,7 @@ Documentation: [Getting Started With Corese-server](https://notes.inria.fr/s/Soy - Download [Corese-gui jar file](https://project.inria.fr/corese/download/). ```sh -# Replace ${VERSION} with the desired version number (e.g: 4.3.0) +# Replace ${VERSION} with the desired version number (e.g: 4.4.0) wget "files.inria.fr/corese/distrib/corese-gui-${VERSION}.jar" java -jar "corese-gui-${VERSION}.jar" ``` diff --git a/corese-cli/src/main/java/fr/inria/corese/cli/App.java b/corese-cli/src/main/java/fr/inria/corese/cli/App.java index c7fde46cd3..1bf6ad1b95 100644 --- a/corese-cli/src/main/java/fr/inria/corese/cli/App.java +++ b/corese-cli/src/main/java/fr/inria/corese/cli/App.java @@ -10,7 +10,7 @@ /** * Hello world! */ -@Command(name = "Corese-CLI", version = "4.3.0", mixinStandardHelpOptions = true, subcommands = { +@Command(name = "Corese-CLI", version = "4.4.0", mixinStandardHelpOptions = true, subcommands = { Convert.class, Sparql.class, Profile.class, LDScript.class, }) public final class App implements Runnable { diff --git a/corese-cli/src/main/java/fr/inria/corese/cli/programs/Convert.java b/corese-cli/src/main/java/fr/inria/corese/cli/programs/Convert.java index 6089bae29d..e0e7a7737c 100644 --- a/corese-cli/src/main/java/fr/inria/corese/cli/programs/Convert.java +++ b/corese-cli/src/main/java/fr/inria/corese/cli/programs/Convert.java @@ -9,7 +9,7 @@ import picocli.CommandLine.Command; import picocli.CommandLine.Parameters; -@Command(name = "convert", version = "4.3.0", description = "Convert an RDF file between different serialization formats.", mixinStandardHelpOptions = true) +@Command(name = "convert", version = "4.4.0", description = "Convert an RDF file between different serialization formats.", mixinStandardHelpOptions = true) public class Convert implements Runnable { @Parameters(paramLabel = "INPUT_FORMAT", description = "Input file format." diff --git a/corese-cli/src/main/java/fr/inria/corese/cli/programs/LDScript.java b/corese-cli/src/main/java/fr/inria/corese/cli/programs/LDScript.java index e089de876a..e547b2ea4a 100644 --- a/corese-cli/src/main/java/fr/inria/corese/cli/programs/LDScript.java +++ b/corese-cli/src/main/java/fr/inria/corese/cli/programs/LDScript.java @@ -10,7 +10,7 @@ import picocli.CommandLine.Command; import picocli.CommandLine.Parameters; -@Command(name = "ldscript", version = "4.3.0", description = "Run an LDSCRIPT file.", mixinStandardHelpOptions = true) +@Command(name = "ldscript", version = "4.4.0", description = "Run an LDSCRIPT file.", mixinStandardHelpOptions = true) public class LDScript implements Runnable { @Parameters(paramLabel = "INPUT", description = "LDScript file to run.") diff --git a/corese-cli/src/main/java/fr/inria/corese/cli/programs/Profile.java b/corese-cli/src/main/java/fr/inria/corese/cli/programs/Profile.java index 3dd67276f8..eaebd3653b 100644 --- a/corese-cli/src/main/java/fr/inria/corese/cli/programs/Profile.java +++ b/corese-cli/src/main/java/fr/inria/corese/cli/programs/Profile.java @@ -13,7 +13,7 @@ /** * Profile */ -@Command(name = "owlProfile", version = "4.3.0", description = "Check OWL profiles.", mixinStandardHelpOptions = true) +@Command(name = "owlProfile", version = "4.4.0", description = "Check OWL profiles.", mixinStandardHelpOptions = true) public class Profile implements Runnable { @Parameters(paramLabel = "INPUT_FORMAT", description = "Input file format." diff --git a/corese-cli/src/main/java/fr/inria/corese/cli/programs/Sparql.java b/corese-cli/src/main/java/fr/inria/corese/cli/programs/Sparql.java index ad2519e669..c4749d3e53 100644 --- a/corese-cli/src/main/java/fr/inria/corese/cli/programs/Sparql.java +++ b/corese-cli/src/main/java/fr/inria/corese/cli/programs/Sparql.java @@ -12,7 +12,7 @@ import picocli.CommandLine.Command; import picocli.CommandLine.Parameters; -@Command(name = "sparql", version = "4.3.0", description = "Run a SPARQL query.", mixinStandardHelpOptions = true) +@Command(name = "sparql", version = "4.4.0", description = "Run a SPARQL query.", mixinStandardHelpOptions = true) public class Sparql implements Runnable { @Parameters(paramLabel = "INPUT_FORMAT", description = "Input file format." diff --git a/corese-core/pom.xml b/corese-core/pom.xml index c044542a7d..15e815803d 100644 --- a/corese-core/pom.xml +++ b/corese-core/pom.xml @@ -18,6 +18,10 @@ true + + jakarta.activation + jakarta.activation-api + org.apache.commons commons-text @@ -70,7 +74,7 @@ - @@ -108,4 +108,4 @@ - + \ No newline at end of file diff --git a/corese-server/src/main/java/fr/inria/corese/server/webservice/EmbeddedJettyServer.java b/corese-server/src/main/java/fr/inria/corese/server/webservice/EmbeddedJettyServer.java index ce00b8a630..e2f53dffb9 100644 --- a/corese-server/src/main/java/fr/inria/corese/server/webservice/EmbeddedJettyServer.java +++ b/corese-server/src/main/java/fr/inria/corese/server/webservice/EmbeddedJettyServer.java @@ -187,7 +187,7 @@ public static void main(String args[]) throws Exception { port = Integer.parseInt(cmd.getOptionValue("p")); } if (cmd.hasOption("v")) { - logger.info("version 4.3.0"); + logger.info("version 4.4.0"); System.exit(0); } if (cmd.hasOption("e")) { diff --git a/pom.xml b/pom.xml index 45a67a25d3..67d22a66de 100644 --- a/pom.xml +++ b/pom.xml @@ -118,7 +118,7 @@ b = build number. For more details: https://docs.oracle.com/middleware/1212/core/MAVEN/maven_version.htm#MAVEN400 --> - 4.3.0 + 4.4.0 -Xdoclint:none @@ -127,7 +127,7 @@ ${project.basedir}/../target/jacoco.exec java 1.8.0-beta2 - 2.17.1 + 2.18.0 3.0.0-M3 4.1.1 3.0.4 From 6a29abd586925bb26d9d6d890147dbcd43c74063 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9mi=20C=C3=A9r=C3=A8s?= Date: Tue, 7 Feb 2023 19:00:13 +0100 Subject: [PATCH 05/32] Update of the change log for version 4.4.0 --- CHANGELOG.md | 42 +++++++++++++++++++++++++++++++++++++----- 1 file changed, 37 insertions(+), 5 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index c4b3672d2c..36e73cce33 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,16 +1,48 @@ # Corese Changelog -## Unreleased +## 4.4.0 – 2021/02/24 – Sotrage update ### Added -- Support for [RDF*](https://w3c.github.io/rdf-star/cg-spec/2021-07-01.html) (beta) -- Support for [SPARQL*](https://w3c.github.io/rdf-star/cg-spec/2021-07-01.html) (beta) +- Storage Systems in Corese: + - Implementation of Jena TDB1. + - Implementation of Corese Graph. + - Implementation of RDF4J Model. + - A Builder for the storage system. + - [More information can be found here](https://github.com/Wimmics/corese/blob/master/docs/storage/Configuring%20and%20Connecting%20to%20Different%20Storage%20Systems%20in%20Corese.md). +- Beta support for [RDF*](https://w3c.github.io/rdf-star/cg-spec/2021-07-01.html) and [SPARQL*](https://w3c.github.io/rdf-star/cg-spec/2021-07-01.html). +- Improved display with pretty print for `dt:list` datatype. +- Corese Command-Line Interface (Beta): + - `convert`: Convert RDF files between different serialization formats. + - `sparql`: Execute SPARQL queries on files. + - `owlProfile`: Check OWL profiles on files. + - `ldscript`: Run LDSCRIPT files. +- Corese-Python interface (Beta): + - [Use the Corese-library with Python](https://github.com/Wimmics/corese/blob/master/docs/corese-python/Corese-library%20with%20Python.md). + - [Use the Corese-server with Python](https://github.com/Wimmics/corese/blob/master/docs/corese-python/Corese-server%20with%20Python.md). +- Undo/Redo support added to Corese GUI ([Pull Request #97](https://github.com/Wimmics/corese/pull/97) thanks to [@alaabenfatma](https://github.com/alaabenfatma)). + +### Changes + +- Updated Jetty server library to version 11.0.8. +- Code clean-up, correction, and commenting for improved readability and maintenance. ### Fixed -- Encoding error with Windows when exporting graphs from Corese-Gui. +- Fixed encoding error with Windows when exporting graphs from Corese-GUI. +- Fixed SPARQL engine bug where it was impossible to load a named graph that contains a non-empty RDF list. +- Fixed issue with "rdf:" not found when sending a federated query to Fuseki. See [issue #114](https://github.com/Wimmics/corese/issues/114). +- Fixed non-standard JSON format on query timeout. See [issue #113](https://github.com/Wimmics/corese/issues/113). +- Fixed inconsistent status of the OWL and Rules checkboxes in Corese-GUI that was not updated during reload. See [issue #110](https://github.com/Wimmics/corese/issues/110). +- Fixed the rule engine that was implementing optimizations incompatible with the `owl:propertyChainAxiom` rule. See [issue #110](https://github.com/Wimmics/corese/issues/110). + +### Security + +- Bumped testng from 7.3.0 to 7.7.1. See [pull request #118](https://github.com/Wimmics/corese/pull/118). +- Bumped jsoup from 1.14.2 to 1.15.3 in /corese-server. See [pull request #101](https://github.com/Wimmics/corese/pull/101). +- Bumped junit from 4.11 to 4.13.1 in /corese-storage. See [pull request #98](https://github.com/Wimmics/corese/pull/98). +- Bumped xercesImpl from 2.12.0 to 2.12.2. See [pull request #92](https://github.com/Wimmics/corese/pull/92). ## 4.3.0 – 2021/01/18 – RDF4J Update @@ -19,7 +51,7 @@ - Graphical editor for SHACL file in Corese-GUI. - Graphical editor for TURTLE file in Corese-GUI. - Save graph option un Corese-GUI. -- New type of graph [´CoreseModel´](https://notes.inria.fr/s/OB038LBLV#) implementing the [RDF4J](https://rdf4j.org/) [model API](https://rdf4j.org/javadoc/latest/). +- New type of graph [´CoreseModel´](https://github.com/Wimmics/corese/blob/master/docs/rdf4j/RDF4J%20API%20in%20Corese.md) implementing the [RDF4J](https://rdf4j.org/) [model API](https://rdf4j.org/javadoc/latest/). - `DataManager` API to allows to connect the Corese SPARQL engine with other triple storage stucture. - Implement a `DataManager` for RDF4J. From dbfe8cbb30d4b49c418efb45fab845fd84329c8c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9mi=20C=C3=A9r=C3=A8s?= Date: Wed, 8 Feb 2023 14:39:24 +0100 Subject: [PATCH 06/32] Bumped gremlin-core from 3.2.3 to 3.6.2 --- CHANGELOG.md | 1 + pom.xml | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 36e73cce33..f3c3baeeee 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -43,6 +43,7 @@ - Bumped jsoup from 1.14.2 to 1.15.3 in /corese-server. See [pull request #101](https://github.com/Wimmics/corese/pull/101). - Bumped junit from 4.11 to 4.13.1 in /corese-storage. See [pull request #98](https://github.com/Wimmics/corese/pull/98). - Bumped xercesImpl from 2.12.0 to 2.12.2. See [pull request #92](https://github.com/Wimmics/corese/pull/92). +- Bumped gremlin-core from 3.2.3 to 3.6.2. ## 4.3.0 – 2021/01/18 – RDF4J Update diff --git a/pom.xml b/pom.xml index 67d22a66de..6aaaf3d367 100644 --- a/pom.xml +++ b/pom.xml @@ -303,7 +303,7 @@ org.apache.tinkerpop gremlin-core - 3.2.3 + 3.6.2 commons-vfs From 23c3c502b7738932690bf80bce7f4e3d1cc9980f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9mi=20C=C3=A9r=C3=A8s?= Date: Wed, 8 Feb 2023 18:05:00 +0100 Subject: [PATCH 07/32] Update nexus-staging-maven-plugin version --- pom.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pom.xml b/pom.xml index 6aaaf3d367..7c35c3c949 100644 --- a/pom.xml +++ b/pom.xml @@ -647,12 +647,12 @@ org.sonatype.plugins nexus-staging-maven-plugin - 1.6.8 + 1.6.13 true ossrh https://oss.sonatype.org/ - true + false

All content on this site is licensed under - - a Creative Commons License. ©2011 Alice Birpemswick.

From aff6359a085f33bab28b9753dc4b094bf15ad420 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9mi=20C=C3=A9r=C3=A8s?= Date: Wed, 8 Feb 2023 18:05:15 +0100 Subject: [PATCH 08/32] Update .gitignore --- .gitignore | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.gitignore b/.gitignore index 8a422b2d0c..7d310acd66 100644 --- a/.gitignore +++ b/.gitignore @@ -88,4 +88,5 @@ nb-configuration.xml ## logs ############################## log/ -log.txt \ No newline at end of file +log.txt +corese-server/SSL_SERVER_PID From 4bba2c4e532950ea4576ec1038a9e3a0eb0f7641 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9mi=20C=C3=A9r=C3=A8s?= Date: Wed, 8 Feb 2023 18:55:22 +0100 Subject: [PATCH 09/32] Update README --- README.md | 8 ++++++-- docs/README.md | 8 +++----- 2 files changed, 9 insertions(+), 7 deletions(-) diff --git a/README.md b/README.md index 4a32c7ec56..dab5c6a99d 100644 --- a/README.md +++ b/README.md @@ -17,11 +17,14 @@ Corese is a software platform implementing and extending the standards of the Se Corese implement W3C standards [RDF](https://www.w3.org/RDF/), [RDFS](https://www.w3.org/2001/sw/wiki/RDFS), [SPARQL1.1 Query & Update](https://www.w3.org/2001/sw/wiki/SPARQL), [OWL RL](https://www.w3.org/2005/rules/wiki/OWLRL), [SHACL](https://www.w3.org/TR/shacl/) … It also implements extensions like [STTL SPARQL](https://files.inria.fr/corese/doc/sttl.html), [SPARQL Rule](https://files.inria.fr/corese/doc/rule.html) and [LDScript](https://files.inria.fr/corese/doc/ldscript.html). -There are three versions of Corese: +There are several interfaces for Corese:" - **Corese-library:** Java library to process RDF data and use Corese features via an API. - **Corese-server:** Tool to easily create, configure and manage SPARQL endpoints. - **Corese-gui:** Graphical interface that allows an easy and visual use of Corese features. +- **Corese-Python (beta):** Python wrapper for accessing and manipulating RDF data with Corese features using py4j. +- **Corese-CLI (beta):** Command Line Interface for Corese that allows users to interact with Corese features from the terminal. + ## Download and install @@ -82,7 +85,7 @@ Download source code and compile. ```shell git clone "https://github.com/Wimmics/corese.git" cd corese -mvn -Dmaven.test.skip=true package +mvn package ``` ## Contributions and discussions @@ -93,6 +96,7 @@ We welcome everyone to contribute to [issue reports](https://github.com/Wimmics/ ## General informations - [Corese website](https://project.inria.fr/corese) +- [Documentation](https://project.inria.fr/corese/documentation/) - [Source code](https://github.com/Wimmics/corese) - [Corese server demo](http://corese.inria.fr/) - [Changelog](https://github.com/Wimmics/corese/blob/master/CHANGELOG.md) diff --git a/docs/README.md b/docs/README.md index 3032c72612..42bdcc4f43 100644 --- a/docs/README.md +++ b/docs/README.md @@ -5,18 +5,16 @@ The purpose of this page is to gather the documentation of Corese. ## Corese-library - [Getting Started With Corese-library](getting%20started/Getting%20Started%20With%20Corese-library.md) -- [Corese-library and RDF4J](rdf4j/RDF4J%20API%20in%20Corese.md) -- [Corese-library with Python](corese-python/Corese-library%20with%20Python.md) +- [Use Corese-library and RDF4J](rdf4j/RDF4J%20API%20in%20Corese.md) ## Corese-server - [Getting Started With Corese-server](getting%20started/Getting%20Started%20With%20Corese-server.md) -- [Corese-server with Python](corese-python/Corese-server%20with%20Python.md) ## Corese-Python -- [use Corese-library with Python](https://github.com/Wimmics/corese/blob/master/docs/corese-python/Corese-library%20with%20Python.md) -- [use Corese-server with Python](https://github.com/Wimmics/corese/blob/master/docs/corese-python/Corese-server%20with%20Python.md) +- [Use Corese-library with Python](corese-python/Corese-library%20with%20Python.md) +- [Use Corese-server with Python](corese-python/Corese-server%20with%20Python.md) ## Storage Systems From 3cf942cbd4aa563a457b00bea9a87437bf37119f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9mi=20C=C3=A9r=C3=A8s?= Date: Thu, 9 Feb 2023 17:04:50 +0100 Subject: [PATCH 10/32] Delete unused files --- .gitlab-ci.yml | 14 -------- .gitmodules | 3 -- Jenkinsfile | 68 ------------------------------------- makerul.py | 16 --------- scripts_for_dqp/doublons.sh | 13 ------- scripts_for_dqp/global.sh | 13 ------- scripts_for_dqp/partial.sh | 17 ---------- 7 files changed, 144 deletions(-) delete mode 100644 .gitlab-ci.yml delete mode 100644 .gitmodules delete mode 100644 Jenkinsfile delete mode 100644 makerul.py delete mode 100755 scripts_for_dqp/doublons.sh delete mode 100755 scripts_for_dqp/global.sh delete mode 100755 scripts_for_dqp/partial.sh diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml deleted file mode 100644 index 949e945b07..0000000000 --- a/.gitlab-ci.yml +++ /dev/null @@ -1,14 +0,0 @@ -stages: - - build - - test - -maven-build: - stage: build - script: "mvn clean install -T2C -Dmaven.test.skip=true" - -maven-build: - stage: test - script: "mvn package" - allow_failure: true - - diff --git a/.gitmodules b/.gitmodules deleted file mode 100644 index fa73181fca..0000000000 --- a/.gitmodules +++ /dev/null @@ -1,3 +0,0 @@ -[submodule "persistency-tools/coresedb-benchmark/src/test/resources/rdf-tests"] - path = persistency-tools/coresedb-benchmark/src/test/resources/rdf-tests - url = https://github.com/w3c/rdf-tests.git diff --git a/Jenkinsfile b/Jenkinsfile deleted file mode 100644 index d45e0c9506..0000000000 --- a/Jenkinsfile +++ /dev/null @@ -1,68 +0,0 @@ -pipeline { - agent any - environment { - DEPLOYMENT = readMavenPom().getProperties().getProperty("deployOnMavenCentral") - } - stages { - stage('Build') { - parallel { - stage('Build') { - steps { - sh 'mvn clean install -Pjenkins -Dmaven.test.skip=true' - } - } - stage('display value') { - steps { - sh "echo \"env.DEPLOY_TO_CENTRAL = ${env.DEPLOY_TO_CENTRAL}\"" - } - } - } - } - stage('Test') { - steps { - sh 'mvn verify jacoco:report-aggregate -Dmaven.test.skip=false' - } - } - stage('deployment on maven.inria.fr') { - steps { - sh 'mvn deploy -Pmaven-inria-fr-release -Dmaven.test.skip=true' - } - } - stage('test on artefacts at maven.inria.fr') { - steps { - sh '''rm -fr ${HOME}/.m2/repository/fr/inria/corese -mvn -U test verify -Pmaven-inria-fr-release''' - } - } - stage('Report') { - parallel { - stage('Report') { - steps { - junit(testResults: '**/target/*-reports/*.xml', healthScaleFactor: 50) - } - } - stage('error') { - steps { - jacoco(classPattern: '**/classes', execPattern: '**/**.exec', inclusionPattern: '**/*.class', sourcePattern: '**/src/main/java') - } - } - } - } - stage('Deploy on maven ossrh (maven central)') { - steps { - script { - if (env.DEPLOY_TO_CENTRAL == 'true') { - echo 'deploying' - sh 'mvn deploy -Pmaven-central-release -Dmaven.test.skip=true' - } else { - echo 'not deploying since property deployOnMavenCentral is not set in the root pom.xml' - } - } - - } - } - } - environment { - DEPLOY_TO_CENTRAL = readMavenPom().getProperties().getProperty("deployOnMavenCentral") - } -} diff --git a/makerul.py b/makerul.py deleted file mode 100644 index 64a47a6bdc..0000000000 --- a/makerul.py +++ /dev/null @@ -1,16 +0,0 @@ -import sys -import glob -from mako.template import Template - -inputDir = sys.argv[1] -outputFile = sys.argv[2] - -rqFileNames = glob.glob(inputDir+"/*.rq") -rqFileContents = [] -for rqFileName in rqFileNames: - f = open( rqFileName, "r") - rqFileContents.append( f.read() ) - -mytemplate = Template(filename='rultemplate.txt') -output = open( outputFile, "w" ) -output.write( mytemplate.render(values=rqFileContents) ) diff --git a/scripts_for_dqp/doublons.sh b/scripts_for_dqp/doublons.sh deleted file mode 100755 index 62e9d2f9a9..0000000000 --- a/scripts_for_dqp/doublons.sh +++ /dev/null @@ -1,13 +0,0 @@ -#!/bin/bash - -kill $(lsof -t -i:8081) -java -jar ../kgserver/target/corese-server-*-jar-with-dependencies.jar -p 8081 -l ../kgtool/target/classes/demographie/cog-2014.ttl & -sleep 10s - -kill $(lsof -t -i:8082) -java -jar ../kgserver/target/corese-server-*-jar-with-dependencies.jar -p 8082 -l ../kgtool/target/classes/demographie/cog-2014.ttl & -sleep 10s - -kill $(lsof -t -i:8088) -java -jar ../kgserver/target/corese-server-*-jar-with-dependencies.jar -p 8088 -l ../kgtool/target/classes/demographie/popleg-2013-sc.ttl & - diff --git a/scripts_for_dqp/global.sh b/scripts_for_dqp/global.sh deleted file mode 100755 index 594d2e2d6e..0000000000 --- a/scripts_for_dqp/global.sh +++ /dev/null @@ -1,13 +0,0 @@ -#!/bin/bash - -kill $(lsof -t -i:8083) -java -jar ../kgserver/target/corese-server-*-jar-with-dependencies.jar -p 8083 -l ../kgtool/target/classes/demographie/globalBGPS2.ttl & -sleep 10s - -kill $(lsof -t -i:8084) -java -jar ../kgserver/target/corese-server-*-jar-with-dependencies.jar -p 8084 -l ../kgtool/target/classes/demographie/globalBGPS1.ttl & -sleep 10s - -kill $(lsof -t -i:8088) -java -jar ../kgserver/target/corese-server-*-jar-with-dependencies.jar -p 8088 -l ../kgtool/target/classes/demographie/popleg-2013-sc.ttl & - diff --git a/scripts_for_dqp/partial.sh b/scripts_for_dqp/partial.sh deleted file mode 100755 index 8f5a102971..0000000000 --- a/scripts_for_dqp/partial.sh +++ /dev/null @@ -1,17 +0,0 @@ -#!/bin/bash - -kill $(lsof -t -i:8085) -java -jar ../kgserver/target/corese-server-*-jar-with-dependencies.jar -p 8085 -l ../kgtool/target/classes/demographie/regions_departements.ttl & -sleep 10s - -kill $(lsof -t -i:8086) -java -jar ../kgserver/target/corese-server-*-jar-with-dependencies.jar -p 8086 -l ../kgtool/target/classes/demographie/departements_names.ttl & -sleep 10s - -kill $(lsof -t -i:8087) -java -jar ../kgserver/target/corese-server-*-jar-with-dependencies.jar -p 8087 -l ../kgtool/target/classes/demographie/regions_names.ttl & -sleep 10s - -kill $(lsof -t -i:8088) -java -jar ../kgserver/target/corese-server-*-jar-with-dependencies.jar -p 8088 -l ../kgtool/target/classes/demographie/popleg-2013-sc.ttl & - From 162f4de70f24444db51bf14b0afeec6a61d095ea Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9mi=20C=C3=A9r=C3=A8s?= Date: Tue, 14 Feb 2023 11:21:35 +0100 Subject: [PATCH 11/32] Update flatten-maven-plugin --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 015cb6fbdd..257ac9bc62 100644 --- a/pom.xml +++ b/pom.xml @@ -493,7 +493,7 @@ org.codehaus.mojo flatten-maven-plugin - 1.0.1 + 1.3.0 ossrh true From 04b26131bd0d52e3838cf3e25514033060754b51 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9mi=20C=C3=A9r=C3=A8s?= Date: Wed, 15 Feb 2023 18:03:01 +0100 Subject: [PATCH 12/32] Update Changelog --- CHANGELOG.md | 11 ++++------- 1 file changed, 4 insertions(+), 7 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index f3c3baeeee..ff425fd923 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,18 +1,15 @@ - # Corese Changelog -## 4.4.0 – 2021/02/24 – Sotrage update +## 4.4.0 – 2021/02/24 – Storage update ### Added - Storage Systems in Corese: - - Implementation of Jena TDB1. - - Implementation of Corese Graph. - - Implementation of RDF4J Model. - - A Builder for the storage system. + - Integration of Jena TDB1. + - Integration of Corese Graph. + - Integration of RDF4J Model. - [More information can be found here](https://github.com/Wimmics/corese/blob/master/docs/storage/Configuring%20and%20Connecting%20to%20Different%20Storage%20Systems%20in%20Corese.md). - Beta support for [RDF*](https://w3c.github.io/rdf-star/cg-spec/2021-07-01.html) and [SPARQL*](https://w3c.github.io/rdf-star/cg-spec/2021-07-01.html). -- Improved display with pretty print for `dt:list` datatype. - Corese Command-Line Interface (Beta): - `convert`: Convert RDF files between different serialization formats. - `sparql`: Execute SPARQL queries on files. From b650629c00a16dead4847295c35a6246cdb557dc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9mi=20C=C3=A9r=C3=A8s?= Date: Thu, 16 Feb 2023 10:04:04 +0100 Subject: [PATCH 13/32] Update RDF* link in changelog --- CHANGELOG.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index ff425fd923..cfbf701cf5 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -9,7 +9,7 @@ - Integration of Corese Graph. - Integration of RDF4J Model. - [More information can be found here](https://github.com/Wimmics/corese/blob/master/docs/storage/Configuring%20and%20Connecting%20to%20Different%20Storage%20Systems%20in%20Corese.md). -- Beta support for [RDF*](https://w3c.github.io/rdf-star/cg-spec/2021-07-01.html) and [SPARQL*](https://w3c.github.io/rdf-star/cg-spec/2021-07-01.html). +- Beta support for RDF* and SPARQL* ([Community Group Report 17 December 2021](https://w3c.github.io/rdf-star/cg-spec/2021-12-17.html)). - Corese Command-Line Interface (Beta): - `convert`: Convert RDF files between different serialization formats. - `sparql`: Execute SPARQL queries on files. @@ -55,4 +55,4 @@ ### Security -- Fix Log4j security vulnerabilities. +- Fix Log4j security vulnerabilities. \ No newline at end of file From 83423aae7cfde0756d5964ccfbe2f4424fcf8b25 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9mi=20C=C3=A9r=C3=A8s?= Date: Thu, 23 Feb 2023 17:06:25 +0100 Subject: [PATCH 14/32] transfer of W3C tests and the corese engine into corese-unit-test --- .gitignore | 5 + .../fr/inria/corese/engine/TestQuery1.java | 2 +- .../fr/inria/corese/engine/TestQuery2.java | 176 + .../inria/corese/engine/TestRuleEngine.java | 550 + .../fr/inria/corese/w3c/RDFStar/Compare.java | 218 + .../corese/w3c/RDFStar/RDFStarReport.java | 93 + .../inria/corese/w3c/RDFStar/RDFStarTest.java | 501 + .../inria/corese/w3c/shacl/DataShapeTest.java | 490 + .../fr/inria/corese/w3c/shacl/EarlReport.java | 75 + .../fr/inria/corese/w3c/sparql/Dataset.java | 69 + .../java/fr/inria/corese/w3c/sparql/Earl.java | 82 + .../corese/w3c/sparql/TestW3C10KGraphNew.java | 42 + .../corese/w3c/sparql/TestW3C11KGraphNew.java | 1779 ++ .../test/resources/data/comma/data2/f0.rdf | 12 + .../test/resources/data/comma/data2/f1.rdf | 42 + .../test/resources/data/comma/data2/f10.rdf | 18 + .../test/resources/data/comma/data2/f100.rdf | 19 + .../test/resources/data/comma/data2/f101.rdf | 54 + .../test/resources/data/comma/data2/f102.rdf | 24 + .../test/resources/data/comma/data2/f103.rdf | 13 + .../test/resources/data/comma/data2/f104.rdf | 24 + .../test/resources/data/comma/data2/f105.rdf | 24 + .../test/resources/data/comma/data2/f106.rdf | 18 + .../test/resources/data/comma/data2/f107.rdf | 24 + .../test/resources/data/comma/data2/f108.rdf | 24 + .../test/resources/data/comma/data2/f109.rdf | 24 + .../test/resources/data/comma/data2/f11.rdf | 30 + .../test/resources/data/comma/data2/f110.rdf | 24 + .../test/resources/data/comma/data2/f111.rdf | 30 + .../test/resources/data/comma/data2/f112.rdf | 18 + .../test/resources/data/comma/data2/f113.rdf | 24 + .../test/resources/data/comma/data2/f114.rdf | 18 + .../test/resources/data/comma/data2/f115.rdf | 24 + .../test/resources/data/comma/data2/f116.rdf | 24 + .../test/resources/data/comma/data2/f117.rdf | 18 + .../test/resources/data/comma/data2/f118.rdf | 18 + .../test/resources/data/comma/data2/f119.rdf | 30 + .../test/resources/data/comma/data2/f12.rdf | 24 + .../test/resources/data/comma/data2/f120.rdf | 30 + .../test/resources/data/comma/data2/f121.rdf | 18 + .../test/resources/data/comma/data2/f122.rdf | 18 + .../test/resources/data/comma/data2/f123.rdf | 42 + .../test/resources/data/comma/data2/f124.rdf | 18 + .../test/resources/data/comma/data2/f125.rdf | 24 + .../test/resources/data/comma/data2/f126.rdf | 24 + .../test/resources/data/comma/data2/f127.rdf | 36 + .../test/resources/data/comma/data2/f128.rdf | 24 + .../test/resources/data/comma/data2/f129.rdf | 30 + .../test/resources/data/comma/data2/f13.rdf | 24 + .../test/resources/data/comma/data2/f130.rdf | 24 + .../test/resources/data/comma/data2/f131.rdf | 18 + .../test/resources/data/comma/data2/f132.rdf | 30 + .../test/resources/data/comma/data2/f133.rdf | 18 + .../test/resources/data/comma/data2/f134.rdf | 18 + .../test/resources/data/comma/data2/f135.rdf | 30 + .../test/resources/data/comma/data2/f136.rdf | 18 + .../test/resources/data/comma/data2/f137.rdf | 36 + .../test/resources/data/comma/data2/f138.rdf | 30 + .../test/resources/data/comma/data2/f139.rdf | 36 + .../test/resources/data/comma/data2/f14.rdf | 19 + .../test/resources/data/comma/data2/f140.rdf | 18 + .../test/resources/data/comma/data2/f141.rdf | 30 + .../test/resources/data/comma/data2/f142.rdf | 30 + .../test/resources/data/comma/data2/f143.rdf | 18 + .../test/resources/data/comma/data2/f144.rdf | 24 + .../test/resources/data/comma/data2/f145.rdf | 18 + .../test/resources/data/comma/data2/f146.rdf | 18 + .../test/resources/data/comma/data2/f147.rdf | 18 + .../test/resources/data/comma/data2/f148.rdf | 36 + .../test/resources/data/comma/data2/f149.rdf | 24 + .../test/resources/data/comma/data2/f15.rdf | 19 + .../test/resources/data/comma/data2/f150.rdf | 24 + .../test/resources/data/comma/data2/f151.rdf | 54 + .../test/resources/data/comma/data2/f152.rdf | 30 + .../test/resources/data/comma/data2/f153.rdf | 24 + .../test/resources/data/comma/data2/f154.rdf | 24 + .../test/resources/data/comma/data2/f155.rdf | 30 + .../test/resources/data/comma/data2/f156.rdf | 30 + .../test/resources/data/comma/data2/f157.rdf | 30 + .../test/resources/data/comma/data2/f158.rdf | 18 + .../test/resources/data/comma/data2/f159.rdf | 24 + .../test/resources/data/comma/data2/f16.rdf | 18 + .../test/resources/data/comma/data2/f160.rdf | 18 + .../test/resources/data/comma/data2/f161.rdf | 24 + .../test/resources/data/comma/data2/f162.rdf | 24 + .../test/resources/data/comma/data2/f163.rdf | 18 + .../test/resources/data/comma/data2/f164.rdf | 24 + .../test/resources/data/comma/data2/f165.rdf | 30 + .../test/resources/data/comma/data2/f166.rdf | 18 + .../test/resources/data/comma/data2/f167.rdf | 18 + .../test/resources/data/comma/data2/f168.rdf | 24 + .../test/resources/data/comma/data2/f169.rdf | 30 + .../test/resources/data/comma/data2/f17.rdf | 24 + .../test/resources/data/comma/data2/f170.rdf | 18 + .../test/resources/data/comma/data2/f171.rdf | 24 + .../test/resources/data/comma/data2/f172.rdf | 18 + .../test/resources/data/comma/data2/f173.rdf | 18 + .../test/resources/data/comma/data2/f174.rdf | 24 + .../test/resources/data/comma/data2/f175.rdf | 24 + .../test/resources/data/comma/data2/f176.rdf | 36 + .../test/resources/data/comma/data2/f177.rdf | 24 + .../test/resources/data/comma/data2/f178.rdf | 24 + .../test/resources/data/comma/data2/f179.rdf | 18 + .../test/resources/data/comma/data2/f18.rdf | 18 + .../test/resources/data/comma/data2/f180.rdf | 18 + .../test/resources/data/comma/data2/f181.rdf | 30 + .../test/resources/data/comma/data2/f182.rdf | 24 + .../test/resources/data/comma/data2/f183.rdf | 24 + .../test/resources/data/comma/data2/f184.rdf | 24 + .../test/resources/data/comma/data2/f185.rdf | 30 + .../test/resources/data/comma/data2/f186.rdf | 24 + .../test/resources/data/comma/data2/f187.rdf | 18 + .../test/resources/data/comma/data2/f188.rdf | 30 + .../test/resources/data/comma/data2/f189.rdf | 18 + .../test/resources/data/comma/data2/f19.rdf | 48 + .../test/resources/data/comma/data2/f190.rdf | 18 + .../test/resources/data/comma/data2/f191.rdf | 24 + .../test/resources/data/comma/data2/f192.rdf | 24 + .../test/resources/data/comma/data2/f193.rdf | 24 + .../test/resources/data/comma/data2/f194.rdf | 18 + .../test/resources/data/comma/data2/f195.rdf | 18 + .../test/resources/data/comma/data2/f196.rdf | 24 + .../test/resources/data/comma/data2/f197.rdf | 24 + .../test/resources/data/comma/data2/f198.rdf | 7 + .../test/resources/data/comma/data2/f199.rdf | 24 + .../test/resources/data/comma/data2/f2.rdf | 30 + .../test/resources/data/comma/data2/f20.rdf | 30 + .../test/resources/data/comma/data2/f200.rdf | 12 + .../test/resources/data/comma/data2/f201.rdf | 12 + .../test/resources/data/comma/data2/f202.rdf | 12 + .../test/resources/data/comma/data2/f203.rdf | 24 + .../test/resources/data/comma/data2/f204.rdf | 18 + .../test/resources/data/comma/data2/f205.rdf | 36 + .../test/resources/data/comma/data2/f206.rdf | 24 + .../test/resources/data/comma/data2/f207.rdf | 30 + .../test/resources/data/comma/data2/f208.rdf | 24 + .../test/resources/data/comma/data2/f209.rdf | 24 + .../test/resources/data/comma/data2/f21.rdf | 24 + .../test/resources/data/comma/data2/f210.rdf | 18 + .../test/resources/data/comma/data2/f211.rdf | 24 + .../test/resources/data/comma/data2/f212.rdf | 18 + .../test/resources/data/comma/data2/f213.rdf | 18 + .../test/resources/data/comma/data2/f214.rdf | 18 + .../test/resources/data/comma/data2/f215.rdf | 36 + .../test/resources/data/comma/data2/f216.rdf | 24 + .../test/resources/data/comma/data2/f217.rdf | 18 + .../test/resources/data/comma/data2/f218.rdf | 30 + .../test/resources/data/comma/data2/f219.rdf | 24 + .../test/resources/data/comma/data2/f22.rdf | 18 + .../test/resources/data/comma/data2/f220.rdf | 24 + .../test/resources/data/comma/data2/f221.rdf | 18 + .../test/resources/data/comma/data2/f222.rdf | 24 + .../test/resources/data/comma/data2/f223.rdf | 18 + .../test/resources/data/comma/data2/f224.rdf | 18 + .../test/resources/data/comma/data2/f225.rdf | 24 + .../test/resources/data/comma/data2/f226.rdf | 30 + .../test/resources/data/comma/data2/f227.rdf | 18 + .../test/resources/data/comma/data2/f228.rdf | 18 + .../test/resources/data/comma/data2/f229.rdf | 18 + .../test/resources/data/comma/data2/f23.rdf | 24 + .../test/resources/data/comma/data2/f230.rdf | 18 + .../test/resources/data/comma/data2/f231.rdf | 24 + .../test/resources/data/comma/data2/f232.rdf | 30 + .../test/resources/data/comma/data2/f233.rdf | 19 + .../test/resources/data/comma/data2/f234.rdf | 24 + .../test/resources/data/comma/data2/f235.rdf | 24 + .../test/resources/data/comma/data2/f236.rdf | 24 + .../test/resources/data/comma/data2/f237.rdf | 31 + .../test/resources/data/comma/data2/f238.rdf | 31 + .../test/resources/data/comma/data2/f239.rdf | 18 + .../test/resources/data/comma/data2/f24.rdf | 18 + .../test/resources/data/comma/data2/f240.rdf | 36 + .../test/resources/data/comma/data2/f241.rdf | 24 + .../test/resources/data/comma/data2/f242.rdf | 30 + .../test/resources/data/comma/data2/f243.rdf | 30 + .../test/resources/data/comma/data2/f244.rdf | 30 + .../test/resources/data/comma/data2/f245.rdf | 18 + .../test/resources/data/comma/data2/f246.rdf | 13 + .../test/resources/data/comma/data2/f247.rdf | 13 + .../test/resources/data/comma/data2/f248.rdf | 24 + .../test/resources/data/comma/data2/f249.rdf | 25 + .../test/resources/data/comma/data2/f25.rdf | 24 + .../test/resources/data/comma/data2/f250.rdf | 19 + .../test/resources/data/comma/data2/f251.rdf | 19 + .../test/resources/data/comma/data2/f252.rdf | 18 + .../test/resources/data/comma/data2/f253.rdf | 13 + .../test/resources/data/comma/data2/f254.rdf | 13 + .../test/resources/data/comma/data2/f255.rdf | 13 + .../test/resources/data/comma/data2/f256.rdf | 19 + .../test/resources/data/comma/data2/f257.rdf | 18 + .../test/resources/data/comma/data2/f258.rdf | 36 + .../test/resources/data/comma/data2/f259.rdf | 24 + .../test/resources/data/comma/data2/f26.rdf | 35 + .../test/resources/data/comma/data2/f260.rdf | 24 + .../test/resources/data/comma/data2/f261.rdf | 18 + .../test/resources/data/comma/data2/f262.rdf | 18 + .../test/resources/data/comma/data2/f263.rdf | 24 + .../test/resources/data/comma/data2/f264.rdf | 24 + .../test/resources/data/comma/data2/f265.rdf | 30 + .../test/resources/data/comma/data2/f266.rdf | 24 + .../test/resources/data/comma/data2/f267.rdf | 24 + .../test/resources/data/comma/data2/f268.rdf | 18 + .../test/resources/data/comma/data2/f269.rdf | 18 + .../test/resources/data/comma/data2/f27.rdf | 24 + .../test/resources/data/comma/data2/f270.rdf | 18 + .../test/resources/data/comma/data2/f271.rdf | 18 + .../test/resources/data/comma/data2/f272.rdf | 24 + .../test/resources/data/comma/data2/f273.rdf | 30 + .../test/resources/data/comma/data2/f274.rdf | 36 + .../test/resources/data/comma/data2/f275.rdf | 30 + .../test/resources/data/comma/data2/f276.rdf | 18 + .../test/resources/data/comma/data2/f277.rdf | 18 + .../test/resources/data/comma/data2/f278.rdf | 30 + .../test/resources/data/comma/data2/f279.rdf | 18 + .../test/resources/data/comma/data2/f28.rdf | 18 + .../test/resources/data/comma/data2/f280.rdf | 24 + .../test/resources/data/comma/data2/f281.rdf | 24 + .../test/resources/data/comma/data2/f282.rdf | 24 + .../test/resources/data/comma/data2/f283.rdf | 24 + .../test/resources/data/comma/data2/f284.rdf | 18 + .../test/resources/data/comma/data2/f285.rdf | 18 + .../test/resources/data/comma/data2/f286.rdf | 30 + .../test/resources/data/comma/data2/f287.rdf | 24 + .../test/resources/data/comma/data2/f288.rdf | 36 + .../test/resources/data/comma/data2/f289.rdf | 24 + .../test/resources/data/comma/data2/f29.rdf | 36 + .../test/resources/data/comma/data2/f290.rdf | 18 + .../test/resources/data/comma/data2/f291.rdf | 24 + .../test/resources/data/comma/data2/f292.rdf | 30 + .../test/resources/data/comma/data2/f293.rdf | 24 + .../test/resources/data/comma/data2/f294.rdf | 18 + .../test/resources/data/comma/data2/f295.rdf | 18 + .../test/resources/data/comma/data2/f296.rdf | 18 + .../test/resources/data/comma/data2/f297.rdf | 24 + .../test/resources/data/comma/data2/f298.rdf | 18 + .../test/resources/data/comma/data2/f299.rdf | 30 + .../test/resources/data/comma/data2/f3.rdf | 24 + .../test/resources/data/comma/data2/f30.rdf | 30 + .../test/resources/data/comma/data2/f300.rdf | 24 + .../test/resources/data/comma/data2/f301.rdf | 30 + .../test/resources/data/comma/data2/f302.rdf | 18 + .../test/resources/data/comma/data2/f303.rdf | 18 + .../test/resources/data/comma/data2/f304.rdf | 18 + .../test/resources/data/comma/data2/f305.rdf | 18 + .../test/resources/data/comma/data2/f306.rdf | 18 + .../test/resources/data/comma/data2/f307.rdf | 18 + .../test/resources/data/comma/data2/f308.rdf | 30 + .../test/resources/data/comma/data2/f309.rdf | 36 + .../test/resources/data/comma/data2/f31.rdf | 36 + .../test/resources/data/comma/data2/f310.rdf | 18 + .../test/resources/data/comma/data2/f311.rdf | 24 + .../test/resources/data/comma/data2/f312.rdf | 18 + .../test/resources/data/comma/data2/f313.rdf | 24 + .../test/resources/data/comma/data2/f314.rdf | 36 + .../test/resources/data/comma/data2/f315.rdf | 30 + .../test/resources/data/comma/data2/f316.rdf | 24 + .../test/resources/data/comma/data2/f317.rdf | 24 + .../test/resources/data/comma/data2/f318.rdf | 24 + .../test/resources/data/comma/data2/f319.rdf | 18 + .../test/resources/data/comma/data2/f32.rdf | 18 + .../test/resources/data/comma/data2/f320.rdf | 18 + .../test/resources/data/comma/data2/f321.rdf | 18 + .../test/resources/data/comma/data2/f322.rdf | 24 + .../test/resources/data/comma/data2/f323.rdf | 36 + .../test/resources/data/comma/data2/f324.rdf | 24 + .../test/resources/data/comma/data2/f325.rdf | 18 + .../test/resources/data/comma/data2/f326.rdf | 30 + .../test/resources/data/comma/data2/f327.rdf | 30 + .../test/resources/data/comma/data2/f328.rdf | 24 + .../test/resources/data/comma/data2/f329.rdf | 18 + .../test/resources/data/comma/data2/f33.rdf | 30 + .../test/resources/data/comma/data2/f330.rdf | 18 + .../test/resources/data/comma/data2/f331.rdf | 30 + .../test/resources/data/comma/data2/f332.rdf | 36 + .../test/resources/data/comma/data2/f333.rdf | 18 + .../test/resources/data/comma/data2/f334.rdf | 30 + .../test/resources/data/comma/data2/f335.rdf | 18 + .../test/resources/data/comma/data2/f336.rdf | 18 + .../test/resources/data/comma/data2/f337.rdf | 18 + .../test/resources/data/comma/data2/f338.rdf | 24 + .../test/resources/data/comma/data2/f339.rdf | 30 + .../test/resources/data/comma/data2/f34.rdf | 30 + .../test/resources/data/comma/data2/f340.rdf | 30 + .../test/resources/data/comma/data2/f341.rdf | 36 + .../test/resources/data/comma/data2/f342.rdf | 42 + .../test/resources/data/comma/data2/f343.rdf | 18 + .../test/resources/data/comma/data2/f344.rdf | 30 + .../test/resources/data/comma/data2/f345.rdf | 18 + .../test/resources/data/comma/data2/f346.rdf | 24 + .../test/resources/data/comma/data2/f347.rdf | 30 + .../test/resources/data/comma/data2/f348.rdf | 18 + .../test/resources/data/comma/data2/f349.rdf | 30 + .../test/resources/data/comma/data2/f35.rdf | 36 + .../test/resources/data/comma/data2/f350.rdf | 24 + .../test/resources/data/comma/data2/f351.rdf | 24 + .../test/resources/data/comma/data2/f352.rdf | 18 + .../test/resources/data/comma/data2/f353.rdf | 30 + .../test/resources/data/comma/data2/f354.rdf | 18 + .../test/resources/data/comma/data2/f355.rdf | 24 + .../test/resources/data/comma/data2/f356.rdf | 24 + .../test/resources/data/comma/data2/f357.rdf | 18 + .../test/resources/data/comma/data2/f358.rdf | 30 + .../test/resources/data/comma/data2/f359.rdf | 18 + .../test/resources/data/comma/data2/f36.rdf | 18 + .../test/resources/data/comma/data2/f360.rdf | 30 + .../test/resources/data/comma/data2/f361.rdf | 24 + .../test/resources/data/comma/data2/f362.rdf | 24 + .../test/resources/data/comma/data2/f363.rdf | 24 + .../test/resources/data/comma/data2/f364.rdf | 30 + .../test/resources/data/comma/data2/f365.rdf | 24 + .../test/resources/data/comma/data2/f366.rdf | 18 + .../test/resources/data/comma/data2/f367.rdf | 24 + .../test/resources/data/comma/data2/f368.rdf | 18 + .../test/resources/data/comma/data2/f369.rdf | 24 + .../test/resources/data/comma/data2/f37.rdf | 42 + .../test/resources/data/comma/data2/f370.rdf | 18 + .../test/resources/data/comma/data2/f371.rdf | 24 + .../test/resources/data/comma/data2/f372.rdf | 30 + .../test/resources/data/comma/data2/f373.rdf | 18 + .../test/resources/data/comma/data2/f374.rdf | 24 + .../test/resources/data/comma/data2/f375.rdf | 30 + .../test/resources/data/comma/data2/f376.rdf | 42 + .../test/resources/data/comma/data2/f377.rdf | 18 + .../test/resources/data/comma/data2/f378.rdf | 18 + .../test/resources/data/comma/data2/f379.rdf | 18 + .../test/resources/data/comma/data2/f38.rdf | 24 + .../test/resources/data/comma/data2/f380.rdf | 30 + .../test/resources/data/comma/data2/f381.rdf | 18 + .../test/resources/data/comma/data2/f382.rdf | 18 + .../test/resources/data/comma/data2/f383.rdf | 30 + .../test/resources/data/comma/data2/f384.rdf | 36 + .../test/resources/data/comma/data2/f385.rdf | 18 + .../test/resources/data/comma/data2/f386.rdf | 30 + .../test/resources/data/comma/data2/f387.rdf | 36 + .../test/resources/data/comma/data2/f388.rdf | 30 + .../test/resources/data/comma/data2/f389.rdf | 18 + .../test/resources/data/comma/data2/f39.rdf | 18 + .../test/resources/data/comma/data2/f390.rdf | 18 + .../test/resources/data/comma/data2/f391.rdf | 18 + .../test/resources/data/comma/data2/f392.rdf | 18 + .../test/resources/data/comma/data2/f393.rdf | 30 + .../test/resources/data/comma/data2/f394.rdf | 18 + .../test/resources/data/comma/data2/f395.rdf | 30 + .../test/resources/data/comma/data2/f396.rdf | 18 + .../test/resources/data/comma/data2/f397.rdf | 18 + .../test/resources/data/comma/data2/f398.rdf | 24 + .../test/resources/data/comma/data2/f399.rdf | 24 + .../test/resources/data/comma/data2/f4.rdf | 18 + .../test/resources/data/comma/data2/f40.rdf | 24 + .../test/resources/data/comma/data2/f400.rdf | 36 + .../test/resources/data/comma/data2/f401.rdf | 36 + .../test/resources/data/comma/data2/f402.rdf | 24 + .../test/resources/data/comma/data2/f403.rdf | 30 + .../test/resources/data/comma/data2/f404.rdf | 24 + .../test/resources/data/comma/data2/f405.rdf | 24 + .../test/resources/data/comma/data2/f406.rdf | 18 + .../test/resources/data/comma/data2/f407.rdf | 30 + .../test/resources/data/comma/data2/f408.rdf | 42 + .../test/resources/data/comma/data2/f409.rdf | 24 + .../test/resources/data/comma/data2/f41.rdf | 24 + .../test/resources/data/comma/data2/f410.rdf | 30 + .../test/resources/data/comma/data2/f411.rdf | 30 + .../test/resources/data/comma/data2/f412.rdf | 36 + .../test/resources/data/comma/data2/f413.rdf | 30 + .../test/resources/data/comma/data2/f414.rdf | 30 + .../test/resources/data/comma/data2/f415.rdf | 42 + .../test/resources/data/comma/data2/f416.rdf | 30 + .../test/resources/data/comma/data2/f417.rdf | 24 + .../test/resources/data/comma/data2/f418.rdf | 18 + .../test/resources/data/comma/data2/f419.rdf | 30 + .../test/resources/data/comma/data2/f42.rdf | 29 + .../test/resources/data/comma/data2/f420.rdf | 30 + .../test/resources/data/comma/data2/f421.rdf | 18 + .../test/resources/data/comma/data2/f422.rdf | 24 + .../test/resources/data/comma/data2/f423.rdf | 30 + .../test/resources/data/comma/data2/f424.rdf | 30 + .../test/resources/data/comma/data2/f425.rdf | 30 + .../test/resources/data/comma/data2/f426.rdf | 18 + .../test/resources/data/comma/data2/f427.rdf | 18 + .../test/resources/data/comma/data2/f428.rdf | 24 + .../test/resources/data/comma/data2/f429.rdf | 18 + .../test/resources/data/comma/data2/f43.rdf | 18 + .../test/resources/data/comma/data2/f430.rdf | 24 + .../test/resources/data/comma/data2/f431.rdf | 30 + .../test/resources/data/comma/data2/f432.rdf | 24 + .../test/resources/data/comma/data2/f433.rdf | 18 + .../test/resources/data/comma/data2/f434.rdf | 24 + .../test/resources/data/comma/data2/f435.rdf | 24 + .../test/resources/data/comma/data2/f436.rdf | 18 + .../test/resources/data/comma/data2/f437.rdf | 24 + .../test/resources/data/comma/data2/f438.rdf | 24 + .../test/resources/data/comma/data2/f439.rdf | 18 + .../test/resources/data/comma/data2/f44.rdf | 18 + .../test/resources/data/comma/data2/f440.rdf | 18 + .../test/resources/data/comma/data2/f441.rdf | 24 + .../test/resources/data/comma/data2/f442.rdf | 24 + .../test/resources/data/comma/data2/f443.rdf | 30 + .../test/resources/data/comma/data2/f444.rdf | 24 + .../test/resources/data/comma/data2/f445.rdf | 30 + .../test/resources/data/comma/data2/f446.rdf | 30 + .../test/resources/data/comma/data2/f447.rdf | 36 + .../test/resources/data/comma/data2/f448.rdf | 30 + .../test/resources/data/comma/data2/f449.rdf | 41 + .../test/resources/data/comma/data2/f45.rdf | 24 + .../test/resources/data/comma/data2/f450.rdf | 30 + .../test/resources/data/comma/data2/f451.rdf | 30 + .../test/resources/data/comma/data2/f452.rdf | 30 + .../test/resources/data/comma/data2/f453.rdf | 24 + .../test/resources/data/comma/data2/f454.rdf | 24 + .../test/resources/data/comma/data2/f455.rdf | 18 + .../test/resources/data/comma/data2/f456.rdf | 24 + .../test/resources/data/comma/data2/f457.rdf | 36 + .../test/resources/data/comma/data2/f458.rdf | 18 + .../test/resources/data/comma/data2/f459.rdf | 18 + .../test/resources/data/comma/data2/f46.rdf | 24 + .../test/resources/data/comma/data2/f460.rdf | 36 + .../test/resources/data/comma/data2/f461.rdf | 24 + .../test/resources/data/comma/data2/f462.rdf | 24 + .../test/resources/data/comma/data2/f463.rdf | 18 + .../test/resources/data/comma/data2/f464.rdf | 18 + .../test/resources/data/comma/data2/f465.rdf | 24 + .../test/resources/data/comma/data2/f466.rdf | 24 + .../test/resources/data/comma/data2/f467.rdf | 30 + .../test/resources/data/comma/data2/f468.rdf | 12 + .../test/resources/data/comma/data2/f469.rdf | 36 + .../test/resources/data/comma/data2/f47.rdf | 18 + .../test/resources/data/comma/data2/f470.rdf | 18 + .../test/resources/data/comma/data2/f471.rdf | 24 + .../test/resources/data/comma/data2/f472.rdf | 29 + .../test/resources/data/comma/data2/f473.rdf | 24 + .../test/resources/data/comma/data2/f474.rdf | 24 + .../test/resources/data/comma/data2/f475.rdf | 18 + .../test/resources/data/comma/data2/f476.rdf | 30 + .../test/resources/data/comma/data2/f477.rdf | 30 + .../test/resources/data/comma/data2/f478.rdf | 35 + .../test/resources/data/comma/data2/f479.rdf | 42 + .../test/resources/data/comma/data2/f48.rdf | 30 + .../test/resources/data/comma/data2/f480.rdf | 12 + .../test/resources/data/comma/data2/f481.rdf | 18 + .../test/resources/data/comma/data2/f482.rdf | 30 + .../test/resources/data/comma/data2/f483.rdf | 24 + .../test/resources/data/comma/data2/f484.rdf | 30 + .../test/resources/data/comma/data2/f485.rdf | 35 + .../test/resources/data/comma/data2/f486.rdf | 18 + .../test/resources/data/comma/data2/f487.rdf | 41 + .../test/resources/data/comma/data2/f488.rdf | 18 + .../test/resources/data/comma/data2/f489.rdf | 24 + .../test/resources/data/comma/data2/f49.rdf | 24 + .../test/resources/data/comma/data2/f490.rdf | 30 + .../test/resources/data/comma/data2/f491.rdf | 24 + .../test/resources/data/comma/data2/f492.rdf | 24 + .../test/resources/data/comma/data2/f493.rdf | 30 + .../test/resources/data/comma/data2/f494.rdf | 30 + .../test/resources/data/comma/data2/f495.rdf | 24 + .../test/resources/data/comma/data2/f496.rdf | 18 + .../test/resources/data/comma/data2/f497.rdf | 30 + .../test/resources/data/comma/data2/f498.rdf | 30 + .../test/resources/data/comma/data2/f499.rdf | 30 + .../test/resources/data/comma/data2/f5.rdf | 25 + .../test/resources/data/comma/data2/f50.rdf | 42 + .../test/resources/data/comma/data2/f500.rdf | 18 + .../test/resources/data/comma/data2/f501.rdf | 18 + .../test/resources/data/comma/data2/f502.rdf | 24 + .../test/resources/data/comma/data2/f503.rdf | 30 + .../test/resources/data/comma/data2/f504.rdf | 30 + .../test/resources/data/comma/data2/f505.rdf | 18 + .../test/resources/data/comma/data2/f506.rdf | 30 + .../test/resources/data/comma/data2/f507.rdf | 18 + .../test/resources/data/comma/data2/f508.rdf | 69 + .../test/resources/data/comma/data2/f509.rdf | 18 + .../test/resources/data/comma/data2/f51.rdf | 30 + .../test/resources/data/comma/data2/f510.rdf | 18 + .../test/resources/data/comma/data2/f511.rdf | 18 + .../test/resources/data/comma/data2/f512.rdf | 18 + .../test/resources/data/comma/data2/f513.rdf | 24 + .../test/resources/data/comma/data2/f514.rdf | 18 + .../test/resources/data/comma/data2/f515.rdf | 24 + .../test/resources/data/comma/data2/f516.rdf | 36 + .../test/resources/data/comma/data2/f517.rdf | 18 + .../test/resources/data/comma/data2/f518.rdf | 30 + .../test/resources/data/comma/data2/f519.rdf | 30 + .../test/resources/data/comma/data2/f52.rdf | 36 + .../test/resources/data/comma/data2/f520.rdf | 12 + .../test/resources/data/comma/data2/f521.rdf | 30 + .../test/resources/data/comma/data2/f522.rdf | 24 + .../test/resources/data/comma/data2/f523.rdf | 30 + .../test/resources/data/comma/data2/f524.rdf | 36 + .../test/resources/data/comma/data2/f525.rdf | 24 + .../test/resources/data/comma/data2/f526.rdf | 18 + .../test/resources/data/comma/data2/f527.rdf | 24 + .../test/resources/data/comma/data2/f528.rdf | 24 + .../test/resources/data/comma/data2/f529.rdf | 24 + .../test/resources/data/comma/data2/f53.rdf | 30 + .../test/resources/data/comma/data2/f530.rdf | 36 + .../test/resources/data/comma/data2/f531.rdf | 24 + .../test/resources/data/comma/data2/f532.rdf | 30 + .../test/resources/data/comma/data2/f533.rdf | 30 + .../test/resources/data/comma/data2/f534.rdf | 42 + .../test/resources/data/comma/data2/f535.rdf | 30 + .../test/resources/data/comma/data2/f536.rdf | 30 + .../test/resources/data/comma/data2/f537.rdf | 24 + .../test/resources/data/comma/data2/f538.rdf | 24 + .../test/resources/data/comma/data2/f539.rdf | 36 + .../test/resources/data/comma/data2/f54.rdf | 24 + .../test/resources/data/comma/data2/f540.rdf | 24 + .../test/resources/data/comma/data2/f541.rdf | 18 + .../test/resources/data/comma/data2/f542.rdf | 18 + .../test/resources/data/comma/data2/f543.rdf | 24 + .../test/resources/data/comma/data2/f544.rdf | 36 + .../test/resources/data/comma/data2/f545.rdf | 18 + .../test/resources/data/comma/data2/f546.rdf | 18 + .../test/resources/data/comma/data2/f547.rdf | 18 + .../test/resources/data/comma/data2/f548.rdf | 24 + .../test/resources/data/comma/data2/f549.rdf | 24 + .../test/resources/data/comma/data2/f55.rdf | 19 + .../test/resources/data/comma/data2/f550.rdf | 30 + .../test/resources/data/comma/data2/f551.rdf | 18 + .../test/resources/data/comma/data2/f552.rdf | 18 + .../test/resources/data/comma/data2/f553.rdf | 18 + .../test/resources/data/comma/data2/f554.rdf | 24 + .../test/resources/data/comma/data2/f555.rdf | 30 + .../test/resources/data/comma/data2/f556.rdf | 24 + .../test/resources/data/comma/data2/f557.rdf | 42 + .../test/resources/data/comma/data2/f558.rdf | 18 + .../test/resources/data/comma/data2/f559.rdf | 36 + .../test/resources/data/comma/data2/f56.rdf | 36 + .../test/resources/data/comma/data2/f560.rdf | 24 + .../test/resources/data/comma/data2/f561.rdf | 24 + .../test/resources/data/comma/data2/f562.rdf | 30 + .../test/resources/data/comma/data2/f563.rdf | 36 + .../test/resources/data/comma/data2/f564.rdf | 30 + .../test/resources/data/comma/data2/f565.rdf | 18 + .../test/resources/data/comma/data2/f566.rdf | 24 + .../test/resources/data/comma/data2/f567.rdf | 24 + .../test/resources/data/comma/data2/f568.rdf | 24 + .../test/resources/data/comma/data2/f569.rdf | 18 + .../test/resources/data/comma/data2/f57.rdf | 36 + .../test/resources/data/comma/data2/f570.rdf | 18 + .../test/resources/data/comma/data2/f571.rdf | 18 + .../test/resources/data/comma/data2/f572.rdf | 24 + .../test/resources/data/comma/data2/f573.rdf | 30 + .../test/resources/data/comma/data2/f574.rdf | 18 + .../test/resources/data/comma/data2/f575.rdf | 18 + .../test/resources/data/comma/data2/f576.rdf | 24 + .../test/resources/data/comma/data2/f577.rdf | 18 + .../test/resources/data/comma/data2/f578.rdf | 36 + .../test/resources/data/comma/data2/f579.rdf | 41 + .../test/resources/data/comma/data2/f58.rdf | 18 + .../test/resources/data/comma/data2/f580.rdf | 30 + .../test/resources/data/comma/data2/f581.rdf | 24 + .../test/resources/data/comma/data2/f582.rdf | 24 + .../test/resources/data/comma/data2/f583.rdf | 18 + .../test/resources/data/comma/data2/f584.rdf | 30 + .../test/resources/data/comma/data2/f585.rdf | 36 + .../test/resources/data/comma/data2/f586.rdf | 24 + .../test/resources/data/comma/data2/f587.rdf | 30 + .../test/resources/data/comma/data2/f588.rdf | 36 + .../test/resources/data/comma/data2/f589.rdf | 24 + .../test/resources/data/comma/data2/f59.rdf | 30 + .../test/resources/data/comma/data2/f590.rdf | 30 + .../test/resources/data/comma/data2/f591.rdf | 18 + .../test/resources/data/comma/data2/f592.rdf | 24 + .../test/resources/data/comma/data2/f593.rdf | 24 + .../test/resources/data/comma/data2/f594.rdf | 24 + .../test/resources/data/comma/data2/f595.rdf | 18 + .../test/resources/data/comma/data2/f596.rdf | 18 + .../test/resources/data/comma/data2/f597.rdf | 18 + .../test/resources/data/comma/data2/f598.rdf | 30 + .../test/resources/data/comma/data2/f599.rdf | 24 + .../test/resources/data/comma/data2/f6.rdf | 18 + .../test/resources/data/comma/data2/f60.rdf | 18 + .../test/resources/data/comma/data2/f600.rdf | 24 + .../test/resources/data/comma/data2/f601.rdf | 24 + .../test/resources/data/comma/data2/f602.rdf | 24 + .../test/resources/data/comma/data2/f603.rdf | 18 + .../test/resources/data/comma/data2/f604.rdf | 30 + .../test/resources/data/comma/data2/f605.rdf | 24 + .../test/resources/data/comma/data2/f606.rdf | 30 + .../test/resources/data/comma/data2/f607.rdf | 30 + .../test/resources/data/comma/data2/f608.rdf | 18 + .../test/resources/data/comma/data2/f609.rdf | 24 + .../test/resources/data/comma/data2/f61.rdf | 18 + .../test/resources/data/comma/data2/f610.rdf | 18 + .../test/resources/data/comma/data2/f611.rdf | 42 + .../test/resources/data/comma/data2/f612.rdf | 48 + .../test/resources/data/comma/data2/f613.rdf | 18 + .../test/resources/data/comma/data2/f614.rdf | 18 + .../test/resources/data/comma/data2/f615.rdf | 24 + .../test/resources/data/comma/data2/f616.rdf | 24 + .../test/resources/data/comma/data2/f617.rdf | 18 + .../test/resources/data/comma/data2/f618.rdf | 36 + .../test/resources/data/comma/data2/f619.rdf | 23 + .../test/resources/data/comma/data2/f62.rdf | 24 + .../test/resources/data/comma/data2/f620.rdf | 18 + .../test/resources/data/comma/data2/f621.rdf | 18 + .../test/resources/data/comma/data2/f622.rdf | 12 + .../test/resources/data/comma/data2/f623.rdf | 18 + .../test/resources/data/comma/data2/f624.rdf | 30 + .../test/resources/data/comma/data2/f625.rdf | 24 + .../test/resources/data/comma/data2/f626.rdf | 18 + .../test/resources/data/comma/data2/f627.rdf | 30 + .../test/resources/data/comma/data2/f628.rdf | 30 + .../test/resources/data/comma/data2/f629.rdf | 24 + .../test/resources/data/comma/data2/f63.rdf | 36 + .../test/resources/data/comma/data2/f630.rdf | 18 + .../test/resources/data/comma/data2/f631.rdf | 18 + .../test/resources/data/comma/data2/f632.rdf | 30 + .../test/resources/data/comma/data2/f633.rdf | 18 + .../test/resources/data/comma/data2/f634.rdf | 18 + .../test/resources/data/comma/data2/f635.rdf | 36 + .../test/resources/data/comma/data2/f636.rdf | 30 + .../test/resources/data/comma/data2/f637.rdf | 18 + .../test/resources/data/comma/data2/f638.rdf | 30 + .../test/resources/data/comma/data2/f639.rdf | 24 + .../test/resources/data/comma/data2/f64.rdf | 24 + .../test/resources/data/comma/data2/f640.rdf | 18 + .../test/resources/data/comma/data2/f641.rdf | 18 + .../test/resources/data/comma/data2/f642.rdf | 30 + .../test/resources/data/comma/data2/f643.rdf | 18 + .../test/resources/data/comma/data2/f644.rdf | 24 + .../test/resources/data/comma/data2/f645.rdf | 18 + .../test/resources/data/comma/data2/f646.rdf | 18 + .../test/resources/data/comma/data2/f647.rdf | 36 + .../test/resources/data/comma/data2/f648.rdf | 36 + .../test/resources/data/comma/data2/f649.rdf | 18 + .../test/resources/data/comma/data2/f65.rdf | 18 + .../test/resources/data/comma/data2/f650.rdf | 24 + .../test/resources/data/comma/data2/f651.rdf | 30 + .../test/resources/data/comma/data2/f652.rdf | 24 + .../test/resources/data/comma/data2/f653.rdf | 18 + .../test/resources/data/comma/data2/f654.rdf | 42 + .../test/resources/data/comma/data2/f655.rdf | 30 + .../test/resources/data/comma/data2/f656.rdf | 30 + .../test/resources/data/comma/data2/f657.rdf | 18 + .../test/resources/data/comma/data2/f658.rdf | 30 + .../test/resources/data/comma/data2/f659.rdf | 30 + .../test/resources/data/comma/data2/f66.rdf | 30 + .../test/resources/data/comma/data2/f660.rdf | 18 + .../test/resources/data/comma/data2/f661.rdf | 24 + .../test/resources/data/comma/data2/f662.rdf | 48 + .../test/resources/data/comma/data2/f663.rdf | 24 + .../test/resources/data/comma/data2/f664.rdf | 35 + .../test/resources/data/comma/data2/f665.rdf | 18 + .../test/resources/data/comma/data2/f666.rdf | 18 + .../test/resources/data/comma/data2/f667.rdf | 24 + .../test/resources/data/comma/data2/f668.rdf | 24 + .../test/resources/data/comma/data2/f669.rdf | 18 + .../test/resources/data/comma/data2/f67.rdf | 42 + .../test/resources/data/comma/data2/f670.rdf | 18 + .../test/resources/data/comma/data2/f671.rdf | 24 + .../test/resources/data/comma/data2/f672.rdf | 24 + .../test/resources/data/comma/data2/f673.rdf | 41 + .../test/resources/data/comma/data2/f674.rdf | 30 + .../test/resources/data/comma/data2/f675.rdf | 36 + .../test/resources/data/comma/data2/f676.rdf | 24 + .../test/resources/data/comma/data2/f677.rdf | 24 + .../test/resources/data/comma/data2/f678.rdf | 24 + .../test/resources/data/comma/data2/f679.rdf | 24 + .../test/resources/data/comma/data2/f68.rdf | 30 + .../test/resources/data/comma/data2/f680.rdf | 24 + .../test/resources/data/comma/data2/f681.rdf | 30 + .../test/resources/data/comma/data2/f682.rdf | 24 + .../test/resources/data/comma/data2/f683.rdf | 18 + .../test/resources/data/comma/data2/f684.rdf | 18 + .../test/resources/data/comma/data2/f685.rdf | 18 + .../test/resources/data/comma/data2/f686.rdf | 24 + .../test/resources/data/comma/data2/f687.rdf | 48 + .../test/resources/data/comma/data2/f688.rdf | 24 + .../test/resources/data/comma/data2/f689.rdf | 36 + .../test/resources/data/comma/data2/f69.rdf | 30 + .../test/resources/data/comma/data2/f690.rdf | 35 + .../test/resources/data/comma/data2/f691.rdf | 35 + .../test/resources/data/comma/data2/f692.rdf | 31 + .../test/resources/data/comma/data2/f693.rdf | 30 + .../test/resources/data/comma/data2/f694.rdf | 24 + .../test/resources/data/comma/data2/f695.rdf | 48 + .../test/resources/data/comma/data2/f696.rdf | 24 + .../test/resources/data/comma/data2/f697.rdf | 24 + .../test/resources/data/comma/data2/f698.rdf | 18 + .../test/resources/data/comma/data2/f699.rdf | 24 + .../test/resources/data/comma/data2/f7.rdf | 30 + .../test/resources/data/comma/data2/f70.rdf | 18 + .../test/resources/data/comma/data2/f700.rdf | 18 + .../test/resources/data/comma/data2/f701.rdf | 54 + .../test/resources/data/comma/data2/f702.rdf | 24 + .../test/resources/data/comma/data2/f703.rdf | 24 + .../test/resources/data/comma/data2/f704.rdf | 24 + .../test/resources/data/comma/data2/f705.rdf | 24 + .../test/resources/data/comma/data2/f706.rdf | 24 + .../test/resources/data/comma/data2/f707.rdf | 30 + .../test/resources/data/comma/data2/f708.rdf | 36 + .../test/resources/data/comma/data2/f709.rdf | 24 + .../test/resources/data/comma/data2/f71.rdf | 24 + .../test/resources/data/comma/data2/f710.rdf | 18 + .../test/resources/data/comma/data2/f711.rdf | 18 + .../test/resources/data/comma/data2/f712.rdf | 18 + .../test/resources/data/comma/data2/f713.rdf | 35 + .../test/resources/data/comma/data2/f714.rdf | 24 + .../test/resources/data/comma/data2/f715.rdf | 18 + .../test/resources/data/comma/data2/f716.rdf | 24 + .../test/resources/data/comma/data2/f717.rdf | 18 + .../test/resources/data/comma/data2/f718.rdf | 35 + .../test/resources/data/comma/data2/f719.rdf | 18 + .../test/resources/data/comma/data2/f72.rdf | 54 + .../test/resources/data/comma/data2/f720.rdf | 24 + .../test/resources/data/comma/data2/f721.rdf | 18 + .../test/resources/data/comma/data2/f722.rdf | 24 + .../test/resources/data/comma/data2/f723.rdf | 24 + .../test/resources/data/comma/data2/f724.rdf | 30 + .../test/resources/data/comma/data2/f725.rdf | 30 + .../test/resources/data/comma/data2/f726.rdf | 24 + .../test/resources/data/comma/data2/f727.rdf | 18 + .../test/resources/data/comma/data2/f728.rdf | 18 + .../test/resources/data/comma/data2/f729.rdf | 24 + .../test/resources/data/comma/data2/f73.rdf | 24 + .../test/resources/data/comma/data2/f730.rdf | 18 + .../test/resources/data/comma/data2/f731.rdf | 24 + .../test/resources/data/comma/data2/f732.rdf | 24 + .../test/resources/data/comma/data2/f733.rdf | 18 + .../test/resources/data/comma/data2/f734.rdf | 18 + .../test/resources/data/comma/data2/f735.rdf | 24 + .../test/resources/data/comma/data2/f736.rdf | 30 + .../test/resources/data/comma/data2/f737.rdf | 36 + .../test/resources/data/comma/data2/f738.rdf | 30 + .../test/resources/data/comma/data2/f739.rdf | 18 + .../test/resources/data/comma/data2/f74.rdf | 36 + .../test/resources/data/comma/data2/f740.rdf | 24 + .../test/resources/data/comma/data2/f741.rdf | 30 + .../test/resources/data/comma/data2/f742.rdf | 24 + .../test/resources/data/comma/data2/f743.rdf | 18 + .../test/resources/data/comma/data2/f744.rdf | 18 + .../test/resources/data/comma/data2/f745.rdf | 30 + .../test/resources/data/comma/data2/f746.rdf | 30 + .../test/resources/data/comma/data2/f747.rdf | 35 + .../test/resources/data/comma/data2/f748.rdf | 36 + .../test/resources/data/comma/data2/f749.rdf | 30 + .../test/resources/data/comma/data2/f75.rdf | 24 + .../test/resources/data/comma/data2/f750.rdf | 24 + .../test/resources/data/comma/data2/f751.rdf | 18 + .../test/resources/data/comma/data2/f752.rdf | 29 + .../test/resources/data/comma/data2/f753.rdf | 18 + .../test/resources/data/comma/data2/f754.rdf | 18 + .../test/resources/data/comma/data2/f755.rdf | 24 + .../test/resources/data/comma/data2/f756.rdf | 24 + .../test/resources/data/comma/data2/f757.rdf | 18 + .../test/resources/data/comma/data2/f758.rdf | 24 + .../test/resources/data/comma/data2/f759.rdf | 24 + .../test/resources/data/comma/data2/f76.rdf | 30 + .../test/resources/data/comma/data2/f760.rdf | 18 + .../test/resources/data/comma/data2/f761.rdf | 18 + .../test/resources/data/comma/data2/f762.rdf | 24 + .../test/resources/data/comma/data2/f763.rdf | 24 + .../test/resources/data/comma/data2/f764.rdf | 24 + .../test/resources/data/comma/data2/f765.rdf | 42 + .../test/resources/data/comma/data2/f766.rdf | 18 + .../test/resources/data/comma/data2/f767.rdf | 24 + .../test/resources/data/comma/data2/f768.rdf | 30 + .../test/resources/data/comma/data2/f769.rdf | 24 + .../test/resources/data/comma/data2/f77.rdf | 18 + .../test/resources/data/comma/data2/f770.rdf | 18 + .../test/resources/data/comma/data2/f771.rdf | 18 + .../test/resources/data/comma/data2/f772.rdf | 24 + .../test/resources/data/comma/data2/f773.rdf | 18 + .../test/resources/data/comma/data2/f774.rdf | 18 + .../test/resources/data/comma/data2/f775.rdf | 18 + .../test/resources/data/comma/data2/f776.rdf | 36 + .../test/resources/data/comma/data2/f777.rdf | 18 + .../test/resources/data/comma/data2/f778.rdf | 36 + .../test/resources/data/comma/data2/f779.rdf | 24 + .../test/resources/data/comma/data2/f78.rdf | 24 + .../test/resources/data/comma/data2/f780.rdf | 18 + .../test/resources/data/comma/data2/f781.rdf | 30 + .../test/resources/data/comma/data2/f782.rdf | 12 + .../test/resources/data/comma/data2/f783.rdf | 24 + .../test/resources/data/comma/data2/f784.rdf | 18 + .../test/resources/data/comma/data2/f785.rdf | 18 + .../test/resources/data/comma/data2/f786.rdf | 24 + .../test/resources/data/comma/data2/f787.rdf | 18 + .../test/resources/data/comma/data2/f788.rdf | 18 + .../test/resources/data/comma/data2/f789.rdf | 18 + .../test/resources/data/comma/data2/f79.rdf | 24 + .../test/resources/data/comma/data2/f790.rdf | 30 + .../test/resources/data/comma/data2/f791.rdf | 18 + .../test/resources/data/comma/data2/f792.rdf | 24 + .../test/resources/data/comma/data2/f793.rdf | 18 + .../test/resources/data/comma/data2/f794.rdf | 24 + .../test/resources/data/comma/data2/f795.rdf | 24 + .../test/resources/data/comma/data2/f796.rdf | 24 + .../test/resources/data/comma/data2/f797.rdf | 36 + .../test/resources/data/comma/data2/f798.rdf | 18 + .../test/resources/data/comma/data2/f799.rdf | 24 + .../test/resources/data/comma/data2/f8.rdf | 18 + .../test/resources/data/comma/data2/f80.rdf | 18 + .../test/resources/data/comma/data2/f800.rdf | 30 + .../test/resources/data/comma/data2/f801.rdf | 24 + .../test/resources/data/comma/data2/f802.rdf | 18 + .../test/resources/data/comma/data2/f803.rdf | 18 + .../test/resources/data/comma/data2/f804.rdf | 18 + .../test/resources/data/comma/data2/f805.rdf | 18 + .../test/resources/data/comma/data2/f806.rdf | 18 + .../test/resources/data/comma/data2/f807.rdf | 29 + .../test/resources/data/comma/data2/f808.rdf | 30 + .../test/resources/data/comma/data2/f809.rdf | 18 + .../test/resources/data/comma/data2/f81.rdf | 42 + .../test/resources/data/comma/data2/f810.rdf | 18 + .../test/resources/data/comma/data2/f811.rdf | 18 + .../test/resources/data/comma/data2/f812.rdf | 24 + .../test/resources/data/comma/data2/f813.rdf | 18 + .../test/resources/data/comma/data2/f814.rdf | 24 + .../test/resources/data/comma/data2/f815.rdf | 18 + .../test/resources/data/comma/data2/f816.rdf | 12 + .../test/resources/data/comma/data2/f817.rdf | 24 + .../test/resources/data/comma/data2/f818.rdf | 30 + .../test/resources/data/comma/data2/f819.rdf | 18 + .../test/resources/data/comma/data2/f82.rdf | 30 + .../test/resources/data/comma/data2/f820.rdf | 24 + .../test/resources/data/comma/data2/f821.rdf | 18 + .../test/resources/data/comma/data2/f822.rdf | 30 + .../test/resources/data/comma/data2/f823.rdf | 48 + .../test/resources/data/comma/data2/f824.rdf | 18 + .../test/resources/data/comma/data2/f825.rdf | 24 + .../test/resources/data/comma/data2/f826.rdf | 13 + .../test/resources/data/comma/data2/f827.rdf | 36 + .../test/resources/data/comma/data2/f828.rdf | 24 + .../test/resources/data/comma/data2/f829.rdf | 48 + .../test/resources/data/comma/data2/f83.rdf | 30 + .../test/resources/data/comma/data2/f830.rdf | 24 + .../test/resources/data/comma/data2/f831.rdf | 35 + .../test/resources/data/comma/data2/f84.rdf | 30 + .../test/resources/data/comma/data2/f85.rdf | 18 + .../test/resources/data/comma/data2/f86.rdf | 18 + .../test/resources/data/comma/data2/f87.rdf | 24 + .../test/resources/data/comma/data2/f88.rdf | 18 + .../test/resources/data/comma/data2/f89.rdf | 30 + .../test/resources/data/comma/data2/f9.rdf | 30 + .../test/resources/data/comma/data2/f90.rdf | 24 + .../test/resources/data/comma/data2/f91.rdf | 18 + .../test/resources/data/comma/data2/f92.rdf | 18 + .../test/resources/data/comma/data2/f93.rdf | 30 + .../test/resources/data/comma/data2/f94.rdf | 12 + .../test/resources/data/comma/data2/f95.rdf | 24 + .../test/resources/data/comma/data2/f96.rdf | 31 + .../test/resources/data/comma/data2/f97.rdf | 18 + .../test/resources/data/comma/data2/f98.rdf | 18 + .../test/resources/data/comma/data2/f99.rdf | 25 + .../reports/alltests.ttl | 607 + .../reports/corese-shacl-earl.ttl | 1094 + .../data-shapes-test-suite/reports/earl.ttl | 242 + .../reports/earlreport.ui.ttlx | 191 + .../reports/netage-shacl-earl.ttl | 1250 + .../reports/topbraid-shacl-earl.ttl | 1347 + .../tests/core/complex/manifest.ttl | 10 + .../tests/core/complex/personexample.ttl | 103 + .../core/complex/shacl-shacl-data-shapes.ttl | 410 + .../tests/core/complex/shacl-shacl.ttl | 19 + .../tests/core/manifest.ttl | 14 + .../tests/core/misc/deactivated-001.ttl | 44 + .../tests/core/misc/deactivated-002.ttl | 43 + .../tests/core/misc/manifest.ttl | 13 + .../tests/core/misc/message-001.ttl | 48 + .../tests/core/misc/severity-001.ttl | 43 + .../tests/core/misc/severity-002.ttl | 60 + .../tests/core/node/and-001.ttl | 77 + .../tests/core/node/and-002.ttl | 74 + .../tests/core/node/class-001.ttl | 70 + .../tests/core/node/class-002.ttl | 62 + .../tests/core/node/class-003.ttl | 105 + .../tests/core/node/closed-001.ttl | 64 + .../tests/core/node/closed-002.ttl | 58 + .../tests/core/node/datatype-001.ttl | 64 + .../tests/core/node/datatype-002.ttl | 53 + .../tests/core/node/disjoint-001.ttl | 51 + .../tests/core/node/equals-001.ttl | 59 + .../tests/core/node/hasValue-001.ttl | 44 + .../tests/core/node/in-001.ttl | 63 + .../tests/core/node/languageIn-001.ttl | 66 + .../tests/core/node/manifest.ttl | 40 + .../tests/core/node/maxExclusive-001.ttl | 91 + .../tests/core/node/maxInclusive-001.ttl | 75 + .../tests/core/node/maxLength-001.ttl | 87 + .../tests/core/node/minExclusive-001.ttl | 91 + .../tests/core/node/minInclusive-001.ttl | 44 + .../tests/core/node/minInclusive-002.ttl | 61 + .../tests/core/node/minInclusive-003.ttl | 70 + .../tests/core/node/minLength-001.ttl | 79 + .../tests/core/node/node-001.ttl | 55 + .../tests/core/node/nodeKind-001.ttl | 43 + .../tests/core/node/not-001.ttl | 59 + .../tests/core/node/not-002.ttl | 52 + .../tests/core/node/or-001.ttl | 91 + .../tests/core/node/pattern-001.ttl | 76 + .../tests/core/node/pattern-002.ttl | 45 + .../tests/core/node/qualified-001-data.ttl | 4 + .../tests/core/node/qualified-001-shapes.ttl | 10 + .../tests/core/node/qualified-001.ttl | 28 + .../tests/core/node/xone-001.ttl | 74 + .../tests/core/node/xone-duplicate-data.ttl | 4 + .../tests/core/node/xone-duplicate-shapes.ttl | 7 + .../tests/core/node/xone-duplicate.ttl | 34 + .../tests/core/path/manifest.ttl | 21 + .../tests/core/path/path-alternative-001.ttl | 86 + .../tests/core/path/path-complex-001.ttl | 91 + .../tests/core/path/path-complex-002-data.ttl | 7 + .../core/path/path-complex-002-shapes.ttl | 14 + .../tests/core/path/path-complex-002.ttl | 51 + .../tests/core/path/path-inverse-001.ttl | 90 + .../tests/core/path/path-oneOrMore-001.ttl | 71 + .../tests/core/path/path-sequence-001.ttl | 80 + .../tests/core/path/path-sequence-002.ttl | 83 + .../core/path/path-sequence-duplicate-001.ttl | 63 + .../tests/core/path/path-strange-001.ttl | 52 + .../tests/core/path/path-strange-002.ttl | 52 + .../tests/core/path/path-unused-001-data.ttl | 5 + .../core/path/path-unused-001-shapes.ttl | 18 + .../tests/core/path/path-unused-001.ttl | 29 + .../tests/core/path/path-zeroOrMore-001.ttl | 61 + .../tests/core/path/path-zeroOrOne-001.ttl | 61 + .../tests/core/property/and-001.ttl | 107 + .../tests/core/property/class-001.ttl | 91 + .../tests/core/property/datatype-001.ttl | 76 + .../tests/core/property/datatype-002.ttl | 71 + .../tests/core/property/datatype-003.ttl | 69 + .../property/datatype-ill-formed-data.ttl | 6 + .../property/datatype-ill-formed-shapes.ttl | 8 + .../core/property/datatype-ill-formed.ttl | 43 + .../tests/core/property/disjoint-001.ttl | 84 + .../tests/core/property/equals-001.ttl | 119 + .../tests/core/property/hasValue-001.ttl | 68 + .../tests/core/property/in-001.ttl | 69 + .../tests/core/property/languageIn-001.ttl | 79 + .../tests/core/property/lessThan-001.ttl | 96 + .../tests/core/property/lessThan-002.ttl | 81 + .../core/property/lessThanOrEquals-001.ttl | 87 + .../tests/core/property/manifest.ttl | 46 + .../tests/core/property/maxCount-001.ttl | 64 + .../tests/core/property/maxCount-002.ttl | 57 + .../tests/core/property/maxExclusive-001.ttl | 84 + .../tests/core/property/maxInclusive-001.ttl | 71 + .../tests/core/property/maxLength-001.ttl | 61 + .../tests/core/property/minCount-001.ttl | 62 + .../tests/core/property/minCount-002.ttl | 41 + .../tests/core/property/minExclusive-001.ttl | 69 + .../tests/core/property/minExclusive-002.ttl | 65 + .../tests/core/property/minLength-001.ttl | 61 + .../tests/core/property/node-001.ttl | 113 + .../tests/core/property/node-002.ttl | 75 + .../tests/core/property/nodeKind-001.ttl | 371 + .../tests/core/property/not-001.ttl | 68 + .../tests/core/property/or-001.ttl | 76 + .../tests/core/property/or-datatypes-001.ttl | 95 + .../tests/core/property/pattern-001.ttl | 74 + .../tests/core/property/pattern-002.ttl | 66 + .../tests/core/property/property-001.ttl | 100 + .../qualifiedMinCountDisjoint-001.ttl | 116 + .../core/property/qualifiedValueShape-001.ttl | 80 + .../qualifiedValueShapesDisjoint-001.ttl | 128 + .../tests/core/property/uniqueLang-001.ttl | 86 + .../core/property/uniqueLang-002-data.ttl | 3 + .../core/property/uniqueLang-002-shapes.ttl | 8 + .../tests/core/property/uniqueLang-002.ttl | 23 + .../tests/core/targets/manifest.ttl | 15 + .../core/targets/multipleTargets-001.ttl | 56 + .../tests/core/targets/targetClass-001.ttl | 62 + .../core/targets/targetClassImplicit-001.ttl | 58 + .../tests/core/targets/targetNode-001.ttl | 57 + .../core/targets/targetObjectsOf-001.ttl | 65 + .../core/targets/targetSubjectsOf-001.ttl | 57 + .../core/targets/targetSubjectsOf-002.ttl | 74 + .../core/validation-reports/manifest.ttl | 9 + .../core/validation-reports/shared-data.ttl | 4 + .../core/validation-reports/shared-shapes.ttl | 16 + .../tests/core/validation-reports/shared.ttl | 52 + .../data-shapes-test-suite/tests/manifest.ttl | 9 + .../tests/sparql/component/manifest.ttl | 13 + .../component/nodeValidator-ask-001.ttl | 79 + .../tests/sparql/component/optional-001.ttl | 113 + .../component/propertyValidator-ask-001.ttl | 106 + .../propertyValidator-select-001.ttl | 107 + .../tests/sparql/component/validator-001.ttl | 81 + .../tests/sparql/manifest.ttl | 11 + .../tests/sparql/node/manifest.ttl | 12 + .../tests/sparql/node/prefixes-001.ttl | 70 + .../tests/sparql/node/sparql-001.ttl | 89 + .../tests/sparql/node/sparql-002.ttl | 69 + .../tests/sparql/node/sparql-003.ttl | 70 + .../tests/sparql/pre-binding/manifest.ttl | 21 + .../sparql/pre-binding/pre-binding-001.ttl | 63 + .../sparql/pre-binding/pre-binding-002.ttl | 67 + .../sparql/pre-binding/pre-binding-003.ttl | 67 + .../sparql/pre-binding/pre-binding-004.ttl | 62 + .../sparql/pre-binding/pre-binding-005.ttl | 68 + .../sparql/pre-binding/pre-binding-006.ttl | 66 + .../sparql/pre-binding/shapesGraph-001.ttl | 64 + .../pre-binding/unsupported-sparql-001.ttl | 34 + .../pre-binding/unsupported-sparql-002.ttl | 33 + .../pre-binding/unsupported-sparql-003.ttl | 36 + .../pre-binding/unsupported-sparql-004.ttl | 39 + .../pre-binding/unsupported-sparql-005.ttl | 33 + .../pre-binding/unsupported-sparql-006.ttl | 85 + .../tests/sparql/property/manifest.ttl | 10 + .../tests/sparql/property/sparql-001.ttl | 76 + .../tests/sparql/property/sparql-002.ttl | 77 + .../src/test/resources/data/earl/corese.txt | 16 + .../test/resources/data/earl/earl-corese.ttl | 435 + .../src/test/resources/data/earl/earl.ttl | 4465 +++ .../test/resources/data/earl/manifest-az.ttl | 194 + .../src/test/resources/data/earl/pattern.txt | 10 + .../src/test/resources/data/earl/prefix.txt | 9 + .../test/resources/data/engine/data/test.rdf | 123 + .../resources/data/engine/ontology/test.rdfs | 83 + .../test/resources/data/engine/rule/meta.rul | 99 + .../resources/data/engine/rule/test2.brul | 220 + .../data/owlrule/owlrllite-junit.rul | 1062 + .../test/resources/data/owlrule/owlrllite.rul | 1066 + .../.github/ISSUE_TEMPLATE/blank.md | 8 + .../.github/ISSUE_TEMPLATE/use-case.md | 12 + .../rdf-star-main/.github/workflows/ci.yml | 47 + .../resources/data/rdf-star-main/.gitignore | 8 + .../data/rdf-star-main/.pr-preview.json | 4 + .../data/rdf-star-main/CONTRIBUTING.md | 23 + .../test/resources/data/rdf-star-main/Gemfile | 12 + .../resources/data/rdf-star-main/Gemfile.lock | 107 + .../resources/data/rdf-star-main/LICENSE.md | 10 + .../rdf-star-main/Minutes/2020-11-13.html | 543 + .../rdf-star-main/Minutes/2020-11-20.html | 400 + .../rdf-star-main/Minutes/2020-11-27.html | 665 + .../rdf-star-main/Minutes/2020-12-04.html | 615 + .../rdf-star-main/Minutes/2020-12-11.html | 745 + .../rdf-star-main/Minutes/2020-12-18.html | 405 + .../rdf-star-main/Minutes/2021-01-08.html | 465 + .../rdf-star-main/Minutes/2021-01-15.html | 569 + .../rdf-star-main/Minutes/2021-01-22.html | 519 + .../rdf-star-main/Minutes/2021-02-05.html | 576 + .../rdf-star-main/Minutes/2021-02-12.html | 453 + .../rdf-star-main/Minutes/2021-02-19.html | 463 + .../rdf-star-main/Minutes/2021-02-26.html | 711 + .../rdf-star-main/Minutes/2021-03-05.html | 220 + .../rdf-star-main/Minutes/2021-03-12.html | 232 + .../rdf-star-main/Minutes/2021-03-19.html | 211 + .../rdf-star-main/Minutes/2021-03-26.html | 100 + .../rdf-star-main/Minutes/2021-04-09.html | 241 + .../rdf-star-main/Minutes/2021-04-23.html | 194 + .../rdf-star-main/Minutes/2021-04-30.html | 245 + .../rdf-star-main/Minutes/2021-05-07.html | 185 + .../rdf-star-main/Minutes/2021-05-14.html | 248 + .../rdf-star-main/Minutes/2021-05-21.html | 271 + .../rdf-star-main/Minutes/2021-05-28.html | 194 + .../rdf-star-main/Minutes/2021-06-04.html | 207 + .../rdf-star-main/Minutes/2021-06-11.html | 205 + .../rdf-star-main/Minutes/2021-06-18.html | 261 + .../rdf-star-main/Minutes/2021-07-02.html | 180 + .../rdf-star-main/Minutes/2021-07-16.html | 184 + .../rdf-star-main/Minutes/2021-09-03.html | 185 + .../rdf-star-main/Minutes/2021-09-17.html | 228 + .../rdf-star-main/Minutes/2021-10-01.html | 232 + .../rdf-star-main/Minutes/2021-10-15.html | 245 + .../rdf-star-main/Minutes/2021-10-29.html | 185 + .../rdf-star-main/Minutes/2021-11-12.html | 206 + .../rdf-star-main/Minutes/2021-12-03.html | 205 + .../rdf-star-main/Minutes/2021-12-17.html | 177 + .../rdf-star-main/Minutes/2022-01-07.html | 176 + .../rdf-star-main/Minutes/2022-01-21.html | 237 + .../rdf-star-main/Minutes/2022-02-11.html | 229 + .../rdf-star-main/Minutes/2022-03-04.html | 263 + .../rdf-star-main/Minutes/2022-03-25.html | 155 + .../rdf-star-main/Minutes/2022-04-08.html | 197 + .../rdf-star-main/Minutes/2022-05-06.html | 197 + .../rdf-star-main/Minutes/2022-05-20.html | 178 + .../rdf-star-main/Minutes/2022-06-10.html | 200 + .../data/rdf-star-main/Minutes/index.html | 53 + .../rdf-star-main/Minutes/update-index.sh | 17 + .../resources/data/rdf-star-main/README.md | 8 + .../data/rdf-star-main/UCR/README.md | 5 + .../data/rdf-star-main/UCR/rdf-star-ucr.html | 497 + .../rdf-star-main/cg-spec/2021-02-18-src.html | 1105 + .../rdf-star-main/cg-spec/2021-02-18.html | 2085 ++ .../rdf-star-main/cg-spec/2021-04-13-src.html | 2336 ++ .../rdf-star-main/cg-spec/2021-04-13.html | 3326 +++ .../rdf-star-main/cg-spec/2021-07-01-src.html | 3028 ++ .../rdf-star-main/cg-spec/2021-07-01.html | 4301 +++ .../rdf-star-main/cg-spec/2021-12-17-src.html | 3548 +++ .../rdf-star-main/cg-spec/2021-12-17.html | 7629 +++++ .../rdf-star-main/cg-spec/editors_draft.html | 3564 +++ .../data/rdf-star-main/cg-spec/index.html | 16 + .../rdf-star-main/cg-spec/visual-map-bg.svg | 66 + .../data/rdf-star-main/css/README.md | 1 + .../data/rdf-star-main/css/bootstrap.css | 10263 +++++++ .../data/rdf-star-main/css/bootstrap.css.map | 1 + .../data/rdf-star-main/css/bootstrap.min.css | 7 + .../rdf-star-main/css/bootstrap.min.css.map | 1 + .../data/rdf-star-main/css/rdf-star.css | 45 + .../data/rdf-star-main/ebnf/n-quads.ebnf | 22 + .../data/rdf-star-main/ebnf/n-quads.html | 190 + .../data/rdf-star-main/ebnf/n-triples.ebnf | 21 + .../data/rdf-star-main/ebnf/n-triples.html | 184 + .../data/rdf-star-main/ebnf/sparql.ebnf | 260 + .../data/rdf-star-main/ebnf/sparql.html | 1513 + .../data/rdf-star-main/ebnf/trig.ebnf | 86 + .../data/rdf-star-main/ebnf/trig.html | 442 + .../data/rdf-star-main/ebnf/turtle.ebnf | 58 + .../data/rdf-star-main/ebnf/turtle.html | 400 + .../data/rdf-star-main/implementations.html | 118 + .../resources/data/rdf-star-main/index.html | 129 + .../presentations/RDF-star_EBDVF.pdf | Bin 0 -> 2055069 bytes .../presentations/RDF-star_Lotico.pdf | Bin 0 -> 3950191 bytes .../rdf-star-main/presentations/index.html | 69 + .../data/rdf-star-main/rdf-star-cg-spec.html | 16 + .../data/rdf-star-main/reports/.earl | 6 + .../data/rdf-star-main/reports/README.md | 14 + .../data/rdf-star-main/reports/Rakefile | 45 + .../rdf-star-main/reports/apache-jena.ttl | 2139 ++ .../data/rdf-star-main/reports/earl.jsonld | 23131 ++++++++++++++++ .../data/rdf-star-main/reports/earl.ttl | 14663 ++++++++++ .../data/rdf-star-main/reports/eye-turtle.ttl | 108 + .../data/rdf-star-main/reports/index.html | 4555 +++ .../rdf-star-main/reports/oxigraph-sparql.ttl | 1287 + .../rdf-star-main/reports/oxigraph-turtle.ttl | 1249 + .../data/rdf-star-main/reports/rdf-ex-nt.ttl | 213 + .../rdf-star-main/reports/rdf-ex-turtle.ttl | 655 + .../rdf-star-main/reports/ruby-sparql.ttl | 1125 + .../data/rdf-star-main/reports/ruby-trig.ttl | 1009 + .../data/rdf-star-main/reports/template.haml | 445 + .../data/rdf-star-main/tests/Makefile | 8 + .../data/rdf-star-main/tests/index.html | 110 + .../tests/make-html-manifests.py | 258 + .../tests/make-jsonld-manifests.rb | 50 + .../tests/manifest-context.jsonld | 110 + .../data/rdf-star-main/tests/manifest.html | 1 + .../data/rdf-star-main/tests/manifest.jsonld | 30 + .../data/rdf-star-main/tests/manifest.ttl | 33 + .../rdf-star-main/tests/nt/syntax/index.html | 1 + .../tests/nt/syntax/manifest.html | 230 + .../tests/nt/syntax/manifest.jsonld | 202 + .../tests/nt/syntax/manifest.ttl | 112 + .../nt/syntax/ntriples-star-bad-syntax-1.nt | 1 + .../nt/syntax/ntriples-star-bad-syntax-2.nt | 1 + .../nt/syntax/ntriples-star-bad-syntax-3.nt | 1 + .../nt/syntax/ntriples-star-bad-syntax-4.nt | 1 + .../tests/nt/syntax/ntriples-star-bnode-1.nt | 2 + .../tests/nt/syntax/ntriples-star-bnode-2.nt | 2 + .../tests/nt/syntax/ntriples-star-nested-1.nt | 3 + .../tests/nt/syntax/ntriples-star-nested-2.nt | 3 + .../tests/nt/syntax/ntriples-star-syntax-1.nt | 1 + .../tests/nt/syntax/ntriples-star-syntax-2.nt | 1 + .../tests/nt/syntax/ntriples-star-syntax-3.nt | 1 + .../tests/nt/syntax/ntriples-star-syntax-4.nt | 1 + .../tests/nt/syntax/ntriples-star-syntax-5.nt | 1 + .../data/rdf-star-main/tests/semantics/README | 49 + .../semantics/canonical-literal-control.ttl | 4 + .../tests/semantics/canonical-literal.ttl | 4 + .../tests/semantics/control-sameas-a.ttl | 5 + .../tests/semantics/control-sameas-r.ttl | 3 + .../rdf-star-main/tests/semantics/index.html | 1 + .../lowercase-language-string-control.ttl | 4 + .../semantics/lowercase-language-string.ttl | 4 + .../tests/semantics/malformed-literal-2a.ttl | 5 + .../tests/semantics/malformed-literal-2r.ttl | 5 + .../tests/semantics/malformed-literal-3a.ttl | 5 + .../tests/semantics/malformed-literal-3r.ttl | 5 + .../semantics/malformed-literal-control.ttl | 4 + .../semantics/malformed-literal-other.ttl | 4 + .../tests/semantics/malformed-literal.ttl | 4 + .../tests/semantics/manifest.html | 669 + .../tests/semantics/manifest.jsonld | 638 + .../tests/semantics/manifest.ttl | 375 + .../non-canonical-literal-control.ttl | 4 + .../tests/semantics/non-canonical-literal.ttl | 4 + .../tests/semantics/superman.ttl | 5 + .../superman_undesired_entailment.ttl | 3 + .../tests/semantics/test000o.ttl | 3 + .../tests/semantics/test000s.ttl | 3 + .../tests/semantics/test001a.ttl | 4 + .../tests/semantics/test001r.ttl | 3 + .../tests/semantics/test002a.ttl | 3 + .../tests/semantics/test002or.ttl | 3 + .../tests/semantics/test002pgr.ttl | 3 + .../tests/semantics/test002r.ttl | 3 + .../tests/semantics/test002sbr.ttl | 3 + .../tests/semantics/test002sor.ttl | 3 + .../tests/semantics/test002sr.ttl | 3 + .../tests/semantics/test003a.ttl | 3 + .../tests/semantics/test003r.ttl | 3 + .../tests/semantics/test004a.ttl | 5 + .../tests/semantics/test004fr.ttl | 4 + .../tests/semantics/test004or.ttl | 4 + .../tests/semantics/test004sr.ttl | 4 + .../rdf-star-main/tests/semantics/test005.ttl | 3 + .../tests/semantics/test006a.ttl | 5 + .../tests/semantics/test006r.ttl | 5 + .../tests/semantics/test007a.ttl | 3 + .../tests/semantics/test007a2.ttl | 4 + .../tests/semantics/test007r1.ttl | 3 + .../tests/semantics/test007r2.ttl | 3 + .../upercase-language-string-control.ttl | 3 + .../semantics/upercase-language-string.ttl | 3 + .../tests/sparql/eval/data-0.ttl | 14 + .../tests/sparql/eval/data-1.ttl | 3 + .../tests/sparql/eval/data-2.ttl | 16 + .../tests/sparql/eval/data-3.ttl | 4 + .../tests/sparql/eval/data-4.trig | 13 + .../tests/sparql/eval/data-5.ttl | 10 + .../tests/sparql/eval/data-6.trig | 4 + .../tests/sparql/eval/data-7.ttl | 24 + .../tests/sparql/eval/data-order-kind.ttl | 18 + .../tests/sparql/eval/data-order.ttl | 26 + .../rdf-star-main/tests/sparql/eval/empty.nq | 0 .../tests/sparql/eval/index.html | 1 + .../tests/sparql/eval/manifest.html | 2436 ++ .../tests/sparql/eval/manifest.jsonld | 470 + .../tests/sparql/eval/manifest.ttl | 366 + .../tests/sparql/eval/sparql-star-basic-2.rq | 5 + .../tests/sparql/eval/sparql-star-basic-2.srj | 12 + .../tests/sparql/eval/sparql-star-basic-3.rq | 5 + .../tests/sparql/eval/sparql-star-basic-3.srj | 13 + .../tests/sparql/eval/sparql-star-basic-4.rq | 5 + .../tests/sparql/eval/sparql-star-basic-4.srj | 12 + .../tests/sparql/eval/sparql-star-basic-5.rq | 5 + .../tests/sparql/eval/sparql-star-basic-5.srj | 12 + .../tests/sparql/eval/sparql-star-basic-6.rq | 5 + .../tests/sparql/eval/sparql-star-basic-6.srj | 9 + .../sparql/eval/sparql-star-construct-1.rq | 5 + .../sparql/eval/sparql-star-construct-1.ttl | 3 + .../sparql/eval/sparql-star-construct-2.rq | 5 + .../sparql/eval/sparql-star-construct-2.ttl | 3 + .../sparql/eval/sparql-star-construct-3.rq | 7 + .../sparql/eval/sparql-star-construct-3.ttl | 8 + .../sparql/eval/sparql-star-construct-4.rq | 7 + .../sparql/eval/sparql-star-construct-4.ttl | 5 + .../sparql/eval/sparql-star-construct-5.rq | 5 + .../sparql/eval/sparql-star-construct-5.ttl | 5 + .../tests/sparql/eval/sparql-star-expr-01.rq | 10 + .../tests/sparql/eval/sparql-star-expr-01.ttl | 14 + .../tests/sparql/eval/sparql-star-expr-02.rq | 13 + .../tests/sparql/eval/sparql-star-expr-02.srj | 18 + .../tests/sparql/eval/sparql-star-graphs-1.rq | 6 + .../sparql/eval/sparql-star-graphs-1.srj | 14 + .../tests/sparql/eval/sparql-star-graphs-2.rq | 6 + .../sparql/eval/sparql-star-graphs-2.srj | 17 + .../tests/sparql/eval/sparql-star-op-1.rq | 7 + .../tests/sparql/eval/sparql-star-op-1.srj | 46 + .../tests/sparql/eval/sparql-star-op-2.rq | 8 + .../tests/sparql/eval/sparql-star-op-2.srj | 79 + .../tests/sparql/eval/sparql-star-op-3.rq | 8 + .../tests/sparql/eval/sparql-star-op-3.srj | 27 + .../tests/sparql/eval/sparql-star-op-4.rq | 8 + .../tests/sparql/eval/sparql-star-op-4.srj | 136 + .../tests/sparql/eval/sparql-star-order-1.srj | 31 + .../tests/sparql/eval/sparql-star-order-2.srj | 154 + .../tests/sparql/eval/sparql-star-order-by.rq | 69 + .../sparql/eval/sparql-star-pattern-01.rq | 6 + .../sparql/eval/sparql-star-pattern-01.srj | 18 + .../sparql/eval/sparql-star-pattern-02.rq | 6 + .../sparql/eval/sparql-star-pattern-02.srj | 18 + .../sparql/eval/sparql-star-pattern-03.rq | 7 + .../sparql/eval/sparql-star-pattern-03.srj | 20 + .../sparql/eval/sparql-star-pattern-04.rq | 6 + .../sparql/eval/sparql-star-pattern-04.srj | 9 + .../sparql/eval/sparql-star-pattern-05.rq | 6 + .../sparql/eval/sparql-star-pattern-05.srj | 14 + .../sparql/eval/sparql-star-pattern-06.rq | 6 + .../sparql/eval/sparql-star-pattern-06.srj | 11 + .../sparql/eval/sparql-star-pattern-07.rq | 6 + .../sparql/eval/sparql-star-pattern-07.srj | 13 + .../sparql/eval/sparql-star-pattern-08.rq | 7 + .../sparql/eval/sparql-star-pattern-08.srj | 18 + .../sparql/eval/sparql-star-pattern-09.rq | 7 + .../sparql/eval/sparql-star-pattern-09.srj | 18 + .../sparql/eval/sparql-star-results-1.rq | 5 + .../sparql/eval/sparql-star-results-1.srj | 106 + .../sparql/eval/sparql-star-results-1.srx | 177 + .../tests/sparql/eval/sparql-star-update-1.ru | 7 + .../tests/sparql/eval/sparql-star-update-2.ru | 7 + .../tests/sparql/eval/sparql-star-update-3.ru | 7 + .../tests/sparql/eval/update-result-1.trig | 7 + .../tests/sparql/eval/update-result-2.trig | 6 + .../tests/sparql/eval/update-result-3.trig | 2 + .../tests/sparql/syntax/index.html | 1 + .../tests/sparql/syntax/manifest.html | 1130 + .../tests/sparql/syntax/manifest.jsonld | 502 + .../tests/sparql/syntax/manifest.ttl | 433 + .../syntax/sparql-star-annotation-01.rq | 5 + .../syntax/sparql-star-annotation-02.rq | 12 + .../syntax/sparql-star-annotation-03.rq | 6 + .../syntax/sparql-star-annotation-04.rq | 6 + .../syntax/sparql-star-annotation-05.rq | 6 + .../syntax/sparql-star-annotation-06.rq | 5 + .../syntax/sparql-star-annotation-07.rq | 5 + .../syntax/sparql-star-annotation-08.rq | 6 + .../syntax/sparql-star-annotation-09.rq | 5 + .../syntax/sparql-star-syntax-bad-01.rq | 5 + .../syntax/sparql-star-syntax-bad-02.rq | 5 + .../syntax/sparql-star-syntax-bad-03.rq | 5 + .../syntax/sparql-star-syntax-bad-04.rq | 5 + .../syntax/sparql-star-syntax-bad-05.rq | 5 + .../syntax/sparql-star-syntax-bad-06.rq | 5 + .../syntax/sparql-star-syntax-bad-07.rq | 5 + .../syntax/sparql-star-syntax-bad-08.rq | 5 + .../syntax/sparql-star-syntax-bad-09.rq | 5 + .../syntax/sparql-star-syntax-bad-10.rq | 5 + .../syntax/sparql-star-syntax-bad-11.rq | 6 + .../syntax/sparql-star-syntax-bad-12.rq | 6 + .../syntax/sparql-star-syntax-bad-ann-1.rq | 6 + .../syntax/sparql-star-syntax-bad-ann-2.rq | 6 + .../sparql-star-syntax-bad-ann-path-1.rq | 5 + .../sparql-star-syntax-bad-ann-path-2.rq | 5 + .../sparql-star-syntax-bad-ann-path-3.rq | 5 + .../sparql-star-syntax-bad-ann-path-4.rq | 5 + .../sparql-star-syntax-bad-ann-path-5.rq | 5 + .../sparql-star-syntax-bad-ann-path-6.rq | 7 + .../sparql-star-syntax-bad-ann-path-7.rq | 5 + .../syntax/sparql-star-syntax-bad-update-1.ru | 5 + .../syntax/sparql-star-syntax-bad-update-2.ru | 5 + .../syntax/sparql-star-syntax-bad-update-3.ru | 5 + .../syntax/sparql-star-syntax-bad-update-4.ru | 5 + .../syntax/sparql-star-syntax-basic-01.rq | 5 + .../syntax/sparql-star-syntax-basic-02.rq | 5 + .../syntax/sparql-star-syntax-basic-03.rq | 5 + .../syntax/sparql-star-syntax-basic-04.rq | 5 + .../syntax/sparql-star-syntax-basic-05.rq | 10 + .../syntax/sparql-star-syntax-basic-06.rq | 4 + .../syntax/sparql-star-syntax-basic-07.rq | 6 + .../syntax/sparql-star-syntax-bnode-01.rq | 5 + .../syntax/sparql-star-syntax-bnode-02.rq | 5 + .../syntax/sparql-star-syntax-bnode-03.rq | 5 + .../syntax/sparql-star-syntax-compound.rq | 10 + .../syntax/sparql-star-syntax-expr-01.rq | 6 + .../syntax/sparql-star-syntax-expr-02.rq | 6 + .../syntax/sparql-star-syntax-expr-03.rq | 6 + .../syntax/sparql-star-syntax-expr-04.rq | 6 + .../syntax/sparql-star-syntax-expr-05.rq | 9 + .../syntax/sparql-star-syntax-expr-06.rq | 10 + .../syntax/sparql-star-syntax-inside-01.rq | 5 + .../syntax/sparql-star-syntax-inside-02.rq | 5 + .../syntax/sparql-star-syntax-nested-01.rq | 6 + .../syntax/sparql-star-syntax-nested-02.rq | 6 + .../syntax/sparql-star-syntax-update-1.ru | 5 + .../syntax/sparql-star-syntax-update-2.ru | 5 + .../syntax/sparql-star-syntax-update-3.ru | 8 + .../syntax/sparql-star-syntax-update-4.ru | 8 + .../syntax/sparql-star-syntax-update-5.ru | 7 + .../syntax/sparql-star-syntax-update-6.ru | 7 + .../syntax/sparql-star-syntax-update-7.ru | 7 + .../syntax/sparql-star-syntax-update-8.ru | 11 + .../rdf-star-main/tests/trig/eval/index.html | 1 + .../tests/trig/eval/manifest.html | 326 + .../tests/trig/eval/manifest.jsonld | 208 + .../tests/trig/eval/manifest.ttl | 112 + .../tests/trig/eval/trig-star-eval-01.nq | 1 + .../tests/trig/eval/trig-star-eval-01.trig | 3 + .../tests/trig/eval/trig-star-eval-02.nq | 1 + .../tests/trig/eval/trig-star-eval-02.trig | 3 + .../trig/eval/trig-star-eval-annotation-1.nq | 2 + .../eval/trig-star-eval-annotation-1.trig | 3 + .../trig/eval/trig-star-eval-annotation-2.nq | 7 + .../eval/trig-star-eval-annotation-2.trig | 12 + .../trig/eval/trig-star-eval-annotation-3.nq | 6 + .../eval/trig-star-eval-annotation-3.trig | 7 + .../trig/eval/trig-star-eval-annotation-4.nq | 3 + .../eval/trig-star-eval-annotation-4.trig | 3 + .../trig/eval/trig-star-eval-annotation-5.nq | 3 + .../eval/trig-star-eval-annotation-5.trig | 4 + .../tests/trig/eval/trig-star-eval-bnode-1.nq | 2 + .../trig/eval/trig-star-eval-bnode-1.trig | 6 + .../tests/trig/eval/trig-star-eval-bnode-2.nq | 2 + .../trig/eval/trig-star-eval-bnode-2.trig | 6 + .../trig-star-eval-quoted-annotation-1.nq | 2 + .../trig-star-eval-quoted-annotation-1.trig | 3 + .../trig-star-eval-quoted-annotation-2.nq | 2 + .../trig-star-eval-quoted-annotation-2.trig | 3 + .../trig-star-eval-quoted-annotation-3.nq | 2 + .../trig-star-eval-quoted-annotation-3.trig | 3 + .../tests/trig/syntax/index.html | 1 + .../tests/trig/syntax/manifest.html | 442 + .../tests/trig/syntax/manifest.jsonld | 256 + .../tests/trig/syntax/manifest.ttl | 175 + .../trig/syntax/trig-star-annotation-1.trig | 3 + .../trig/syntax/trig-star-annotation-2.trig | 12 + .../trig/syntax/trig-star-syntax-bad-01.trig | 6 + .../trig/syntax/trig-star-syntax-bad-02.trig | 6 + .../trig/syntax/trig-star-syntax-bad-03.trig | 6 + .../trig/syntax/trig-star-syntax-bad-04.trig | 6 + .../trig/syntax/trig-star-syntax-bad-05.trig | 5 + .../trig/syntax/trig-star-syntax-bad-06.trig | 5 + .../trig/syntax/trig-star-syntax-bad-07.trig | 4 + .../trig/syntax/trig-star-syntax-bad-08.trig | 3 + .../syntax/trig-star-syntax-bad-ann-1.trig | 4 + .../syntax/trig-star-syntax-bad-ann-2.trig | 3 + .../syntax/trig-star-syntax-basic-01.trig | 6 + .../syntax/trig-star-syntax-basic-02.trig | 6 + .../syntax/trig-star-syntax-bnode-01.trig | 6 + .../syntax/trig-star-syntax-bnode-02.trig | 6 + .../syntax/trig-star-syntax-bnode-03.trig | 3 + .../syntax/trig-star-syntax-compound.trig | 12 + .../syntax/trig-star-syntax-inside-01.trig | 6 + .../syntax/trig-star-syntax-inside-02.trig | 7 + .../syntax/trig-star-syntax-nested-01.trig | 9 + .../syntax/trig-star-syntax-nested-02.trig | 7 + .../tests/turtle/eval/index.html | 1 + .../tests/turtle/eval/manifest.html | 318 + .../tests/turtle/eval/manifest.jsonld | 208 + .../tests/turtle/eval/manifest.ttl | 113 + .../tests/turtle/eval/turtle-star-eval-01.nt | 1 + .../tests/turtle/eval/turtle-star-eval-01.ttl | 3 + .../tests/turtle/eval/turtle-star-eval-02.nt | 1 + .../tests/turtle/eval/turtle-star-eval-02.ttl | 3 + .../eval/turtle-star-eval-annotation-1.nt | 2 + .../eval/turtle-star-eval-annotation-1.ttl | 3 + .../eval/turtle-star-eval-annotation-2.nt | 7 + .../eval/turtle-star-eval-annotation-2.ttl | 10 + .../eval/turtle-star-eval-annotation-3.nt | 6 + .../eval/turtle-star-eval-annotation-3.ttl | 5 + .../eval/turtle-star-eval-annotation-4.nt | 3 + .../eval/turtle-star-eval-annotation-4.ttl | 3 + .../eval/turtle-star-eval-annotation-5.nt | 3 + .../eval/turtle-star-eval-annotation-5.ttl | 4 + .../turtle/eval/turtle-star-eval-bnode-1.nt | 2 + .../turtle/eval/turtle-star-eval-bnode-1.ttl | 4 + .../turtle/eval/turtle-star-eval-bnode-2.nt | 2 + .../turtle/eval/turtle-star-eval-bnode-2.ttl | 4 + .../turtle-star-eval-quoted-annotation-1.nt | 2 + .../turtle-star-eval-quoted-annotation-1.ttl | 3 + .../turtle-star-eval-quoted-annotation-2.nt | 2 + .../turtle-star-eval-quoted-annotation-2.ttl | 3 + .../turtle-star-eval-quoted-annotation-3.nt | 2 + .../turtle-star-eval-quoted-annotation-3.ttl | 3 + .../tests/turtle/syntax/index.html | 1 + .../tests/turtle/syntax/manifest.html | 571 + .../tests/turtle/syntax/manifest.jsonld | 333 + .../tests/turtle/syntax/manifest.ttl | 268 + .../syntax/nt-ttl-star-bad-syntax-1.ttl | 1 + .../syntax/nt-ttl-star-bad-syntax-2.ttl | 1 + .../syntax/nt-ttl-star-bad-syntax-3.ttl | 1 + .../syntax/nt-ttl-star-bad-syntax-4.ttl | 1 + .../turtle/syntax/nt-ttl-star-bnode-1.ttl | 2 + .../turtle/syntax/nt-ttl-star-bnode-2.ttl | 2 + .../turtle/syntax/nt-ttl-star-nested-1.ttl | 3 + .../turtle/syntax/nt-ttl-star-nested-2.ttl | 3 + .../turtle/syntax/nt-ttl-star-syntax-1.ttl | 1 + .../turtle/syntax/nt-ttl-star-syntax-2.ttl | 1 + .../turtle/syntax/nt-ttl-star-syntax-3.ttl | 1 + .../turtle/syntax/nt-ttl-star-syntax-4.ttl | 1 + .../turtle/syntax/nt-ttl-star-syntax-5.ttl | 1 + .../syntax/turtle-star-annotation-1.ttl | 3 + .../syntax/turtle-star-annotation-2.ttl | 10 + .../syntax/turtle-star-syntax-bad-01.ttl | 4 + .../syntax/turtle-star-syntax-bad-02.ttl | 4 + .../syntax/turtle-star-syntax-bad-03.ttl | 4 + .../syntax/turtle-star-syntax-bad-04.ttl | 4 + .../syntax/turtle-star-syntax-bad-05.ttl | 3 + .../syntax/turtle-star-syntax-bad-06.ttl | 4 + .../syntax/turtle-star-syntax-bad-07.ttl | 3 + .../syntax/turtle-star-syntax-bad-08.ttl | 3 + .../syntax/turtle-star-syntax-bad-ann-1.ttl | 6 + .../syntax/turtle-star-syntax-bad-ann-2.ttl | 3 + .../syntax/turtle-star-syntax-basic-01.ttl | 4 + .../syntax/turtle-star-syntax-basic-02.ttl | 4 + .../syntax/turtle-star-syntax-bnode-01.ttl | 4 + .../syntax/turtle-star-syntax-bnode-02.ttl | 4 + .../syntax/turtle-star-syntax-bnode-03.ttl | 3 + .../syntax/turtle-star-syntax-compound.ttl | 11 + .../syntax/turtle-star-syntax-inside-01.ttl | 4 + .../syntax/turtle-star-syntax-inside-02.ttl | 5 + .../syntax/turtle-star-syntax-nested-01.ttl | 7 + .../syntax/turtle-star-syntax-nested-02.ttl | 5 + .../resources/data/rdf-star-main/unstar.html | 15 + .../resources/data/rdf-star-main/w3c.json | 5 + .../resources/data/w3c-sparql10/README.html | 278 + .../data/w3c-sparql10/data-r2/LICENSE | 21 + .../data/w3c-sparql10/data-r2/README | 16 + .../data-r2/algebra-expressions.txt | 112 + .../data-r2/algebra/.#join-combo-1.srx.1.1 | 25 + .../w3c-sparql10/data-r2/algebra/data-1.rdf | 8 + .../w3c-sparql10/data-r2/algebra/data-1.ttl | 5 + .../w3c-sparql10/data-r2/algebra/data-2.rdf | 14 + .../w3c-sparql10/data-r2/algebra/data-2.ttl | 11 + .../data-r2/algebra/filter-nested-1.rq | 4 + .../data-r2/algebra/filter-nested-1.srx | 16 + .../data-r2/algebra/filter-nested-2.rq | 4 + .../data-r2/algebra/filter-nested-2.srx | 11 + .../data-r2/algebra/filter-placement-1.rq | 7 + .../data-r2/algebra/filter-placement-1.srx | 16 + .../data-r2/algebra/filter-placement-2.rq | 7 + .../data-r2/algebra/filter-placement-2.srx | 16 + .../data-r2/algebra/filter-placement-3.rq | 9 + .../data-r2/algebra/filter-placement-3.srx | 20 + .../data-r2/algebra/filter-scope-1.rq | 9 + .../data-r2/algebra/filter-scope-1.srx | 109 + .../data-r2/algebra/join-combo-1.rq | 7 + .../data-r2/algebra/join-combo-1.srx | 36 + .../data-r2/algebra/join-combo-2.rq | 6 + .../data-r2/algebra/join-combo-2.srx | 21 + .../data-r2/algebra/join-combo-graph-1.rdf | 11 + .../data-r2/algebra/join-combo-graph-1.ttl | 5 + .../data-r2/algebra/join-combo-graph-2.rdf | 24 + .../data-r2/algebra/join-combo-graph-2.ttl | 15 + .../w3c-sparql10/data-r2/algebra/manifest.rdf | 252 + .../w3c-sparql10/data-r2/algebra/manifest.ttl | 175 + .../data-r2/algebra/opt-filter-1.rdf | 15 + .../data-r2/algebra/opt-filter-1.rq | 11 + .../data-r2/algebra/opt-filter-1.srx | 50 + .../data-r2/algebra/opt-filter-1.ttl | 9 + .../data-r2/algebra/opt-filter-2.rdf | 15 + .../data-r2/algebra/opt-filter-2.rq | 12 + .../data-r2/algebra/opt-filter-2.srx | 36 + .../data-r2/algebra/opt-filter-2.ttl | 9 + .../data-r2/algebra/opt-filter-3.rdf | 15 + .../data-r2/algebra/opt-filter-3.rq | 10 + .../data-r2/algebra/opt-filter-3.srx | 13 + .../data-r2/algebra/opt-filter-3.ttl | 9 + .../data/w3c-sparql10/data-r2/algebra/test.rq | 8 + .../data-r2/algebra/two-nested-opt-alt.rq | 10 + .../data-r2/algebra/two-nested-opt-alt.srx | 28 + .../data-r2/algebra/two-nested-opt.rdf | 15 + .../data-r2/algebra/two-nested-opt.rq | 11 + .../data-r2/algebra/two-nested-opt.srx | 17 + .../data-r2/algebra/two-nested-opt.ttl | 7 + .../data-r2/algebra/var-scope-join-1.rdf | 22 + .../data-r2/algebra/var-scope-join-1.rq | 8 + .../data-r2/algebra/var-scope-join-1.srx | 13 + .../data-r2/algebra/var-scope-join-1.ttl | 15 + .../data/w3c-sparql10/data-r2/ask/ask-1.rq | 3 + .../data/w3c-sparql10/data-r2/ask/ask-1.srx | 6 + .../data/w3c-sparql10/data-r2/ask/ask-4.rq | 3 + .../data/w3c-sparql10/data-r2/ask/ask-4.srx | 6 + .../data/w3c-sparql10/data-r2/ask/ask-7.rq | 3 + .../data/w3c-sparql10/data-r2/ask/ask-7.srx | 6 + .../data/w3c-sparql10/data-r2/ask/ask-8.rq | 3 + .../data/w3c-sparql10/data-r2/ask/ask-8.srx | 6 + .../data/w3c-sparql10/data-r2/ask/data.rdf | 16 + .../data/w3c-sparql10/data-r2/ask/data.ttl | 9 + .../w3c-sparql10/data-r2/ask/manifest.rdf | 81 + .../w3c-sparql10/data-r2/ask/manifest.ttl | 61 + .../data-r2/basic/base-prefix-1.rq | 4 + .../data-r2/basic/base-prefix-1.srx | 28 + .../data-r2/basic/base-prefix-2.rq | 4 + .../data-r2/basic/base-prefix-2.srx | 20 + .../data-r2/basic/base-prefix-3.rq | 4 + .../data-r2/basic/base-prefix-3.srx | 16 + .../data-r2/basic/base-prefix-4.rq | 3 + .../data-r2/basic/base-prefix-4.srx | 16 + .../data-r2/basic/base-prefix-5.rq | 3 + .../data-r2/basic/base-prefix-5.srx | 16 + .../data-r2/basic/bgp-no-match.rq | 8 + .../data-r2/basic/bgp-no-match.srx | 10 + .../w3c-sparql10/data-r2/basic/data-1.rdf | 13 + .../w3c-sparql10/data-r2/basic/data-1.ttl | 8 + .../w3c-sparql10/data-r2/basic/data-2.rdf | 35 + .../w3c-sparql10/data-r2/basic/data-2.ttl | 8 + .../w3c-sparql10/data-r2/basic/data-3.rdf | 15 + .../w3c-sparql10/data-r2/basic/data-3.ttl | 12 + .../w3c-sparql10/data-r2/basic/data-4.rdf | 14 + .../w3c-sparql10/data-r2/basic/data-4.ttl | 14 + .../w3c-sparql10/data-r2/basic/data-5.rdf | 9 + .../w3c-sparql10/data-r2/basic/data-5.ttl | 5 + .../w3c-sparql10/data-r2/basic/data-6.rdf | 9 + .../w3c-sparql10/data-r2/basic/data-6.ttl | 5 + .../w3c-sparql10/data-r2/basic/data-7.rdf | 9 + .../w3c-sparql10/data-r2/basic/data-7.ttl | 7 + .../data/w3c-sparql10/data-r2/basic/list-1.rq | 5 + .../w3c-sparql10/data-r2/basic/list-1.srx | 16 + .../data/w3c-sparql10/data-r2/basic/list-2.rq | 5 + .../w3c-sparql10/data-r2/basic/list-2.srx | 16 + .../data/w3c-sparql10/data-r2/basic/list-3.rq | 5 + .../w3c-sparql10/data-r2/basic/list-3.srx | 20 + .../data/w3c-sparql10/data-r2/basic/list-4.rq | 5 + .../w3c-sparql10/data-r2/basic/list-4.srx | 24 + .../w3c-sparql10/data-r2/basic/manifest.rdf | 448 + .../w3c-sparql10/data-r2/basic/manifest.ttl | 314 + .../data-r2/basic/prefix-name-1.rq | 4 + .../data-r2/basic/prefix-name-1.srx | 16 + .../w3c-sparql10/data-r2/basic/quotes-1.rq | 6 + .../w3c-sparql10/data-r2/basic/quotes-1.srx | 16 + .../w3c-sparql10/data-r2/basic/quotes-2.rq | 6 + .../w3c-sparql10/data-r2/basic/quotes-2.srx | 16 + .../w3c-sparql10/data-r2/basic/quotes-3.rq | 8 + .../w3c-sparql10/data-r2/basic/quotes-3.srx | 16 + .../w3c-sparql10/data-r2/basic/quotes-4.rq | 9 + .../w3c-sparql10/data-r2/basic/quotes-4.srx | 16 + .../data/w3c-sparql10/data-r2/basic/spoo-1.rq | 7 + .../w3c-sparql10/data-r2/basic/spoo-1.srx | 16 + .../data/w3c-sparql10/data-r2/basic/term-1.rq | 4 + .../w3c-sparql10/data-r2/basic/term-1.srx | 16 + .../data/w3c-sparql10/data-r2/basic/term-2.rq | 4 + .../w3c-sparql10/data-r2/basic/term-2.srx | 16 + .../data/w3c-sparql10/data-r2/basic/term-3.rq | 4 + .../w3c-sparql10/data-r2/basic/term-3.srx | 16 + .../data/w3c-sparql10/data-r2/basic/term-4.rq | 4 + .../w3c-sparql10/data-r2/basic/term-4.srx | 16 + .../data/w3c-sparql10/data-r2/basic/term-5.rq | 4 + .../w3c-sparql10/data-r2/basic/term-5.srx | 16 + .../data/w3c-sparql10/data-r2/basic/term-6.rq | 5 + .../w3c-sparql10/data-r2/basic/term-6.srx | 16 + .../data/w3c-sparql10/data-r2/basic/term-7.rq | 5 + .../w3c-sparql10/data-r2/basic/term-7.srx | 16 + .../data/w3c-sparql10/data-r2/basic/term-8.rq | 5 + .../w3c-sparql10/data-r2/basic/term-8.srx | 16 + .../data/w3c-sparql10/data-r2/basic/term-9.rq | 5 + .../w3c-sparql10/data-r2/basic/term-9.srx | 16 + .../data/w3c-sparql10/data-r2/basic/var-1.rq | 4 + .../data/w3c-sparql10/data-r2/basic/var-1.srx | 28 + .../data/w3c-sparql10/data-r2/basic/var-2.rq | 4 + .../data/w3c-sparql10/data-r2/basic/var-2.srx | 28 + .../data-r2/bnode-coreference/data.rdf | 27 + .../data-r2/bnode-coreference/data.ttl | 29 + .../data-r2/bnode-coreference/manifest.rdf | 30 + .../data-r2/bnode-coreference/manifest.ttl | 22 + .../data-r2/bnode-coreference/query.rq | 7 + .../data-r2/bnode-coreference/result.rdf | 48 + .../data-r2/bnode-coreference/result.ttl | 27 + .../boolean-effective-value/data-1.rdf | 29 + .../boolean-effective-value/data-1.ttl | 14 + .../boolean-effective-value/data-2.rdf | 32 + .../boolean-effective-value/data-2.ttl | 19 + .../boolean-effective-value/manifest.rdf | 131 + .../boolean-effective-value/manifest.ttl | 81 + .../boolean-effective-value/query-bev-1.rq | 7 + .../boolean-effective-value/query-bev-2.rq | 7 + .../boolean-effective-value/query-bev-3.rq | 7 + .../boolean-effective-value/query-bev-4.rq | 7 + .../boolean-effective-value/query-bev-5.rq | 9 + .../boolean-effective-value/query-bev-6.rq | 9 + .../query-boolean-literal.rq | 5 + .../boolean-effective-value/result-bev-1.rdf | 42 + .../boolean-effective-value/result-bev-1.ttl | 27 + .../boolean-effective-value/result-bev-2.rdf | 42 + .../boolean-effective-value/result-bev-2.ttl | 27 + .../boolean-effective-value/result-bev-3.rdf | 42 + .../boolean-effective-value/result-bev-3.ttl | 27 + .../boolean-effective-value/result-bev-4.rdf | 42 + .../boolean-effective-value/result-bev-4.ttl | 27 + .../boolean-effective-value/result-bev-5.rdf | 18 + .../boolean-effective-value/result-bev-5.ttl | 12 + .../boolean-effective-value/result-bev-6.rdf | 24 + .../boolean-effective-value/result-bev-6.ttl | 16 + .../result-boolean-literal.rdf | 18 + .../result-boolean-literal.ttl | 12 + .../data-r2/bound/bound1-result.rdf | 35 + .../data-r2/bound/bound1-result.ttl | 20 + .../data/w3c-sparql10/data-r2/bound/bound1.rq | 8 + .../data/w3c-sparql10/data-r2/bound/data.rdf | 16 + .../data/w3c-sparql10/data-r2/bound/data.ttl | 5 + .../w3c-sparql10/data-r2/bound/manifest.rdf | 30 + .../w3c-sparql10/data-r2/bound/manifest.ttl | 22 + .../w3c-sparql10/data-r2/cast/cast-bool.rq | 7 + .../w3c-sparql10/data-r2/cast/cast-bool.srx | 16 + .../data/w3c-sparql10/data-r2/cast/cast-dT.rq | 7 + .../w3c-sparql10/data-r2/cast/cast-dT.srx | 16 + .../w3c-sparql10/data-r2/cast/cast-dbl.rq | 7 + .../w3c-sparql10/data-r2/cast/cast-dbl.srx | 26 + .../w3c-sparql10/data-r2/cast/cast-dec.rq | 7 + .../w3c-sparql10/data-r2/cast/cast-dec.srx | 21 + .../w3c-sparql10/data-r2/cast/cast-flt.rq | 7 + .../w3c-sparql10/data-r2/cast/cast-flt.srx | 26 + .../w3c-sparql10/data-r2/cast/cast-int.rq | 7 + .../w3c-sparql10/data-r2/cast/cast-int.srx | 16 + .../w3c-sparql10/data-r2/cast/cast-str.rq | 7 + .../w3c-sparql10/data-r2/cast/cast-str.srx | 46 + .../data/w3c-sparql10/data-r2/cast/data.rdf | 25 + .../data/w3c-sparql10/data-r2/cast/data.ttl | 9 + .../w3c-sparql10/data-r2/cast/manifest.rdf | 125 + .../w3c-sparql10/data-r2/cast/manifest.ttl | 83 + .../data-r2/construct/data-ident.rdf | 18 + .../data-r2/construct/data-ident.ttl | 18 + .../data-r2/construct/data-opt.rdf | 18 + .../data-r2/construct/data-opt.ttl | 12 + .../data-r2/construct/data-reif.rdf | 17 + .../data-r2/construct/data-reif.ttl | 17 + .../data-r2/construct/manifest.rdf | 103 + .../data-r2/construct/manifest.ttl | 77 + .../construct/query-construct-optional.rq | 10 + .../data-r2/construct/query-ident.rq | 7 + .../data-r2/construct/query-reif-1.rq | 9 + .../data-r2/construct/query-reif-2.rq | 9 + .../data-r2/construct/query-subgraph.rq | 7 + .../construct/result-construct-optional.rdf | 8 + .../construct/result-construct-optional.ttl | 4 + .../data-r2/construct/result-ident.rdf | 17 + .../data-r2/construct/result-ident.ttl | 17 + .../data-r2/construct/result-reif.rdf | 44 + .../data-r2/construct/result-reif.ttl | 34 + .../data-r2/construct/result-subgraph.rdf | 10 + .../data-r2/construct/result-subgraph.ttl | 6 + .../data-r2/dataset/data-g1-dup.rdf | 11 + .../data-r2/dataset/data-g1-dup.ttl | 5 + .../w3c-sparql10/data-r2/dataset/data-g1.rdf | 11 + .../w3c-sparql10/data-r2/dataset/data-g1.ttl | 5 + .../data-r2/dataset/data-g2-dup.rdf | 8 + .../data-r2/dataset/data-g2-dup.ttl | 4 + .../w3c-sparql10/data-r2/dataset/data-g2.rdf | 8 + .../w3c-sparql10/data-r2/dataset/data-g2.ttl | 4 + .../data-r2/dataset/data-g3-dup.rdf | 11 + .../data-r2/dataset/data-g3-dup.ttl | 5 + .../w3c-sparql10/data-r2/dataset/data-g3.rdf | 11 + .../w3c-sparql10/data-r2/dataset/data-g3.ttl | 5 + .../data-r2/dataset/data-g4-dup.rdf | 8 + .../data-r2/dataset/data-g4-dup.ttl | 4 + .../w3c-sparql10/data-r2/dataset/data-g4.rdf | 8 + .../w3c-sparql10/data-r2/dataset/data-g4.ttl | 4 + .../data-r2/dataset/dataset-01.rdf | 48 + .../data-r2/dataset/dataset-01.rq | 5 + .../data-r2/dataset/dataset-01.ttl | 29 + .../data-r2/dataset/dataset-02.rdf | 11 + .../data-r2/dataset/dataset-02.rq | 5 + .../data-r2/dataset/dataset-02.ttl | 8 + .../data-r2/dataset/dataset-03.rdf | 59 + .../data-r2/dataset/dataset-03.rq | 8 + .../data-r2/dataset/dataset-03.ttl | 36 + .../data-r2/dataset/dataset-04.rdf | 12 + .../data-r2/dataset/dataset-04.rq | 8 + .../data-r2/dataset/dataset-04.ttl | 9 + .../data-r2/dataset/dataset-05.rdf | 48 + .../data-r2/dataset/dataset-05.rq | 6 + .../data-r2/dataset/dataset-05.ttl | 29 + .../data-r2/dataset/dataset-06.rdf | 36 + .../data-r2/dataset/dataset-06.rq | 9 + .../data-r2/dataset/dataset-06.ttl | 23 + .../data-r2/dataset/dataset-07.rdf | 72 + .../data-r2/dataset/dataset-07.rq | 10 + .../data-r2/dataset/dataset-07.ttl | 43 + .../data-r2/dataset/dataset-08.rdf | 48 + .../data-r2/dataset/dataset-08.rq | 9 + .../data-r2/dataset/dataset-08.ttl | 31 + .../data-r2/dataset/dataset-09.rdf | 14 + .../data-r2/dataset/dataset-09.rq | 8 + .../data-r2/dataset/dataset-09.ttl | 11 + .../data-r2/dataset/dataset-09b.rq | 8 + .../data-r2/dataset/dataset-10.rdf | 14 + .../data-r2/dataset/dataset-10.rq | 9 + .../data-r2/dataset/dataset-10.ttl | 11 + .../data-r2/dataset/dataset-10b.rq | 9 + .../data-r2/dataset/dataset-11.rdf | 187 + .../data-r2/dataset/dataset-11.rq | 13 + .../data-r2/dataset/dataset-11.ttl | 108 + .../data-r2/dataset/dataset-12.rdf | 259 + .../data-r2/dataset/dataset-12.rq | 16 + .../data-r2/dataset/dataset-12.ttl | 148 + .../data-r2/dataset/dataset-12b.rq | 16 + .../w3c-sparql10/data-r2/dataset/manifest.rdf | 250 + .../w3c-sparql10/data-r2/dataset/manifest.ttl | 177 + .../data-r2/distinct/data-all.rdf | 83 + .../data-r2/distinct/data-all.ttl | 74 + .../data-r2/distinct/data-node.rdf | 11 + .../data-r2/distinct/data-node.ttl | 9 + .../data-r2/distinct/data-num.rdf | 51 + .../data-r2/distinct/data-num.ttl | 35 + .../data-r2/distinct/data-opt.rdf | 19 + .../data-r2/distinct/data-opt.ttl | 13 + .../data-r2/distinct/data-star.rdf | 12 + .../data-r2/distinct/data-star.ttl | 8 + .../data-r2/distinct/data-str.rdf | 41 + .../data-r2/distinct/data-str.ttl | 29 + .../data-r2/distinct/distinct-1-results.srx | 61 + .../data-r2/distinct/distinct-1.rq | 8 + .../data-r2/distinct/distinct-2.rq | 8 + .../data-r2/distinct/distinct-all.srx | 111 + .../data-r2/distinct/distinct-node.srx | 21 + .../data-r2/distinct/distinct-num.srx | 56 + .../data-r2/distinct/distinct-opt.srx | 23 + .../data-r2/distinct/distinct-star-1.rq | 7 + .../data-r2/distinct/distinct-star-1.srx | 20 + .../data-r2/distinct/distinct-str.srx | 56 + .../data-r2/distinct/manifest.rdf | 189 + .../data-r2/distinct/manifest.ttl | 128 + .../data-r2/distinct/no-distinct-1.rq | 4 + .../data-r2/distinct/no-distinct-2.rq | 8 + .../data-r2/distinct/no-distinct-all.srx | 231 + .../data-r2/distinct/no-distinct-node.srx | 31 + .../data-r2/distinct/no-distinct-num.srx | 121 + .../data-r2/distinct/no-distinct-opt.srx | 35 + .../data-r2/distinct/no-distinct-str.srx | 101 + .../data-r2/expr-builtin/data-builtin-1.rdf | 39 + .../data-r2/expr-builtin/data-builtin-1.ttl | 20 + .../data-r2/expr-builtin/data-builtin-2.rdf | 26 + .../data-r2/expr-builtin/data-builtin-2.ttl | 14 + .../expr-builtin/data-langMatches-de.rdf | 9 + .../expr-builtin/data-langMatches-de.ttl | 8 + .../data-r2/expr-builtin/data-langMatches.rdf | 11 + .../data-r2/expr-builtin/data-langMatches.ttl | 7 + .../expr-builtin/lang-case-insensitive-eq.srx | 98 + .../expr-builtin/lang-case-insensitive-ne.srx | 17 + .../expr-builtin/lang-case-sensitivity-eq.rq | 11 + .../expr-builtin/lang-case-sensitivity-ne.rq | 12 + .../expr-builtin/lang-case-sensitivity.rdf | 10 + .../expr-builtin/lang-case-sensitivity.ttl | 7 + .../data-r2/expr-builtin/manifest.rdf | 412 + .../data-r2/expr-builtin/manifest.ttl | 273 + .../data-r2/expr-builtin/q-blank-1.rq | 7 + .../data-r2/expr-builtin/q-datatype-1.rq | 7 + .../data-r2/expr-builtin/q-datatype-2.rq | 9 + .../data-r2/expr-builtin/q-datatype-3.rq | 9 + .../data-r2/expr-builtin/q-iri-1.rq | 7 + .../data-r2/expr-builtin/q-isliteral-1.rq | 7 + .../data-r2/expr-builtin/q-lang-1.rq | 9 + .../data-r2/expr-builtin/q-lang-2.rq | 7 + .../data-r2/expr-builtin/q-lang-3.rq | 6 + .../data-r2/expr-builtin/q-langMatches-1.rq | 4 + .../data-r2/expr-builtin/q-langMatches-2.rq | 4 + .../data-r2/expr-builtin/q-langMatches-3.rq | 4 + .../data-r2/expr-builtin/q-langMatches-4.rq | 4 + .../expr-builtin/q-langMatches-de-de.rq | 7 + .../data-r2/expr-builtin/q-str-1.rq | 7 + .../data-r2/expr-builtin/q-str-2.rq | 7 + .../data-r2/expr-builtin/q-str-3.rq | 7 + .../data-r2/expr-builtin/q-str-4.rq | 7 + .../data-r2/expr-builtin/q-uri-1.rq | 7 + .../data-r2/expr-builtin/result-blank-1.rdf | 24 + .../data-r2/expr-builtin/result-blank-1.ttl | 16 + .../expr-builtin/result-datatype-1.rdf | 50 + .../expr-builtin/result-datatype-1.ttl | 32 + .../expr-builtin/result-datatype-2.srx | 31 + .../expr-builtin/result-datatype-3.srx | 21 + .../data-r2/expr-builtin/result-iri-1.rdf | 24 + .../data-r2/expr-builtin/result-iri-1.ttl | 16 + .../expr-builtin/result-isliteral-1.rdf | 50 + .../expr-builtin/result-isliteral-1.ttl | 28 + .../data-r2/expr-builtin/result-lang-1.srx | 36 + .../data-r2/expr-builtin/result-lang-2.srx | 31 + .../data-r2/expr-builtin/result-lang-3.srx | 16 + .../expr-builtin/result-langMatches-1.rdf | 23 + .../expr-builtin/result-langMatches-1.ttl | 14 + .../expr-builtin/result-langMatches-2.rdf | 36 + .../expr-builtin/result-langMatches-2.ttl | 21 + .../expr-builtin/result-langMatches-3.rdf | 49 + .../expr-builtin/result-langMatches-3.ttl | 28 + .../expr-builtin/result-langMatches-4.rdf | 23 + .../expr-builtin/result-langMatches-4.ttl | 14 + .../expr-builtin/result-langMatches-de.rdf | 22 + .../expr-builtin/result-langMatches-de.ttl | 16 + .../expr-builtin/result-sameTerm-eq.rdf | 333 + .../expr-builtin/result-sameTerm-eq.ttl | 188 + .../expr-builtin/result-sameTerm-not-eq.rdf | 655 + .../expr-builtin/result-sameTerm-not-eq.ttl | 370 + .../data-r2/expr-builtin/result-sameTerm.rdf | 333 + .../data-r2/expr-builtin/result-sameTerm.ttl | 188 + .../data-r2/expr-builtin/result-str-1.rdf | 63 + .../data-r2/expr-builtin/result-str-1.ttl | 40 + .../data-r2/expr-builtin/result-str-2.rdf | 24 + .../data-r2/expr-builtin/result-str-2.ttl | 16 + .../data-r2/expr-builtin/result-str-3.rdf | 37 + .../data-r2/expr-builtin/result-str-3.ttl | 24 + .../data-r2/expr-builtin/result-str-4.rdf | 24 + .../data-r2/expr-builtin/result-str-4.ttl | 15 + .../data-r2/expr-builtin/result-uri-1.rdf | 24 + .../data-r2/expr-builtin/result-uri-1.ttl | 16 + .../data-r2/expr-builtin/sameTerm-eq.rq | 11 + .../data-r2/expr-builtin/sameTerm-not-eq.rq | 11 + .../data-r2/expr-builtin/sameTerm.rq | 11 + .../data-r2/expr-equals/data-eq.rdf | 35 + .../data-r2/expr-equals/data-eq.ttl | 23 + .../data-r2/expr-equals/manifest.rdf | 217 + .../data-r2/expr-equals/manifest.ttl | 143 + .../data-r2/expr-equals/query-eq-1.rq | 7 + .../data-r2/expr-equals/query-eq-2.rq | 7 + .../data-r2/expr-equals/query-eq-3.rq | 7 + .../data-r2/expr-equals/query-eq-4.rq | 7 + .../data-r2/expr-equals/query-eq-5.rq | 7 + .../data-r2/expr-equals/query-eq-graph-1.rq | 6 + .../data-r2/expr-equals/query-eq-graph-2.rq | 6 + .../data-r2/expr-equals/query-eq-graph-3.rq | 6 + .../data-r2/expr-equals/query-eq-graph-4.rq | 6 + .../data-r2/expr-equals/query-eq-graph-5.rq | 7 + .../data-r2/expr-equals/query-eq2-1.rq | 8 + .../data-r2/expr-equals/query-eq2-2.rq | 8 + .../data-r2/expr-equals/query-eq2-graph-1.rq | 7 + .../data-r2/expr-equals/result-eq-1.rdf | 58 + .../data-r2/expr-equals/result-eq-1.ttl | 37 + .../data-r2/expr-equals/result-eq-2.rdf | 58 + .../data-r2/expr-equals/result-eq-2.ttl | 37 + .../data-r2/expr-equals/result-eq-3.rdf | 18 + .../data-r2/expr-equals/result-eq-3.ttl | 12 + .../data-r2/expr-equals/result-eq-4.rdf | 18 + .../data-r2/expr-equals/result-eq-4.ttl | 12 + .../data-r2/expr-equals/result-eq-5.rdf | 18 + .../data-r2/expr-equals/result-eq-5.ttl | 12 + .../data-r2/expr-equals/result-eq-graph-1.rdf | 26 + .../data-r2/expr-equals/result-eq-graph-1.ttl | 20 + .../data-r2/expr-equals/result-eq-graph-2.rdf | 18 + .../data-r2/expr-equals/result-eq-graph-2.ttl | 22 + .../data-r2/expr-equals/result-eq-graph-3.rdf | 18 + .../data-r2/expr-equals/result-eq-graph-3.ttl | 11 + .../data-r2/expr-equals/result-eq-graph-4.rdf | 18 + .../data-r2/expr-equals/result-eq-graph-4.ttl | 11 + .../data-r2/expr-equals/result-eq-graph-5.rdf | 18 + .../data-r2/expr-equals/result-eq-graph-5.ttl | 11 + .../data-r2/expr-equals/result-eq2-1.rdf | 531 + .../data-r2/expr-equals/result-eq2-1.ttl | 288 + .../data-r2/expr-equals/result-eq2-2.rdf | 167 + .../data-r2/expr-equals/result-eq2-2.ttl | 104 + .../expr-equals/result-eq2-graph-1.rdf | 408 + .../expr-equals/result-eq2-graph-1.ttl | 229 + .../w3c-sparql10/data-r2/expr-ops/data.rdf | 17 + .../w3c-sparql10/data-r2/expr-ops/data.ttl | 7 + .../data-r2/expr-ops/manifest.rdf | 132 + .../data-r2/expr-ops/manifest.ttl | 87 + .../data-r2/expr-ops/query-ge-1.rq | 5 + .../data-r2/expr-ops/query-le-1.rq | 5 + .../data-r2/expr-ops/query-minus-1.rq | 6 + .../data-r2/expr-ops/query-mul-1.rq | 6 + .../data-r2/expr-ops/query-plus-1.rq | 6 + .../data-r2/expr-ops/query-unminus-1.rq | 5 + .../data-r2/expr-ops/query-unplus-1.rq | 5 + .../data-r2/expr-ops/result-ge-1.srx | 21 + .../data-r2/expr-ops/result-le-1.srx | 21 + .../data-r2/expr-ops/result-minus-1.srx | 16 + .../data-r2/expr-ops/result-mul-1.srx | 26 + .../data-r2/expr-ops/result-plus-1.srx | 21 + .../data-r2/expr-ops/result-unminus-1.srx | 16 + .../data-r2/expr-ops/result-unplus-1.srx | 16 + .../data-r2/extended-manifest-evaluation.rdf | 15 + .../data-r2/extended-manifest-evaluation.ttl | 13 + .../data/w3c-sparql10/data-r2/files-to-fix | 37 + .../resources/data/w3c-sparql10/data-r2/foo | 4 + .../w3c-sparql10/data-r2/graph/data-g1.rdf | 11 + .../w3c-sparql10/data-r2/graph/data-g1.ttl | 5 + .../w3c-sparql10/data-r2/graph/data-g2.rdf | 8 + .../w3c-sparql10/data-r2/graph/data-g2.ttl | 4 + .../data-r2/graph/data-g3-dup.rdf | 11 + .../data-r2/graph/data-g3-dup.ttl | 5 + .../w3c-sparql10/data-r2/graph/data-g3.rdf | 11 + .../w3c-sparql10/data-r2/graph/data-g3.ttl | 5 + .../w3c-sparql10/data-r2/graph/data-g4.rdf | 8 + .../w3c-sparql10/data-r2/graph/data-g4.ttl | 4 + .../w3c-sparql10/data-r2/graph/graph-01.rdf | 48 + .../w3c-sparql10/data-r2/graph/graph-01.rq | 3 + .../w3c-sparql10/data-r2/graph/graph-01.ttl | 29 + .../w3c-sparql10/data-r2/graph/graph-02.rdf | 11 + .../w3c-sparql10/data-r2/graph/graph-02.rq | 3 + .../w3c-sparql10/data-r2/graph/graph-02.ttl | 8 + .../w3c-sparql10/data-r2/graph/graph-03.rdf | 59 + .../w3c-sparql10/data-r2/graph/graph-03.rq | 6 + .../w3c-sparql10/data-r2/graph/graph-03.ttl | 36 + .../w3c-sparql10/data-r2/graph/graph-04.rdf | 12 + .../w3c-sparql10/data-r2/graph/graph-04.rq | 6 + .../w3c-sparql10/data-r2/graph/graph-04.ttl | 9 + .../w3c-sparql10/data-r2/graph/graph-05.rdf | 48 + .../w3c-sparql10/data-r2/graph/graph-05.rq | 3 + .../w3c-sparql10/data-r2/graph/graph-05.ttl | 29 + .../w3c-sparql10/data-r2/graph/graph-06.rdf | 36 + .../w3c-sparql10/data-r2/graph/graph-06.rq | 6 + .../w3c-sparql10/data-r2/graph/graph-06.ttl | 23 + .../w3c-sparql10/data-r2/graph/graph-07.rdf | 72 + .../w3c-sparql10/data-r2/graph/graph-07.rq | 8 + .../w3c-sparql10/data-r2/graph/graph-07.ttl | 43 + .../w3c-sparql10/data-r2/graph/graph-08.rdf | 48 + .../w3c-sparql10/data-r2/graph/graph-08.rq | 7 + .../w3c-sparql10/data-r2/graph/graph-08.ttl | 31 + .../w3c-sparql10/data-r2/graph/graph-09.rdf | 14 + .../w3c-sparql10/data-r2/graph/graph-09.rq | 7 + .../w3c-sparql10/data-r2/graph/graph-09.ttl | 11 + .../w3c-sparql10/data-r2/graph/graph-10.rdf | 14 + .../w3c-sparql10/data-r2/graph/graph-10.rq | 7 + .../w3c-sparql10/data-r2/graph/graph-10.ttl | 11 + .../w3c-sparql10/data-r2/graph/graph-11.rdf | 187 + .../w3c-sparql10/data-r2/graph/graph-11.rq | 8 + .../w3c-sparql10/data-r2/graph/graph-11.ttl | 108 + .../w3c-sparql10/data-r2/graph/manifest.rdf | 227 + .../w3c-sparql10/data-r2/graph/manifest.ttl | 180 + .../data/w3c-sparql10/data-r2/i18n/.htaccess | 6 + .../data-r2/i18n/kanji-01-results.rdf | 37 + .../data-r2/i18n/kanji-01-results.ttl | 22 + .../w3c-sparql10/data-r2/i18n/kanji-01.rq | 7 + .../data-r2/i18n/kanji-02-results.rdf | 18 + .../data-r2/i18n/kanji-02-results.ttl | 11 + .../w3c-sparql10/data-r2/i18n/kanji-02.rq | 7 + .../data/w3c-sparql10/data-r2/i18n/kanji.rdf | 19 + .../data/w3c-sparql10/data-r2/i18n/kanji.ttl | 20 + .../w3c-sparql10/data-r2/i18n/manifest.rdf | 95 + .../w3c-sparql10/data-r2/i18n/manifest.ttl | 78 + .../data-r2/i18n/normalization-01-results.rdf | 26 + .../data-r2/i18n/normalization-01-results.ttl | 15 + .../data-r2/i18n/normalization-01.rdf | 24 + .../data-r2/i18n/normalization-01.rq | 6 + .../data-r2/i18n/normalization-01.ttl | 23 + .../data-r2/i18n/normalization-02-results.rdf | 16 + .../data-r2/i18n/normalization-02-results.ttl | 14 + .../data-r2/i18n/normalization-02.rdf | 10 + .../data-r2/i18n/normalization-02.rq | 8 + .../data-r2/i18n/normalization-02.ttl | 8 + .../data-r2/i18n/normalization-03-results.rdf | 16 + .../data-r2/i18n/normalization-03-results.ttl | 14 + .../data-r2/i18n/normalization-03.rdf | 13 + .../data-r2/i18n/normalization-03.rq | 8 + .../data-r2/i18n/normalization-03.ttl | 9 + .../data/w3c-sparql10/data-r2/i18n/test.rq | 8 + .../data-r2/manifest-evaluation.rdf | 107 + .../data-r2/manifest-evaluation.ttl | 39 + .../w3c-sparql10/data-r2/manifest-syntax.rdf | 31 + .../w3c-sparql10/data-r2/manifest-syntax.ttl | 14 + .../data-r2/open-world/data-1.rdf | 30 + .../data-r2/open-world/data-1.ttl | 17 + .../data-r2/open-world/data-2.rdf | 53 + .../data-r2/open-world/data-2.ttl | 20 + .../data-r2/open-world/data-3.rdf | 32 + .../data-r2/open-world/data-3.ttl | 15 + .../data-r2/open-world/data-4.rdf | 40 + .../data-r2/open-world/data-4.ttl | 15 + .../data-r2/open-world/date-1-result.srx | 20 + .../w3c-sparql10/data-r2/open-world/date-1.rq | 8 + .../data-r2/open-world/date-2-result.srx | 36 + .../w3c-sparql10/data-r2/open-world/date-2.rq | 8 + .../data-r2/open-world/date-3-result.srx | 36 + .../w3c-sparql10/data-r2/open-world/date-3.rq | 8 + .../data-r2/open-world/date-4-result.srx | 36 + .../w3c-sparql10/data-r2/open-world/date-4.rq | 8 + .../data-r2/open-world/manifest.rdf | 336 + .../data-r2/open-world/manifest.ttl | 223 + .../data-r2/open-world/open-cmp-01-result.srx | 24 + .../data-r2/open-world/open-cmp-01.rq | 8 + .../data-r2/open-world/open-cmp-02-result.srx | 46 + .../data-r2/open-world/open-cmp-02.rq | 8 + .../data-r2/open-world/open-eq-01-result.srx | 11 + .../data-r2/open-world/open-eq-01.rq | 13 + .../data-r2/open-world/open-eq-02-result.srx | 16 + .../data-r2/open-world/open-eq-02.rq | 8 + .../data-r2/open-world/open-eq-03-result.srx | 28 + .../data-r2/open-world/open-eq-03.rq | 14 + .../data-r2/open-world/open-eq-04-result.srx | 28 + .../data-r2/open-world/open-eq-04.rq | 14 + .../data-r2/open-world/open-eq-05-result.srx | 20 + .../data-r2/open-world/open-eq-05.rq | 11 + .../data-r2/open-world/open-eq-06-result.srx | 12 + .../data-r2/open-world/open-eq-06.rq | 12 + .../data-r2/open-world/open-eq-07-result.srx | 182 + .../data-r2/open-world/open-eq-07.rq | 9 + .../data-r2/open-world/open-eq-08-result.srx | 602 + .../data-r2/open-world/open-eq-08.rq | 9 + .../data-r2/open-world/open-eq-09-result.srx | 14 + .../data-r2/open-world/open-eq-09.rq | 9 + .../data-r2/open-world/open-eq-10-result.srx | 742 + .../data-r2/open-world/open-eq-10.rq | 9 + .../data-r2/open-world/open-eq-11-result.srx | 742 + .../data-r2/open-world/open-eq-11.rq | 9 + .../data-r2/open-world/open-eq-12-result.srx | 154 + .../data-r2/open-world/open-eq-12.rq | 10 + .../sameTerm-StringSimpleLiteralCmp.srx | 56 + .../sameTerm-eq-StringSimpleLiteralCmp.srx | 56 + .../data-r2/open-world/sameTerm-eq.srx | 56 + .../data-r2/open-world/sameTerm-manifest.rdf | 101 + .../data-r2/open-world/sameTerm-manifest.ttl | 61 + ...sameTerm-not-eq-StringSimpleLiteralCmp.srx | 56 + .../data-r2/open-world/sameTerm-not-eq.srx | 17 + .../data-r2/open-world/sameTerm.rdf | 11 + .../data-r2/open-world/sameTerm.srx | 56 + .../data-r2/open-world/sameTerm.ttl | 8 + .../data-r2/optional-filter/data-1.rdf | 18 + .../data-r2/optional-filter/data-1.ttl | 12 + .../data-r2/optional-filter/expr-1-result.rdf | 41 + .../data-r2/optional-filter/expr-1-result.ttl | 27 + .../data-r2/optional-filter/expr-1.rq | 10 + .../data-r2/optional-filter/expr-2-result.rdf | 25 + .../data-r2/optional-filter/expr-2-result.ttl | 17 + .../data-r2/optional-filter/expr-2.rq | 9 + .../data-r2/optional-filter/expr-3-result.rdf | 33 + .../data-r2/optional-filter/expr-3-result.ttl | 22 + .../data-r2/optional-filter/expr-3.rq | 9 + .../data-r2/optional-filter/expr-4-result.rdf | 36 + .../data-r2/optional-filter/expr-4-result.ttl | 24 + .../data-r2/optional-filter/expr-4.rq | 10 + .../expr-5-result-not-simplified.rdf | 36 + .../expr-5-result-not-simplified.ttl | 24 + .../expr-5-result-simplified.rdf | 41 + .../expr-5-result-simplified.ttl | 27 + .../data-r2/optional-filter/expr-5.rq | 13 + .../data-r2/optional-filter/manifest.rdf | 111 + .../data-r2/optional-filter/manifest.ttl | 68 + .../data-r2/optional/complex-data-1.rdf | 24 + .../data-r2/optional/complex-data-1.ttl | 21 + .../data-r2/optional/complex-data-2.rdf | 39 + .../data-r2/optional/complex-data-2.ttl | 32 + .../w3c-sparql10/data-r2/optional/data.rdf | 17 + .../w3c-sparql10/data-r2/optional/data.ttl | 11 + .../data-r2/optional/manifest.rdf | 135 + .../data-r2/optional/manifest.ttl | 99 + .../w3c-sparql10/data-r2/optional/q-opt-1.rq | 7 + .../w3c-sparql10/data-r2/optional/q-opt-2.rq | 8 + .../w3c-sparql10/data-r2/optional/q-opt-3.rq | 8 + .../data-r2/optional/q-opt-complex-1.rq | 11 + .../data-r2/optional/q-opt-complex-2.rq | 16 + .../data-r2/optional/q-opt-complex-2.save | 16 + .../data-r2/optional/q-opt-complex-3.rq | 17 + .../data-r2/optional/q-opt-complex-4.rq | 15 + .../data-r2/optional/result-opt-1.rdf | 44 + .../data-r2/optional/result-opt-1.ttl | 25 + .../data-r2/optional/result-opt-2.rdf | 55 + .../data-r2/optional/result-opt-2.ttl | 32 + .../data-r2/optional/result-opt-3.rdf | 60 + .../data-r2/optional/result-opt-3.ttl | 33 + .../data-r2/optional/result-opt-complex-1.rdf | 55 + .../data-r2/optional/result-opt-complex-1.ttl | 34 + .../data-r2/optional/result-opt-complex-2.rdf | 27 + .../data-r2/optional/result-opt-complex-2.ttl | 16 + .../data-r2/optional/result-opt-complex-3.rdf | 54 + .../data-r2/optional/result-opt-complex-3.ttl | 33 + .../data-r2/optional/result-opt-complex-4.rdf | 83 + .../data-r2/optional/result-opt-complex-4.ttl | 48 + .../w3c-sparql10/data-r2/reduced/manifest.rdf | 47 + .../w3c-sparql10/data-r2/reduced/manifest.ttl | 38 + .../w3c-sparql10/data-r2/reduced/reduced-1.rq | 7 + .../data-r2/reduced/reduced-1.srx | 24 + .../w3c-sparql10/data-r2/reduced/reduced-2.rq | 7 + .../data-r2/reduced/reduced-2.srx | 101 + .../data-r2/reduced/reduced-star.rdf | 12 + .../data-r2/reduced/reduced-star.ttl | 8 + .../data-r2/reduced/reduced-str.rdf | 41 + .../data-r2/reduced/reduced-str.ttl | 29 + .../w3c-sparql10/data-r2/regex/manifest.rdf | 81 + .../w3c-sparql10/data-r2/regex/manifest.ttl | 57 + .../data-r2/regex/regex-data-01.rdf | 11 + .../data-r2/regex/regex-data-01.ttl | 5 + .../data-r2/regex/regex-query-001.rq | 8 + .../data-r2/regex/regex-query-002.rq | 8 + .../data-r2/regex/regex-query-003.rq | 8 + .../data-r2/regex/regex-query-004.rq | 7 + .../data-r2/regex/regex-result-001.rdf | 16 + .../data-r2/regex/regex-result-001.ttl | 10 + .../data-r2/regex/regex-result-002.rdf | 24 + .../data-r2/regex/regex-result-002.ttl | 14 + .../data-r2/regex/regex-result-003.rdf | 16 + .../data-r2/regex/regex-result-003.ttl | 10 + .../data-r2/regex/regex-result-004.rdf | 24 + .../data-r2/regex/regex-result-004.ttl | 14 + .../data-r2/solution-seq/data.rdf | 22 + .../data-r2/solution-seq/data.ttl | 18 + .../data-r2/solution-seq/manifest.rdf | 221 + .../data-r2/solution-seq/manifest.ttl | 117 + .../data-r2/solution-seq/slice-01.rq | 6 + .../data-r2/solution-seq/slice-02.rq | 7 + .../data-r2/solution-seq/slice-03.rq | 6 + .../data-r2/solution-seq/slice-04.rq | 6 + .../data-r2/solution-seq/slice-10.rq | 6 + .../data-r2/solution-seq/slice-11.rq | 6 + .../data-r2/solution-seq/slice-12.rq | 6 + .../data-r2/solution-seq/slice-13.rq | 6 + .../data-r2/solution-seq/slice-20.rq | 8 + .../data-r2/solution-seq/slice-21.rq | 7 + .../data-r2/solution-seq/slice-22.rq | 7 + .../data-r2/solution-seq/slice-23.rq | 7 + .../data-r2/solution-seq/slice-24.rq | 7 + .../data-r2/solution-seq/slice-results-01.rdf | 19 + .../data-r2/solution-seq/slice-results-01.ttl | 12 + .../data-r2/solution-seq/slice-results-02.rdf | 82 + .../data-r2/solution-seq/slice-results-02.ttl | 47 + .../data-r2/solution-seq/slice-results-03.rdf | 9 + .../data-r2/solution-seq/slice-results-03.ttl | 6 + .../data-r2/solution-seq/slice-results-04.rdf | 55 + .../data-r2/solution-seq/slice-results-04.ttl | 32 + .../data-r2/solution-seq/slice-results-10.rdf | 73 + .../data-r2/solution-seq/slice-results-10.ttl | 42 + .../data-r2/solution-seq/slice-results-11.rdf | 82 + .../data-r2/solution-seq/slice-results-11.ttl | 47 + .../data-r2/solution-seq/slice-results-12.rdf | 9 + .../data-r2/solution-seq/slice-results-12.ttl | 6 + .../data-r2/solution-seq/slice-results-13.rdf | 37 + .../data-r2/solution-seq/slice-results-13.ttl | 22 + .../data-r2/solution-seq/slice-results-20.rdf | 19 + .../data-r2/solution-seq/slice-results-20.ttl | 12 + .../data-r2/solution-seq/slice-results-21.rdf | 28 + .../data-r2/solution-seq/slice-results-21.ttl | 18 + .../data-r2/solution-seq/slice-results-22.rdf | 9 + .../data-r2/solution-seq/slice-results-22.ttl | 6 + .../data-r2/solution-seq/slice-results-23.rdf | 55 + .../data-r2/solution-seq/slice-results-23.ttl | 32 + .../data-r2/solution-seq/slice-results-24.rdf | 37 + .../data-r2/solution-seq/slice-results-24.ttl | 22 + .../w3c-sparql10/data-r2/sort/data-sort-1.rdf | 16 + .../w3c-sparql10/data-r2/sort/data-sort-1.ttl | 7 + .../data-r2/sort/data-sort-11.rdf | 29 + .../data-r2/sort/data-sort-11.ttl | 15 + .../w3c-sparql10/data-r2/sort/data-sort-3.rdf | 22 + .../w3c-sparql10/data-r2/sort/data-sort-3.ttl | 17 + .../w3c-sparql10/data-r2/sort/data-sort-4.rdf | 29 + .../w3c-sparql10/data-r2/sort/data-sort-4.ttl | 22 + .../w3c-sparql10/data-r2/sort/data-sort-6.rdf | 25 + .../w3c-sparql10/data-r2/sort/data-sort-6.ttl | 20 + .../w3c-sparql10/data-r2/sort/data-sort-7.rdf | 25 + .../w3c-sparql10/data-r2/sort/data-sort-7.ttl | 19 + .../w3c-sparql10/data-r2/sort/data-sort-8.rdf | 21 + .../w3c-sparql10/data-r2/sort/data-sort-8.ttl | 13 + .../w3c-sparql10/data-r2/sort/data-sort-9.rdf | 17 + .../w3c-sparql10/data-r2/sort/data-sort-9.ttl | 10 + .../data-r2/sort/data-sort-builtin.rdf | 14 + .../data-r2/sort/data-sort-builtin.ttl | 7 + .../data-r2/sort/data-sort-function.rdf | 13 + .../data-r2/sort/data-sort-function.ttl | 6 + .../data-r2/sort/data-sort-numbers.rdf | 17 + .../data-r2/sort/data-sort-numbers.ttl | 7 + .../data-r2/sort/extended-manifest.rdf | 27 + .../data-r2/sort/extended-manifest.ttl | 19 + .../w3c-sparql10/data-r2/sort/manifest.rdf | 234 + .../w3c-sparql10/data-r2/sort/manifest.ttl | 148 + .../w3c-sparql10/data-r2/sort/query-sort-1.rq | 4 + .../data-r2/sort/query-sort-10.rq | 4 + .../w3c-sparql10/data-r2/sort/query-sort-2.rq | 4 + .../w3c-sparql10/data-r2/sort/query-sort-3.rq | 6 + .../w3c-sparql10/data-r2/sort/query-sort-4.rq | 8 + .../w3c-sparql10/data-r2/sort/query-sort-5.rq | 8 + .../w3c-sparql10/data-r2/sort/query-sort-6.rq | 5 + .../w3c-sparql10/data-r2/sort/query-sort-9.rq | 4 + .../data-r2/sort/query-sort-builtin.rq | 4 + .../data-r2/sort/query-sort-function.rq | 5 + .../data-r2/sort/query-sort-numbers.rq | 4 + .../data-r2/sort/result-sort-1.rdf | 38 + .../data-r2/sort/result-sort-10.rdf | 38 + .../data-r2/sort/result-sort-11.rdf | 80 + .../data-r2/sort/result-sort-11.ttl | 49 + .../data-r2/sort/result-sort-2.rdf | 38 + .../data-r2/sort/result-sort-3.rdf | 56 + .../data-r2/sort/result-sort-4.rdf | 71 + .../data-r2/sort/result-sort-5.rdf | 72 + .../data-r2/sort/result-sort-6.rdf | 42 + .../data-r2/sort/result-sort-7.rdf | 59 + .../data-r2/sort/result-sort-8.rdf | 48 + .../data-r2/sort/result-sort-9.rdf | 38 + .../data-r2/sort/result-sort-builtin.rdf | 36 + .../data-r2/sort/result-sort-builtin.ttl | 25 + .../data-r2/sort/result-sort-function.rdf | 36 + .../data-r2/sort/result-sort-function.ttl | 25 + .../data-r2/sort/result-sort-numbers.rdf | 36 + .../data-r2/sort/result-sort-numbers.ttl | 25 + .../data-r2/syntax-sparql1/manifest.rdf | 904 + .../data-r2/syntax-sparql1/manifest.ttl | 524 + .../data-r2/syntax-sparql1/syntax-basic-01.rq | 2 + .../data-r2/syntax-sparql1/syntax-basic-02.rq | 1 + .../data-r2/syntax-sparql1/syntax-basic-03.rq | 4 + .../data-r2/syntax-sparql1/syntax-basic-04.rq | 3 + .../data-r2/syntax-sparql1/syntax-basic-05.rq | 3 + .../data-r2/syntax-sparql1/syntax-basic-06.rq | 3 + .../syntax-sparql1/syntax-bnodes-01.rq | 2 + .../syntax-sparql1/syntax-bnodes-02.rq | 2 + .../syntax-sparql1/syntax-bnodes-03.rq | 2 + .../syntax-sparql1/syntax-bnodes-04.rq | 3 + .../syntax-sparql1/syntax-bnodes-05.rq | 5 + .../data-r2/syntax-sparql1/syntax-expr-01.rq | 2 + .../data-r2/syntax-sparql1/syntax-expr-02.rq | 2 + .../data-r2/syntax-sparql1/syntax-expr-03.rq | 2 + .../data-r2/syntax-sparql1/syntax-expr-04.rq | 3 + .../data-r2/syntax-sparql1/syntax-expr-05.rq | 4 + .../data-r2/syntax-sparql1/syntax-forms-01.rq | 2 + .../data-r2/syntax-sparql1/syntax-forms-02.rq | 2 + .../syntax-sparql1/syntax-limit-offset-01.rq | 5 + .../syntax-sparql1/syntax-limit-offset-02.rq | 7 + .../syntax-sparql1/syntax-limit-offset-03.rq | 7 + .../syntax-sparql1/syntax-limit-offset-04.rq | 5 + .../data-r2/syntax-sparql1/syntax-lists-01.rq | 2 + .../data-r2/syntax-sparql1/syntax-lists-02.rq | 2 + .../data-r2/syntax-sparql1/syntax-lists-03.rq | 1 + .../data-r2/syntax-sparql1/syntax-lists-04.rq | 1 + .../data-r2/syntax-sparql1/syntax-lists-05.rq | 1 + .../data-r2/syntax-sparql1/syntax-lit-01.rq | 3 + .../data-r2/syntax-sparql1/syntax-lit-02.rq | 3 + .../data-r2/syntax-sparql1/syntax-lit-03.rq | 3 + .../data-r2/syntax-sparql1/syntax-lit-04.rq | 3 + .../data-r2/syntax-sparql1/syntax-lit-05.rq | 3 + .../data-r2/syntax-sparql1/syntax-lit-06.rq | 3 + .../data-r2/syntax-sparql1/syntax-lit-07.rq | 3 + .../data-r2/syntax-sparql1/syntax-lit-08.rq | 3 + .../data-r2/syntax-sparql1/syntax-lit-09.rq | 6 + .../data-r2/syntax-sparql1/syntax-lit-10.rq | 5 + .../data-r2/syntax-sparql1/syntax-lit-11.rq | 3 + .../data-r2/syntax-sparql1/syntax-lit-12.rq | 3 + .../data-r2/syntax-sparql1/syntax-lit-13.rq | 3 + .../data-r2/syntax-sparql1/syntax-lit-14.rq | 3 + .../data-r2/syntax-sparql1/syntax-lit-15.rq | 3 + .../data-r2/syntax-sparql1/syntax-lit-16.rq | 3 + .../data-r2/syntax-sparql1/syntax-lit-17.rq | 3 + .../data-r2/syntax-sparql1/syntax-lit-18.rq | 3 + .../data-r2/syntax-sparql1/syntax-lit-19.rq | 3 + .../data-r2/syntax-sparql1/syntax-lit-20.rq | 3 + .../data-r2/syntax-sparql1/syntax-order-01.rq | 4 + .../data-r2/syntax-sparql1/syntax-order-02.rq | 4 + .../data-r2/syntax-sparql1/syntax-order-03.rq | 4 + .../data-r2/syntax-sparql1/syntax-order-04.rq | 4 + .../data-r2/syntax-sparql1/syntax-order-05.rq | 4 + .../data-r2/syntax-sparql1/syntax-order-06.rq | 5 + .../data-r2/syntax-sparql1/syntax-order-07.rq | 4 + .../data-r2/syntax-sparql1/syntax-pat-01.rq | 3 + .../data-r2/syntax-sparql1/syntax-pat-02.rq | 4 + .../data-r2/syntax-sparql1/syntax-pat-03.rq | 7 + .../data-r2/syntax-sparql1/syntax-pat-04.rq | 8 + .../data-r2/syntax-sparql1/syntax-qname-01.rq | 3 + .../data-r2/syntax-sparql1/syntax-qname-02.rq | 3 + .../data-r2/syntax-sparql1/syntax-qname-03.rq | 3 + .../data-r2/syntax-sparql1/syntax-qname-04.rq | 4 + .../data-r2/syntax-sparql1/syntax-qname-05.rq | 3 + .../data-r2/syntax-sparql1/syntax-qname-06.rq | 3 + .../data-r2/syntax-sparql1/syntax-qname-07.rq | 4 + .../data-r2/syntax-sparql1/syntax-qname-08.rq | 5 + .../syntax-sparql1/syntax-struct-01.rq | 4 + .../syntax-sparql1/syntax-struct-02.rq | 4 + .../syntax-sparql1/syntax-struct-03.rq | 4 + .../syntax-sparql1/syntax-struct-05.rq | 4 + .../syntax-sparql1/syntax-struct-06.rq | 4 + .../syntax-sparql1/syntax-struct-07.rq | 4 + .../syntax-sparql1/syntax-struct-08.rq | 4 + .../syntax-sparql1/syntax-struct-09.rq | 4 + .../syntax-sparql1/syntax-struct-10.rq | 4 + .../syntax-sparql1/syntax-struct-11.rq | 4 + .../syntax-sparql1/syntax-struct-12.rq | 4 + .../syntax-sparql1/syntax-struct-13.rq | 6 + .../syntax-sparql1/syntax-struct-14.rq | 6 + .../data-r2/syntax-sparql1/syntax-union-01.rq | 5 + .../data-r2/syntax-sparql1/syntax-union-02.rq | 5 + .../data-r2/syntax-sparql2/manifest.rdf | 596 + .../data-r2/syntax-sparql2/manifest.ttl | 348 + .../data-r2/syntax-sparql2/syntax-bnode-01.rq | 2 + .../data-r2/syntax-sparql2/syntax-bnode-02.rq | 4 + .../data-r2/syntax-sparql2/syntax-bnode-03.rq | 3 + .../syntax-sparql2/syntax-dataset-01.rq | 4 + .../syntax-sparql2/syntax-dataset-02.rq | 4 + .../syntax-sparql2/syntax-dataset-03.rq | 5 + .../syntax-sparql2/syntax-dataset-04.rq | 7 + .../data-r2/syntax-sparql2/syntax-esc-01.rq | 2 + .../data-r2/syntax-sparql2/syntax-esc-02.rq | 2 + .../data-r2/syntax-sparql2/syntax-esc-03.rq | 2 + .../data-r2/syntax-sparql2/syntax-esc-04.rq | 3 + .../data-r2/syntax-sparql2/syntax-esc-05.rq | 5 + .../syntax-sparql2/syntax-form-ask-02.rq | 1 + .../syntax-sparql2/syntax-form-construct01.rq | 1 + .../syntax-sparql2/syntax-form-construct02.rq | 1 + .../syntax-sparql2/syntax-form-construct03.rq | 5 + .../syntax-sparql2/syntax-form-construct04.rq | 5 + .../syntax-sparql2/syntax-form-construct06.rq | 1 + .../syntax-sparql2/syntax-form-describe01.rq | 1 + .../syntax-sparql2/syntax-form-describe02.rq | 1 + .../syntax-sparql2/syntax-form-select-01.rq | 1 + .../syntax-sparql2/syntax-form-select-02.rq | 1 + .../syntax-sparql2/syntax-function-01.rq | 2 + .../syntax-sparql2/syntax-function-02.rq | 2 + .../syntax-sparql2/syntax-function-03.rq | 3 + .../syntax-sparql2/syntax-function-04.rq | 4 + .../syntax-sparql2/syntax-general-01.rq | 1 + .../syntax-sparql2/syntax-general-02.rq | 1 + .../syntax-sparql2/syntax-general-03.rq | 1 + .../syntax-sparql2/syntax-general-04.rq | 1 + .../syntax-sparql2/syntax-general-05.rq | 1 + .../syntax-sparql2/syntax-general-06.rq | 1 + .../syntax-sparql2/syntax-general-07.rq | 1 + .../syntax-sparql2/syntax-general-08.rq | 1 + .../syntax-sparql2/syntax-general-09.rq | 1 + .../syntax-sparql2/syntax-general-10.rq | 1 + .../syntax-sparql2/syntax-general-11.rq | 1 + .../syntax-sparql2/syntax-general-12.rq | 2 + .../syntax-sparql2/syntax-general-13.rq | 3 + .../syntax-sparql2/syntax-general-14.rq | 3 + .../data-r2/syntax-sparql2/syntax-graph-01.rq | 6 + .../data-r2/syntax-sparql2/syntax-graph-02.rq | 6 + .../data-r2/syntax-sparql2/syntax-graph-03.rq | 6 + .../data-r2/syntax-sparql2/syntax-graph-04.rq | 7 + .../data-r2/syntax-sparql2/syntax-graph-05.rq | 7 + .../syntax-sparql2/syntax-keywords-01.rq | 4 + .../syntax-sparql2/syntax-keywords-02.rq | 4 + .../syntax-sparql2/syntax-keywords-03.rq | 4 + .../data-r2/syntax-sparql2/syntax-lists-01.rq | 2 + .../data-r2/syntax-sparql2/syntax-lists-02.rq | 2 + .../data-r2/syntax-sparql2/syntax-lists-03.rq | 3 + .../data-r2/syntax-sparql2/syntax-lists-04.rq | 3 + .../data-r2/syntax-sparql2/syntax-lists-05.rq | 3 + .../data-r2/syntax-sparql3/manifest.rdf | 574 + .../data-r2/syntax-sparql3/manifest.ttl | 329 + .../data-r2/syntax-sparql3/syn-01.rq | 3 + .../data-r2/syntax-sparql3/syn-02.rq | 3 + .../data-r2/syntax-sparql3/syn-03.rq | 2 + .../data-r2/syntax-sparql3/syn-04.rq | 3 + .../data-r2/syntax-sparql3/syn-05.rq | 3 + .../data-r2/syntax-sparql3/syn-06.rq | 3 + .../data-r2/syntax-sparql3/syn-07.rq | 4 + .../data-r2/syntax-sparql3/syn-08.rq | 4 + .../data-r2/syntax-sparql3/syn-bad-01.rq | 3 + .../data-r2/syntax-sparql3/syn-bad-02.rq | 4 + .../data-r2/syntax-sparql3/syn-bad-03.rq | 4 + .../data-r2/syntax-sparql3/syn-bad-04.rq | 4 + .../data-r2/syntax-sparql3/syn-bad-05.rq | 3 + .../data-r2/syntax-sparql3/syn-bad-06.rq | 3 + .../data-r2/syntax-sparql3/syn-bad-07.rq | 3 + .../data-r2/syntax-sparql3/syn-bad-08.rq | 3 + .../data-r2/syntax-sparql3/syn-bad-09.rq | 3 + .../data-r2/syntax-sparql3/syn-bad-10.rq | 3 + .../data-r2/syntax-sparql3/syn-bad-11.rq | 3 + .../data-r2/syntax-sparql3/syn-bad-12.rq | 3 + .../data-r2/syntax-sparql3/syn-bad-13.rq | 3 + .../data-r2/syntax-sparql3/syn-bad-14.rq | 3 + .../data-r2/syntax-sparql3/syn-bad-15.rq | 3 + .../data-r2/syntax-sparql3/syn-bad-16.rq | 4 + .../data-r2/syntax-sparql3/syn-bad-17.rq | 4 + .../data-r2/syntax-sparql3/syn-bad-18.rq | 4 + .../data-r2/syntax-sparql3/syn-bad-19.rq | 4 + .../data-r2/syntax-sparql3/syn-bad-20.rq | 4 + .../data-r2/syntax-sparql3/syn-bad-21.rq | 4 + .../data-r2/syntax-sparql3/syn-bad-22.rq | 4 + .../data-r2/syntax-sparql3/syn-bad-23.rq | 4 + .../data-r2/syntax-sparql3/syn-bad-24.rq | 4 + .../data-r2/syntax-sparql3/syn-bad-25.rq | 1 + .../data-r2/syntax-sparql3/syn-bad-26.rq | 5 + .../data-r2/syntax-sparql3/syn-bad-27.rq | 2 + .../data-r2/syntax-sparql3/syn-bad-28.rq | 2 + .../data-r2/syntax-sparql3/syn-bad-29.rq | 2 + .../data-r2/syntax-sparql3/syn-bad-30.rq | 2 + .../data-r2/syntax-sparql3/syn-bad-31.rq | 6 + .../syntax-sparql3/syn-bad-bnode-dot.rq | 2 + .../syn-bad-bnodes-missing-pvalues-01.rq | 3 + .../syn-bad-bnodes-missing-pvalues-02.rq | 2 + .../syn-bad-empty-optional-01.rq | 2 + .../syn-bad-empty-optional-02.rq | 2 + .../syn-bad-filter-missing-parens.rq | 2 + .../syntax-sparql3/syn-bad-lone-list.rq | 2 + .../syntax-sparql3/syn-bad-lone-node.rq | 2 + .../syntax-sparql3/syn-blabel-cross-filter.rq | 7 + .../syn-blabel-cross-graph-bad.rq | 7 + .../syn-blabel-cross-optional-bad.rq | 9 + .../syn-blabel-cross-union-bad.rq | 11 + .../data-r2/syntax-sparql4/manifest.rdf | 148 + .../data-r2/syntax-sparql4/manifest.ttl | 91 + .../data-r2/syntax-sparql4/syn-09.rq | 6 + .../data-r2/syntax-sparql4/syn-10.rq | 6 + .../data-r2/syntax-sparql4/syn-11.rq | 6 + .../data-r2/syntax-sparql4/syn-bad-34.rq | 6 + .../data-r2/syntax-sparql4/syn-bad-35.rq | 6 + .../data-r2/syntax-sparql4/syn-bad-36.rq | 6 + .../data-r2/syntax-sparql4/syn-bad-37.rq | 6 + .../data-r2/syntax-sparql4/syn-bad-38.rq | 6 + .../syn-bad-GRAPH-breaks-BGP.rq | 9 + .../syntax-sparql4/syn-bad-OPT-breaks-BGP.rq | 9 + .../syn-bad-UNION-breaks-BGP.rq | 11 + .../syn-leading-digits-in-prefixed-names.rq | 8 + .../data-r2/syntax-sparql5/manifest.rdf | 35 + .../data-r2/syntax-sparql5/manifest.ttl | 27 + .../syntax-sparql5/syntax-reduced-01.rq | 1 + .../syntax-sparql5/syntax-reduced-02.rq | 1 + .../data-r2/triple-match/data-01.rdf | 8 + .../data-r2/triple-match/data-01.ttl | 4 + .../data-r2/triple-match/data-02.rdf | 11 + .../data-r2/triple-match/data-02.ttl | 7 + .../data-r2/triple-match/data-03.rdf | 8 + .../data-r2/triple-match/data-03.ttl | 4 + .../data-r2/triple-match/dawg-data-01.rdf | 27 + .../data-r2/triple-match/dawg-data-01.ttl | 29 + .../data-r2/triple-match/dawg-tp-01.rq | 4 + .../data-r2/triple-match/dawg-tp-02.rq | 5 + .../data-r2/triple-match/dawg-tp-03.rq | 2 + .../data-r2/triple-match/dawg-tp-04.rq | 8 + .../data-r2/triple-match/dawg-tp-05.rq | 5 + .../data-r2/triple-match/manifest.rdf | 81 + .../data-r2/triple-match/manifest.ttl | 60 + .../data-r2/triple-match/result-tp-01.rdf | 35 + .../data-r2/triple-match/result-tp-01.ttl | 20 + .../data-r2/triple-match/result-tp-02.rdf | 35 + .../data-r2/triple-match/result-tp-02.ttl | 20 + .../data-r2/triple-match/result-tp-03.rdf | 22 + .../data-r2/triple-match/result-tp-03.ttl | 13 + .../data-r2/triple-match/result-tp-04.rdf | 32 + .../data-r2/triple-match/result-tp-04.ttl | 18 + .../data-r2/type-promotion/false.rdf | 9 + .../data-r2/type-promotion/false.ttl | 9 + .../data-r2/type-promotion/manifest.rdf | 553 + .../data-r2/type-promotion/manifest.ttl | 406 + .../type-promotion/tP-byte-short-fail.rq | 10 + .../data-r2/type-promotion/tP-byte-short.rq | 10 + .../type-promotion/tP-decimal-decimal.rq | 10 + .../type-promotion/tP-double-decimal-fail.rq | 10 + .../type-promotion/tP-double-decimal.rq | 10 + .../type-promotion/tP-double-double.rq | 10 + .../type-promotion/tP-double-float-fail.rq | 10 + .../data-r2/type-promotion/tP-double-float.rq | 10 + .../type-promotion/tP-float-decimal-fail.rq | 10 + .../type-promotion/tP-float-decimal.rq | 10 + .../data-r2/type-promotion/tP-float-float.rq | 10 + .../data-r2/type-promotion/tP-int-short.rq | 10 + .../type-promotion/tP-integer-short.rq | 10 + .../data-r2/type-promotion/tP-long-short.rq | 10 + .../tP-negativeInteger-short.rq | 10 + .../tP-nonNegativeInteger-short.rq | 10 + .../tP-nonPositiveInteger-short.rq | 10 + .../tP-positiveInteger-short.rq | 10 + .../type-promotion/tP-short-byte-fail.rq | 10 + .../type-promotion/tP-short-decimal.rq | 10 + .../data-r2/type-promotion/tP-short-double.rq | 10 + .../data-r2/type-promotion/tP-short-float.rq | 10 + .../type-promotion/tP-short-int-fail.rq | 10 + .../type-promotion/tP-short-long-fail.rq | 10 + .../type-promotion/tP-short-short-fail.rq | 10 + .../data-r2/type-promotion/tP-short-short.rq | 10 + .../type-promotion/tP-unsignedByte-short.rq | 10 + .../type-promotion/tP-unsignedInt-short.rq | 10 + .../type-promotion/tP-unsignedLong-short.rq | 10 + .../type-promotion/tP-unsignedShort-short.rq | 10 + .../data-r2/type-promotion/tP.rdf | 59 + .../data-r2/type-promotion/tP.ttl | 28 + .../data-r2/type-promotion/true.rdf | 9 + .../data-r2/type-promotion/true.ttl | 9 + .../resources/data/w3c-sparql10/data-r2/x | 8 + .../resources/data/w3c-sparql10/earl.html | 204 + .../test/resources/data/w3c-sparql10/r2.html | 14471 ++++++++++ .../resources/data/w3c-sparql10/result-se.rdf | 69 + .../resources/data/w3c-sparql10/result-set.n3 | 88 + .../resources/data/w3c-sparql10/test-daw.rdf | 104 + .../resources/data/w3c-sparql10/test-dawg.n3 | 116 + .../data/w3c-sparql10/test-manifest.n3 | 163 + .../resources/data/w3c-sparql10/test-quer.rdf | 69 + .../resources/data/w3c-sparql10/test-query.n3 | 76 + .../resources/data/w3c-sparql10/tests.css | 37 + .../data/w3c-sparql11/data/corese-earl.ttl | 5187 ++++ .../data/w3c-sparql11/data/corese.txt | 18 + .../resources/data/w3c-sparql11/data/earl.rdf | 5218 ++++ .../resources/data/w3c-sparql11/data/earl.ttl | 4467 +++ .../data/w3c-sparql11/data/earl.ttl.save | 5147 ++++ .../data/w3c-sparql11/data/pattern.txt | 10 + .../data/w3c-sparql11/data/prefix.txt | 9 + .../resources/data/w3c-sparql11/data/rdf.rdf | 131 + .../resources/data/w3c-sparql11/data/rdf.rul | 38 + .../resources/data/w3c-sparql11/data/rdfs.rdf | 130 + .../resources/data/w3c-sparql11/data/rdfs.rul | 126 + .../sparql11-test-suite/add/add-01-post.ttl | 10 + .../sparql11-test-suite/add/add-01-pre.ttl | 6 + .../sparql11-test-suite/add/add-01.ru | 2 + .../sparql11-test-suite/add/add-02-post.ttl | 10 + .../sparql11-test-suite/add/add-02-pre.ttl | 6 + .../sparql11-test-suite/add/add-03-post.ttl | 7 + .../sparql11-test-suite/add/add-03-pre.ttl | 6 + .../sparql11-test-suite/add/add-03.ru | 2 + .../sparql11-test-suite/add/add-05.ru | 2 + .../sparql11-test-suite/add/add-06.ru | 2 + .../sparql11-test-suite/add/add-07.ru | 2 + .../sparql11-test-suite/add/add-08.ru | 2 + .../sparql11-test-suite/add/add-default.ttl | 6 + .../sparql11-test-suite/add/manifest.ttl | 149 + .../aggregates/agg-avg-01.rq | 5 + .../aggregates/agg-avg-01.srx | 13 + .../aggregates/agg-avg-02.rq | 7 + .../aggregates/agg-avg-02.srx | 33 + .../aggregates/agg-empty-group.rq | 5 + .../aggregates/agg-empty-group.srx | 10 + .../aggregates/agg-err-01.rq | 6 + .../aggregates/agg-err-01.srx | 23 + .../aggregates/agg-err-01.ttl | 5 + .../aggregates/agg-err-02.rq | 8 + .../aggregates/agg-err-02.srx | 33 + .../aggregates/agg-err-02.ttl | 5 + .../aggregates/agg-groupconcat-1.rq | 7 + .../aggregates/agg-groupconcat-1.srx | 5 + .../aggregates/agg-groupconcat-1.ttl | 4 + .../aggregates/agg-groupconcat-2.rq | 10 + .../aggregates/agg-groupconcat-2.srx | 13 + .../aggregates/agg-groupconcat-3.rq | 7 + .../aggregates/agg-groupconcat-3.srx | 5 + .../aggregates/agg-max-01.rq | 5 + .../aggregates/agg-max-01.srx | 13 + .../aggregates/agg-max-02.rq | 6 + .../aggregates/agg-max-02.srx | 49 + .../aggregates/agg-min-01.rq | 5 + .../aggregates/agg-min-01.srx | 13 + .../aggregates/agg-min-02.rq | 6 + .../aggregates/agg-min-02.srx | 49 + .../aggregates/agg-numeric.ttl | 8 + .../aggregates/agg-numeric2.ttl | 8 + .../aggregates/agg-sample-01.rq | 10 + .../aggregates/agg-sample-01.srx | 5 + .../aggregates/agg-sum-01.rq | 5 + .../aggregates/agg-sum-01.srx | 13 + .../aggregates/agg-sum-02.rq | 6 + .../aggregates/agg-sum-02.srx | 49 + .../sparql11-test-suite/aggregates/agg01.rq | 4 + .../sparql11-test-suite/aggregates/agg01.srx | 13 + .../sparql11-test-suite/aggregates/agg01.ttl | 4 + .../sparql11-test-suite/aggregates/agg02.rq | 5 + .../sparql11-test-suite/aggregates/agg02.srx | 25 + .../sparql11-test-suite/aggregates/agg03.rq | 6 + .../sparql11-test-suite/aggregates/agg03.srx | 17 + .../sparql11-test-suite/aggregates/agg04.rq | 4 + .../sparql11-test-suite/aggregates/agg04.srx | 13 + .../sparql11-test-suite/aggregates/agg05.rq | 5 + .../sparql11-test-suite/aggregates/agg05.srx | 25 + .../sparql11-test-suite/aggregates/agg06.rq | 5 + .../sparql11-test-suite/aggregates/agg06.srx | 13 + .../sparql11-test-suite/aggregates/agg07.rq | 6 + .../sparql11-test-suite/aggregates/agg07.srx | 17 + .../sparql11-test-suite/aggregates/agg08.rq | 5 + .../sparql11-test-suite/aggregates/agg08.ttl | 4 + .../sparql11-test-suite/aggregates/agg08b.rq | 5 + .../sparql11-test-suite/aggregates/agg08b.srx | 49 + .../sparql11-test-suite/aggregates/agg09.rq | 4 + .../sparql11-test-suite/aggregates/agg10.rq | 4 + .../sparql11-test-suite/aggregates/agg11.rq | 4 + .../sparql11-test-suite/aggregates/agg12.rq | 4 + .../sparql11-test-suite/aggregates/empty.ttl | 1 + .../aggregates/manifest.ttl | 347 + .../basic-update/empty.ttl | 2 + .../basic-update/insert-01-post.ttl | 1 + .../basic-update/insert-01-pre.ttl | 1 + .../basic-update/insert-01.ru | 7 + .../basic-update/insert-02-g1-post.ttl | 1 + .../basic-update/insert-02-post.ttl | 1 + .../basic-update/insert-02-pre.ttl | 1 + .../basic-update/insert-02.ru | 9 + .../basic-update/insert-03-g1-post.ttl | 1 + .../basic-update/insert-03-g1-pre.ttl | 1 + .../basic-update/insert-03-post.ttl | 3 + .../basic-update/insert-03-pre.ttl | 3 + .../basic-update/insert-03.ru | 8 + .../basic-update/insert-04-g1-post.ttl | 3 + .../basic-update/insert-04-g1-pre.ttl | 3 + .../basic-update/insert-04-post.ttl | 4 + .../basic-update/insert-04-pre.ttl | 3 + .../basic-update/insert-04.ru | 9 + .../basic-update/insert-05-g1-pre.ttl | 4 + .../basic-update/insert-05.ru | 5 + .../basic-update/insert-05a-g1-pre.ttl | 4 + .../basic-update/insert-05a-g3-post.ttl | 5 + .../basic-update/insert-05a.ru | 16 + .../basic-update/insert-data-named1.ru | 3 + .../basic-update/insert-data-named2.ru | 3 + .../basic-update/insert-data-same-bnode.ru | 24 + .../basic-update/insert-data-spo1.ru | 3 + .../basic-update/insert-using-01-g1-post.ttl | 3 + .../basic-update/insert-using-01-g1-pre.ttl | 3 + .../basic-update/insert-using-01-g2-post.ttl | 3 + .../basic-update/insert-using-01-g2-pre.ttl | 3 + .../basic-update/insert-using-01-post.ttl | 5 + .../basic-update/insert-using-01-pre.ttl | 3 + .../basic-update/insert-using-01.ru | 10 + .../insert-where-same-bnode-g3-post.ttl | 5 + .../insert-where-same-bnode-pre.ttl | 3 + .../basic-update/insert-where-same-bnode.ru | 24 + .../basic-update/insert-where-same-bnode2.ru | 24 + .../basic-update/manifest.ttl | 246 + .../sparql11-test-suite/basic-update/spo.ttl | 4 + .../sparql11-test-suite/basic-update/spo2.ttl | 4 + .../sparql11-test-suite/bind/bind01.rq | 7 + .../sparql11-test-suite/bind/bind01.srx | 28 + .../sparql11-test-suite/bind/bind02.rq | 8 + .../sparql11-test-suite/bind/bind02.srx | 54 + .../sparql11-test-suite/bind/bind03.rq | 8 + .../sparql11-test-suite/bind/bind03.srx | 33 + .../sparql11-test-suite/bind/bind04.rq | 7 + .../sparql11-test-suite/bind/bind04.srx | 55 + .../sparql11-test-suite/bind/bind05.rq | 8 + .../sparql11-test-suite/bind/bind05.srx | 25 + .../sparql11-test-suite/bind/bind06.rq | 7 + .../sparql11-test-suite/bind/bind06.srx | 67 + .../sparql11-test-suite/bind/bind07.rq | 7 + .../sparql11-test-suite/bind/bind07.srx | 99 + .../sparql11-test-suite/bind/bind08.rq | 8 + .../sparql11-test-suite/bind/bind08.srx | 25 + .../sparql11-test-suite/bind/bind10.rq | 11 + .../sparql11-test-suite/bind/bind10.srx | 10 + .../sparql11-test-suite/bind/bind11.rq | 10 + .../sparql11-test-suite/bind/bind11.srx | 21 + .../sparql11-test-suite/bind/data.ttl | 6 + .../sparql11-test-suite/bind/manifest.ttl | 122 + .../bindings/bindings01.rq | 12 + .../bindings/bindings01.srx | 15 + .../bindings/bindings02.rq | 10 + .../bindings/bindings02.srx | 13 + .../bindings/bindings03.rq | 11 + .../bindings/bindings03.srx | 16 + .../bindings/bindings04.rq | 11 + .../bindings/bindings04.srx | 26 + .../bindings/bindings05.rq | 10 + .../bindings/bindings05.srx | 41 + .../bindings/bindings06.rq | 10 + .../bindings/bindings06.srx | 16 + .../bindings/bindings07.rq | 11 + .../bindings/bindings07.srx | 65 + .../bindings/bindings08.rq | 13 + .../bindings/bindings08.srx | 20 + .../sparql11-test-suite/bindings/data01.ttl | 8 + .../sparql11-test-suite/bindings/data02.ttl | 8 + .../sparql11-test-suite/bindings/data03.ttl | 8 + .../sparql11-test-suite/bindings/data04.ttl | 8 + .../sparql11-test-suite/bindings/data05.ttl | 8 + .../sparql11-test-suite/bindings/data06.ttl | 8 + .../sparql11-test-suite/bindings/data07.ttl | 11 + .../sparql11-test-suite/bindings/data08.ttl | 8 + .../sparql11-test-suite/bindings/inline01.rq | 10 + .../sparql11-test-suite/bindings/inline01.srx | 15 + .../sparql11-test-suite/bindings/inline02.rq | 12 + .../sparql11-test-suite/bindings/inline02.srx | 13 + .../sparql11-test-suite/bindings/manifest.ttl | 237 + .../sparql11-test-suite/bindings/values01.rq | 12 + .../sparql11-test-suite/bindings/values01.srx | 15 + .../sparql11-test-suite/bindings/values02.rq | 10 + .../sparql11-test-suite/bindings/values02.srx | 13 + .../sparql11-test-suite/bindings/values03.rq | 11 + .../sparql11-test-suite/bindings/values03.srx | 16 + .../sparql11-test-suite/bindings/values04.rq | 11 + .../sparql11-test-suite/bindings/values04.srx | 26 + .../sparql11-test-suite/bindings/values05.rq | 10 + .../sparql11-test-suite/bindings/values05.srx | 41 + .../sparql11-test-suite/bindings/values06.rq | 10 + .../sparql11-test-suite/bindings/values06.srx | 16 + .../sparql11-test-suite/bindings/values07.rq | 11 + .../sparql11-test-suite/bindings/values07.srx | 65 + .../sparql11-test-suite/bindings/values08.rq | 13 + .../sparql11-test-suite/bindings/values08.srx | 20 + .../sparql11-test-suite/clear/clear-all-01.ru | 4 + .../clear/clear-default-01.ru | 4 + .../clear/clear-default.ttl | 3 + .../sparql11-test-suite/clear/clear-g1.ttl | 5 + .../sparql11-test-suite/clear/clear-g2.ttl | 4 + .../clear/clear-graph-01.ru | 3 + .../clear/clear-named-01.ru | 3 + .../sparql11-test-suite/clear/empty.ttl | 2 + .../sparql11-test-suite/clear/manifest.ttl | 106 + .../construct/constructwhere01.rq | 3 + .../construct/constructwhere01result.ttl | 8 + .../construct/constructwhere02.rq | 3 + .../construct/constructwhere02result.ttl | 5 + .../construct/constructwhere03.rq | 3 + .../construct/constructwhere03result.ttl | 4 + .../construct/constructwhere04.rq | 5 + .../construct/constructwhere04result.ttl | 8 + .../construct/constructwhere05.rq | 4 + .../construct/constructwhere06.rq | 2 + .../sparql11-test-suite/construct/data.ttl | 6 + .../construct/manifest.ttl | 74 + .../sparql11-test-suite/copy/copy-01.ru | 2 + .../sparql11-test-suite/copy/copy-01.ttl | 6 + .../sparql11-test-suite/copy/copy-02.ttl | 6 + .../sparql11-test-suite/copy/copy-03.ru | 2 + .../sparql11-test-suite/copy/copy-06.ru | 2 + .../sparql11-test-suite/copy/copy-07.ru | 2 + .../sparql11-test-suite/copy/copy-default.ttl | 6 + .../sparql11-test-suite/copy/manifest.ttl | 113 + .../csv-tsv-res/csvtsv01.csv | 7 + .../csv-tsv-res/csvtsv01.rq | 3 + .../csv-tsv-res/csvtsv01.tsv | 7 + .../csv-tsv-res/csvtsv02.csv | 7 + .../csv-tsv-res/csvtsv02.rq | 3 + .../csv-tsv-res/csvtsv02.tsv | 7 + .../csv-tsv-res/csvtsv03.csv | 8 + .../csv-tsv-res/csvtsv03.tsv | 8 + .../sparql11-test-suite/csv-tsv-res/data.ttl | 10 + .../sparql11-test-suite/csv-tsv-res/data2.ttl | 10 + .../csv-tsv-res/manifest.ttl | 84 + .../delete-data/delete-data-01.ru | 7 + .../delete-data/delete-data-02.ru | 7 + .../delete-data/delete-data-03.ru | 7 + .../delete-data/delete-data-04.ru | 7 + .../delete-data/delete-data-05.ru | 7 + .../delete-data/delete-data-06.ru | 7 + .../delete-data/delete-post-01f.ttl | 8 + .../delete-data/delete-post-01s.ttl | 7 + .../delete-data/delete-post-02f.ttl | 9 + .../delete-data/delete-post-02s.ttl | 8 + .../delete-data/delete-post-03f.ttl | 8 + .../delete-data/delete-pre-01.ttl | 8 + .../delete-data/delete-pre-02.ttl | 9 + .../delete-data/delete-pre-03.ttl | 8 + .../delete-data/manifest.ttl | 107 + .../delete-insert/delete-insert-01.ru | 15 + .../delete-insert/delete-insert-01b.ru | 20 + .../delete-insert/delete-insert-01c.ru | 21 + .../delete-insert/delete-insert-02.ru | 10 + .../delete-insert/delete-insert-03.ru | 11 + .../delete-insert/delete-insert-03b.ru | 11 + .../delete-insert/delete-insert-04.ru | 17 + .../delete-insert/delete-insert-04b.ru | 12 + .../delete-insert/delete-insert-05.ru | 15 + .../delete-insert/delete-insert-05b.ru | 16 + .../delete-insert/delete-insert-07.ru | 15 + .../delete-insert/delete-insert-07b.ru | 15 + .../delete-insert/delete-insert-08.ru | 7 + .../delete-insert/delete-insert-09.ru | 7 + .../delete-insert/delete-insert-post-01.ttl | 13 + .../delete-insert/delete-insert-post-01b.ttl | 11 + .../delete-insert/delete-insert-post-02.ttl | 11 + .../delete-insert/delete-insert-post-05.ttl | 11 + .../delete-insert/delete-insert-post-07.ttl | 11 + .../delete-insert/delete-insert-post-07b.ttl | 12 + .../delete-insert/delete-insert-post-08.ttl | 5 + .../delete-insert/delete-insert-post-09.ttl | 5 + .../delete-insert/delete-insert-pre-01.ttl | 13 + .../delete-insert/delete-insert-pre-06.ttl | 11 + .../delete-insert/delete-insert-pre-08.ttl | 5 + .../delete-insert/delete-insert-pre-09.ttl | 6 + .../delete-insert/manifest.ttl | 183 + .../delete-where/delete-post-01f.ttl | 8 + .../delete-where/delete-post-01s.ttl | 7 + .../delete-where/delete-post-02f.ttl | 9 + .../delete-where/delete-post-02s.ttl | 8 + .../delete-where/delete-post-03f.ttl | 8 + .../delete-where/delete-pre-01.ttl | 8 + .../delete-where/delete-pre-02.ttl | 9 + .../delete-where/delete-pre-03.ttl | 8 + .../delete-where/delete-where-01.ru | 7 + .../delete-where/delete-where-02.ru | 7 + .../delete-where/delete-where-03.ru | 7 + .../delete-where/delete-where-04.ru | 7 + .../delete-where/delete-where-05.ru | 7 + .../delete-where/delete-where-06.ru | 7 + .../delete-where/manifest.ttl | 107 + .../sparql11-test-suite/delete/delete-01.ru | 12 + .../sparql11-test-suite/delete/delete-02.ru | 12 + .../sparql11-test-suite/delete/delete-03.ru | 12 + .../sparql11-test-suite/delete/delete-04.ru | 12 + .../sparql11-test-suite/delete/delete-05.ru | 12 + .../sparql11-test-suite/delete/delete-06.ru | 12 + .../sparql11-test-suite/delete/delete-07.ru | 11 + .../delete/delete-post-01f.ttl | 9 + .../delete/delete-post-01s.ttl | 6 + .../delete/delete-post-01s2.ttl | 5 + .../delete/delete-post-02f.ttl | 9 + .../delete/delete-post-02s.ttl | 7 + .../delete/delete-post-03f.ttl | 8 + .../delete/delete-pre-01.ttl | 9 + .../delete/delete-pre-02.ttl | 9 + .../delete/delete-pre-03.ttl | 8 + .../delete/delete-using-01.ru | 13 + .../delete/delete-using-02.ru | 13 + .../delete/delete-using-03.ru | 13 + .../delete/delete-using-04.ru | 13 + .../delete/delete-using-05.ru | 13 + .../delete/delete-using-06.ru | 13 + .../delete/delete-with-01.ru | 13 + .../delete/delete-with-02.ru | 13 + .../delete/delete-with-03.ru | 13 + .../delete/delete-with-04.ru | 13 + .../delete/delete-with-05.ru | 13 + .../delete/delete-with-06.ru | 13 + .../sparql11-test-suite/delete/manifest.ttl | 343 + .../sparql11-test-suite/drop/drop-all-01.ru | 4 + .../drop/drop-default-01.ru | 4 + .../sparql11-test-suite/drop/drop-default.ttl | 3 + .../sparql11-test-suite/drop/drop-g1.ttl | 5 + .../sparql11-test-suite/drop/drop-g2.ttl | 4 + .../sparql11-test-suite/drop/drop-graph-01.ru | 3 + .../sparql11-test-suite/drop/drop-named-01.ru | 3 + .../sparql11-test-suite/drop/manifest.ttl | 93 + .../entailment/bind-data.ttl | 10 + .../sparql11-test-suite/entailment/bind01.rq | 10 + .../sparql11-test-suite/entailment/bind01.srx | 28 + .../sparql11-test-suite/entailment/bind02.rq | 11 + .../sparql11-test-suite/entailment/bind02.srx | 54 + .../sparql11-test-suite/entailment/bind03.rq | 12 + .../sparql11-test-suite/entailment/bind03.srx | 33 + .../sparql11-test-suite/entailment/bind04.rq | 10 + .../sparql11-test-suite/entailment/bind04.srx | 55 + .../sparql11-test-suite/entailment/bind05.rq | 11 + .../sparql11-test-suite/entailment/bind05.srx | 25 + .../sparql11-test-suite/entailment/bind06.rq | 10 + .../sparql11-test-suite/entailment/bind06.srx | 67 + .../sparql11-test-suite/entailment/bind07.rq | 10 + .../sparql11-test-suite/entailment/bind07.srx | 99 + .../sparql11-test-suite/entailment/bind08.rq | 11 + .../sparql11-test-suite/entailment/bind08.srx | 25 + .../entailment/d-ent-01.rq | 6 + .../entailment/d-ent-01.srx | 10 + .../entailment/d-ent-01.ttl | 6 + .../entailment/data-01.ttl | 11 + .../entailment/data-02.ttl | 22 + .../entailment/data-03.ttl | 22 + .../entailment/data-06.ttl | 24 + .../entailment/data-07.ttl | 29 + .../entailment/data-08.ttl | 22 + .../entailment/data-11.ttl | 18 + .../sparql11-test-suite/entailment/lang.rq | 6 + .../sparql11-test-suite/entailment/lang.srx | 16 + .../sparql11-test-suite/entailment/lang.ttl | 11 + .../entailment/manifest.ttl | 736 + .../sparql11-test-suite/entailment/owlds01.rq | 12 + .../entailment/owlds01.srx | 11 + .../entailment/owlds01.ttl | 18 + .../sparql11-test-suite/entailment/owlds02.rq | 9 + .../entailment/owlds02.srx | 28 + .../entailment/owlds02.ttl | 20 + .../entailment/paper-sparqldl-Q1-rdfs.srx | 21 + .../entailment/paper-sparqldl-Q1.rq | 7 + .../entailment/paper-sparqldl-Q1.srx | 26 + .../entailment/paper-sparqldl-Q2.rq | 11 + .../entailment/paper-sparqldl-Q2.srx | 20 + .../entailment/paper-sparqldl-Q3.rq | 16 + .../entailment/paper-sparqldl-Q3.srx | 21 + .../entailment/paper-sparqldl-Q4.rq | 10 + .../entailment/paper-sparqldl-Q4.srx | 28 + .../entailment/paper-sparqldl-Q5.rq | 10 + .../entailment/paper-sparqldl-Q5.srx | 20 + .../entailment/paper-sparqldl-data.ttl | 31 + .../sparql11-test-suite/entailment/parent.ttl | 38 + .../entailment/parent10.rq | 11 + .../entailment/parent10.srx | 26 + .../sparql11-test-suite/entailment/parent2.rq | 4 + .../entailment/parent2.srx | 21 + .../sparql11-test-suite/entailment/parent3.rq | 8 + .../entailment/parent3.srx | 26 + .../sparql11-test-suite/entailment/parent4.rq | 10 + .../entailment/parent4.srx | 26 + .../sparql11-test-suite/entailment/parent5.rq | 8 + .../entailment/parent5.srx | 16 + .../sparql11-test-suite/entailment/parent6.rq | 11 + .../entailment/parent6.srx | 16 + .../sparql11-test-suite/entailment/parent7.rq | 10 + .../entailment/parent7.srx | 16 + .../sparql11-test-suite/entailment/parent8.rq | 10 + .../entailment/parent8.srx | 16 + .../sparql11-test-suite/entailment/parent9.rq | 10 + .../entailment/parent9.srx | 31 + .../entailment/plainLit.rq | 6 + .../entailment/plainLit.srx | 16 + .../entailment/plainLit.ttl | 11 + .../sparql11-test-suite/entailment/rdf01.rq | 8 + .../sparql11-test-suite/entailment/rdf01.srx | 16 + .../sparql11-test-suite/entailment/rdf01.ttl | 10 + .../sparql11-test-suite/entailment/rdf02.rq | 8 + .../sparql11-test-suite/entailment/rdf02.srx | 16 + .../sparql11-test-suite/entailment/rdf02.ttl | 4 + .../sparql11-test-suite/entailment/rdf03.rq | 6 + .../sparql11-test-suite/entailment/rdf03.srx | 21 + .../sparql11-test-suite/entailment/rdf03.ttl | 6 + .../sparql11-test-suite/entailment/rdf04.rq | 5 + .../sparql11-test-suite/entailment/rdf04.srx | 16 + .../sparql11-test-suite/entailment/rdf04.ttl | 13 + .../sparql11-test-suite/entailment/rdfs01.rq | 6 + .../sparql11-test-suite/entailment/rdfs01.srx | 21 + .../sparql11-test-suite/entailment/rdfs01.ttl | 14 + .../sparql11-test-suite/entailment/rdfs02.rq | 6 + .../sparql11-test-suite/entailment/rdfs02.srx | 16 + .../sparql11-test-suite/entailment/rdfs03.rq | 7 + .../sparql11-test-suite/entailment/rdfs03.srx | 16 + .../sparql11-test-suite/entailment/rdfs03.ttl | 7 + .../sparql11-test-suite/entailment/rdfs04.rq | 7 + .../sparql11-test-suite/entailment/rdfs04.srx | 16 + .../sparql11-test-suite/entailment/rdfs04.ttl | 14 + .../sparql11-test-suite/entailment/rdfs05.rq | 6 + .../sparql11-test-suite/entailment/rdfs05.srx | 28 + .../sparql11-test-suite/entailment/rdfs05.ttl | 16 + .../sparql11-test-suite/entailment/rdfs06.rq | 7 + .../sparql11-test-suite/entailment/rdfs06.srx | 16 + .../sparql11-test-suite/entailment/rdfs06.ttl | 14 + .../sparql11-test-suite/entailment/rdfs07.rq | 7 + .../sparql11-test-suite/entailment/rdfs07.srx | 16 + .../sparql11-test-suite/entailment/rdfs07.ttl | 14 + .../sparql11-test-suite/entailment/rdfs08.rq | 7 + .../sparql11-test-suite/entailment/rdfs08.srx | 16 + .../sparql11-test-suite/entailment/rdfs08.ttl | 11 + .../sparql11-test-suite/entailment/rdfs09.rq | 7 + .../sparql11-test-suite/entailment/rdfs09.srx | 16 + .../sparql11-test-suite/entailment/rdfs09.ttl | 18 + .../sparql11-test-suite/entailment/rdfs10.rq | 7 + .../sparql11-test-suite/entailment/rdfs10.srx | 20 + .../sparql11-test-suite/entailment/rdfs10.ttl | 18 + .../sparql11-test-suite/entailment/rdfs11.rq | 8 + .../sparql11-test-suite/entailment/rdfs11.srx | 21 + .../sparql11-test-suite/entailment/rdfs11.ttl | 12 + .../sparql11-test-suite/entailment/rdfs12.rq | 8 + .../sparql11-test-suite/entailment/rdfs12.srx | 16 + .../sparql11-test-suite/entailment/rdfs12.ttl | 8 + .../sparql11-test-suite/entailment/rdfs13.rq | 6 + .../sparql11-test-suite/entailment/rdfs13.srx | 10 + .../sparql11-test-suite/entailment/rdfs13.ttl | 8 + .../sparql11-test-suite/entailment/simple.ttl | 24 + .../sparql11-test-suite/entailment/simple1.rq | 10 + .../entailment/simple1.srx | 21 + .../sparql11-test-suite/entailment/simple2.rq | 17 + .../entailment/simple2.srx | 16 + .../sparql11-test-suite/entailment/simple3.rq | 14 + .../entailment/simple3.srx | 16 + .../sparql11-test-suite/entailment/simple4.rq | 11 + .../entailment/simple4.srx | 31 + .../sparql11-test-suite/entailment/simple5.rq | 15 + .../entailment/simple5.srx | 21 + .../sparql11-test-suite/entailment/simple6.rq | 15 + .../entailment/simple6.srx | 26 + .../sparql11-test-suite/entailment/simple7.rq | 17 + .../entailment/simple7.srx | 21 + .../sparql11-test-suite/entailment/simple8.rq | 16 + .../entailment/simple8.srx | 16 + .../entailment/sparqldl-01.rq | 5 + .../entailment/sparqldl-01.srx | 16 + .../entailment/sparqldl-02.rq | 6 + .../entailment/sparqldl-02.srx | 20 + .../entailment/sparqldl-03.rq | 10 + .../entailment/sparqldl-03.srx | 20 + .../entailment/sparqldl-04.rq | 10 + .../entailment/sparqldl-04.srx | 35 + .../entailment/sparqldl-05.rq | 8 + .../entailment/sparqldl-05.srx | 12 + .../entailment/sparqldl-06.rq | 13 + .../entailment/sparqldl-06.srx | 12 + .../entailment/sparqldl-07.rq | 11 + .../entailment/sparqldl-07.srx | 24 + .../entailment/sparqldl-08.rq | 9 + .../entailment/sparqldl-08.srx | 20 + .../entailment/sparqldl-09.rq | 21 + .../entailment/sparqldl-09.srx | 36 + .../entailment/sparqldl-10.rq | 14 + .../entailment/sparqldl-10.srx | 36 + .../entailment/sparqldl-11.rq | 6 + .../entailment/sparqldl-11.srx | 21 + .../entailment/sparqldl-12.rq | 6 + .../entailment/sparqldl-12.srx | 21 + .../entailment/sparqldl-13.rq | 13 + .../entailment/sparqldl-13.srx | 57 + .../sparql11-test-suite/exists/exists01.rq | 6 + .../sparql11-test-suite/exists/exists01.srx | 25 + .../sparql11-test-suite/exists/exists01.ttl | 4 + .../sparql11-test-suite/exists/exists02.rq | 6 + .../sparql11-test-suite/exists/exists02.srx | 17 + .../sparql11-test-suite/exists/exists02.ttl | 4 + .../sparql11-test-suite/exists/exists03.rq | 9 + .../sparql11-test-suite/exists/exists03.srx | 13 + .../sparql11-test-suite/exists/exists04.rq | 6 + .../sparql11-test-suite/exists/exists04.srx | 13 + .../sparql11-test-suite/exists/exists05.rq | 6 + .../sparql11-test-suite/exists/exists05.srx | 9 + .../sparql11-test-suite/exists/manifest.ttl | 82 + .../sparql11-test-suite/functions.ttl | 69 + .../sparql11-test-suite/functions/abs01.rq | 5 + .../sparql11-test-suite/functions/abs01.srx | 17 + .../sparql11-test-suite/functions/bnode01.rq | 10 + .../sparql11-test-suite/functions/bnode01.srx | 36 + .../sparql11-test-suite/functions/bnode02.rq | 4 + .../sparql11-test-suite/functions/bnode02.srx | 14 + .../sparql11-test-suite/functions/ceil01.rq | 5 + .../sparql11-test-suite/functions/ceil01.srx | 35 + .../functions/coalesce01.rq | 13 + .../functions/coalesce01.srx | 32 + .../sparql11-test-suite/functions/concat01.rq | 5 + .../functions/concat01.srx | 11 + .../sparql11-test-suite/functions/concat02.rq | 5 + .../functions/concat02.srx | 57 + .../functions/contains01.rq | 6 + .../functions/contains01.srx | 17 + .../functions/data-builtin-3.ttl | 18 + .../functions/data-coalesce.ttl | 8 + .../functions/data-empty.nt | 0 .../sparql11-test-suite/functions/data.ttl | 24 + .../sparql11-test-suite/functions/data2.ttl | 13 + .../sparql11-test-suite/functions/data3.ttl | 12 + .../sparql11-test-suite/functions/data4.ttl | 6 + .../sparql11-test-suite/functions/day-01.rq | 4 + .../sparql11-test-suite/functions/day-01.srx | 25 + .../sparql11-test-suite/functions/encode01.rq | 5 + .../functions/encode01.srx | 45 + .../sparql11-test-suite/functions/ends01.rq | 6 + .../sparql11-test-suite/functions/ends01.srx | 13 + .../sparql11-test-suite/functions/floor01.rq | 5 + .../sparql11-test-suite/functions/floor01.srx | 35 + .../functions/hash-unicode.ttl | 5 + .../sparql11-test-suite/functions/hours-01.rq | 4 + .../functions/hours-01.srx | 25 + .../sparql11-test-suite/functions/if01.rq | 6 + .../sparql11-test-suite/functions/if01.srx | 65 + .../sparql11-test-suite/functions/if02.rq | 1 + .../sparql11-test-suite/functions/if02.srx | 11 + .../sparql11-test-suite/functions/in01.rq | 3 + .../sparql11-test-suite/functions/in01.srx | 5 + .../sparql11-test-suite/functions/in02.rq | 3 + .../sparql11-test-suite/functions/in02.srx | 5 + .../sparql11-test-suite/functions/iri01.rq | 3 + .../sparql11-test-suite/functions/iri01.srx | 14 + .../functions/isnumeric01.rq | 5 + .../functions/isnumeric01.srx | 29 + .../sparql11-test-suite/functions/lcase01.rq | 4 + .../sparql11-test-suite/functions/lcase01.srx | 37 + .../sparql11-test-suite/functions/length01.rq | 4 + .../functions/length01.srx | 37 + .../functions/manifest.ttl | 793 + .../sparql11-test-suite/functions/md5-01.rq | 4 + .../sparql11-test-suite/functions/md5-01.srx | 11 + .../sparql11-test-suite/functions/md5-02.rq | 4 + .../sparql11-test-suite/functions/md5-02.srx | 11 + .../functions/minutes-01.rq | 4 + .../functions/minutes-01.srx | 25 + .../sparql11-test-suite/functions/month-01.rq | 4 + .../functions/month-01.srx | 25 + .../sparql11-test-suite/functions/notin01.rq | 3 + .../sparql11-test-suite/functions/notin01.srx | 5 + .../sparql11-test-suite/functions/notin02.rq | 3 + .../sparql11-test-suite/functions/notin02.srx | 5 + .../sparql11-test-suite/functions/now01.rq | 5 + .../sparql11-test-suite/functions/now01.srx | 5 + .../sparql11-test-suite/functions/plus-1.rq | 6 + .../sparql11-test-suite/functions/plus-1.srx | 80 + .../sparql11-test-suite/functions/plus-2.rq | 7 + .../sparql11-test-suite/functions/plus-2.srx | 74 + .../sparql11-test-suite/functions/rand01.rq | 5 + .../sparql11-test-suite/functions/rand01.srx | 5 + .../functions/replace01.rq | 5 + .../functions/replace01.srx | 44 + .../functions/replace02.rq | 5 + .../functions/replace02.srx | 11 + .../functions/replace03.rq | 5 + .../functions/replace03.srx | 11 + .../sparql11-test-suite/functions/round01.rq | 5 + .../sparql11-test-suite/functions/round01.srx | 35 + .../functions/seconds-01.rq | 4 + .../functions/seconds-01.srx | 25 + .../sparql11-test-suite/functions/sha1-01.rq | 4 + .../sparql11-test-suite/functions/sha1-01.srx | 11 + .../sparql11-test-suite/functions/sha1-02.rq | 4 + .../sparql11-test-suite/functions/sha1-02.srx | 11 + .../functions/sha256-01.rq | 4 + .../functions/sha256-01.srx | 11 + .../functions/sha256-02.rq | 4 + .../functions/sha256-02.srx | 11 + .../functions/sha512-01.rq | 4 + .../functions/sha512-01.srx | 11 + .../functions/sha512-02.rq | 4 + .../functions/sha512-02.srx | 11 + .../sparql11-test-suite/functions/starts01.rq | 6 + .../functions/starts01.srx | 17 + .../functions/strafter01.rq | 5 + .../functions/strafter01.srx | 36 + .../functions/strafter01a.srx | 36 + .../functions/strafter02.rq | 15 + .../functions/strafter02.srx | 44 + .../functions/strbefore01.rq | 5 + .../functions/strbefore01.srx | 36 + .../functions/strbefore01a.srx | 36 + .../functions/strbefore02.rq | 15 + .../functions/strbefore02.srx | 44 + .../sparql11-test-suite/functions/strdt01.rq | 6 + .../sparql11-test-suite/functions/strdt01.srx | 12 + .../sparql11-test-suite/functions/strdt02.rq | 6 + .../sparql11-test-suite/functions/strdt02.srx | 13 + .../sparql11-test-suite/functions/strdt03.rq | 5 + .../sparql11-test-suite/functions/strdt03.srx | 39 + .../functions/strlang01.rq | 5 + .../functions/strlang01.srx | 12 + .../functions/strlang02.rq | 5 + .../functions/strlang02.srx | 13 + .../functions/strlang03.rq | 4 + .../functions/strlang03.srx | 39 + .../functions/struuid01.rq | 7 + .../functions/struuid01.srx | 11 + .../functions/substring01.rq | 4 + .../functions/substring01.srx | 46 + .../functions/substring02.rq | 4 + .../functions/substring02.srx | 45 + .../functions/timezone-01.rq | 4 + .../functions/timezone-01.srx | 24 + .../sparql11-test-suite/functions/tz-01.rq | 4 + .../sparql11-test-suite/functions/tz-01.srx | 25 + .../sparql11-test-suite/functions/ucase01.rq | 4 + .../sparql11-test-suite/functions/ucase01.srx | 37 + .../sparql11-test-suite/functions/uuid01.rq | 7 + .../sparql11-test-suite/functions/uuid01.srx | 11 + .../sparql11-test-suite/functions/year-01.rq | 4 + .../sparql11-test-suite/functions/year-01.srx | 25 + .../grouping/group-data-1.ttl | 5 + .../grouping/group-data-2.ttl | 6 + .../sparql11-test-suite/grouping/group01.rq | 7 + .../sparql11-test-suite/grouping/group01.srx | 18 + .../sparql11-test-suite/grouping/group02.rq | 7 + .../sparql11-test-suite/grouping/group02.srx | 18 + .../sparql11-test-suite/grouping/group03.rq | 8 + .../sparql11-test-suite/grouping/group03.srx | 22 + .../sparql11-test-suite/grouping/group04.rq | 9 + .../sparql11-test-suite/grouping/group04.srx | 25 + .../sparql11-test-suite/grouping/group05.rq | 8 + .../sparql11-test-suite/grouping/group05.srx | 27 + .../sparql11-test-suite/grouping/group06.rq | 7 + .../sparql11-test-suite/grouping/group07.rq | 17 + .../sparql11-test-suite/grouping/manifest.ttl | 89 + .../http-rdf-update/index.html | 469 + .../http-rdf-update/tests.html | 469 + .../http-rdf-update/tests.txt | 333 + .../sparql11-test-suite/json-res/data.ttl | 9 + .../sparql11-test-suite/json-res/jsonres01.rq | 3 + .../json-res/jsonres01.srj | 39 + .../sparql11-test-suite/json-res/jsonres02.rq | 3 + .../json-res/jsonres02.srj | 41 + .../sparql11-test-suite/json-res/jsonres03.rq | 3 + .../json-res/jsonres03.srj | 4 + .../sparql11-test-suite/json-res/jsonres04.rq | 3 + .../json-res/jsonres04.srj | 4 + .../sparql11-test-suite/json-res/manifest.ttl | 60 + .../sparql11-test-suite/manifest-all.ttl | 106 + .../sparql11-test-suite/move/manifest.ttl | 105 + .../sparql11-test-suite/move/move-01.ru | 2 + .../sparql11-test-suite/move/move-01.ttl | 6 + .../sparql11-test-suite/move/move-02.ttl | 6 + .../sparql11-test-suite/move/move-03.ru | 2 + .../sparql11-test-suite/move/move-06.ru | 2 + .../sparql11-test-suite/move/move-07.ru | 2 + .../sparql11-test-suite/move/move-default.ttl | 6 + .../sparql11-test-suite/negation/exists-01.rq | 11 + .../negation/exists-01.srx | 18 + .../sparql11-test-suite/negation/exists-02.rq | 11 + .../negation/exists-02.srx | 8 + .../negation/full-minuend.rq | 11 + .../negation/full-minuend.srx | 32 + .../negation/full-minuend.ttl | 27 + .../sparql11-test-suite/negation/manifest.ttl | 132 + .../negation/part-minuend.rq | 13 + .../negation/part-minuend.srx | 23 + .../negation/part-minuend.ttl | 26 + .../negation/set-data.save | 25 + .../sparql11-test-suite/negation/set-data.ttl | 25 + .../negation/set-equals-1.rq | 28 + .../negation/set-equals-1.save | 28 + .../negation/set-equals-1.srx | 25 + .../sparql11-test-suite/negation/subset-01.rq | 22 + .../negation/subset-01.srx | 97 + .../sparql11-test-suite/negation/subset-02.rq | 29 + .../negation/subset-02.srx | 97 + .../sparql11-test-suite/negation/subset-03.rq | 37 + .../negation/subset-03.srx | 65 + .../negation/subsetByExcl.ttl | 5 + .../negation/subsetByExcl01.rq | 5 + .../negation/subsetByExcl01.srx | 18 + .../negation/subsetByExcl02.rq | 7 + .../negation/subsetByExcl02.srx | 13 + .../negation/temporalProximity01.rq | 15 + .../negation/temporalProximity01.srx | 18 + .../negation/temporalProximity01.ttl | 14 + .../project-expression/manifest.ttl | 91 + .../project-expression/projexp01.rq | 7 + .../project-expression/projexp01.srx | 22 + .../project-expression/projexp01.ttl | 10 + .../project-expression/projexp02.rq | 7 + .../project-expression/projexp02.srx | 21 + .../project-expression/projexp02.ttl | 10 + .../project-expression/projexp03.rq | 10 + .../project-expression/projexp03.srx | 18 + .../project-expression/projexp03.ttl | 9 + .../project-expression/projexp04.rq | 9 + .../project-expression/projexp04.srx | 19 + .../project-expression/projexp04.ttl | 9 + .../project-expression/projexp05.rq | 6 + .../project-expression/projexp05.srx | 18 + .../project-expression/projexp05.ttl | 9 + .../project-expression/projexp06.rq | 6 + .../project-expression/projexp06.srx | 13 + .../project-expression/projexp06.ttl | 8 + .../project-expression/projexp07.rq | 7 + .../project-expression/projexp07.srx | 16 + .../project-expression/projexp07.ttl | 9 + .../property-path/clique3.ttl | 5 + .../property-path/data-diamond-loop.ttl | 7 + .../property-path/data-diamond-tail.ttl | 8 + .../property-path/data-diamond.ttl | 6 + .../property-path/diamond-1.srx | 18 + .../property-path/diamond-2.srx | 23 + .../property-path/diamond-loop-1.srx | 23 + .../property-path/diamond-loop-2.srx | 23 + .../property-path/diamond-loop-3.srx | 43 + .../property-path/diamond-loop-4.srx | 48 + .../property-path/diamond-loop-5.srx | 28 + .../property-path/diamond-loop-5a.srx | 23 + .../property-path/diamond-loop-6.srx | 33 + .../property-path/diamond-tail-1.srx | 18 + .../property-path/diamond-tail-2.srx | 28 + .../property-path/empty.ttl | 0 .../property-path/manifest.ttl | 413 + .../property-path/ng-01.ttl | 3 + .../property-path/ng-02.ttl | 3 + .../property-path/ng-03.ttl | 3 + .../property-path/path-2-1.rq | 5 + .../property-path/path-2-2.rq | 5 + .../property-path/path-2-3.rq | 5 + .../property-path/path-3-1.rq | 5 + .../property-path/path-3-2.rq | 5 + .../property-path/path-3-3.rq | 5 + .../property-path/path-3-4.rq | 5 + .../property-path/path-ng-01.rq | 6 + .../property-path/path-ng-01.srx | 16 + .../property-path/path-ng-02.rq | 7 + .../property-path/path-p1.rq | 5 + .../property-path/path-p1.srx | 16 + .../property-path/path-p1.ttl | 9 + .../property-path/path-p2.rq | 5 + .../property-path/path-p2.srx | 13 + .../property-path/path-p3.rq | 5 + .../property-path/path-p3.srx | 16 + .../property-path/path-p3.ttl | 10 + .../property-path/path-p4.rq | 5 + .../property-path/path-p4.srx | 16 + .../sparql11-test-suite/property-path/pp01.rq | 6 + .../property-path/pp01.srx | 10 + .../property-path/pp01.ttl | 10 + .../sparql11-test-suite/property-path/pp02.rq | 6 + .../property-path/pp02.srx | 18 + .../sparql11-test-suite/property-path/pp03.rq | 6 + .../property-path/pp03.srx | 10 + .../property-path/pp03.ttl | 12 + .../sparql11-test-suite/property-path/pp04.rq | 6 + .../property-path/pp04.srx | 10 + .../sparql11-test-suite/property-path/pp05.rq | 7 + .../property-path/pp05.srx | 57 + .../property-path/pp05.ttl | 13 + .../sparql11-test-suite/property-path/pp06.rq | 6 + .../property-path/pp06.srx | 7 + .../property-path/pp061.ttl | 9 + .../property-path/pp062.ttl | 9 + .../property-path/pp07.srx | 11 + .../property-path/pp07.ttl | 10 + .../sparql11-test-suite/property-path/pp08.rq | 6 + .../property-path/pp08.srx | 5 + .../property-path/pp08.ttl | 9 + .../sparql11-test-suite/property-path/pp09.rq | 6 + .../property-path/pp09.srx | 11 + .../property-path/pp09.ttl | 10 + .../sparql11-test-suite/property-path/pp10.rq | 6 + .../property-path/pp10.srx | 10 + .../property-path/pp10.ttl | 11 + .../sparql11-test-suite/property-path/pp11.rq | 6 + .../property-path/pp11.srx | 13 + .../property-path/pp11.ttl | 11 + .../sparql11-test-suite/property-path/pp12.rq | 6 + .../property-path/pp12.srx | 11 + .../sparql11-test-suite/property-path/pp13.rq | 5 + .../property-path/pp13.srx | 25 + .../property-path/pp13.ttl | 3 + .../sparql11-test-suite/property-path/pp14.rq | 8 + .../property-path/pp14.srx | 57 + .../property-path/pp14.ttl | 5 + .../sparql11-test-suite/property-path/pp15.rq | 6 + .../property-path/pp15.srx | 21 + .../property-path/pp16.srx | 129 + .../property-path/pp16.ttl | 12 + .../sparql11-test-suite/property-path/pp36.rq | 2 + .../property-path/pp36.srx | 7 + .../sparql11-test-suite/property-path/pp37.rq | 3 + .../property-path/pp37.srx | 23 + .../property-path/pp37.ttl | 4 + .../sparql11-test-suite/protocol/manifest.ttl | 216 + .../service-description/manifest.ttl | 34 + .../sparql11-test-suite/service/README | 1 + .../sparql11-test-suite/service/data01.ttl | 5 + .../service/data01endpoint.ttl | 5 + .../service/data02endpoint1.ttl | 5 + .../service/data02endpoint2.ttl | 4 + .../service/data03endpoint1.ttl | 5 + .../service/data03endpoint2.ttl | 4 + .../sparql11-test-suite/service/data04.ttl | 9 + .../service/data04endpoint.ttl | 7 + .../sparql11-test-suite/service/data05.ttl | 10 + .../service/data05endpoint1.ttl | 7 + .../service/data05endpoint2.ttl | 5 + .../service/data06endpoint1.ttl | 5 + .../sparql11-test-suite/service/data07.ttl | 5 + .../service/dataendpoint01.ttl | 7 + .../sparql11-test-suite/service/manifest.ttl | 149 + .../sparql11-test-suite/service/service01.rq | 11 + .../sparql11-test-suite/service/service01.srx | 21 + .../sparql11-test-suite/service/service02.rq | 13 + .../sparql11-test-suite/service/service02.srx | 20 + .../sparql11-test-suite/service/service03.rq | 14 + .../sparql11-test-suite/service/service03.srx | 20 + .../sparql11-test-suite/service/service04.rq | 11 + .../sparql11-test-suite/service/service04.srx | 31 + .../sparql11-test-suite/service/service04a.rq | 11 + .../sparql11-test-suite/service/service05.rq | 20 + .../sparql11-test-suite/service/service05.srx | 22 + .../sparql11-test-suite/service/service06.rq | 14 + .../sparql11-test-suite/service/service06.srx | 19 + .../sparql11-test-suite/service/service07.rq | 10 + .../sparql11-test-suite/service/service07.srx | 21 + .../sparql11-test-suite/subquery/manifest.ttl | 171 + .../sparql11-test-suite/subquery/sq01.rdf | 18 + .../sparql11-test-suite/subquery/sq01.rq | 8 + .../sparql11-test-suite/subquery/sq01.srx | 16 + .../sparql11-test-suite/subquery/sq02.rq | 8 + .../sparql11-test-suite/subquery/sq02.srx | 12 + .../sparql11-test-suite/subquery/sq03.rq | 8 + .../sparql11-test-suite/subquery/sq03.srx | 14 + .../sparql11-test-suite/subquery/sq04.rdf | 15 + .../sparql11-test-suite/subquery/sq04.rq | 6 + .../sparql11-test-suite/subquery/sq04.srx | 13 + .../sparql11-test-suite/subquery/sq05.rdf | 18 + .../sparql11-test-suite/subquery/sq05.rq | 9 + .../sparql11-test-suite/subquery/sq05.srx | 14 + .../sparql11-test-suite/subquery/sq06.rq | 7 + .../sparql11-test-suite/subquery/sq06.srx | 13 + .../sparql11-test-suite/subquery/sq07.rq | 7 + .../sparql11-test-suite/subquery/sq07.srx | 13 + .../sparql11-test-suite/subquery/sq08.rdf | 18 + .../sparql11-test-suite/subquery/sq08.rq | 7 + .../sparql11-test-suite/subquery/sq08.srx | 12 + .../sparql11-test-suite/subquery/sq09.rdf | 18 + .../sparql11-test-suite/subquery/sq09.rq | 11 + .../sparql11-test-suite/subquery/sq09.srx | 12 + .../sparql11-test-suite/subquery/sq10.rdf | 15 + .../sparql11-test-suite/subquery/sq10.rq | 7 + .../sparql11-test-suite/subquery/sq10.srx | 8 + .../sparql11-test-suite/subquery/sq11.rq | 16 + .../sparql11-test-suite/subquery/sq11.srx | 38 + .../sparql11-test-suite/subquery/sq11.ttl | 21 + .../sparql11-test-suite/subquery/sq12.rq | 8 + .../sparql11-test-suite/subquery/sq12.ttl | 3 + .../sparql11-test-suite/subquery/sq12_out.ttl | 4 + .../sparql11-test-suite/subquery/sq13.rq | 15 + .../sparql11-test-suite/subquery/sq13.srx | 137 + .../sparql11-test-suite/subquery/sq13.ttl | 21 + .../sparql11-test-suite/subquery/sq14-out.ttl | 19 + .../sparql11-test-suite/subquery/sq14.rq | 17 + .../sparql11-test-suite/subquery/sq14.ttl | 24 + .../syntax-fed/manifest.ttl | 36 + .../syntax-fed/syntax-service-01.rq | 1 + .../syntax-fed/syntax-service-02.rq | 1 + .../syntax-fed/syntax-service-03.rq | 1 + .../syntax-query/manifest.ttl | 666 + .../syntax-query/qname-escape-01.rq | 4 + .../syntax-query/qname-escape-02.rq | 4 + .../syntax-query/qname-escape-03.rq | 4 + .../syntax-query/syn-bad-01.rq | 2 + .../syntax-query/syn-bad-02.rq | 2 + .../syntax-query/syn-bad-03.rq | 1 + .../syntax-query/syn-bad-04.rq | 1 + .../syntax-query/syn-bad-05.rq | 1 + .../syntax-query/syn-bad-06.rq | 1 + .../syntax-query/syn-bad-07.rq | 1 + .../syntax-query/syn-bad-08.rq | 1 + .../syntax-query/syn-bad-pname-01.rq | 4 + .../syntax-query/syn-bad-pname-02.rq | 4 + .../syntax-query/syn-bad-pname-03.rq | 4 + .../syntax-query/syn-bad-pname-04.rq | 4 + .../syntax-query/syn-bad-pname-05.rq | 3 + .../syntax-query/syn-bad-pname-06.rq | 5 + .../syntax-query/syn-bad-pname-07.rq | 3 + .../syntax-query/syn-bad-pname-08.rq | 5 + .../syntax-query/syn-bad-pname-09.rq | 5 + .../syntax-query/syn-bad-pname-10.rq | 5 + .../syntax-query/syn-bad-pname-11.rq | 5 + .../syntax-query/syn-bad-pname-12.rq | 5 + .../syntax-query/syn-bad-pname-13.rq | 5 + .../syntax-query/syn-pname-01.rq | 2 + .../syntax-query/syn-pname-02.rq | 2 + .../syntax-query/syn-pname-03.rq | 5 + .../syntax-query/syn-pname-04.rq | 5 + .../syntax-query/syn-pname-05.rq | 5 + .../syntax-query/syn-pname-06.rq | 5 + .../syntax-query/syn-pname-07.rq | 5 + .../syntax-query/syn-pname-08.rq | 5 + .../syntax-query/syn-pname-09.rq | 8 + .../syntax-query/syn-pp-in-collection.rq | 4 + .../syntax-query/syntax-BINDscope1.rq | 7 + .../syntax-query/syntax-BINDscope2.rq | 7 + .../syntax-query/syntax-BINDscope3.rq | 9 + .../syntax-query/syntax-BINDscope4.rq | 7 + .../syntax-query/syntax-BINDscope5.rq | 7 + .../syntax-query/syntax-BINDscope6.rq | 7 + .../syntax-query/syntax-BINDscope7.rq | 9 + .../syntax-query/syntax-BINDscope8.rq | 10 + .../syntax-query/syntax-SELECTscope1.rq | 8 + .../syntax-query/syntax-SELECTscope2.rq | 4 + .../syntax-query/syntax-SELECTscope3.rq | 7 + .../syntax-query/syntax-aggregate-01.rq | 1 + .../syntax-query/syntax-aggregate-02.rq | 1 + .../syntax-query/syntax-aggregate-03.rq | 1 + .../syntax-query/syntax-aggregate-04.rq | 1 + .../syntax-query/syntax-aggregate-05.rq | 1 + .../syntax-query/syntax-aggregate-06.rq | 1 + .../syntax-query/syntax-aggregate-07.rq | 1 + .../syntax-query/syntax-aggregate-08.rq | 1 + .../syntax-query/syntax-aggregate-09.rq | 1 + .../syntax-query/syntax-aggregate-10.rq | 1 + .../syntax-query/syntax-aggregate-11.rq | 1 + .../syntax-query/syntax-aggregate-12.rq | 1 + .../syntax-query/syntax-aggregate-13.rq | 1 + .../syntax-query/syntax-aggregate-14.rq | 1 + .../syntax-query/syntax-aggregate-15.rq | 1 + .../syntax-query/syntax-bind-02.rq | 1 + .../syntax-query/syntax-bindings-01.rq | 1 + .../syntax-query/syntax-bindings-02.rq | 1 + .../syntax-query/syntax-bindings-02a.rq | 1 + .../syntax-query/syntax-bindings-03.rq | 1 + .../syntax-query/syntax-bindings-03a.rq | 1 + .../syntax-query/syntax-bindings-04.rq | 1 + .../syntax-query/syntax-bindings-05.rq | 1 + .../syntax-query/syntax-bindings-05a.rq | 1 + .../syntax-query/syntax-bindings-09.rq | 1 + .../syntax-query/syntax-construct-where-01.rq | 1 + .../syntax-query/syntax-construct-where-02.rq | 3 + .../syntax-query/syntax-exists-01.rq | 1 + .../syntax-query/syntax-exists-02.rq | 1 + .../syntax-query/syntax-exists-03.rq | 1 + .../syntax-query/syntax-minus-01.rq | 1 + .../syntax-query/syntax-not-exists-01.rq | 1 + .../syntax-query/syntax-not-exists-02.rq | 1 + .../syntax-query/syntax-not-exists-03.rq | 1 + .../syntax-query/syntax-oneof-01.rq | 1 + .../syntax-query/syntax-oneof-02.rq | 1 + .../syntax-query/syntax-oneof-03.rq | 1 + .../syntax-query/syntax-propertyPaths-01.rq | 7 + .../syntax-query/syntax-select-expr-01.rq | 1 + .../syntax-query/syntax-select-expr-02.rq | 1 + .../syntax-query/syntax-select-expr-03.rq | 1 + .../syntax-query/syntax-select-expr-04.rq | 2 + .../syntax-query/syntax-select-expr-05.rq | 2 + .../syntax-query/syntax-subquery-01.rq | 1 + .../syntax-query/syntax-subquery-02.rq | 4 + .../syntax-query/syntax-subquery-03.rq | 1 + .../syntax-update-1/manifest.ttl | 392 + .../syntax-update-1/syntax-update-01.ru | 3 + .../syntax-update-1/syntax-update-02.ru | 7 + .../syntax-update-1/syntax-update-03.ru | 1 + .../syntax-update-1/syntax-update-04.ru | 1 + .../syntax-update-1/syntax-update-05.ru | 1 + .../syntax-update-1/syntax-update-06.ru | 1 + .../syntax-update-1/syntax-update-07.ru | 1 + .../syntax-update-1/syntax-update-08.ru | 1 + .../syntax-update-1/syntax-update-09.ru | 1 + .../syntax-update-1/syntax-update-10.ru | 1 + .../syntax-update-1/syntax-update-11.ru | 1 + .../syntax-update-1/syntax-update-12.ru | 1 + .../syntax-update-1/syntax-update-13.ru | 1 + .../syntax-update-1/syntax-update-14.ru | 1 + .../syntax-update-1/syntax-update-15.ru | 1 + .../syntax-update-1/syntax-update-16.ru | 1 + .../syntax-update-1/syntax-update-17.ru | 1 + .../syntax-update-1/syntax-update-18.ru | 1 + .../syntax-update-1/syntax-update-19.ru | 1 + .../syntax-update-1/syntax-update-20.ru | 1 + .../syntax-update-1/syntax-update-21.ru | 1 + .../syntax-update-1/syntax-update-22.ru | 1 + .../syntax-update-1/syntax-update-23.ru | 1 + .../syntax-update-1/syntax-update-24.ru | 1 + .../syntax-update-1/syntax-update-25.ru | 6 + .../syntax-update-1/syntax-update-26.ru | 3 + .../syntax-update-1/syntax-update-27.ru | 2 + .../syntax-update-1/syntax-update-28.ru | 2 + .../syntax-update-1/syntax-update-29.ru | 1 + .../syntax-update-1/syntax-update-30.ru | 1 + .../syntax-update-1/syntax-update-31.ru | 6 + .../syntax-update-1/syntax-update-32.ru | 16 + .../syntax-update-1/syntax-update-33.ru | 7 + .../syntax-update-1/syntax-update-34.ru | 7 + .../syntax-update-1/syntax-update-35.ru | 1 + .../syntax-update-1/syntax-update-36.ru | 6 + .../syntax-update-1/syntax-update-37.ru | 2 + .../syntax-update-1/syntax-update-38.ru | 1 + .../syntax-update-1/syntax-update-39.ru | 2 + .../syntax-update-1/syntax-update-40.ru | 2 + .../syntax-update-1/syntax-update-53.ru | 6 + .../syntax-update-1/syntax-update-54.ru | 5 + .../syntax-update-1/syntax-update-bad-01.ru | 2 + .../syntax-update-1/syntax-update-bad-02.ru | 2 + .../syntax-update-1/syntax-update-bad-03.ru | 2 + .../syntax-update-1/syntax-update-bad-04.ru | 2 + .../syntax-update-1/syntax-update-bad-05.ru | 7 + .../syntax-update-1/syntax-update-bad-06.ru | 2 + .../syntax-update-1/syntax-update-bad-07.ru | 3 + .../syntax-update-1/syntax-update-bad-08.ru | 4 + .../syntax-update-1/syntax-update-bad-09.ru | 4 + .../syntax-update-1/syntax-update-bad-10.ru | 2 + .../syntax-update-1/syntax-update-bad-11.ru | 2 + .../syntax-update-1/syntax-update-bad-12.ru | 2 + .../syntax-update-2/large-request-01.ru | 141 + .../syntax-update-2/manifest.ttl | 22 + .../update-silent/add-silent.ru | 1 + .../update-silent/add-to-default-silent.ru | 1 + .../update-silent/clear-default-silent.ru | 1 + .../update-silent/clear-silent.ru | 1 + .../update-silent/copy-silent.ru | 1 + .../update-silent/copy-to-default-silent.ru | 1 + .../update-silent/create-silent.ru | 1 + .../update-silent/drop-default-silent.ru | 1 + .../update-silent/drop-silent.ru | 1 + .../update-silent/load-silent-into.ru | 1 + .../update-silent/load-silent.ru | 1 + .../update-silent/manifest.ttl | 167 + .../update-silent/move-silent.ru | 1 + .../update-silent/move-to-default-silent.ru | 1 + .../sparql11-test-suite/update-silent/spo.ttl | 4 + 3555 files changed, 260912 insertions(+), 1 deletion(-) create mode 100644 corese-unit-test/src/test/java/fr/inria/corese/engine/TestQuery2.java create mode 100644 corese-unit-test/src/test/java/fr/inria/corese/engine/TestRuleEngine.java create mode 100644 corese-unit-test/src/test/java/fr/inria/corese/w3c/RDFStar/Compare.java create mode 100644 corese-unit-test/src/test/java/fr/inria/corese/w3c/RDFStar/RDFStarReport.java create mode 100644 corese-unit-test/src/test/java/fr/inria/corese/w3c/RDFStar/RDFStarTest.java create mode 100644 corese-unit-test/src/test/java/fr/inria/corese/w3c/shacl/DataShapeTest.java create mode 100644 corese-unit-test/src/test/java/fr/inria/corese/w3c/shacl/EarlReport.java create mode 100644 corese-unit-test/src/test/java/fr/inria/corese/w3c/sparql/Dataset.java create mode 100644 corese-unit-test/src/test/java/fr/inria/corese/w3c/sparql/Earl.java create mode 100644 corese-unit-test/src/test/java/fr/inria/corese/w3c/sparql/TestW3C10KGraphNew.java create mode 100644 corese-unit-test/src/test/java/fr/inria/corese/w3c/sparql/TestW3C11KGraphNew.java create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f0.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f1.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f10.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f100.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f101.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f102.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f103.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f104.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f105.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f106.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f107.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f108.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f109.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f11.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f110.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f111.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f112.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f113.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f114.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f115.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f116.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f117.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f118.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f119.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f12.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f120.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f121.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f122.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f123.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f124.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f125.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f126.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f127.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f128.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f129.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f13.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f130.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f131.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f132.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f133.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f134.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f135.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f136.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f137.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f138.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f139.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f14.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f140.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f141.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f142.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f143.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f144.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f145.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f146.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f147.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f148.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f149.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f15.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f150.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f151.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f152.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f153.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f154.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f155.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f156.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f157.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f158.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f159.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f16.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f160.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f161.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f162.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f163.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f164.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f165.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f166.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f167.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f168.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f169.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f17.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f170.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f171.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f172.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f173.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f174.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f175.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f176.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f177.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f178.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f179.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f18.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f180.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f181.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f182.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f183.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f184.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f185.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f186.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f187.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f188.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f189.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f19.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f190.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f191.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f192.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f193.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f194.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f195.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f196.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f197.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f198.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f199.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f2.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f20.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f200.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f201.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f202.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f203.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f204.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f205.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f206.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f207.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f208.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f209.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f21.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f210.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f211.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f212.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f213.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f214.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f215.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f216.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f217.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f218.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f219.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f22.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f220.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f221.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f222.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f223.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f224.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f225.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f226.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f227.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f228.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f229.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f23.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f230.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f231.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f232.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f233.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f234.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f235.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f236.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f237.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f238.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f239.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f24.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f240.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f241.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f242.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f243.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f244.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f245.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f246.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f247.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f248.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f249.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f25.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f250.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f251.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f252.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f253.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f254.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f255.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f256.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f257.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f258.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f259.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f26.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f260.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f261.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f262.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f263.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f264.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f265.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f266.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f267.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f268.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f269.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f27.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f270.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f271.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f272.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f273.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f274.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f275.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f276.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f277.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f278.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f279.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f28.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f280.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f281.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f282.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f283.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f284.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f285.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f286.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f287.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f288.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f289.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f29.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f290.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f291.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f292.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f293.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f294.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f295.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f296.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f297.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f298.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f299.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f3.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f30.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f300.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f301.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f302.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f303.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f304.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f305.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f306.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f307.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f308.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f309.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f31.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f310.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f311.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f312.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f313.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f314.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f315.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f316.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f317.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f318.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f319.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f32.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f320.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f321.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f322.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f323.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f324.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f325.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f326.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f327.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f328.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f329.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f33.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f330.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f331.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f332.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f333.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f334.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f335.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f336.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f337.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f338.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f339.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f34.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f340.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f341.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f342.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f343.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f344.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f345.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f346.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f347.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f348.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f349.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f35.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f350.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f351.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f352.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f353.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f354.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f355.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f356.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f357.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f358.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f359.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f36.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f360.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f361.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f362.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f363.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f364.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f365.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f366.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f367.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f368.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f369.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f37.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f370.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f371.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f372.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f373.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f374.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f375.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f376.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f377.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f378.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f379.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f38.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f380.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f381.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f382.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f383.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f384.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f385.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f386.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f387.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f388.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f389.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f39.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f390.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f391.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f392.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f393.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f394.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f395.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f396.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f397.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f398.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f399.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f4.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f40.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f400.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f401.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f402.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f403.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f404.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f405.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f406.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f407.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f408.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f409.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f41.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f410.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f411.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f412.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f413.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f414.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f415.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f416.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f417.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f418.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f419.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f42.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f420.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f421.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f422.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f423.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f424.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f425.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f426.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f427.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f428.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f429.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f43.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f430.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f431.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f432.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f433.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f434.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f435.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f436.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f437.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f438.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f439.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f44.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f440.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f441.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f442.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f443.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f444.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f445.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f446.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f447.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f448.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f449.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f45.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f450.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f451.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f452.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f453.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f454.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f455.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f456.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f457.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f458.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f459.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f46.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f460.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f461.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f462.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f463.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f464.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f465.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f466.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f467.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f468.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f469.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f47.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f470.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f471.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f472.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f473.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f474.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f475.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f476.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f477.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f478.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f479.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f48.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f480.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f481.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f482.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f483.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f484.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f485.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f486.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f487.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f488.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f489.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f49.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f490.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f491.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f492.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f493.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f494.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f495.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f496.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f497.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f498.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f499.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f5.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f50.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f500.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f501.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f502.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f503.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f504.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f505.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f506.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f507.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f508.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f509.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f51.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f510.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f511.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f512.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f513.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f514.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f515.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f516.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f517.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f518.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f519.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f52.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f520.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f521.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f522.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f523.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f524.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f525.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f526.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f527.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f528.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f529.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f53.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f530.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f531.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f532.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f533.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f534.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f535.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f536.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f537.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f538.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f539.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f54.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f540.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f541.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f542.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f543.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f544.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f545.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f546.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f547.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f548.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f549.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f55.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f550.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f551.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f552.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f553.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f554.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f555.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f556.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f557.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f558.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f559.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f56.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f560.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f561.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f562.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f563.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f564.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f565.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f566.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f567.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f568.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f569.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f57.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f570.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f571.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f572.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f573.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f574.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f575.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f576.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f577.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f578.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f579.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f58.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f580.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f581.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f582.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f583.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f584.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f585.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f586.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f587.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f588.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f589.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f59.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f590.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f591.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f592.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f593.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f594.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f595.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f596.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f597.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f598.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f599.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f6.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f60.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f600.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f601.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f602.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f603.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f604.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f605.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f606.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f607.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f608.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f609.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f61.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f610.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f611.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f612.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f613.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f614.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f615.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f616.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f617.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f618.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f619.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f62.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f620.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f621.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f622.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f623.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f624.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f625.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f626.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f627.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f628.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f629.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f63.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f630.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f631.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f632.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f633.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f634.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f635.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f636.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f637.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f638.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f639.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f64.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f640.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f641.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f642.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f643.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f644.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f645.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f646.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f647.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f648.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f649.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f65.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f650.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f651.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f652.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f653.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f654.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f655.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f656.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f657.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f658.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f659.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f66.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f660.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f661.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f662.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f663.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f664.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f665.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f666.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f667.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f668.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f669.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f67.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f670.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f671.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f672.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f673.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f674.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f675.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f676.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f677.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f678.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f679.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f68.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f680.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f681.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f682.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f683.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f684.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f685.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f686.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f687.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f688.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f689.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f69.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f690.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f691.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f692.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f693.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f694.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f695.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f696.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f697.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f698.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f699.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f7.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f70.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f700.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f701.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f702.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f703.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f704.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f705.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f706.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f707.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f708.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f709.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f71.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f710.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f711.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f712.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f713.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f714.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f715.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f716.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f717.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f718.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f719.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f72.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f720.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f721.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f722.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f723.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f724.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f725.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f726.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f727.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f728.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f729.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f73.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f730.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f731.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f732.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f733.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f734.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f735.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f736.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f737.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f738.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f739.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f74.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f740.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f741.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f742.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f743.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f744.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f745.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f746.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f747.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f748.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f749.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f75.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f750.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f751.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f752.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f753.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f754.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f755.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f756.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f757.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f758.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f759.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f76.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f760.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f761.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f762.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f763.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f764.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f765.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f766.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f767.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f768.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f769.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f77.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f770.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f771.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f772.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f773.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f774.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f775.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f776.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f777.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f778.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f779.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f78.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f780.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f781.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f782.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f783.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f784.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f785.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f786.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f787.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f788.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f789.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f79.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f790.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f791.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f792.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f793.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f794.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f795.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f796.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f797.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f798.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f799.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f8.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f80.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f800.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f801.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f802.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f803.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f804.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f805.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f806.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f807.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f808.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f809.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f81.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f810.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f811.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f812.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f813.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f814.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f815.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f816.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f817.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f818.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f819.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f82.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f820.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f821.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f822.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f823.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f824.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f825.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f826.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f827.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f828.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f829.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f83.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f830.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f831.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f84.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f85.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f86.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f87.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f88.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f89.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f9.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f90.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f91.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f92.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f93.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f94.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f95.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f96.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f97.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f98.rdf create mode 100644 corese-unit-test/src/test/resources/data/comma/data2/f99.rdf create mode 100644 corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/reports/alltests.ttl create mode 100644 corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/reports/corese-shacl-earl.ttl create mode 100644 corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/reports/earl.ttl create mode 100644 corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/reports/earlreport.ui.ttlx create mode 100644 corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/reports/netage-shacl-earl.ttl create mode 100644 corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/reports/topbraid-shacl-earl.ttl create mode 100644 corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/core/complex/manifest.ttl create mode 100644 corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/core/complex/personexample.ttl create mode 100644 corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/core/complex/shacl-shacl-data-shapes.ttl create mode 100644 corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/core/complex/shacl-shacl.ttl create mode 100644 corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/core/manifest.ttl create mode 100644 corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/core/misc/deactivated-001.ttl create mode 100644 corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/core/misc/deactivated-002.ttl create mode 100644 corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/core/misc/manifest.ttl create mode 100644 corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/core/misc/message-001.ttl create mode 100644 corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/core/misc/severity-001.ttl create mode 100644 corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/core/misc/severity-002.ttl create mode 100644 corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/core/node/and-001.ttl create mode 100644 corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/core/node/and-002.ttl create mode 100644 corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/core/node/class-001.ttl create mode 100644 corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/core/node/class-002.ttl create mode 100644 corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/core/node/class-003.ttl create mode 100644 corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/core/node/closed-001.ttl create mode 100644 corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/core/node/closed-002.ttl create mode 100644 corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/core/node/datatype-001.ttl create mode 100644 corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/core/node/datatype-002.ttl create mode 100644 corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/core/node/disjoint-001.ttl create mode 100644 corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/core/node/equals-001.ttl create mode 100644 corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/core/node/hasValue-001.ttl create mode 100644 corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/core/node/in-001.ttl create mode 100644 corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/core/node/languageIn-001.ttl create mode 100644 corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/core/node/manifest.ttl create mode 100644 corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/core/node/maxExclusive-001.ttl create mode 100644 corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/core/node/maxInclusive-001.ttl create mode 100644 corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/core/node/maxLength-001.ttl create mode 100644 corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/core/node/minExclusive-001.ttl create mode 100644 corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/core/node/minInclusive-001.ttl create mode 100644 corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/core/node/minInclusive-002.ttl create mode 100644 corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/core/node/minInclusive-003.ttl create mode 100644 corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/core/node/minLength-001.ttl create mode 100644 corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/core/node/node-001.ttl create mode 100644 corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/core/node/nodeKind-001.ttl create mode 100644 corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/core/node/not-001.ttl create mode 100644 corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/core/node/not-002.ttl create mode 100644 corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/core/node/or-001.ttl create mode 100644 corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/core/node/pattern-001.ttl create mode 100644 corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/core/node/pattern-002.ttl create mode 100644 corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/core/node/qualified-001-data.ttl create mode 100644 corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/core/node/qualified-001-shapes.ttl create mode 100644 corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/core/node/qualified-001.ttl create mode 100644 corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/core/node/xone-001.ttl create mode 100644 corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/core/node/xone-duplicate-data.ttl create mode 100644 corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/core/node/xone-duplicate-shapes.ttl create mode 100644 corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/core/node/xone-duplicate.ttl create mode 100644 corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/core/path/manifest.ttl create mode 100644 corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/core/path/path-alternative-001.ttl create mode 100644 corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/core/path/path-complex-001.ttl create mode 100644 corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/core/path/path-complex-002-data.ttl create mode 100644 corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/core/path/path-complex-002-shapes.ttl create mode 100644 corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/core/path/path-complex-002.ttl create mode 100644 corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/core/path/path-inverse-001.ttl create mode 100644 corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/core/path/path-oneOrMore-001.ttl create mode 100644 corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/core/path/path-sequence-001.ttl create mode 100644 corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/core/path/path-sequence-002.ttl create mode 100644 corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/core/path/path-sequence-duplicate-001.ttl create mode 100644 corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/core/path/path-strange-001.ttl create mode 100644 corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/core/path/path-strange-002.ttl create mode 100644 corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/core/path/path-unused-001-data.ttl create mode 100644 corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/core/path/path-unused-001-shapes.ttl create mode 100644 corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/core/path/path-unused-001.ttl create mode 100644 corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/core/path/path-zeroOrMore-001.ttl create mode 100644 corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/core/path/path-zeroOrOne-001.ttl create mode 100644 corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/core/property/and-001.ttl create mode 100644 corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/core/property/class-001.ttl create mode 100644 corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/core/property/datatype-001.ttl create mode 100644 corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/core/property/datatype-002.ttl create mode 100644 corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/core/property/datatype-003.ttl create mode 100644 corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/core/property/datatype-ill-formed-data.ttl create mode 100644 corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/core/property/datatype-ill-formed-shapes.ttl create mode 100644 corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/core/property/datatype-ill-formed.ttl create mode 100644 corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/core/property/disjoint-001.ttl create mode 100644 corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/core/property/equals-001.ttl create mode 100644 corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/core/property/hasValue-001.ttl create mode 100644 corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/core/property/in-001.ttl create mode 100644 corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/core/property/languageIn-001.ttl create mode 100644 corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/core/property/lessThan-001.ttl create mode 100644 corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/core/property/lessThan-002.ttl create mode 100644 corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/core/property/lessThanOrEquals-001.ttl create mode 100644 corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/core/property/manifest.ttl create mode 100644 corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/core/property/maxCount-001.ttl create mode 100644 corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/core/property/maxCount-002.ttl create mode 100644 corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/core/property/maxExclusive-001.ttl create mode 100644 corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/core/property/maxInclusive-001.ttl create mode 100644 corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/core/property/maxLength-001.ttl create mode 100644 corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/core/property/minCount-001.ttl create mode 100644 corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/core/property/minCount-002.ttl create mode 100644 corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/core/property/minExclusive-001.ttl create mode 100644 corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/core/property/minExclusive-002.ttl create mode 100644 corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/core/property/minLength-001.ttl create mode 100644 corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/core/property/node-001.ttl create mode 100644 corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/core/property/node-002.ttl create mode 100644 corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/core/property/nodeKind-001.ttl create mode 100644 corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/core/property/not-001.ttl create mode 100644 corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/core/property/or-001.ttl create mode 100644 corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/core/property/or-datatypes-001.ttl create mode 100644 corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/core/property/pattern-001.ttl create mode 100644 corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/core/property/pattern-002.ttl create mode 100644 corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/core/property/property-001.ttl create mode 100644 corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/core/property/qualifiedMinCountDisjoint-001.ttl create mode 100644 corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/core/property/qualifiedValueShape-001.ttl create mode 100644 corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/core/property/qualifiedValueShapesDisjoint-001.ttl create mode 100644 corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/core/property/uniqueLang-001.ttl create mode 100644 corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/core/property/uniqueLang-002-data.ttl create mode 100644 corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/core/property/uniqueLang-002-shapes.ttl create mode 100644 corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/core/property/uniqueLang-002.ttl create mode 100644 corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/core/targets/manifest.ttl create mode 100644 corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/core/targets/multipleTargets-001.ttl create mode 100644 corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/core/targets/targetClass-001.ttl create mode 100644 corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/core/targets/targetClassImplicit-001.ttl create mode 100644 corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/core/targets/targetNode-001.ttl create mode 100644 corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/core/targets/targetObjectsOf-001.ttl create mode 100644 corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/core/targets/targetSubjectsOf-001.ttl create mode 100644 corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/core/targets/targetSubjectsOf-002.ttl create mode 100644 corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/core/validation-reports/manifest.ttl create mode 100644 corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/core/validation-reports/shared-data.ttl create mode 100644 corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/core/validation-reports/shared-shapes.ttl create mode 100644 corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/core/validation-reports/shared.ttl create mode 100644 corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/manifest.ttl create mode 100644 corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/sparql/component/manifest.ttl create mode 100644 corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/sparql/component/nodeValidator-ask-001.ttl create mode 100644 corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/sparql/component/optional-001.ttl create mode 100644 corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/sparql/component/propertyValidator-ask-001.ttl create mode 100644 corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/sparql/component/propertyValidator-select-001.ttl create mode 100644 corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/sparql/component/validator-001.ttl create mode 100644 corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/sparql/manifest.ttl create mode 100644 corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/sparql/node/manifest.ttl create mode 100644 corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/sparql/node/prefixes-001.ttl create mode 100644 corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/sparql/node/sparql-001.ttl create mode 100644 corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/sparql/node/sparql-002.ttl create mode 100644 corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/sparql/node/sparql-003.ttl create mode 100644 corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/sparql/pre-binding/manifest.ttl create mode 100644 corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/sparql/pre-binding/pre-binding-001.ttl create mode 100644 corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/sparql/pre-binding/pre-binding-002.ttl create mode 100644 corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/sparql/pre-binding/pre-binding-003.ttl create mode 100644 corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/sparql/pre-binding/pre-binding-004.ttl create mode 100644 corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/sparql/pre-binding/pre-binding-005.ttl create mode 100644 corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/sparql/pre-binding/pre-binding-006.ttl create mode 100644 corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/sparql/pre-binding/shapesGraph-001.ttl create mode 100644 corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/sparql/pre-binding/unsupported-sparql-001.ttl create mode 100644 corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/sparql/pre-binding/unsupported-sparql-002.ttl create mode 100644 corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/sparql/pre-binding/unsupported-sparql-003.ttl create mode 100644 corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/sparql/pre-binding/unsupported-sparql-004.ttl create mode 100644 corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/sparql/pre-binding/unsupported-sparql-005.ttl create mode 100644 corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/sparql/pre-binding/unsupported-sparql-006.ttl create mode 100644 corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/sparql/property/manifest.ttl create mode 100644 corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/sparql/property/sparql-001.ttl create mode 100644 corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/sparql/property/sparql-002.ttl create mode 100644 corese-unit-test/src/test/resources/data/earl/corese.txt create mode 100644 corese-unit-test/src/test/resources/data/earl/earl-corese.ttl create mode 100644 corese-unit-test/src/test/resources/data/earl/earl.ttl create mode 100644 corese-unit-test/src/test/resources/data/earl/manifest-az.ttl create mode 100644 corese-unit-test/src/test/resources/data/earl/pattern.txt create mode 100644 corese-unit-test/src/test/resources/data/earl/prefix.txt create mode 100644 corese-unit-test/src/test/resources/data/engine/data/test.rdf create mode 100644 corese-unit-test/src/test/resources/data/engine/ontology/test.rdfs create mode 100644 corese-unit-test/src/test/resources/data/engine/rule/meta.rul create mode 100644 corese-unit-test/src/test/resources/data/engine/rule/test2.brul create mode 100644 corese-unit-test/src/test/resources/data/owlrule/owlrllite-junit.rul create mode 100644 corese-unit-test/src/test/resources/data/owlrule/owlrllite.rul create mode 100644 corese-unit-test/src/test/resources/data/rdf-star-main/.github/ISSUE_TEMPLATE/blank.md create mode 100644 corese-unit-test/src/test/resources/data/rdf-star-main/.github/ISSUE_TEMPLATE/use-case.md create mode 100644 corese-unit-test/src/test/resources/data/rdf-star-main/.github/workflows/ci.yml create mode 100644 corese-unit-test/src/test/resources/data/rdf-star-main/.gitignore create mode 100644 corese-unit-test/src/test/resources/data/rdf-star-main/.pr-preview.json create mode 100644 corese-unit-test/src/test/resources/data/rdf-star-main/CONTRIBUTING.md create mode 100644 corese-unit-test/src/test/resources/data/rdf-star-main/Gemfile create mode 100644 corese-unit-test/src/test/resources/data/rdf-star-main/Gemfile.lock create mode 100644 corese-unit-test/src/test/resources/data/rdf-star-main/LICENSE.md create mode 100644 corese-unit-test/src/test/resources/data/rdf-star-main/Minutes/2020-11-13.html create mode 100644 corese-unit-test/src/test/resources/data/rdf-star-main/Minutes/2020-11-20.html create mode 100644 corese-unit-test/src/test/resources/data/rdf-star-main/Minutes/2020-11-27.html create mode 100644 corese-unit-test/src/test/resources/data/rdf-star-main/Minutes/2020-12-04.html create mode 100644 corese-unit-test/src/test/resources/data/rdf-star-main/Minutes/2020-12-11.html create mode 100644 corese-unit-test/src/test/resources/data/rdf-star-main/Minutes/2020-12-18.html create mode 100644 corese-unit-test/src/test/resources/data/rdf-star-main/Minutes/2021-01-08.html create mode 100644 corese-unit-test/src/test/resources/data/rdf-star-main/Minutes/2021-01-15.html create mode 100644 corese-unit-test/src/test/resources/data/rdf-star-main/Minutes/2021-01-22.html create mode 100644 corese-unit-test/src/test/resources/data/rdf-star-main/Minutes/2021-02-05.html create mode 100644 corese-unit-test/src/test/resources/data/rdf-star-main/Minutes/2021-02-12.html create mode 100644 corese-unit-test/src/test/resources/data/rdf-star-main/Minutes/2021-02-19.html create mode 100644 corese-unit-test/src/test/resources/data/rdf-star-main/Minutes/2021-02-26.html create mode 100644 corese-unit-test/src/test/resources/data/rdf-star-main/Minutes/2021-03-05.html create mode 100644 corese-unit-test/src/test/resources/data/rdf-star-main/Minutes/2021-03-12.html create mode 100644 corese-unit-test/src/test/resources/data/rdf-star-main/Minutes/2021-03-19.html create mode 100644 corese-unit-test/src/test/resources/data/rdf-star-main/Minutes/2021-03-26.html create mode 100644 corese-unit-test/src/test/resources/data/rdf-star-main/Minutes/2021-04-09.html create mode 100644 corese-unit-test/src/test/resources/data/rdf-star-main/Minutes/2021-04-23.html create mode 100644 corese-unit-test/src/test/resources/data/rdf-star-main/Minutes/2021-04-30.html create mode 100644 corese-unit-test/src/test/resources/data/rdf-star-main/Minutes/2021-05-07.html create mode 100644 corese-unit-test/src/test/resources/data/rdf-star-main/Minutes/2021-05-14.html create mode 100644 corese-unit-test/src/test/resources/data/rdf-star-main/Minutes/2021-05-21.html create mode 100644 corese-unit-test/src/test/resources/data/rdf-star-main/Minutes/2021-05-28.html create mode 100644 corese-unit-test/src/test/resources/data/rdf-star-main/Minutes/2021-06-04.html create mode 100644 corese-unit-test/src/test/resources/data/rdf-star-main/Minutes/2021-06-11.html create mode 100644 corese-unit-test/src/test/resources/data/rdf-star-main/Minutes/2021-06-18.html create mode 100644 corese-unit-test/src/test/resources/data/rdf-star-main/Minutes/2021-07-02.html create mode 100644 corese-unit-test/src/test/resources/data/rdf-star-main/Minutes/2021-07-16.html create mode 100644 corese-unit-test/src/test/resources/data/rdf-star-main/Minutes/2021-09-03.html create mode 100644 corese-unit-test/src/test/resources/data/rdf-star-main/Minutes/2021-09-17.html create mode 100644 corese-unit-test/src/test/resources/data/rdf-star-main/Minutes/2021-10-01.html create mode 100644 corese-unit-test/src/test/resources/data/rdf-star-main/Minutes/2021-10-15.html create mode 100644 corese-unit-test/src/test/resources/data/rdf-star-main/Minutes/2021-10-29.html create mode 100644 corese-unit-test/src/test/resources/data/rdf-star-main/Minutes/2021-11-12.html create mode 100644 corese-unit-test/src/test/resources/data/rdf-star-main/Minutes/2021-12-03.html create mode 100644 corese-unit-test/src/test/resources/data/rdf-star-main/Minutes/2021-12-17.html create mode 100644 corese-unit-test/src/test/resources/data/rdf-star-main/Minutes/2022-01-07.html create mode 100644 corese-unit-test/src/test/resources/data/rdf-star-main/Minutes/2022-01-21.html create mode 100644 corese-unit-test/src/test/resources/data/rdf-star-main/Minutes/2022-02-11.html create mode 100644 corese-unit-test/src/test/resources/data/rdf-star-main/Minutes/2022-03-04.html create mode 100644 corese-unit-test/src/test/resources/data/rdf-star-main/Minutes/2022-03-25.html create mode 100644 corese-unit-test/src/test/resources/data/rdf-star-main/Minutes/2022-04-08.html create mode 100644 corese-unit-test/src/test/resources/data/rdf-star-main/Minutes/2022-05-06.html create mode 100644 corese-unit-test/src/test/resources/data/rdf-star-main/Minutes/2022-05-20.html create mode 100644 corese-unit-test/src/test/resources/data/rdf-star-main/Minutes/2022-06-10.html create mode 100644 corese-unit-test/src/test/resources/data/rdf-star-main/Minutes/index.html create mode 100755 corese-unit-test/src/test/resources/data/rdf-star-main/Minutes/update-index.sh create mode 100644 corese-unit-test/src/test/resources/data/rdf-star-main/README.md create mode 100644 corese-unit-test/src/test/resources/data/rdf-star-main/UCR/README.md create mode 100644 corese-unit-test/src/test/resources/data/rdf-star-main/UCR/rdf-star-ucr.html create mode 100644 corese-unit-test/src/test/resources/data/rdf-star-main/cg-spec/2021-02-18-src.html create mode 100644 corese-unit-test/src/test/resources/data/rdf-star-main/cg-spec/2021-02-18.html create mode 100644 corese-unit-test/src/test/resources/data/rdf-star-main/cg-spec/2021-04-13-src.html create mode 100644 corese-unit-test/src/test/resources/data/rdf-star-main/cg-spec/2021-04-13.html create mode 100644 corese-unit-test/src/test/resources/data/rdf-star-main/cg-spec/2021-07-01-src.html create mode 100644 corese-unit-test/src/test/resources/data/rdf-star-main/cg-spec/2021-07-01.html create mode 100644 corese-unit-test/src/test/resources/data/rdf-star-main/cg-spec/2021-12-17-src.html create mode 100644 corese-unit-test/src/test/resources/data/rdf-star-main/cg-spec/2021-12-17.html create mode 100644 corese-unit-test/src/test/resources/data/rdf-star-main/cg-spec/editors_draft.html create mode 100644 corese-unit-test/src/test/resources/data/rdf-star-main/cg-spec/index.html create mode 100644 corese-unit-test/src/test/resources/data/rdf-star-main/cg-spec/visual-map-bg.svg create mode 100644 corese-unit-test/src/test/resources/data/rdf-star-main/css/README.md create mode 100644 corese-unit-test/src/test/resources/data/rdf-star-main/css/bootstrap.css create mode 100644 corese-unit-test/src/test/resources/data/rdf-star-main/css/bootstrap.css.map create mode 100644 corese-unit-test/src/test/resources/data/rdf-star-main/css/bootstrap.min.css create mode 100644 corese-unit-test/src/test/resources/data/rdf-star-main/css/bootstrap.min.css.map create mode 100644 corese-unit-test/src/test/resources/data/rdf-star-main/css/rdf-star.css create mode 100644 corese-unit-test/src/test/resources/data/rdf-star-main/ebnf/n-quads.ebnf create mode 100644 corese-unit-test/src/test/resources/data/rdf-star-main/ebnf/n-quads.html create mode 100644 corese-unit-test/src/test/resources/data/rdf-star-main/ebnf/n-triples.ebnf create mode 100644 corese-unit-test/src/test/resources/data/rdf-star-main/ebnf/n-triples.html create mode 100644 corese-unit-test/src/test/resources/data/rdf-star-main/ebnf/sparql.ebnf create mode 100644 corese-unit-test/src/test/resources/data/rdf-star-main/ebnf/sparql.html create mode 100644 corese-unit-test/src/test/resources/data/rdf-star-main/ebnf/trig.ebnf create mode 100644 corese-unit-test/src/test/resources/data/rdf-star-main/ebnf/trig.html create mode 100644 corese-unit-test/src/test/resources/data/rdf-star-main/ebnf/turtle.ebnf create mode 100644 corese-unit-test/src/test/resources/data/rdf-star-main/ebnf/turtle.html create mode 100644 corese-unit-test/src/test/resources/data/rdf-star-main/implementations.html create mode 100644 corese-unit-test/src/test/resources/data/rdf-star-main/index.html create mode 100644 corese-unit-test/src/test/resources/data/rdf-star-main/presentations/RDF-star_EBDVF.pdf create mode 100644 corese-unit-test/src/test/resources/data/rdf-star-main/presentations/RDF-star_Lotico.pdf create mode 100644 corese-unit-test/src/test/resources/data/rdf-star-main/presentations/index.html create mode 100644 corese-unit-test/src/test/resources/data/rdf-star-main/rdf-star-cg-spec.html create mode 100644 corese-unit-test/src/test/resources/data/rdf-star-main/reports/.earl create mode 100644 corese-unit-test/src/test/resources/data/rdf-star-main/reports/README.md create mode 100644 corese-unit-test/src/test/resources/data/rdf-star-main/reports/Rakefile create mode 100644 corese-unit-test/src/test/resources/data/rdf-star-main/reports/apache-jena.ttl create mode 100644 corese-unit-test/src/test/resources/data/rdf-star-main/reports/earl.jsonld create mode 100644 corese-unit-test/src/test/resources/data/rdf-star-main/reports/earl.ttl create mode 100644 corese-unit-test/src/test/resources/data/rdf-star-main/reports/eye-turtle.ttl create mode 100644 corese-unit-test/src/test/resources/data/rdf-star-main/reports/index.html create mode 100644 corese-unit-test/src/test/resources/data/rdf-star-main/reports/oxigraph-sparql.ttl create mode 100644 corese-unit-test/src/test/resources/data/rdf-star-main/reports/oxigraph-turtle.ttl create mode 100644 corese-unit-test/src/test/resources/data/rdf-star-main/reports/rdf-ex-nt.ttl create mode 100644 corese-unit-test/src/test/resources/data/rdf-star-main/reports/rdf-ex-turtle.ttl create mode 100644 corese-unit-test/src/test/resources/data/rdf-star-main/reports/ruby-sparql.ttl create mode 100644 corese-unit-test/src/test/resources/data/rdf-star-main/reports/ruby-trig.ttl create mode 100644 corese-unit-test/src/test/resources/data/rdf-star-main/reports/template.haml create mode 100644 corese-unit-test/src/test/resources/data/rdf-star-main/tests/Makefile create mode 100644 corese-unit-test/src/test/resources/data/rdf-star-main/tests/index.html create mode 100755 corese-unit-test/src/test/resources/data/rdf-star-main/tests/make-html-manifests.py create mode 100755 corese-unit-test/src/test/resources/data/rdf-star-main/tests/make-jsonld-manifests.rb create mode 100644 corese-unit-test/src/test/resources/data/rdf-star-main/tests/manifest-context.jsonld create mode 120000 corese-unit-test/src/test/resources/data/rdf-star-main/tests/manifest.html create mode 100644 corese-unit-test/src/test/resources/data/rdf-star-main/tests/manifest.jsonld create mode 100644 corese-unit-test/src/test/resources/data/rdf-star-main/tests/manifest.ttl create mode 120000 corese-unit-test/src/test/resources/data/rdf-star-main/tests/nt/syntax/index.html create mode 100644 corese-unit-test/src/test/resources/data/rdf-star-main/tests/nt/syntax/manifest.html create mode 100644 corese-unit-test/src/test/resources/data/rdf-star-main/tests/nt/syntax/manifest.jsonld create mode 100644 corese-unit-test/src/test/resources/data/rdf-star-main/tests/nt/syntax/manifest.ttl create mode 100644 corese-unit-test/src/test/resources/data/rdf-star-main/tests/nt/syntax/ntriples-star-bad-syntax-1.nt create mode 100644 corese-unit-test/src/test/resources/data/rdf-star-main/tests/nt/syntax/ntriples-star-bad-syntax-2.nt create mode 100644 corese-unit-test/src/test/resources/data/rdf-star-main/tests/nt/syntax/ntriples-star-bad-syntax-3.nt create mode 100644 corese-unit-test/src/test/resources/data/rdf-star-main/tests/nt/syntax/ntriples-star-bad-syntax-4.nt create mode 100644 corese-unit-test/src/test/resources/data/rdf-star-main/tests/nt/syntax/ntriples-star-bnode-1.nt create mode 100644 corese-unit-test/src/test/resources/data/rdf-star-main/tests/nt/syntax/ntriples-star-bnode-2.nt create mode 100644 corese-unit-test/src/test/resources/data/rdf-star-main/tests/nt/syntax/ntriples-star-nested-1.nt create mode 100644 corese-unit-test/src/test/resources/data/rdf-star-main/tests/nt/syntax/ntriples-star-nested-2.nt create mode 100644 corese-unit-test/src/test/resources/data/rdf-star-main/tests/nt/syntax/ntriples-star-syntax-1.nt create mode 100644 corese-unit-test/src/test/resources/data/rdf-star-main/tests/nt/syntax/ntriples-star-syntax-2.nt create mode 100644 corese-unit-test/src/test/resources/data/rdf-star-main/tests/nt/syntax/ntriples-star-syntax-3.nt create mode 100644 corese-unit-test/src/test/resources/data/rdf-star-main/tests/nt/syntax/ntriples-star-syntax-4.nt create mode 100644 corese-unit-test/src/test/resources/data/rdf-star-main/tests/nt/syntax/ntriples-star-syntax-5.nt create mode 100644 corese-unit-test/src/test/resources/data/rdf-star-main/tests/semantics/README create mode 100644 corese-unit-test/src/test/resources/data/rdf-star-main/tests/semantics/canonical-literal-control.ttl create mode 100644 corese-unit-test/src/test/resources/data/rdf-star-main/tests/semantics/canonical-literal.ttl create mode 100644 corese-unit-test/src/test/resources/data/rdf-star-main/tests/semantics/control-sameas-a.ttl create mode 100644 corese-unit-test/src/test/resources/data/rdf-star-main/tests/semantics/control-sameas-r.ttl create mode 120000 corese-unit-test/src/test/resources/data/rdf-star-main/tests/semantics/index.html create mode 100644 corese-unit-test/src/test/resources/data/rdf-star-main/tests/semantics/lowercase-language-string-control.ttl create mode 100644 corese-unit-test/src/test/resources/data/rdf-star-main/tests/semantics/lowercase-language-string.ttl create mode 100644 corese-unit-test/src/test/resources/data/rdf-star-main/tests/semantics/malformed-literal-2a.ttl create mode 100644 corese-unit-test/src/test/resources/data/rdf-star-main/tests/semantics/malformed-literal-2r.ttl create mode 100644 corese-unit-test/src/test/resources/data/rdf-star-main/tests/semantics/malformed-literal-3a.ttl create mode 100644 corese-unit-test/src/test/resources/data/rdf-star-main/tests/semantics/malformed-literal-3r.ttl create mode 100644 corese-unit-test/src/test/resources/data/rdf-star-main/tests/semantics/malformed-literal-control.ttl create mode 100644 corese-unit-test/src/test/resources/data/rdf-star-main/tests/semantics/malformed-literal-other.ttl create mode 100644 corese-unit-test/src/test/resources/data/rdf-star-main/tests/semantics/malformed-literal.ttl create mode 100644 corese-unit-test/src/test/resources/data/rdf-star-main/tests/semantics/manifest.html create mode 100644 corese-unit-test/src/test/resources/data/rdf-star-main/tests/semantics/manifest.jsonld create mode 100644 corese-unit-test/src/test/resources/data/rdf-star-main/tests/semantics/manifest.ttl create mode 100644 corese-unit-test/src/test/resources/data/rdf-star-main/tests/semantics/non-canonical-literal-control.ttl create mode 100644 corese-unit-test/src/test/resources/data/rdf-star-main/tests/semantics/non-canonical-literal.ttl create mode 100644 corese-unit-test/src/test/resources/data/rdf-star-main/tests/semantics/superman.ttl create mode 100644 corese-unit-test/src/test/resources/data/rdf-star-main/tests/semantics/superman_undesired_entailment.ttl create mode 100644 corese-unit-test/src/test/resources/data/rdf-star-main/tests/semantics/test000o.ttl create mode 100644 corese-unit-test/src/test/resources/data/rdf-star-main/tests/semantics/test000s.ttl create mode 100644 corese-unit-test/src/test/resources/data/rdf-star-main/tests/semantics/test001a.ttl create mode 100644 corese-unit-test/src/test/resources/data/rdf-star-main/tests/semantics/test001r.ttl create mode 100644 corese-unit-test/src/test/resources/data/rdf-star-main/tests/semantics/test002a.ttl create mode 100644 corese-unit-test/src/test/resources/data/rdf-star-main/tests/semantics/test002or.ttl create mode 100644 corese-unit-test/src/test/resources/data/rdf-star-main/tests/semantics/test002pgr.ttl create mode 100644 corese-unit-test/src/test/resources/data/rdf-star-main/tests/semantics/test002r.ttl create mode 100644 corese-unit-test/src/test/resources/data/rdf-star-main/tests/semantics/test002sbr.ttl create mode 100644 corese-unit-test/src/test/resources/data/rdf-star-main/tests/semantics/test002sor.ttl create mode 100644 corese-unit-test/src/test/resources/data/rdf-star-main/tests/semantics/test002sr.ttl create mode 100644 corese-unit-test/src/test/resources/data/rdf-star-main/tests/semantics/test003a.ttl create mode 100644 corese-unit-test/src/test/resources/data/rdf-star-main/tests/semantics/test003r.ttl create mode 100644 corese-unit-test/src/test/resources/data/rdf-star-main/tests/semantics/test004a.ttl create mode 100644 corese-unit-test/src/test/resources/data/rdf-star-main/tests/semantics/test004fr.ttl create mode 100644 corese-unit-test/src/test/resources/data/rdf-star-main/tests/semantics/test004or.ttl create mode 100644 corese-unit-test/src/test/resources/data/rdf-star-main/tests/semantics/test004sr.ttl create mode 100644 corese-unit-test/src/test/resources/data/rdf-star-main/tests/semantics/test005.ttl create mode 100644 corese-unit-test/src/test/resources/data/rdf-star-main/tests/semantics/test006a.ttl create mode 100644 corese-unit-test/src/test/resources/data/rdf-star-main/tests/semantics/test006r.ttl create mode 100644 corese-unit-test/src/test/resources/data/rdf-star-main/tests/semantics/test007a.ttl create mode 100644 corese-unit-test/src/test/resources/data/rdf-star-main/tests/semantics/test007a2.ttl create mode 100644 corese-unit-test/src/test/resources/data/rdf-star-main/tests/semantics/test007r1.ttl create mode 100644 corese-unit-test/src/test/resources/data/rdf-star-main/tests/semantics/test007r2.ttl create mode 100644 corese-unit-test/src/test/resources/data/rdf-star-main/tests/semantics/upercase-language-string-control.ttl create mode 100644 corese-unit-test/src/test/resources/data/rdf-star-main/tests/semantics/upercase-language-string.ttl create mode 100644 corese-unit-test/src/test/resources/data/rdf-star-main/tests/sparql/eval/data-0.ttl create mode 100644 corese-unit-test/src/test/resources/data/rdf-star-main/tests/sparql/eval/data-1.ttl create mode 100644 corese-unit-test/src/test/resources/data/rdf-star-main/tests/sparql/eval/data-2.ttl create mode 100644 corese-unit-test/src/test/resources/data/rdf-star-main/tests/sparql/eval/data-3.ttl create mode 100644 corese-unit-test/src/test/resources/data/rdf-star-main/tests/sparql/eval/data-4.trig create mode 100644 corese-unit-test/src/test/resources/data/rdf-star-main/tests/sparql/eval/data-5.ttl create mode 100644 corese-unit-test/src/test/resources/data/rdf-star-main/tests/sparql/eval/data-6.trig create mode 100644 corese-unit-test/src/test/resources/data/rdf-star-main/tests/sparql/eval/data-7.ttl create mode 100644 corese-unit-test/src/test/resources/data/rdf-star-main/tests/sparql/eval/data-order-kind.ttl create mode 100644 corese-unit-test/src/test/resources/data/rdf-star-main/tests/sparql/eval/data-order.ttl create mode 100644 corese-unit-test/src/test/resources/data/rdf-star-main/tests/sparql/eval/empty.nq create mode 120000 corese-unit-test/src/test/resources/data/rdf-star-main/tests/sparql/eval/index.html create mode 100644 corese-unit-test/src/test/resources/data/rdf-star-main/tests/sparql/eval/manifest.html create mode 100644 corese-unit-test/src/test/resources/data/rdf-star-main/tests/sparql/eval/manifest.jsonld create mode 100644 corese-unit-test/src/test/resources/data/rdf-star-main/tests/sparql/eval/manifest.ttl create mode 100644 corese-unit-test/src/test/resources/data/rdf-star-main/tests/sparql/eval/sparql-star-basic-2.rq create mode 100644 corese-unit-test/src/test/resources/data/rdf-star-main/tests/sparql/eval/sparql-star-basic-2.srj create mode 100644 corese-unit-test/src/test/resources/data/rdf-star-main/tests/sparql/eval/sparql-star-basic-3.rq create mode 100644 corese-unit-test/src/test/resources/data/rdf-star-main/tests/sparql/eval/sparql-star-basic-3.srj create mode 100644 corese-unit-test/src/test/resources/data/rdf-star-main/tests/sparql/eval/sparql-star-basic-4.rq create mode 100644 corese-unit-test/src/test/resources/data/rdf-star-main/tests/sparql/eval/sparql-star-basic-4.srj create mode 100644 corese-unit-test/src/test/resources/data/rdf-star-main/tests/sparql/eval/sparql-star-basic-5.rq create mode 100644 corese-unit-test/src/test/resources/data/rdf-star-main/tests/sparql/eval/sparql-star-basic-5.srj create mode 100644 corese-unit-test/src/test/resources/data/rdf-star-main/tests/sparql/eval/sparql-star-basic-6.rq create mode 100644 corese-unit-test/src/test/resources/data/rdf-star-main/tests/sparql/eval/sparql-star-basic-6.srj create mode 100644 corese-unit-test/src/test/resources/data/rdf-star-main/tests/sparql/eval/sparql-star-construct-1.rq create mode 100644 corese-unit-test/src/test/resources/data/rdf-star-main/tests/sparql/eval/sparql-star-construct-1.ttl create mode 100644 corese-unit-test/src/test/resources/data/rdf-star-main/tests/sparql/eval/sparql-star-construct-2.rq create mode 100644 corese-unit-test/src/test/resources/data/rdf-star-main/tests/sparql/eval/sparql-star-construct-2.ttl create mode 100644 corese-unit-test/src/test/resources/data/rdf-star-main/tests/sparql/eval/sparql-star-construct-3.rq create mode 100644 corese-unit-test/src/test/resources/data/rdf-star-main/tests/sparql/eval/sparql-star-construct-3.ttl create mode 100644 corese-unit-test/src/test/resources/data/rdf-star-main/tests/sparql/eval/sparql-star-construct-4.rq create mode 100644 corese-unit-test/src/test/resources/data/rdf-star-main/tests/sparql/eval/sparql-star-construct-4.ttl create mode 100644 corese-unit-test/src/test/resources/data/rdf-star-main/tests/sparql/eval/sparql-star-construct-5.rq create mode 100644 corese-unit-test/src/test/resources/data/rdf-star-main/tests/sparql/eval/sparql-star-construct-5.ttl create mode 100644 corese-unit-test/src/test/resources/data/rdf-star-main/tests/sparql/eval/sparql-star-expr-01.rq create mode 100644 corese-unit-test/src/test/resources/data/rdf-star-main/tests/sparql/eval/sparql-star-expr-01.ttl create mode 100644 corese-unit-test/src/test/resources/data/rdf-star-main/tests/sparql/eval/sparql-star-expr-02.rq create mode 100644 corese-unit-test/src/test/resources/data/rdf-star-main/tests/sparql/eval/sparql-star-expr-02.srj create mode 100644 corese-unit-test/src/test/resources/data/rdf-star-main/tests/sparql/eval/sparql-star-graphs-1.rq create mode 100644 corese-unit-test/src/test/resources/data/rdf-star-main/tests/sparql/eval/sparql-star-graphs-1.srj create mode 100644 corese-unit-test/src/test/resources/data/rdf-star-main/tests/sparql/eval/sparql-star-graphs-2.rq create mode 100644 corese-unit-test/src/test/resources/data/rdf-star-main/tests/sparql/eval/sparql-star-graphs-2.srj create mode 100644 corese-unit-test/src/test/resources/data/rdf-star-main/tests/sparql/eval/sparql-star-op-1.rq create mode 100644 corese-unit-test/src/test/resources/data/rdf-star-main/tests/sparql/eval/sparql-star-op-1.srj create mode 100644 corese-unit-test/src/test/resources/data/rdf-star-main/tests/sparql/eval/sparql-star-op-2.rq create mode 100644 corese-unit-test/src/test/resources/data/rdf-star-main/tests/sparql/eval/sparql-star-op-2.srj create mode 100644 corese-unit-test/src/test/resources/data/rdf-star-main/tests/sparql/eval/sparql-star-op-3.rq create mode 100644 corese-unit-test/src/test/resources/data/rdf-star-main/tests/sparql/eval/sparql-star-op-3.srj create mode 100644 corese-unit-test/src/test/resources/data/rdf-star-main/tests/sparql/eval/sparql-star-op-4.rq create mode 100644 corese-unit-test/src/test/resources/data/rdf-star-main/tests/sparql/eval/sparql-star-op-4.srj create mode 100644 corese-unit-test/src/test/resources/data/rdf-star-main/tests/sparql/eval/sparql-star-order-1.srj create mode 100644 corese-unit-test/src/test/resources/data/rdf-star-main/tests/sparql/eval/sparql-star-order-2.srj create mode 100644 corese-unit-test/src/test/resources/data/rdf-star-main/tests/sparql/eval/sparql-star-order-by.rq create mode 100644 corese-unit-test/src/test/resources/data/rdf-star-main/tests/sparql/eval/sparql-star-pattern-01.rq create mode 100644 corese-unit-test/src/test/resources/data/rdf-star-main/tests/sparql/eval/sparql-star-pattern-01.srj create mode 100644 corese-unit-test/src/test/resources/data/rdf-star-main/tests/sparql/eval/sparql-star-pattern-02.rq create mode 100644 corese-unit-test/src/test/resources/data/rdf-star-main/tests/sparql/eval/sparql-star-pattern-02.srj create mode 100644 corese-unit-test/src/test/resources/data/rdf-star-main/tests/sparql/eval/sparql-star-pattern-03.rq create mode 100644 corese-unit-test/src/test/resources/data/rdf-star-main/tests/sparql/eval/sparql-star-pattern-03.srj create mode 100644 corese-unit-test/src/test/resources/data/rdf-star-main/tests/sparql/eval/sparql-star-pattern-04.rq create mode 100644 corese-unit-test/src/test/resources/data/rdf-star-main/tests/sparql/eval/sparql-star-pattern-04.srj create mode 100644 corese-unit-test/src/test/resources/data/rdf-star-main/tests/sparql/eval/sparql-star-pattern-05.rq create mode 100644 corese-unit-test/src/test/resources/data/rdf-star-main/tests/sparql/eval/sparql-star-pattern-05.srj create mode 100644 corese-unit-test/src/test/resources/data/rdf-star-main/tests/sparql/eval/sparql-star-pattern-06.rq create mode 100644 corese-unit-test/src/test/resources/data/rdf-star-main/tests/sparql/eval/sparql-star-pattern-06.srj create mode 100644 corese-unit-test/src/test/resources/data/rdf-star-main/tests/sparql/eval/sparql-star-pattern-07.rq create mode 100644 corese-unit-test/src/test/resources/data/rdf-star-main/tests/sparql/eval/sparql-star-pattern-07.srj create mode 100644 corese-unit-test/src/test/resources/data/rdf-star-main/tests/sparql/eval/sparql-star-pattern-08.rq create mode 100644 corese-unit-test/src/test/resources/data/rdf-star-main/tests/sparql/eval/sparql-star-pattern-08.srj create mode 100644 corese-unit-test/src/test/resources/data/rdf-star-main/tests/sparql/eval/sparql-star-pattern-09.rq create mode 100644 corese-unit-test/src/test/resources/data/rdf-star-main/tests/sparql/eval/sparql-star-pattern-09.srj create mode 100644 corese-unit-test/src/test/resources/data/rdf-star-main/tests/sparql/eval/sparql-star-results-1.rq create mode 100644 corese-unit-test/src/test/resources/data/rdf-star-main/tests/sparql/eval/sparql-star-results-1.srj create mode 100644 corese-unit-test/src/test/resources/data/rdf-star-main/tests/sparql/eval/sparql-star-results-1.srx create mode 100644 corese-unit-test/src/test/resources/data/rdf-star-main/tests/sparql/eval/sparql-star-update-1.ru create mode 100644 corese-unit-test/src/test/resources/data/rdf-star-main/tests/sparql/eval/sparql-star-update-2.ru create mode 100644 corese-unit-test/src/test/resources/data/rdf-star-main/tests/sparql/eval/sparql-star-update-3.ru create mode 100644 corese-unit-test/src/test/resources/data/rdf-star-main/tests/sparql/eval/update-result-1.trig create mode 100644 corese-unit-test/src/test/resources/data/rdf-star-main/tests/sparql/eval/update-result-2.trig create mode 100644 corese-unit-test/src/test/resources/data/rdf-star-main/tests/sparql/eval/update-result-3.trig create mode 120000 corese-unit-test/src/test/resources/data/rdf-star-main/tests/sparql/syntax/index.html create mode 100644 corese-unit-test/src/test/resources/data/rdf-star-main/tests/sparql/syntax/manifest.html create mode 100644 corese-unit-test/src/test/resources/data/rdf-star-main/tests/sparql/syntax/manifest.jsonld create mode 100644 corese-unit-test/src/test/resources/data/rdf-star-main/tests/sparql/syntax/manifest.ttl create mode 100644 corese-unit-test/src/test/resources/data/rdf-star-main/tests/sparql/syntax/sparql-star-annotation-01.rq create mode 100644 corese-unit-test/src/test/resources/data/rdf-star-main/tests/sparql/syntax/sparql-star-annotation-02.rq create mode 100644 corese-unit-test/src/test/resources/data/rdf-star-main/tests/sparql/syntax/sparql-star-annotation-03.rq create mode 100644 corese-unit-test/src/test/resources/data/rdf-star-main/tests/sparql/syntax/sparql-star-annotation-04.rq create mode 100644 corese-unit-test/src/test/resources/data/rdf-star-main/tests/sparql/syntax/sparql-star-annotation-05.rq create mode 100644 corese-unit-test/src/test/resources/data/rdf-star-main/tests/sparql/syntax/sparql-star-annotation-06.rq create mode 100644 corese-unit-test/src/test/resources/data/rdf-star-main/tests/sparql/syntax/sparql-star-annotation-07.rq create mode 100644 corese-unit-test/src/test/resources/data/rdf-star-main/tests/sparql/syntax/sparql-star-annotation-08.rq create mode 100644 corese-unit-test/src/test/resources/data/rdf-star-main/tests/sparql/syntax/sparql-star-annotation-09.rq create mode 100644 corese-unit-test/src/test/resources/data/rdf-star-main/tests/sparql/syntax/sparql-star-syntax-bad-01.rq create mode 100644 corese-unit-test/src/test/resources/data/rdf-star-main/tests/sparql/syntax/sparql-star-syntax-bad-02.rq create mode 100644 corese-unit-test/src/test/resources/data/rdf-star-main/tests/sparql/syntax/sparql-star-syntax-bad-03.rq create mode 100644 corese-unit-test/src/test/resources/data/rdf-star-main/tests/sparql/syntax/sparql-star-syntax-bad-04.rq create mode 100644 corese-unit-test/src/test/resources/data/rdf-star-main/tests/sparql/syntax/sparql-star-syntax-bad-05.rq create mode 100644 corese-unit-test/src/test/resources/data/rdf-star-main/tests/sparql/syntax/sparql-star-syntax-bad-06.rq create mode 100644 corese-unit-test/src/test/resources/data/rdf-star-main/tests/sparql/syntax/sparql-star-syntax-bad-07.rq create mode 100644 corese-unit-test/src/test/resources/data/rdf-star-main/tests/sparql/syntax/sparql-star-syntax-bad-08.rq create mode 100644 corese-unit-test/src/test/resources/data/rdf-star-main/tests/sparql/syntax/sparql-star-syntax-bad-09.rq create mode 100644 corese-unit-test/src/test/resources/data/rdf-star-main/tests/sparql/syntax/sparql-star-syntax-bad-10.rq create mode 100644 corese-unit-test/src/test/resources/data/rdf-star-main/tests/sparql/syntax/sparql-star-syntax-bad-11.rq create mode 100644 corese-unit-test/src/test/resources/data/rdf-star-main/tests/sparql/syntax/sparql-star-syntax-bad-12.rq create mode 100644 corese-unit-test/src/test/resources/data/rdf-star-main/tests/sparql/syntax/sparql-star-syntax-bad-ann-1.rq create mode 100644 corese-unit-test/src/test/resources/data/rdf-star-main/tests/sparql/syntax/sparql-star-syntax-bad-ann-2.rq create mode 100644 corese-unit-test/src/test/resources/data/rdf-star-main/tests/sparql/syntax/sparql-star-syntax-bad-ann-path-1.rq create mode 100644 corese-unit-test/src/test/resources/data/rdf-star-main/tests/sparql/syntax/sparql-star-syntax-bad-ann-path-2.rq create mode 100644 corese-unit-test/src/test/resources/data/rdf-star-main/tests/sparql/syntax/sparql-star-syntax-bad-ann-path-3.rq create mode 100644 corese-unit-test/src/test/resources/data/rdf-star-main/tests/sparql/syntax/sparql-star-syntax-bad-ann-path-4.rq create mode 100644 corese-unit-test/src/test/resources/data/rdf-star-main/tests/sparql/syntax/sparql-star-syntax-bad-ann-path-5.rq create mode 100644 corese-unit-test/src/test/resources/data/rdf-star-main/tests/sparql/syntax/sparql-star-syntax-bad-ann-path-6.rq create mode 100644 corese-unit-test/src/test/resources/data/rdf-star-main/tests/sparql/syntax/sparql-star-syntax-bad-ann-path-7.rq create mode 100644 corese-unit-test/src/test/resources/data/rdf-star-main/tests/sparql/syntax/sparql-star-syntax-bad-update-1.ru create mode 100644 corese-unit-test/src/test/resources/data/rdf-star-main/tests/sparql/syntax/sparql-star-syntax-bad-update-2.ru create mode 100644 corese-unit-test/src/test/resources/data/rdf-star-main/tests/sparql/syntax/sparql-star-syntax-bad-update-3.ru create mode 100644 corese-unit-test/src/test/resources/data/rdf-star-main/tests/sparql/syntax/sparql-star-syntax-bad-update-4.ru create mode 100644 corese-unit-test/src/test/resources/data/rdf-star-main/tests/sparql/syntax/sparql-star-syntax-basic-01.rq create mode 100644 corese-unit-test/src/test/resources/data/rdf-star-main/tests/sparql/syntax/sparql-star-syntax-basic-02.rq create mode 100644 corese-unit-test/src/test/resources/data/rdf-star-main/tests/sparql/syntax/sparql-star-syntax-basic-03.rq create mode 100644 corese-unit-test/src/test/resources/data/rdf-star-main/tests/sparql/syntax/sparql-star-syntax-basic-04.rq create mode 100644 corese-unit-test/src/test/resources/data/rdf-star-main/tests/sparql/syntax/sparql-star-syntax-basic-05.rq create mode 100644 corese-unit-test/src/test/resources/data/rdf-star-main/tests/sparql/syntax/sparql-star-syntax-basic-06.rq create mode 100644 corese-unit-test/src/test/resources/data/rdf-star-main/tests/sparql/syntax/sparql-star-syntax-basic-07.rq create mode 100644 corese-unit-test/src/test/resources/data/rdf-star-main/tests/sparql/syntax/sparql-star-syntax-bnode-01.rq create mode 100644 corese-unit-test/src/test/resources/data/rdf-star-main/tests/sparql/syntax/sparql-star-syntax-bnode-02.rq create mode 100644 corese-unit-test/src/test/resources/data/rdf-star-main/tests/sparql/syntax/sparql-star-syntax-bnode-03.rq create mode 100644 corese-unit-test/src/test/resources/data/rdf-star-main/tests/sparql/syntax/sparql-star-syntax-compound.rq create mode 100644 corese-unit-test/src/test/resources/data/rdf-star-main/tests/sparql/syntax/sparql-star-syntax-expr-01.rq create mode 100644 corese-unit-test/src/test/resources/data/rdf-star-main/tests/sparql/syntax/sparql-star-syntax-expr-02.rq create mode 100644 corese-unit-test/src/test/resources/data/rdf-star-main/tests/sparql/syntax/sparql-star-syntax-expr-03.rq create mode 100644 corese-unit-test/src/test/resources/data/rdf-star-main/tests/sparql/syntax/sparql-star-syntax-expr-04.rq create mode 100644 corese-unit-test/src/test/resources/data/rdf-star-main/tests/sparql/syntax/sparql-star-syntax-expr-05.rq create mode 100644 corese-unit-test/src/test/resources/data/rdf-star-main/tests/sparql/syntax/sparql-star-syntax-expr-06.rq create mode 100644 corese-unit-test/src/test/resources/data/rdf-star-main/tests/sparql/syntax/sparql-star-syntax-inside-01.rq create mode 100644 corese-unit-test/src/test/resources/data/rdf-star-main/tests/sparql/syntax/sparql-star-syntax-inside-02.rq create mode 100644 corese-unit-test/src/test/resources/data/rdf-star-main/tests/sparql/syntax/sparql-star-syntax-nested-01.rq create mode 100644 corese-unit-test/src/test/resources/data/rdf-star-main/tests/sparql/syntax/sparql-star-syntax-nested-02.rq create mode 100644 corese-unit-test/src/test/resources/data/rdf-star-main/tests/sparql/syntax/sparql-star-syntax-update-1.ru create mode 100644 corese-unit-test/src/test/resources/data/rdf-star-main/tests/sparql/syntax/sparql-star-syntax-update-2.ru create mode 100644 corese-unit-test/src/test/resources/data/rdf-star-main/tests/sparql/syntax/sparql-star-syntax-update-3.ru create mode 100644 corese-unit-test/src/test/resources/data/rdf-star-main/tests/sparql/syntax/sparql-star-syntax-update-4.ru create mode 100644 corese-unit-test/src/test/resources/data/rdf-star-main/tests/sparql/syntax/sparql-star-syntax-update-5.ru create mode 100644 corese-unit-test/src/test/resources/data/rdf-star-main/tests/sparql/syntax/sparql-star-syntax-update-6.ru create mode 100644 corese-unit-test/src/test/resources/data/rdf-star-main/tests/sparql/syntax/sparql-star-syntax-update-7.ru create mode 100644 corese-unit-test/src/test/resources/data/rdf-star-main/tests/sparql/syntax/sparql-star-syntax-update-8.ru create mode 120000 corese-unit-test/src/test/resources/data/rdf-star-main/tests/trig/eval/index.html create mode 100644 corese-unit-test/src/test/resources/data/rdf-star-main/tests/trig/eval/manifest.html create mode 100644 corese-unit-test/src/test/resources/data/rdf-star-main/tests/trig/eval/manifest.jsonld create mode 100644 corese-unit-test/src/test/resources/data/rdf-star-main/tests/trig/eval/manifest.ttl create mode 100644 corese-unit-test/src/test/resources/data/rdf-star-main/tests/trig/eval/trig-star-eval-01.nq create mode 100644 corese-unit-test/src/test/resources/data/rdf-star-main/tests/trig/eval/trig-star-eval-01.trig create mode 100644 corese-unit-test/src/test/resources/data/rdf-star-main/tests/trig/eval/trig-star-eval-02.nq create mode 100644 corese-unit-test/src/test/resources/data/rdf-star-main/tests/trig/eval/trig-star-eval-02.trig create mode 100644 corese-unit-test/src/test/resources/data/rdf-star-main/tests/trig/eval/trig-star-eval-annotation-1.nq create mode 100644 corese-unit-test/src/test/resources/data/rdf-star-main/tests/trig/eval/trig-star-eval-annotation-1.trig create mode 100644 corese-unit-test/src/test/resources/data/rdf-star-main/tests/trig/eval/trig-star-eval-annotation-2.nq create mode 100644 corese-unit-test/src/test/resources/data/rdf-star-main/tests/trig/eval/trig-star-eval-annotation-2.trig create mode 100644 corese-unit-test/src/test/resources/data/rdf-star-main/tests/trig/eval/trig-star-eval-annotation-3.nq create mode 100644 corese-unit-test/src/test/resources/data/rdf-star-main/tests/trig/eval/trig-star-eval-annotation-3.trig create mode 100644 corese-unit-test/src/test/resources/data/rdf-star-main/tests/trig/eval/trig-star-eval-annotation-4.nq create mode 100644 corese-unit-test/src/test/resources/data/rdf-star-main/tests/trig/eval/trig-star-eval-annotation-4.trig create mode 100644 corese-unit-test/src/test/resources/data/rdf-star-main/tests/trig/eval/trig-star-eval-annotation-5.nq create mode 100644 corese-unit-test/src/test/resources/data/rdf-star-main/tests/trig/eval/trig-star-eval-annotation-5.trig create mode 100644 corese-unit-test/src/test/resources/data/rdf-star-main/tests/trig/eval/trig-star-eval-bnode-1.nq create mode 100644 corese-unit-test/src/test/resources/data/rdf-star-main/tests/trig/eval/trig-star-eval-bnode-1.trig create mode 100644 corese-unit-test/src/test/resources/data/rdf-star-main/tests/trig/eval/trig-star-eval-bnode-2.nq create mode 100644 corese-unit-test/src/test/resources/data/rdf-star-main/tests/trig/eval/trig-star-eval-bnode-2.trig create mode 100644 corese-unit-test/src/test/resources/data/rdf-star-main/tests/trig/eval/trig-star-eval-quoted-annotation-1.nq create mode 100644 corese-unit-test/src/test/resources/data/rdf-star-main/tests/trig/eval/trig-star-eval-quoted-annotation-1.trig create mode 100644 corese-unit-test/src/test/resources/data/rdf-star-main/tests/trig/eval/trig-star-eval-quoted-annotation-2.nq create mode 100644 corese-unit-test/src/test/resources/data/rdf-star-main/tests/trig/eval/trig-star-eval-quoted-annotation-2.trig create mode 100644 corese-unit-test/src/test/resources/data/rdf-star-main/tests/trig/eval/trig-star-eval-quoted-annotation-3.nq create mode 100644 corese-unit-test/src/test/resources/data/rdf-star-main/tests/trig/eval/trig-star-eval-quoted-annotation-3.trig create mode 120000 corese-unit-test/src/test/resources/data/rdf-star-main/tests/trig/syntax/index.html create mode 100644 corese-unit-test/src/test/resources/data/rdf-star-main/tests/trig/syntax/manifest.html create mode 100644 corese-unit-test/src/test/resources/data/rdf-star-main/tests/trig/syntax/manifest.jsonld create mode 100644 corese-unit-test/src/test/resources/data/rdf-star-main/tests/trig/syntax/manifest.ttl create mode 100644 corese-unit-test/src/test/resources/data/rdf-star-main/tests/trig/syntax/trig-star-annotation-1.trig create mode 100644 corese-unit-test/src/test/resources/data/rdf-star-main/tests/trig/syntax/trig-star-annotation-2.trig create mode 100644 corese-unit-test/src/test/resources/data/rdf-star-main/tests/trig/syntax/trig-star-syntax-bad-01.trig create mode 100644 corese-unit-test/src/test/resources/data/rdf-star-main/tests/trig/syntax/trig-star-syntax-bad-02.trig create mode 100644 corese-unit-test/src/test/resources/data/rdf-star-main/tests/trig/syntax/trig-star-syntax-bad-03.trig create mode 100644 corese-unit-test/src/test/resources/data/rdf-star-main/tests/trig/syntax/trig-star-syntax-bad-04.trig create mode 100644 corese-unit-test/src/test/resources/data/rdf-star-main/tests/trig/syntax/trig-star-syntax-bad-05.trig create mode 100644 corese-unit-test/src/test/resources/data/rdf-star-main/tests/trig/syntax/trig-star-syntax-bad-06.trig create mode 100644 corese-unit-test/src/test/resources/data/rdf-star-main/tests/trig/syntax/trig-star-syntax-bad-07.trig create mode 100644 corese-unit-test/src/test/resources/data/rdf-star-main/tests/trig/syntax/trig-star-syntax-bad-08.trig create mode 100644 corese-unit-test/src/test/resources/data/rdf-star-main/tests/trig/syntax/trig-star-syntax-bad-ann-1.trig create mode 100644 corese-unit-test/src/test/resources/data/rdf-star-main/tests/trig/syntax/trig-star-syntax-bad-ann-2.trig create mode 100644 corese-unit-test/src/test/resources/data/rdf-star-main/tests/trig/syntax/trig-star-syntax-basic-01.trig create mode 100644 corese-unit-test/src/test/resources/data/rdf-star-main/tests/trig/syntax/trig-star-syntax-basic-02.trig create mode 100644 corese-unit-test/src/test/resources/data/rdf-star-main/tests/trig/syntax/trig-star-syntax-bnode-01.trig create mode 100644 corese-unit-test/src/test/resources/data/rdf-star-main/tests/trig/syntax/trig-star-syntax-bnode-02.trig create mode 100644 corese-unit-test/src/test/resources/data/rdf-star-main/tests/trig/syntax/trig-star-syntax-bnode-03.trig create mode 100644 corese-unit-test/src/test/resources/data/rdf-star-main/tests/trig/syntax/trig-star-syntax-compound.trig create mode 100644 corese-unit-test/src/test/resources/data/rdf-star-main/tests/trig/syntax/trig-star-syntax-inside-01.trig create mode 100644 corese-unit-test/src/test/resources/data/rdf-star-main/tests/trig/syntax/trig-star-syntax-inside-02.trig create mode 100644 corese-unit-test/src/test/resources/data/rdf-star-main/tests/trig/syntax/trig-star-syntax-nested-01.trig create mode 100644 corese-unit-test/src/test/resources/data/rdf-star-main/tests/trig/syntax/trig-star-syntax-nested-02.trig create mode 120000 corese-unit-test/src/test/resources/data/rdf-star-main/tests/turtle/eval/index.html create mode 100644 corese-unit-test/src/test/resources/data/rdf-star-main/tests/turtle/eval/manifest.html create mode 100644 corese-unit-test/src/test/resources/data/rdf-star-main/tests/turtle/eval/manifest.jsonld create mode 100644 corese-unit-test/src/test/resources/data/rdf-star-main/tests/turtle/eval/manifest.ttl create mode 100644 corese-unit-test/src/test/resources/data/rdf-star-main/tests/turtle/eval/turtle-star-eval-01.nt create mode 100644 corese-unit-test/src/test/resources/data/rdf-star-main/tests/turtle/eval/turtle-star-eval-01.ttl create mode 100644 corese-unit-test/src/test/resources/data/rdf-star-main/tests/turtle/eval/turtle-star-eval-02.nt create mode 100644 corese-unit-test/src/test/resources/data/rdf-star-main/tests/turtle/eval/turtle-star-eval-02.ttl create mode 100644 corese-unit-test/src/test/resources/data/rdf-star-main/tests/turtle/eval/turtle-star-eval-annotation-1.nt create mode 100644 corese-unit-test/src/test/resources/data/rdf-star-main/tests/turtle/eval/turtle-star-eval-annotation-1.ttl create mode 100644 corese-unit-test/src/test/resources/data/rdf-star-main/tests/turtle/eval/turtle-star-eval-annotation-2.nt create mode 100644 corese-unit-test/src/test/resources/data/rdf-star-main/tests/turtle/eval/turtle-star-eval-annotation-2.ttl create mode 100644 corese-unit-test/src/test/resources/data/rdf-star-main/tests/turtle/eval/turtle-star-eval-annotation-3.nt create mode 100644 corese-unit-test/src/test/resources/data/rdf-star-main/tests/turtle/eval/turtle-star-eval-annotation-3.ttl create mode 100644 corese-unit-test/src/test/resources/data/rdf-star-main/tests/turtle/eval/turtle-star-eval-annotation-4.nt create mode 100644 corese-unit-test/src/test/resources/data/rdf-star-main/tests/turtle/eval/turtle-star-eval-annotation-4.ttl create mode 100644 corese-unit-test/src/test/resources/data/rdf-star-main/tests/turtle/eval/turtle-star-eval-annotation-5.nt create mode 100644 corese-unit-test/src/test/resources/data/rdf-star-main/tests/turtle/eval/turtle-star-eval-annotation-5.ttl create mode 100644 corese-unit-test/src/test/resources/data/rdf-star-main/tests/turtle/eval/turtle-star-eval-bnode-1.nt create mode 100644 corese-unit-test/src/test/resources/data/rdf-star-main/tests/turtle/eval/turtle-star-eval-bnode-1.ttl create mode 100644 corese-unit-test/src/test/resources/data/rdf-star-main/tests/turtle/eval/turtle-star-eval-bnode-2.nt create mode 100644 corese-unit-test/src/test/resources/data/rdf-star-main/tests/turtle/eval/turtle-star-eval-bnode-2.ttl create mode 100644 corese-unit-test/src/test/resources/data/rdf-star-main/tests/turtle/eval/turtle-star-eval-quoted-annotation-1.nt create mode 100644 corese-unit-test/src/test/resources/data/rdf-star-main/tests/turtle/eval/turtle-star-eval-quoted-annotation-1.ttl create mode 100644 corese-unit-test/src/test/resources/data/rdf-star-main/tests/turtle/eval/turtle-star-eval-quoted-annotation-2.nt create mode 100644 corese-unit-test/src/test/resources/data/rdf-star-main/tests/turtle/eval/turtle-star-eval-quoted-annotation-2.ttl create mode 100644 corese-unit-test/src/test/resources/data/rdf-star-main/tests/turtle/eval/turtle-star-eval-quoted-annotation-3.nt create mode 100644 corese-unit-test/src/test/resources/data/rdf-star-main/tests/turtle/eval/turtle-star-eval-quoted-annotation-3.ttl create mode 120000 corese-unit-test/src/test/resources/data/rdf-star-main/tests/turtle/syntax/index.html create mode 100644 corese-unit-test/src/test/resources/data/rdf-star-main/tests/turtle/syntax/manifest.html create mode 100644 corese-unit-test/src/test/resources/data/rdf-star-main/tests/turtle/syntax/manifest.jsonld create mode 100644 corese-unit-test/src/test/resources/data/rdf-star-main/tests/turtle/syntax/manifest.ttl create mode 100644 corese-unit-test/src/test/resources/data/rdf-star-main/tests/turtle/syntax/nt-ttl-star-bad-syntax-1.ttl create mode 100644 corese-unit-test/src/test/resources/data/rdf-star-main/tests/turtle/syntax/nt-ttl-star-bad-syntax-2.ttl create mode 100644 corese-unit-test/src/test/resources/data/rdf-star-main/tests/turtle/syntax/nt-ttl-star-bad-syntax-3.ttl create mode 100644 corese-unit-test/src/test/resources/data/rdf-star-main/tests/turtle/syntax/nt-ttl-star-bad-syntax-4.ttl create mode 100644 corese-unit-test/src/test/resources/data/rdf-star-main/tests/turtle/syntax/nt-ttl-star-bnode-1.ttl create mode 100644 corese-unit-test/src/test/resources/data/rdf-star-main/tests/turtle/syntax/nt-ttl-star-bnode-2.ttl create mode 100644 corese-unit-test/src/test/resources/data/rdf-star-main/tests/turtle/syntax/nt-ttl-star-nested-1.ttl create mode 100644 corese-unit-test/src/test/resources/data/rdf-star-main/tests/turtle/syntax/nt-ttl-star-nested-2.ttl create mode 100644 corese-unit-test/src/test/resources/data/rdf-star-main/tests/turtle/syntax/nt-ttl-star-syntax-1.ttl create mode 100644 corese-unit-test/src/test/resources/data/rdf-star-main/tests/turtle/syntax/nt-ttl-star-syntax-2.ttl create mode 100644 corese-unit-test/src/test/resources/data/rdf-star-main/tests/turtle/syntax/nt-ttl-star-syntax-3.ttl create mode 100644 corese-unit-test/src/test/resources/data/rdf-star-main/tests/turtle/syntax/nt-ttl-star-syntax-4.ttl create mode 100644 corese-unit-test/src/test/resources/data/rdf-star-main/tests/turtle/syntax/nt-ttl-star-syntax-5.ttl create mode 100644 corese-unit-test/src/test/resources/data/rdf-star-main/tests/turtle/syntax/turtle-star-annotation-1.ttl create mode 100644 corese-unit-test/src/test/resources/data/rdf-star-main/tests/turtle/syntax/turtle-star-annotation-2.ttl create mode 100644 corese-unit-test/src/test/resources/data/rdf-star-main/tests/turtle/syntax/turtle-star-syntax-bad-01.ttl create mode 100644 corese-unit-test/src/test/resources/data/rdf-star-main/tests/turtle/syntax/turtle-star-syntax-bad-02.ttl create mode 100644 corese-unit-test/src/test/resources/data/rdf-star-main/tests/turtle/syntax/turtle-star-syntax-bad-03.ttl create mode 100644 corese-unit-test/src/test/resources/data/rdf-star-main/tests/turtle/syntax/turtle-star-syntax-bad-04.ttl create mode 100644 corese-unit-test/src/test/resources/data/rdf-star-main/tests/turtle/syntax/turtle-star-syntax-bad-05.ttl create mode 100644 corese-unit-test/src/test/resources/data/rdf-star-main/tests/turtle/syntax/turtle-star-syntax-bad-06.ttl create mode 100644 corese-unit-test/src/test/resources/data/rdf-star-main/tests/turtle/syntax/turtle-star-syntax-bad-07.ttl create mode 100644 corese-unit-test/src/test/resources/data/rdf-star-main/tests/turtle/syntax/turtle-star-syntax-bad-08.ttl create mode 100644 corese-unit-test/src/test/resources/data/rdf-star-main/tests/turtle/syntax/turtle-star-syntax-bad-ann-1.ttl create mode 100644 corese-unit-test/src/test/resources/data/rdf-star-main/tests/turtle/syntax/turtle-star-syntax-bad-ann-2.ttl create mode 100644 corese-unit-test/src/test/resources/data/rdf-star-main/tests/turtle/syntax/turtle-star-syntax-basic-01.ttl create mode 100644 corese-unit-test/src/test/resources/data/rdf-star-main/tests/turtle/syntax/turtle-star-syntax-basic-02.ttl create mode 100644 corese-unit-test/src/test/resources/data/rdf-star-main/tests/turtle/syntax/turtle-star-syntax-bnode-01.ttl create mode 100644 corese-unit-test/src/test/resources/data/rdf-star-main/tests/turtle/syntax/turtle-star-syntax-bnode-02.ttl create mode 100644 corese-unit-test/src/test/resources/data/rdf-star-main/tests/turtle/syntax/turtle-star-syntax-bnode-03.ttl create mode 100644 corese-unit-test/src/test/resources/data/rdf-star-main/tests/turtle/syntax/turtle-star-syntax-compound.ttl create mode 100644 corese-unit-test/src/test/resources/data/rdf-star-main/tests/turtle/syntax/turtle-star-syntax-inside-01.ttl create mode 100644 corese-unit-test/src/test/resources/data/rdf-star-main/tests/turtle/syntax/turtle-star-syntax-inside-02.ttl create mode 100644 corese-unit-test/src/test/resources/data/rdf-star-main/tests/turtle/syntax/turtle-star-syntax-nested-01.ttl create mode 100644 corese-unit-test/src/test/resources/data/rdf-star-main/tests/turtle/syntax/turtle-star-syntax-nested-02.ttl create mode 100644 corese-unit-test/src/test/resources/data/rdf-star-main/unstar.html create mode 100644 corese-unit-test/src/test/resources/data/rdf-star-main/w3c.json create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql10/README.html create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/LICENSE create mode 100755 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/README create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/algebra-expressions.txt create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/algebra/.#join-combo-1.srx.1.1 create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/algebra/data-1.rdf create mode 100755 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/algebra/data-1.ttl create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/algebra/data-2.rdf create mode 100755 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/algebra/data-2.ttl create mode 100755 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/algebra/filter-nested-1.rq create mode 100755 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/algebra/filter-nested-1.srx create mode 100755 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/algebra/filter-nested-2.rq create mode 100755 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/algebra/filter-nested-2.srx create mode 100755 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/algebra/filter-placement-1.rq create mode 100755 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/algebra/filter-placement-1.srx create mode 100755 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/algebra/filter-placement-2.rq create mode 100755 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/algebra/filter-placement-2.srx create mode 100755 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/algebra/filter-placement-3.rq create mode 100755 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/algebra/filter-placement-3.srx create mode 100755 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/algebra/filter-scope-1.rq create mode 100755 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/algebra/filter-scope-1.srx create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/algebra/join-combo-1.rq create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/algebra/join-combo-1.srx create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/algebra/join-combo-2.rq create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/algebra/join-combo-2.srx create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/algebra/join-combo-graph-1.rdf create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/algebra/join-combo-graph-1.ttl create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/algebra/join-combo-graph-2.rdf create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/algebra/join-combo-graph-2.ttl create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/algebra/manifest.rdf create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/algebra/manifest.ttl create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/algebra/opt-filter-1.rdf create mode 100755 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/algebra/opt-filter-1.rq create mode 100755 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/algebra/opt-filter-1.srx create mode 100755 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/algebra/opt-filter-1.ttl create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/algebra/opt-filter-2.rdf create mode 100755 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/algebra/opt-filter-2.rq create mode 100755 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/algebra/opt-filter-2.srx create mode 100755 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/algebra/opt-filter-2.ttl create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/algebra/opt-filter-3.rdf create mode 100755 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/algebra/opt-filter-3.rq create mode 100755 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/algebra/opt-filter-3.srx create mode 100755 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/algebra/opt-filter-3.ttl create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/algebra/test.rq create mode 100755 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/algebra/two-nested-opt-alt.rq create mode 100755 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/algebra/two-nested-opt-alt.srx create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/algebra/two-nested-opt.rdf create mode 100755 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/algebra/two-nested-opt.rq create mode 100755 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/algebra/two-nested-opt.srx create mode 100755 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/algebra/two-nested-opt.ttl create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/algebra/var-scope-join-1.rdf create mode 100755 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/algebra/var-scope-join-1.rq create mode 100755 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/algebra/var-scope-join-1.srx create mode 100755 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/algebra/var-scope-join-1.ttl create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/ask/ask-1.rq create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/ask/ask-1.srx create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/ask/ask-4.rq create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/ask/ask-4.srx create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/ask/ask-7.rq create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/ask/ask-7.srx create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/ask/ask-8.rq create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/ask/ask-8.srx create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/ask/data.rdf create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/ask/data.ttl create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/ask/manifest.rdf create mode 100755 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/ask/manifest.ttl create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/basic/base-prefix-1.rq create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/basic/base-prefix-1.srx create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/basic/base-prefix-2.rq create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/basic/base-prefix-2.srx create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/basic/base-prefix-3.rq create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/basic/base-prefix-3.srx create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/basic/base-prefix-4.rq create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/basic/base-prefix-4.srx create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/basic/base-prefix-5.rq create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/basic/base-prefix-5.srx create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/basic/bgp-no-match.rq create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/basic/bgp-no-match.srx create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/basic/data-1.rdf create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/basic/data-1.ttl create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/basic/data-2.rdf create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/basic/data-2.ttl create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/basic/data-3.rdf create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/basic/data-3.ttl create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/basic/data-4.rdf create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/basic/data-4.ttl create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/basic/data-5.rdf create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/basic/data-5.ttl create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/basic/data-6.rdf create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/basic/data-6.ttl create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/basic/data-7.rdf create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/basic/data-7.ttl create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/basic/list-1.rq create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/basic/list-1.srx create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/basic/list-2.rq create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/basic/list-2.srx create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/basic/list-3.rq create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/basic/list-3.srx create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/basic/list-4.rq create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/basic/list-4.srx create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/basic/manifest.rdf create mode 100755 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/basic/manifest.ttl create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/basic/prefix-name-1.rq create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/basic/prefix-name-1.srx create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/basic/quotes-1.rq create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/basic/quotes-1.srx create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/basic/quotes-2.rq create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/basic/quotes-2.srx create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/basic/quotes-3.rq create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/basic/quotes-3.srx create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/basic/quotes-4.rq create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/basic/quotes-4.srx create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/basic/spoo-1.rq create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/basic/spoo-1.srx create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/basic/term-1.rq create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/basic/term-1.srx create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/basic/term-2.rq create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/basic/term-2.srx create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/basic/term-3.rq create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/basic/term-3.srx create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/basic/term-4.rq create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/basic/term-4.srx create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/basic/term-5.rq create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/basic/term-5.srx create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/basic/term-6.rq create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/basic/term-6.srx create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/basic/term-7.rq create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/basic/term-7.srx create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/basic/term-8.rq create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/basic/term-8.srx create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/basic/term-9.rq create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/basic/term-9.srx create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/basic/var-1.rq create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/basic/var-1.srx create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/basic/var-2.rq create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/basic/var-2.srx create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/bnode-coreference/data.rdf create mode 100755 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/bnode-coreference/data.ttl create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/bnode-coreference/manifest.rdf create mode 100755 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/bnode-coreference/manifest.ttl create mode 100755 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/bnode-coreference/query.rq create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/bnode-coreference/result.rdf create mode 100755 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/bnode-coreference/result.ttl create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/boolean-effective-value/data-1.rdf create mode 100755 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/boolean-effective-value/data-1.ttl create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/boolean-effective-value/data-2.rdf create mode 100755 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/boolean-effective-value/data-2.ttl create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/boolean-effective-value/manifest.rdf create mode 100755 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/boolean-effective-value/manifest.ttl create mode 100755 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/boolean-effective-value/query-bev-1.rq create mode 100755 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/boolean-effective-value/query-bev-2.rq create mode 100755 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/boolean-effective-value/query-bev-3.rq create mode 100755 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/boolean-effective-value/query-bev-4.rq create mode 100755 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/boolean-effective-value/query-bev-5.rq create mode 100755 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/boolean-effective-value/query-bev-6.rq create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/boolean-effective-value/query-boolean-literal.rq create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/boolean-effective-value/result-bev-1.rdf create mode 100755 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/boolean-effective-value/result-bev-1.ttl create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/boolean-effective-value/result-bev-2.rdf create mode 100755 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/boolean-effective-value/result-bev-2.ttl create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/boolean-effective-value/result-bev-3.rdf create mode 100755 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/boolean-effective-value/result-bev-3.ttl create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/boolean-effective-value/result-bev-4.rdf create mode 100755 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/boolean-effective-value/result-bev-4.ttl create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/boolean-effective-value/result-bev-5.rdf create mode 100755 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/boolean-effective-value/result-bev-5.ttl create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/boolean-effective-value/result-bev-6.rdf create mode 100755 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/boolean-effective-value/result-bev-6.ttl create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/boolean-effective-value/result-boolean-literal.rdf create mode 100755 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/boolean-effective-value/result-boolean-literal.ttl create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/bound/bound1-result.rdf create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/bound/bound1-result.ttl create mode 100755 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/bound/bound1.rq create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/bound/data.rdf create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/bound/data.ttl create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/bound/manifest.rdf create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/bound/manifest.ttl create mode 100755 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/cast/cast-bool.rq create mode 100755 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/cast/cast-bool.srx create mode 100755 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/cast/cast-dT.rq create mode 100755 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/cast/cast-dT.srx create mode 100755 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/cast/cast-dbl.rq create mode 100755 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/cast/cast-dbl.srx create mode 100755 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/cast/cast-dec.rq create mode 100755 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/cast/cast-dec.srx create mode 100755 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/cast/cast-flt.rq create mode 100755 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/cast/cast-flt.srx create mode 100755 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/cast/cast-int.rq create mode 100755 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/cast/cast-int.srx create mode 100755 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/cast/cast-str.rq create mode 100755 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/cast/cast-str.srx create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/cast/data.rdf create mode 100755 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/cast/data.ttl create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/cast/manifest.rdf create mode 100755 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/cast/manifest.ttl create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/construct/data-ident.rdf create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/construct/data-ident.ttl create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/construct/data-opt.rdf create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/construct/data-opt.ttl create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/construct/data-reif.rdf create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/construct/data-reif.ttl create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/construct/manifest.rdf create mode 100755 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/construct/manifest.ttl create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/construct/query-construct-optional.rq create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/construct/query-ident.rq create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/construct/query-reif-1.rq create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/construct/query-reif-2.rq create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/construct/query-subgraph.rq create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/construct/result-construct-optional.rdf create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/construct/result-construct-optional.ttl create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/construct/result-ident.rdf create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/construct/result-ident.ttl create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/construct/result-reif.rdf create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/construct/result-reif.ttl create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/construct/result-subgraph.rdf create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/construct/result-subgraph.ttl create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/dataset/data-g1-dup.rdf create mode 100755 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/dataset/data-g1-dup.ttl create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/dataset/data-g1.rdf create mode 100755 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/dataset/data-g1.ttl create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/dataset/data-g2-dup.rdf create mode 100755 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/dataset/data-g2-dup.ttl create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/dataset/data-g2.rdf create mode 100755 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/dataset/data-g2.ttl create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/dataset/data-g3-dup.rdf create mode 100755 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/dataset/data-g3-dup.ttl create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/dataset/data-g3.rdf create mode 100755 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/dataset/data-g3.ttl create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/dataset/data-g4-dup.rdf create mode 100755 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/dataset/data-g4-dup.ttl create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/dataset/data-g4.rdf create mode 100755 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/dataset/data-g4.ttl create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/dataset/dataset-01.rdf create mode 100755 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/dataset/dataset-01.rq create mode 100755 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/dataset/dataset-01.ttl create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/dataset/dataset-02.rdf create mode 100755 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/dataset/dataset-02.rq create mode 100755 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/dataset/dataset-02.ttl create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/dataset/dataset-03.rdf create mode 100755 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/dataset/dataset-03.rq create mode 100755 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/dataset/dataset-03.ttl create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/dataset/dataset-04.rdf create mode 100755 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/dataset/dataset-04.rq create mode 100755 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/dataset/dataset-04.ttl create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/dataset/dataset-05.rdf create mode 100755 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/dataset/dataset-05.rq create mode 100755 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/dataset/dataset-05.ttl create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/dataset/dataset-06.rdf create mode 100755 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/dataset/dataset-06.rq create mode 100755 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/dataset/dataset-06.ttl create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/dataset/dataset-07.rdf create mode 100755 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/dataset/dataset-07.rq create mode 100755 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/dataset/dataset-07.ttl create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/dataset/dataset-08.rdf create mode 100755 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/dataset/dataset-08.rq create mode 100755 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/dataset/dataset-08.ttl create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/dataset/dataset-09.rdf create mode 100755 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/dataset/dataset-09.rq create mode 100755 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/dataset/dataset-09.ttl create mode 100755 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/dataset/dataset-09b.rq create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/dataset/dataset-10.rdf create mode 100755 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/dataset/dataset-10.rq create mode 100755 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/dataset/dataset-10.ttl create mode 100755 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/dataset/dataset-10b.rq create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/dataset/dataset-11.rdf create mode 100755 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/dataset/dataset-11.rq create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/dataset/dataset-11.ttl create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/dataset/dataset-12.rdf create mode 100755 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/dataset/dataset-12.rq create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/dataset/dataset-12.ttl create mode 100755 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/dataset/dataset-12b.rq create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/dataset/manifest.rdf create mode 100755 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/dataset/manifest.ttl create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/distinct/data-all.rdf create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/distinct/data-all.ttl create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/distinct/data-node.rdf create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/distinct/data-node.ttl create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/distinct/data-num.rdf create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/distinct/data-num.ttl create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/distinct/data-opt.rdf create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/distinct/data-opt.ttl create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/distinct/data-star.rdf create mode 100755 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/distinct/data-star.ttl create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/distinct/data-str.rdf create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/distinct/data-str.ttl create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/distinct/distinct-1-results.srx create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/distinct/distinct-1.rq create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/distinct/distinct-2.rq create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/distinct/distinct-all.srx create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/distinct/distinct-node.srx create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/distinct/distinct-num.srx create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/distinct/distinct-opt.srx create mode 100755 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/distinct/distinct-star-1.rq create mode 100755 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/distinct/distinct-star-1.srx create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/distinct/distinct-str.srx create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/distinct/manifest.rdf create mode 100755 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/distinct/manifest.ttl create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/distinct/no-distinct-1.rq create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/distinct/no-distinct-2.rq create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/distinct/no-distinct-all.srx create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/distinct/no-distinct-node.srx create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/distinct/no-distinct-num.srx create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/distinct/no-distinct-opt.srx create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/distinct/no-distinct-str.srx create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/expr-builtin/data-builtin-1.rdf create mode 100755 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/expr-builtin/data-builtin-1.ttl create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/expr-builtin/data-builtin-2.rdf create mode 100755 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/expr-builtin/data-builtin-2.ttl create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/expr-builtin/data-langMatches-de.rdf create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/expr-builtin/data-langMatches-de.ttl create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/expr-builtin/data-langMatches.rdf create mode 100755 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/expr-builtin/data-langMatches.ttl create mode 100755 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/expr-builtin/lang-case-insensitive-eq.srx create mode 100755 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/expr-builtin/lang-case-insensitive-ne.srx create mode 100755 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/expr-builtin/lang-case-sensitivity-eq.rq create mode 100755 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/expr-builtin/lang-case-sensitivity-ne.rq create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/expr-builtin/lang-case-sensitivity.rdf create mode 100755 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/expr-builtin/lang-case-sensitivity.ttl create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/expr-builtin/manifest.rdf create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/expr-builtin/manifest.ttl create mode 100755 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/expr-builtin/q-blank-1.rq create mode 100755 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/expr-builtin/q-datatype-1.rq create mode 100755 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/expr-builtin/q-datatype-2.rq create mode 100755 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/expr-builtin/q-datatype-3.rq create mode 100755 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/expr-builtin/q-iri-1.rq create mode 100755 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/expr-builtin/q-isliteral-1.rq create mode 100755 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/expr-builtin/q-lang-1.rq create mode 100755 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/expr-builtin/q-lang-2.rq create mode 100755 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/expr-builtin/q-lang-3.rq create mode 100755 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/expr-builtin/q-langMatches-1.rq create mode 100755 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/expr-builtin/q-langMatches-2.rq create mode 100755 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/expr-builtin/q-langMatches-3.rq create mode 100755 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/expr-builtin/q-langMatches-4.rq create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/expr-builtin/q-langMatches-de-de.rq create mode 100755 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/expr-builtin/q-str-1.rq create mode 100755 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/expr-builtin/q-str-2.rq create mode 100755 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/expr-builtin/q-str-3.rq create mode 100755 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/expr-builtin/q-str-4.rq create mode 100755 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/expr-builtin/q-uri-1.rq create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/expr-builtin/result-blank-1.rdf create mode 100755 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/expr-builtin/result-blank-1.ttl create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/expr-builtin/result-datatype-1.rdf create mode 100755 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/expr-builtin/result-datatype-1.ttl create mode 100755 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/expr-builtin/result-datatype-2.srx create mode 100755 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/expr-builtin/result-datatype-3.srx create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/expr-builtin/result-iri-1.rdf create mode 100755 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/expr-builtin/result-iri-1.ttl create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/expr-builtin/result-isliteral-1.rdf create mode 100755 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/expr-builtin/result-isliteral-1.ttl create mode 100755 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/expr-builtin/result-lang-1.srx create mode 100755 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/expr-builtin/result-lang-2.srx create mode 100755 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/expr-builtin/result-lang-3.srx create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/expr-builtin/result-langMatches-1.rdf create mode 100755 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/expr-builtin/result-langMatches-1.ttl create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/expr-builtin/result-langMatches-2.rdf create mode 100755 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/expr-builtin/result-langMatches-2.ttl create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/expr-builtin/result-langMatches-3.rdf create mode 100755 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/expr-builtin/result-langMatches-3.ttl create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/expr-builtin/result-langMatches-4.rdf create mode 100755 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/expr-builtin/result-langMatches-4.ttl create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/expr-builtin/result-langMatches-de.rdf create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/expr-builtin/result-langMatches-de.ttl create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/expr-builtin/result-sameTerm-eq.rdf create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/expr-builtin/result-sameTerm-eq.ttl create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/expr-builtin/result-sameTerm-not-eq.rdf create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/expr-builtin/result-sameTerm-not-eq.ttl create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/expr-builtin/result-sameTerm.rdf create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/expr-builtin/result-sameTerm.ttl create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/expr-builtin/result-str-1.rdf create mode 100755 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/expr-builtin/result-str-1.ttl create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/expr-builtin/result-str-2.rdf create mode 100755 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/expr-builtin/result-str-2.ttl create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/expr-builtin/result-str-3.rdf create mode 100755 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/expr-builtin/result-str-3.ttl create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/expr-builtin/result-str-4.rdf create mode 100755 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/expr-builtin/result-str-4.ttl create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/expr-builtin/result-uri-1.rdf create mode 100755 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/expr-builtin/result-uri-1.ttl create mode 100755 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/expr-builtin/sameTerm-eq.rq create mode 100755 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/expr-builtin/sameTerm-not-eq.rq create mode 100755 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/expr-builtin/sameTerm.rq create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/expr-equals/data-eq.rdf create mode 100755 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/expr-equals/data-eq.ttl create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/expr-equals/manifest.rdf create mode 100755 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/expr-equals/manifest.ttl create mode 100755 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/expr-equals/query-eq-1.rq create mode 100755 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/expr-equals/query-eq-2.rq create mode 100755 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/expr-equals/query-eq-3.rq create mode 100755 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/expr-equals/query-eq-4.rq create mode 100755 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/expr-equals/query-eq-5.rq create mode 100755 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/expr-equals/query-eq-graph-1.rq create mode 100755 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/expr-equals/query-eq-graph-2.rq create mode 100755 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/expr-equals/query-eq-graph-3.rq create mode 100755 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/expr-equals/query-eq-graph-4.rq create mode 100755 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/expr-equals/query-eq-graph-5.rq create mode 100755 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/expr-equals/query-eq2-1.rq create mode 100755 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/expr-equals/query-eq2-2.rq create mode 100755 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/expr-equals/query-eq2-graph-1.rq create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/expr-equals/result-eq-1.rdf create mode 100755 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/expr-equals/result-eq-1.ttl create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/expr-equals/result-eq-2.rdf create mode 100755 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/expr-equals/result-eq-2.ttl create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/expr-equals/result-eq-3.rdf create mode 100755 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/expr-equals/result-eq-3.ttl create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/expr-equals/result-eq-4.rdf create mode 100755 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/expr-equals/result-eq-4.ttl create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/expr-equals/result-eq-5.rdf create mode 100755 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/expr-equals/result-eq-5.ttl create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/expr-equals/result-eq-graph-1.rdf create mode 100755 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/expr-equals/result-eq-graph-1.ttl create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/expr-equals/result-eq-graph-2.rdf create mode 100755 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/expr-equals/result-eq-graph-2.ttl create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/expr-equals/result-eq-graph-3.rdf create mode 100755 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/expr-equals/result-eq-graph-3.ttl create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/expr-equals/result-eq-graph-4.rdf create mode 100755 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/expr-equals/result-eq-graph-4.ttl create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/expr-equals/result-eq-graph-5.rdf create mode 100755 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/expr-equals/result-eq-graph-5.ttl create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/expr-equals/result-eq2-1.rdf create mode 100755 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/expr-equals/result-eq2-1.ttl create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/expr-equals/result-eq2-2.rdf create mode 100755 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/expr-equals/result-eq2-2.ttl create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/expr-equals/result-eq2-graph-1.rdf create mode 100755 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/expr-equals/result-eq2-graph-1.ttl create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/expr-ops/data.rdf create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/expr-ops/data.ttl create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/expr-ops/manifest.rdf create mode 100755 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/expr-ops/manifest.ttl create mode 100755 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/expr-ops/query-ge-1.rq create mode 100755 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/expr-ops/query-le-1.rq create mode 100755 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/expr-ops/query-minus-1.rq create mode 100755 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/expr-ops/query-mul-1.rq create mode 100755 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/expr-ops/query-plus-1.rq create mode 100755 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/expr-ops/query-unminus-1.rq create mode 100755 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/expr-ops/query-unplus-1.rq create mode 100755 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/expr-ops/result-ge-1.srx create mode 100755 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/expr-ops/result-le-1.srx create mode 100755 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/expr-ops/result-minus-1.srx create mode 100755 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/expr-ops/result-mul-1.srx create mode 100755 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/expr-ops/result-plus-1.srx create mode 100755 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/expr-ops/result-unminus-1.srx create mode 100755 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/expr-ops/result-unplus-1.srx create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/extended-manifest-evaluation.rdf create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/extended-manifest-evaluation.ttl create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/files-to-fix create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/foo create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/graph/data-g1.rdf create mode 100755 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/graph/data-g1.ttl create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/graph/data-g2.rdf create mode 100755 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/graph/data-g2.ttl create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/graph/data-g3-dup.rdf create mode 100755 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/graph/data-g3-dup.ttl create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/graph/data-g3.rdf create mode 100755 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/graph/data-g3.ttl create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/graph/data-g4.rdf create mode 100755 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/graph/data-g4.ttl create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/graph/graph-01.rdf create mode 100755 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/graph/graph-01.rq create mode 100755 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/graph/graph-01.ttl create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/graph/graph-02.rdf create mode 100755 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/graph/graph-02.rq create mode 100755 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/graph/graph-02.ttl create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/graph/graph-03.rdf create mode 100755 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/graph/graph-03.rq create mode 100755 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/graph/graph-03.ttl create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/graph/graph-04.rdf create mode 100755 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/graph/graph-04.rq create mode 100755 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/graph/graph-04.ttl create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/graph/graph-05.rdf create mode 100755 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/graph/graph-05.rq create mode 100755 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/graph/graph-05.ttl create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/graph/graph-06.rdf create mode 100755 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/graph/graph-06.rq create mode 100755 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/graph/graph-06.ttl create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/graph/graph-07.rdf create mode 100755 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/graph/graph-07.rq create mode 100755 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/graph/graph-07.ttl create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/graph/graph-08.rdf create mode 100755 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/graph/graph-08.rq create mode 100755 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/graph/graph-08.ttl create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/graph/graph-09.rdf create mode 100755 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/graph/graph-09.rq create mode 100755 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/graph/graph-09.ttl create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/graph/graph-10.rdf create mode 100755 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/graph/graph-10.rq create mode 100755 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/graph/graph-10.ttl create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/graph/graph-11.rdf create mode 100755 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/graph/graph-11.rq create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/graph/graph-11.ttl create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/graph/manifest.rdf create mode 100755 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/graph/manifest.ttl create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/i18n/.htaccess create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/i18n/kanji-01-results.rdf create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/i18n/kanji-01-results.ttl create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/i18n/kanji-01.rq create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/i18n/kanji-02-results.rdf create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/i18n/kanji-02-results.ttl create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/i18n/kanji-02.rq create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/i18n/kanji.rdf create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/i18n/kanji.ttl create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/i18n/manifest.rdf create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/i18n/manifest.ttl create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/i18n/normalization-01-results.rdf create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/i18n/normalization-01-results.ttl create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/i18n/normalization-01.rdf create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/i18n/normalization-01.rq create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/i18n/normalization-01.ttl create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/i18n/normalization-02-results.rdf create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/i18n/normalization-02-results.ttl create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/i18n/normalization-02.rdf create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/i18n/normalization-02.rq create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/i18n/normalization-02.ttl create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/i18n/normalization-03-results.rdf create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/i18n/normalization-03-results.ttl create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/i18n/normalization-03.rdf create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/i18n/normalization-03.rq create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/i18n/normalization-03.ttl create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/i18n/test.rq create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/manifest-evaluation.rdf create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/manifest-evaluation.ttl create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/manifest-syntax.rdf create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/manifest-syntax.ttl create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/open-world/data-1.rdf create mode 100755 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/open-world/data-1.ttl create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/open-world/data-2.rdf create mode 100755 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/open-world/data-2.ttl create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/open-world/data-3.rdf create mode 100755 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/open-world/data-3.ttl create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/open-world/data-4.rdf create mode 100755 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/open-world/data-4.ttl create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/open-world/date-1-result.srx create mode 100755 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/open-world/date-1.rq create mode 100755 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/open-world/date-2-result.srx create mode 100755 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/open-world/date-2.rq create mode 100755 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/open-world/date-3-result.srx create mode 100755 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/open-world/date-3.rq create mode 100755 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/open-world/date-4-result.srx create mode 100755 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/open-world/date-4.rq create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/open-world/manifest.rdf create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/open-world/manifest.ttl create mode 100755 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/open-world/open-cmp-01-result.srx create mode 100755 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/open-world/open-cmp-01.rq create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/open-world/open-cmp-02-result.srx create mode 100755 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/open-world/open-cmp-02.rq create mode 100755 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/open-world/open-eq-01-result.srx create mode 100755 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/open-world/open-eq-01.rq create mode 100755 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/open-world/open-eq-02-result.srx create mode 100755 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/open-world/open-eq-02.rq create mode 100755 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/open-world/open-eq-03-result.srx create mode 100755 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/open-world/open-eq-03.rq create mode 100755 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/open-world/open-eq-04-result.srx create mode 100755 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/open-world/open-eq-04.rq create mode 100755 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/open-world/open-eq-05-result.srx create mode 100755 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/open-world/open-eq-05.rq create mode 100755 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/open-world/open-eq-06-result.srx create mode 100755 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/open-world/open-eq-06.rq create mode 100755 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/open-world/open-eq-07-result.srx create mode 100755 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/open-world/open-eq-07.rq create mode 100755 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/open-world/open-eq-08-result.srx create mode 100755 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/open-world/open-eq-08.rq create mode 100755 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/open-world/open-eq-09-result.srx create mode 100755 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/open-world/open-eq-09.rq create mode 100755 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/open-world/open-eq-10-result.srx create mode 100755 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/open-world/open-eq-10.rq create mode 100755 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/open-world/open-eq-11-result.srx create mode 100755 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/open-world/open-eq-11.rq create mode 100755 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/open-world/open-eq-12-result.srx create mode 100755 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/open-world/open-eq-12.rq create mode 100755 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/open-world/sameTerm-StringSimpleLiteralCmp.srx create mode 100755 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/open-world/sameTerm-eq-StringSimpleLiteralCmp.srx create mode 100755 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/open-world/sameTerm-eq.srx create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/open-world/sameTerm-manifest.rdf create mode 100755 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/open-world/sameTerm-manifest.ttl create mode 100755 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/open-world/sameTerm-not-eq-StringSimpleLiteralCmp.srx create mode 100755 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/open-world/sameTerm-not-eq.srx create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/open-world/sameTerm.rdf create mode 100755 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/open-world/sameTerm.srx create mode 100755 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/open-world/sameTerm.ttl create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/optional-filter/data-1.rdf create mode 100755 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/optional-filter/data-1.ttl create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/optional-filter/expr-1-result.rdf create mode 100755 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/optional-filter/expr-1-result.ttl create mode 100755 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/optional-filter/expr-1.rq create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/optional-filter/expr-2-result.rdf create mode 100755 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/optional-filter/expr-2-result.ttl create mode 100755 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/optional-filter/expr-2.rq create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/optional-filter/expr-3-result.rdf create mode 100755 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/optional-filter/expr-3-result.ttl create mode 100755 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/optional-filter/expr-3.rq create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/optional-filter/expr-4-result.rdf create mode 100755 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/optional-filter/expr-4-result.ttl create mode 100755 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/optional-filter/expr-4.rq create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/optional-filter/expr-5-result-not-simplified.rdf create mode 100755 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/optional-filter/expr-5-result-not-simplified.ttl create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/optional-filter/expr-5-result-simplified.rdf create mode 100755 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/optional-filter/expr-5-result-simplified.ttl create mode 100755 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/optional-filter/expr-5.rq create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/optional-filter/manifest.rdf create mode 100755 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/optional-filter/manifest.ttl create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/optional/complex-data-1.rdf create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/optional/complex-data-1.ttl create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/optional/complex-data-2.rdf create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/optional/complex-data-2.ttl create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/optional/data.rdf create mode 100755 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/optional/data.ttl create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/optional/manifest.rdf create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/optional/manifest.ttl create mode 100755 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/optional/q-opt-1.rq create mode 100755 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/optional/q-opt-2.rq create mode 100755 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/optional/q-opt-3.rq create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/optional/q-opt-complex-1.rq create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/optional/q-opt-complex-2.rq create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/optional/q-opt-complex-2.save create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/optional/q-opt-complex-3.rq create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/optional/q-opt-complex-4.rq create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/optional/result-opt-1.rdf create mode 100755 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/optional/result-opt-1.ttl create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/optional/result-opt-2.rdf create mode 100755 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/optional/result-opt-2.ttl create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/optional/result-opt-3.rdf create mode 100755 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/optional/result-opt-3.ttl create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/optional/result-opt-complex-1.rdf create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/optional/result-opt-complex-1.ttl create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/optional/result-opt-complex-2.rdf create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/optional/result-opt-complex-2.ttl create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/optional/result-opt-complex-3.rdf create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/optional/result-opt-complex-3.ttl create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/optional/result-opt-complex-4.rdf create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/optional/result-opt-complex-4.ttl create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/reduced/manifest.rdf create mode 100755 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/reduced/manifest.ttl create mode 100755 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/reduced/reduced-1.rq create mode 100755 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/reduced/reduced-1.srx create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/reduced/reduced-2.rq create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/reduced/reduced-2.srx create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/reduced/reduced-star.rdf create mode 100755 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/reduced/reduced-star.ttl create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/reduced/reduced-str.rdf create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/reduced/reduced-str.ttl create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/regex/manifest.rdf create mode 100755 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/regex/manifest.ttl create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/regex/regex-data-01.rdf create mode 100755 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/regex/regex-data-01.ttl create mode 100755 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/regex/regex-query-001.rq create mode 100755 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/regex/regex-query-002.rq create mode 100755 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/regex/regex-query-003.rq create mode 100755 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/regex/regex-query-004.rq create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/regex/regex-result-001.rdf create mode 100755 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/regex/regex-result-001.ttl create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/regex/regex-result-002.rdf create mode 100755 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/regex/regex-result-002.ttl create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/regex/regex-result-003.rdf create mode 100755 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/regex/regex-result-003.ttl create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/regex/regex-result-004.rdf create mode 100755 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/regex/regex-result-004.ttl create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/solution-seq/data.rdf create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/solution-seq/data.ttl create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/solution-seq/manifest.rdf create mode 100755 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/solution-seq/manifest.ttl create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/solution-seq/slice-01.rq create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/solution-seq/slice-02.rq create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/solution-seq/slice-03.rq create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/solution-seq/slice-04.rq create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/solution-seq/slice-10.rq create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/solution-seq/slice-11.rq create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/solution-seq/slice-12.rq create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/solution-seq/slice-13.rq create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/solution-seq/slice-20.rq create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/solution-seq/slice-21.rq create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/solution-seq/slice-22.rq create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/solution-seq/slice-23.rq create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/solution-seq/slice-24.rq create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/solution-seq/slice-results-01.rdf create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/solution-seq/slice-results-01.ttl create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/solution-seq/slice-results-02.rdf create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/solution-seq/slice-results-02.ttl create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/solution-seq/slice-results-03.rdf create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/solution-seq/slice-results-03.ttl create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/solution-seq/slice-results-04.rdf create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/solution-seq/slice-results-04.ttl create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/solution-seq/slice-results-10.rdf create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/solution-seq/slice-results-10.ttl create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/solution-seq/slice-results-11.rdf create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/solution-seq/slice-results-11.ttl create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/solution-seq/slice-results-12.rdf create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/solution-seq/slice-results-12.ttl create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/solution-seq/slice-results-13.rdf create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/solution-seq/slice-results-13.ttl create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/solution-seq/slice-results-20.rdf create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/solution-seq/slice-results-20.ttl create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/solution-seq/slice-results-21.rdf create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/solution-seq/slice-results-21.ttl create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/solution-seq/slice-results-22.rdf create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/solution-seq/slice-results-22.ttl create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/solution-seq/slice-results-23.rdf create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/solution-seq/slice-results-23.ttl create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/solution-seq/slice-results-24.rdf create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/solution-seq/slice-results-24.ttl create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/sort/data-sort-1.rdf create mode 100755 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/sort/data-sort-1.ttl create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/sort/data-sort-11.rdf create mode 100755 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/sort/data-sort-11.ttl create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/sort/data-sort-3.rdf create mode 100755 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/sort/data-sort-3.ttl create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/sort/data-sort-4.rdf create mode 100755 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/sort/data-sort-4.ttl create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/sort/data-sort-6.rdf create mode 100755 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/sort/data-sort-6.ttl create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/sort/data-sort-7.rdf create mode 100755 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/sort/data-sort-7.ttl create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/sort/data-sort-8.rdf create mode 100755 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/sort/data-sort-8.ttl create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/sort/data-sort-9.rdf create mode 100755 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/sort/data-sort-9.ttl create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/sort/data-sort-builtin.rdf create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/sort/data-sort-builtin.ttl create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/sort/data-sort-function.rdf create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/sort/data-sort-function.ttl create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/sort/data-sort-numbers.rdf create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/sort/data-sort-numbers.ttl create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/sort/extended-manifest.rdf create mode 100755 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/sort/extended-manifest.ttl create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/sort/manifest.rdf create mode 100755 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/sort/manifest.ttl create mode 100755 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/sort/query-sort-1.rq create mode 100755 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/sort/query-sort-10.rq create mode 100755 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/sort/query-sort-2.rq create mode 100755 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/sort/query-sort-3.rq create mode 100755 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/sort/query-sort-4.rq create mode 100755 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/sort/query-sort-5.rq create mode 100755 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/sort/query-sort-6.rq create mode 100755 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/sort/query-sort-9.rq create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/sort/query-sort-builtin.rq create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/sort/query-sort-function.rq create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/sort/query-sort-numbers.rq create mode 100755 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/sort/result-sort-1.rdf create mode 100755 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/sort/result-sort-10.rdf create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/sort/result-sort-11.rdf create mode 100755 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/sort/result-sort-11.ttl create mode 100755 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/sort/result-sort-2.rdf create mode 100755 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/sort/result-sort-3.rdf create mode 100755 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/sort/result-sort-4.rdf create mode 100755 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/sort/result-sort-5.rdf create mode 100755 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/sort/result-sort-6.rdf create mode 100755 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/sort/result-sort-7.rdf create mode 100755 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/sort/result-sort-8.rdf create mode 100755 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/sort/result-sort-9.rdf create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/sort/result-sort-builtin.rdf create mode 100755 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/sort/result-sort-builtin.ttl create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/sort/result-sort-function.rdf create mode 100755 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/sort/result-sort-function.ttl create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/sort/result-sort-numbers.rdf create mode 100755 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/sort/result-sort-numbers.ttl create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/syntax-sparql1/manifest.rdf create mode 100755 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/syntax-sparql1/manifest.ttl create mode 100755 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/syntax-sparql1/syntax-basic-01.rq create mode 100755 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/syntax-sparql1/syntax-basic-02.rq create mode 100755 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/syntax-sparql1/syntax-basic-03.rq create mode 100755 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/syntax-sparql1/syntax-basic-04.rq create mode 100755 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/syntax-sparql1/syntax-basic-05.rq create mode 100755 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/syntax-sparql1/syntax-basic-06.rq create mode 100755 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/syntax-sparql1/syntax-bnodes-01.rq create mode 100755 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/syntax-sparql1/syntax-bnodes-02.rq create mode 100755 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/syntax-sparql1/syntax-bnodes-03.rq create mode 100755 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/syntax-sparql1/syntax-bnodes-04.rq create mode 100755 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/syntax-sparql1/syntax-bnodes-05.rq create mode 100755 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/syntax-sparql1/syntax-expr-01.rq create mode 100755 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/syntax-sparql1/syntax-expr-02.rq create mode 100755 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/syntax-sparql1/syntax-expr-03.rq create mode 100755 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/syntax-sparql1/syntax-expr-04.rq create mode 100755 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/syntax-sparql1/syntax-expr-05.rq create mode 100755 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/syntax-sparql1/syntax-forms-01.rq create mode 100755 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/syntax-sparql1/syntax-forms-02.rq create mode 100755 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/syntax-sparql1/syntax-limit-offset-01.rq create mode 100755 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/syntax-sparql1/syntax-limit-offset-02.rq create mode 100755 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/syntax-sparql1/syntax-limit-offset-03.rq create mode 100755 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/syntax-sparql1/syntax-limit-offset-04.rq create mode 100755 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/syntax-sparql1/syntax-lists-01.rq create mode 100755 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/syntax-sparql1/syntax-lists-02.rq create mode 100755 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/syntax-sparql1/syntax-lists-03.rq create mode 100755 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/syntax-sparql1/syntax-lists-04.rq create mode 100755 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/syntax-sparql1/syntax-lists-05.rq create mode 100755 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/syntax-sparql1/syntax-lit-01.rq create mode 100755 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/syntax-sparql1/syntax-lit-02.rq create mode 100755 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/syntax-sparql1/syntax-lit-03.rq create mode 100755 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/syntax-sparql1/syntax-lit-04.rq create mode 100755 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/syntax-sparql1/syntax-lit-05.rq create mode 100755 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/syntax-sparql1/syntax-lit-06.rq create mode 100755 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/syntax-sparql1/syntax-lit-07.rq create mode 100755 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/syntax-sparql1/syntax-lit-08.rq create mode 100755 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/syntax-sparql1/syntax-lit-09.rq create mode 100755 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/syntax-sparql1/syntax-lit-10.rq create mode 100755 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/syntax-sparql1/syntax-lit-11.rq create mode 100755 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/syntax-sparql1/syntax-lit-12.rq create mode 100755 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/syntax-sparql1/syntax-lit-13.rq create mode 100755 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/syntax-sparql1/syntax-lit-14.rq create mode 100755 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/syntax-sparql1/syntax-lit-15.rq create mode 100755 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/syntax-sparql1/syntax-lit-16.rq create mode 100755 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/syntax-sparql1/syntax-lit-17.rq create mode 100755 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/syntax-sparql1/syntax-lit-18.rq create mode 100755 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/syntax-sparql1/syntax-lit-19.rq create mode 100755 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/syntax-sparql1/syntax-lit-20.rq create mode 100755 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/syntax-sparql1/syntax-order-01.rq create mode 100755 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/syntax-sparql1/syntax-order-02.rq create mode 100755 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/syntax-sparql1/syntax-order-03.rq create mode 100755 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/syntax-sparql1/syntax-order-04.rq create mode 100755 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/syntax-sparql1/syntax-order-05.rq create mode 100755 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/syntax-sparql1/syntax-order-06.rq create mode 100755 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/syntax-sparql1/syntax-order-07.rq create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/syntax-sparql1/syntax-pat-01.rq create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/syntax-sparql1/syntax-pat-02.rq create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/syntax-sparql1/syntax-pat-03.rq create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/syntax-sparql1/syntax-pat-04.rq create mode 100755 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/syntax-sparql1/syntax-qname-01.rq create mode 100755 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/syntax-sparql1/syntax-qname-02.rq create mode 100755 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/syntax-sparql1/syntax-qname-03.rq create mode 100755 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/syntax-sparql1/syntax-qname-04.rq create mode 100755 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/syntax-sparql1/syntax-qname-05.rq create mode 100755 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/syntax-sparql1/syntax-qname-06.rq create mode 100755 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/syntax-sparql1/syntax-qname-07.rq create mode 100755 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/syntax-sparql1/syntax-qname-08.rq create mode 100755 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/syntax-sparql1/syntax-struct-01.rq create mode 100755 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/syntax-sparql1/syntax-struct-02.rq create mode 100755 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/syntax-sparql1/syntax-struct-03.rq create mode 100755 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/syntax-sparql1/syntax-struct-05.rq create mode 100755 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/syntax-sparql1/syntax-struct-06.rq create mode 100755 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/syntax-sparql1/syntax-struct-07.rq create mode 100755 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/syntax-sparql1/syntax-struct-08.rq create mode 100755 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/syntax-sparql1/syntax-struct-09.rq create mode 100755 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/syntax-sparql1/syntax-struct-10.rq create mode 100755 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/syntax-sparql1/syntax-struct-11.rq create mode 100755 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/syntax-sparql1/syntax-struct-12.rq create mode 100755 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/syntax-sparql1/syntax-struct-13.rq create mode 100755 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/syntax-sparql1/syntax-struct-14.rq create mode 100755 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/syntax-sparql1/syntax-union-01.rq create mode 100755 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/syntax-sparql1/syntax-union-02.rq create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/syntax-sparql2/manifest.rdf create mode 100755 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/syntax-sparql2/manifest.ttl create mode 100755 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/syntax-sparql2/syntax-bnode-01.rq create mode 100755 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/syntax-sparql2/syntax-bnode-02.rq create mode 100755 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/syntax-sparql2/syntax-bnode-03.rq create mode 100755 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/syntax-sparql2/syntax-dataset-01.rq create mode 100755 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/syntax-sparql2/syntax-dataset-02.rq create mode 100755 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/syntax-sparql2/syntax-dataset-03.rq create mode 100755 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/syntax-sparql2/syntax-dataset-04.rq create mode 100755 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/syntax-sparql2/syntax-esc-01.rq create mode 100755 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/syntax-sparql2/syntax-esc-02.rq create mode 100755 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/syntax-sparql2/syntax-esc-03.rq create mode 100755 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/syntax-sparql2/syntax-esc-04.rq create mode 100755 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/syntax-sparql2/syntax-esc-05.rq create mode 100755 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/syntax-sparql2/syntax-form-ask-02.rq create mode 100755 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/syntax-sparql2/syntax-form-construct01.rq create mode 100755 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/syntax-sparql2/syntax-form-construct02.rq create mode 100755 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/syntax-sparql2/syntax-form-construct03.rq create mode 100755 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/syntax-sparql2/syntax-form-construct04.rq create mode 100755 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/syntax-sparql2/syntax-form-construct06.rq create mode 100755 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/syntax-sparql2/syntax-form-describe01.rq create mode 100755 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/syntax-sparql2/syntax-form-describe02.rq create mode 100755 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/syntax-sparql2/syntax-form-select-01.rq create mode 100755 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/syntax-sparql2/syntax-form-select-02.rq create mode 100755 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/syntax-sparql2/syntax-function-01.rq create mode 100755 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/syntax-sparql2/syntax-function-02.rq create mode 100755 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/syntax-sparql2/syntax-function-03.rq create mode 100755 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/syntax-sparql2/syntax-function-04.rq create mode 100755 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/syntax-sparql2/syntax-general-01.rq create mode 100755 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/syntax-sparql2/syntax-general-02.rq create mode 100755 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/syntax-sparql2/syntax-general-03.rq create mode 100755 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/syntax-sparql2/syntax-general-04.rq create mode 100755 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/syntax-sparql2/syntax-general-05.rq create mode 100755 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/syntax-sparql2/syntax-general-06.rq create mode 100755 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/syntax-sparql2/syntax-general-07.rq create mode 100755 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/syntax-sparql2/syntax-general-08.rq create mode 100755 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/syntax-sparql2/syntax-general-09.rq create mode 100755 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/syntax-sparql2/syntax-general-10.rq create mode 100755 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/syntax-sparql2/syntax-general-11.rq create mode 100755 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/syntax-sparql2/syntax-general-12.rq create mode 100755 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/syntax-sparql2/syntax-general-13.rq create mode 100755 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/syntax-sparql2/syntax-general-14.rq create mode 100755 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/syntax-sparql2/syntax-graph-01.rq create mode 100755 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/syntax-sparql2/syntax-graph-02.rq create mode 100755 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/syntax-sparql2/syntax-graph-03.rq create mode 100755 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/syntax-sparql2/syntax-graph-04.rq create mode 100755 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/syntax-sparql2/syntax-graph-05.rq create mode 100755 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/syntax-sparql2/syntax-keywords-01.rq create mode 100755 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/syntax-sparql2/syntax-keywords-02.rq create mode 100755 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/syntax-sparql2/syntax-keywords-03.rq create mode 100755 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/syntax-sparql2/syntax-lists-01.rq create mode 100755 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/syntax-sparql2/syntax-lists-02.rq create mode 100755 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/syntax-sparql2/syntax-lists-03.rq create mode 100755 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/syntax-sparql2/syntax-lists-04.rq create mode 100755 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/syntax-sparql2/syntax-lists-05.rq create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/syntax-sparql3/manifest.rdf create mode 100755 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/syntax-sparql3/manifest.ttl create mode 100755 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/syntax-sparql3/syn-01.rq create mode 100755 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/syntax-sparql3/syn-02.rq create mode 100755 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/syntax-sparql3/syn-03.rq create mode 100755 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/syntax-sparql3/syn-04.rq create mode 100755 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/syntax-sparql3/syn-05.rq create mode 100755 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/syntax-sparql3/syn-06.rq create mode 100755 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/syntax-sparql3/syn-07.rq create mode 100755 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/syntax-sparql3/syn-08.rq create mode 100755 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/syntax-sparql3/syn-bad-01.rq create mode 100755 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/syntax-sparql3/syn-bad-02.rq create mode 100755 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/syntax-sparql3/syn-bad-03.rq create mode 100755 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/syntax-sparql3/syn-bad-04.rq create mode 100755 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/syntax-sparql3/syn-bad-05.rq create mode 100755 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/syntax-sparql3/syn-bad-06.rq create mode 100755 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/syntax-sparql3/syn-bad-07.rq create mode 100755 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/syntax-sparql3/syn-bad-08.rq create mode 100755 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/syntax-sparql3/syn-bad-09.rq create mode 100755 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/syntax-sparql3/syn-bad-10.rq create mode 100755 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/syntax-sparql3/syn-bad-11.rq create mode 100755 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/syntax-sparql3/syn-bad-12.rq create mode 100755 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/syntax-sparql3/syn-bad-13.rq create mode 100755 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/syntax-sparql3/syn-bad-14.rq create mode 100755 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/syntax-sparql3/syn-bad-15.rq create mode 100755 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/syntax-sparql3/syn-bad-16.rq create mode 100755 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/syntax-sparql3/syn-bad-17.rq create mode 100755 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/syntax-sparql3/syn-bad-18.rq create mode 100755 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/syntax-sparql3/syn-bad-19.rq create mode 100755 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/syntax-sparql3/syn-bad-20.rq create mode 100755 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/syntax-sparql3/syn-bad-21.rq create mode 100755 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/syntax-sparql3/syn-bad-22.rq create mode 100755 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/syntax-sparql3/syn-bad-23.rq create mode 100755 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/syntax-sparql3/syn-bad-24.rq create mode 100755 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/syntax-sparql3/syn-bad-25.rq create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/syntax-sparql3/syn-bad-26.rq create mode 100755 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/syntax-sparql3/syn-bad-27.rq create mode 100755 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/syntax-sparql3/syn-bad-28.rq create mode 100755 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/syntax-sparql3/syn-bad-29.rq create mode 100755 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/syntax-sparql3/syn-bad-30.rq create mode 100755 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/syntax-sparql3/syn-bad-31.rq create mode 100755 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/syntax-sparql3/syn-bad-bnode-dot.rq create mode 100755 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/syntax-sparql3/syn-bad-bnodes-missing-pvalues-01.rq create mode 100755 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/syntax-sparql3/syn-bad-bnodes-missing-pvalues-02.rq create mode 100755 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/syntax-sparql3/syn-bad-empty-optional-01.rq create mode 100755 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/syntax-sparql3/syn-bad-empty-optional-02.rq create mode 100755 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/syntax-sparql3/syn-bad-filter-missing-parens.rq create mode 100755 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/syntax-sparql3/syn-bad-lone-list.rq create mode 100755 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/syntax-sparql3/syn-bad-lone-node.rq create mode 100755 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/syntax-sparql3/syn-blabel-cross-filter.rq create mode 100755 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/syntax-sparql3/syn-blabel-cross-graph-bad.rq create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/syntax-sparql3/syn-blabel-cross-optional-bad.rq create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/syntax-sparql3/syn-blabel-cross-union-bad.rq create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/syntax-sparql4/manifest.rdf create mode 100755 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/syntax-sparql4/manifest.ttl create mode 100755 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/syntax-sparql4/syn-09.rq create mode 100755 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/syntax-sparql4/syn-10.rq create mode 100755 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/syntax-sparql4/syn-11.rq create mode 100755 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/syntax-sparql4/syn-bad-34.rq create mode 100755 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/syntax-sparql4/syn-bad-35.rq create mode 100755 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/syntax-sparql4/syn-bad-36.rq create mode 100755 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/syntax-sparql4/syn-bad-37.rq create mode 100755 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/syntax-sparql4/syn-bad-38.rq create mode 100755 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/syntax-sparql4/syn-bad-GRAPH-breaks-BGP.rq create mode 100755 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/syntax-sparql4/syn-bad-OPT-breaks-BGP.rq create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/syntax-sparql4/syn-bad-UNION-breaks-BGP.rq create mode 100755 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/syntax-sparql4/syn-leading-digits-in-prefixed-names.rq create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/syntax-sparql5/manifest.rdf create mode 100755 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/syntax-sparql5/manifest.ttl create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/syntax-sparql5/syntax-reduced-01.rq create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/syntax-sparql5/syntax-reduced-02.rq create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/triple-match/data-01.rdf create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/triple-match/data-01.ttl create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/triple-match/data-02.rdf create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/triple-match/data-02.ttl create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/triple-match/data-03.rdf create mode 100755 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/triple-match/data-03.ttl create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/triple-match/dawg-data-01.rdf create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/triple-match/dawg-data-01.ttl create mode 100755 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/triple-match/dawg-tp-01.rq create mode 100755 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/triple-match/dawg-tp-02.rq create mode 100755 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/triple-match/dawg-tp-03.rq create mode 100755 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/triple-match/dawg-tp-04.rq create mode 100755 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/triple-match/dawg-tp-05.rq create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/triple-match/manifest.rdf create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/triple-match/manifest.ttl create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/triple-match/result-tp-01.rdf create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/triple-match/result-tp-01.ttl create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/triple-match/result-tp-02.rdf create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/triple-match/result-tp-02.ttl create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/triple-match/result-tp-03.rdf create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/triple-match/result-tp-03.ttl create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/triple-match/result-tp-04.rdf create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/triple-match/result-tp-04.ttl create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/type-promotion/false.rdf create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/type-promotion/false.ttl create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/type-promotion/manifest.rdf create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/type-promotion/manifest.ttl create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/type-promotion/tP-byte-short-fail.rq create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/type-promotion/tP-byte-short.rq create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/type-promotion/tP-decimal-decimal.rq create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/type-promotion/tP-double-decimal-fail.rq create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/type-promotion/tP-double-decimal.rq create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/type-promotion/tP-double-double.rq create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/type-promotion/tP-double-float-fail.rq create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/type-promotion/tP-double-float.rq create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/type-promotion/tP-float-decimal-fail.rq create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/type-promotion/tP-float-decimal.rq create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/type-promotion/tP-float-float.rq create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/type-promotion/tP-int-short.rq create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/type-promotion/tP-integer-short.rq create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/type-promotion/tP-long-short.rq create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/type-promotion/tP-negativeInteger-short.rq create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/type-promotion/tP-nonNegativeInteger-short.rq create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/type-promotion/tP-nonPositiveInteger-short.rq create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/type-promotion/tP-positiveInteger-short.rq create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/type-promotion/tP-short-byte-fail.rq create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/type-promotion/tP-short-decimal.rq create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/type-promotion/tP-short-double.rq create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/type-promotion/tP-short-float.rq create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/type-promotion/tP-short-int-fail.rq create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/type-promotion/tP-short-long-fail.rq create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/type-promotion/tP-short-short-fail.rq create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/type-promotion/tP-short-short.rq create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/type-promotion/tP-unsignedByte-short.rq create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/type-promotion/tP-unsignedInt-short.rq create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/type-promotion/tP-unsignedLong-short.rq create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/type-promotion/tP-unsignedShort-short.rq create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/type-promotion/tP.rdf create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/type-promotion/tP.ttl create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/type-promotion/true.rdf create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/type-promotion/true.ttl create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql10/data-r2/x create mode 100755 corese-unit-test/src/test/resources/data/w3c-sparql10/earl.html create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql10/r2.html create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql10/result-se.rdf create mode 100755 corese-unit-test/src/test/resources/data/w3c-sparql10/result-set.n3 create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql10/test-daw.rdf create mode 100755 corese-unit-test/src/test/resources/data/w3c-sparql10/test-dawg.n3 create mode 100755 corese-unit-test/src/test/resources/data/w3c-sparql10/test-manifest.n3 create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql10/test-quer.rdf create mode 100755 corese-unit-test/src/test/resources/data/w3c-sparql10/test-query.n3 create mode 100755 corese-unit-test/src/test/resources/data/w3c-sparql10/tests.css create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/data/corese-earl.ttl create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/data/corese.txt create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/data/earl.rdf create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/data/earl.ttl create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/data/earl.ttl.save create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/data/pattern.txt create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/data/prefix.txt create mode 100755 corese-unit-test/src/test/resources/data/w3c-sparql11/data/rdf.rdf create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/data/rdf.rul create mode 100755 corese-unit-test/src/test/resources/data/w3c-sparql11/data/rdfs.rdf create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/data/rdfs.rul create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/add/add-01-post.ttl create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/add/add-01-pre.ttl create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/add/add-01.ru create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/add/add-02-post.ttl create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/add/add-02-pre.ttl create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/add/add-03-post.ttl create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/add/add-03-pre.ttl create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/add/add-03.ru create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/add/add-05.ru create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/add/add-06.ru create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/add/add-07.ru create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/add/add-08.ru create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/add/add-default.ttl create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/add/manifest.ttl create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/aggregates/agg-avg-01.rq create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/aggregates/agg-avg-01.srx create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/aggregates/agg-avg-02.rq create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/aggregates/agg-avg-02.srx create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/aggregates/agg-empty-group.rq create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/aggregates/agg-empty-group.srx create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/aggregates/agg-err-01.rq create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/aggregates/agg-err-01.srx create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/aggregates/agg-err-01.ttl create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/aggregates/agg-err-02.rq create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/aggregates/agg-err-02.srx create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/aggregates/agg-err-02.ttl create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/aggregates/agg-groupconcat-1.rq create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/aggregates/agg-groupconcat-1.srx create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/aggregates/agg-groupconcat-1.ttl create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/aggregates/agg-groupconcat-2.rq create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/aggregates/agg-groupconcat-2.srx create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/aggregates/agg-groupconcat-3.rq create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/aggregates/agg-groupconcat-3.srx create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/aggregates/agg-max-01.rq create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/aggregates/agg-max-01.srx create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/aggregates/agg-max-02.rq create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/aggregates/agg-max-02.srx create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/aggregates/agg-min-01.rq create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/aggregates/agg-min-01.srx create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/aggregates/agg-min-02.rq create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/aggregates/agg-min-02.srx create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/aggregates/agg-numeric.ttl create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/aggregates/agg-numeric2.ttl create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/aggregates/agg-sample-01.rq create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/aggregates/agg-sample-01.srx create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/aggregates/agg-sum-01.rq create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/aggregates/agg-sum-01.srx create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/aggregates/agg-sum-02.rq create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/aggregates/agg-sum-02.srx create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/aggregates/agg01.rq create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/aggregates/agg01.srx create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/aggregates/agg01.ttl create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/aggregates/agg02.rq create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/aggregates/agg02.srx create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/aggregates/agg03.rq create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/aggregates/agg03.srx create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/aggregates/agg04.rq create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/aggregates/agg04.srx create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/aggregates/agg05.rq create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/aggregates/agg05.srx create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/aggregates/agg06.rq create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/aggregates/agg06.srx create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/aggregates/agg07.rq create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/aggregates/agg07.srx create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/aggregates/agg08.rq create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/aggregates/agg08.ttl create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/aggregates/agg08b.rq create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/aggregates/agg08b.srx create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/aggregates/agg09.rq create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/aggregates/agg10.rq create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/aggregates/agg11.rq create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/aggregates/agg12.rq create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/aggregates/empty.ttl create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/aggregates/manifest.ttl create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/basic-update/empty.ttl create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/basic-update/insert-01-post.ttl create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/basic-update/insert-01-pre.ttl create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/basic-update/insert-01.ru create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/basic-update/insert-02-g1-post.ttl create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/basic-update/insert-02-post.ttl create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/basic-update/insert-02-pre.ttl create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/basic-update/insert-02.ru create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/basic-update/insert-03-g1-post.ttl create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/basic-update/insert-03-g1-pre.ttl create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/basic-update/insert-03-post.ttl create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/basic-update/insert-03-pre.ttl create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/basic-update/insert-03.ru create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/basic-update/insert-04-g1-post.ttl create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/basic-update/insert-04-g1-pre.ttl create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/basic-update/insert-04-post.ttl create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/basic-update/insert-04-pre.ttl create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/basic-update/insert-04.ru create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/basic-update/insert-05-g1-pre.ttl create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/basic-update/insert-05.ru create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/basic-update/insert-05a-g1-pre.ttl create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/basic-update/insert-05a-g3-post.ttl create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/basic-update/insert-05a.ru create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/basic-update/insert-data-named1.ru create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/basic-update/insert-data-named2.ru create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/basic-update/insert-data-same-bnode.ru create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/basic-update/insert-data-spo1.ru create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/basic-update/insert-using-01-g1-post.ttl create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/basic-update/insert-using-01-g1-pre.ttl create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/basic-update/insert-using-01-g2-post.ttl create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/basic-update/insert-using-01-g2-pre.ttl create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/basic-update/insert-using-01-post.ttl create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/basic-update/insert-using-01-pre.ttl create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/basic-update/insert-using-01.ru create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/basic-update/insert-where-same-bnode-g3-post.ttl create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/basic-update/insert-where-same-bnode-pre.ttl create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/basic-update/insert-where-same-bnode.ru create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/basic-update/insert-where-same-bnode2.ru create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/basic-update/manifest.ttl create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/basic-update/spo.ttl create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/basic-update/spo2.ttl create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/bind/bind01.rq create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/bind/bind01.srx create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/bind/bind02.rq create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/bind/bind02.srx create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/bind/bind03.rq create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/bind/bind03.srx create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/bind/bind04.rq create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/bind/bind04.srx create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/bind/bind05.rq create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/bind/bind05.srx create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/bind/bind06.rq create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/bind/bind06.srx create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/bind/bind07.rq create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/bind/bind07.srx create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/bind/bind08.rq create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/bind/bind08.srx create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/bind/bind10.rq create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/bind/bind10.srx create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/bind/bind11.rq create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/bind/bind11.srx create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/bind/data.ttl create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/bind/manifest.ttl create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/bindings/bindings01.rq create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/bindings/bindings01.srx create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/bindings/bindings02.rq create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/bindings/bindings02.srx create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/bindings/bindings03.rq create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/bindings/bindings03.srx create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/bindings/bindings04.rq create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/bindings/bindings04.srx create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/bindings/bindings05.rq create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/bindings/bindings05.srx create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/bindings/bindings06.rq create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/bindings/bindings06.srx create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/bindings/bindings07.rq create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/bindings/bindings07.srx create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/bindings/bindings08.rq create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/bindings/bindings08.srx create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/bindings/data01.ttl create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/bindings/data02.ttl create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/bindings/data03.ttl create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/bindings/data04.ttl create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/bindings/data05.ttl create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/bindings/data06.ttl create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/bindings/data07.ttl create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/bindings/data08.ttl create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/bindings/inline01.rq create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/bindings/inline01.srx create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/bindings/inline02.rq create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/bindings/inline02.srx create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/bindings/manifest.ttl create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/bindings/values01.rq create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/bindings/values01.srx create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/bindings/values02.rq create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/bindings/values02.srx create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/bindings/values03.rq create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/bindings/values03.srx create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/bindings/values04.rq create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/bindings/values04.srx create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/bindings/values05.rq create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/bindings/values05.srx create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/bindings/values06.rq create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/bindings/values06.srx create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/bindings/values07.rq create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/bindings/values07.srx create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/bindings/values08.rq create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/bindings/values08.srx create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/clear/clear-all-01.ru create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/clear/clear-default-01.ru create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/clear/clear-default.ttl create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/clear/clear-g1.ttl create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/clear/clear-g2.ttl create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/clear/clear-graph-01.ru create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/clear/clear-named-01.ru create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/clear/empty.ttl create mode 100755 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/clear/manifest.ttl create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/construct/constructwhere01.rq create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/construct/constructwhere01result.ttl create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/construct/constructwhere02.rq create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/construct/constructwhere02result.ttl create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/construct/constructwhere03.rq create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/construct/constructwhere03result.ttl create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/construct/constructwhere04.rq create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/construct/constructwhere04result.ttl create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/construct/constructwhere05.rq create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/construct/constructwhere06.rq create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/construct/data.ttl create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/construct/manifest.ttl create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/copy/copy-01.ru create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/copy/copy-01.ttl create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/copy/copy-02.ttl create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/copy/copy-03.ru create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/copy/copy-06.ru create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/copy/copy-07.ru create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/copy/copy-default.ttl create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/copy/manifest.ttl create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/csv-tsv-res/csvtsv01.csv create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/csv-tsv-res/csvtsv01.rq create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/csv-tsv-res/csvtsv01.tsv create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/csv-tsv-res/csvtsv02.csv create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/csv-tsv-res/csvtsv02.rq create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/csv-tsv-res/csvtsv02.tsv create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/csv-tsv-res/csvtsv03.csv create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/csv-tsv-res/csvtsv03.tsv create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/csv-tsv-res/data.ttl create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/csv-tsv-res/data2.ttl create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/csv-tsv-res/manifest.ttl create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/delete-data/delete-data-01.ru create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/delete-data/delete-data-02.ru create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/delete-data/delete-data-03.ru create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/delete-data/delete-data-04.ru create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/delete-data/delete-data-05.ru create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/delete-data/delete-data-06.ru create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/delete-data/delete-post-01f.ttl create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/delete-data/delete-post-01s.ttl create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/delete-data/delete-post-02f.ttl create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/delete-data/delete-post-02s.ttl create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/delete-data/delete-post-03f.ttl create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/delete-data/delete-pre-01.ttl create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/delete-data/delete-pre-02.ttl create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/delete-data/delete-pre-03.ttl create mode 100755 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/delete-data/manifest.ttl create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/delete-insert/delete-insert-01.ru create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/delete-insert/delete-insert-01b.ru create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/delete-insert/delete-insert-01c.ru create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/delete-insert/delete-insert-02.ru create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/delete-insert/delete-insert-03.ru create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/delete-insert/delete-insert-03b.ru create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/delete-insert/delete-insert-04.ru create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/delete-insert/delete-insert-04b.ru create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/delete-insert/delete-insert-05.ru create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/delete-insert/delete-insert-05b.ru create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/delete-insert/delete-insert-07.ru create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/delete-insert/delete-insert-07b.ru create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/delete-insert/delete-insert-08.ru create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/delete-insert/delete-insert-09.ru create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/delete-insert/delete-insert-post-01.ttl create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/delete-insert/delete-insert-post-01b.ttl create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/delete-insert/delete-insert-post-02.ttl create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/delete-insert/delete-insert-post-05.ttl create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/delete-insert/delete-insert-post-07.ttl create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/delete-insert/delete-insert-post-07b.ttl create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/delete-insert/delete-insert-post-08.ttl create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/delete-insert/delete-insert-post-09.ttl create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/delete-insert/delete-insert-pre-01.ttl create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/delete-insert/delete-insert-pre-06.ttl create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/delete-insert/delete-insert-pre-08.ttl create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/delete-insert/delete-insert-pre-09.ttl create mode 100755 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/delete-insert/manifest.ttl create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/delete-where/delete-post-01f.ttl create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/delete-where/delete-post-01s.ttl create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/delete-where/delete-post-02f.ttl create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/delete-where/delete-post-02s.ttl create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/delete-where/delete-post-03f.ttl create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/delete-where/delete-pre-01.ttl create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/delete-where/delete-pre-02.ttl create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/delete-where/delete-pre-03.ttl create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/delete-where/delete-where-01.ru create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/delete-where/delete-where-02.ru create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/delete-where/delete-where-03.ru create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/delete-where/delete-where-04.ru create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/delete-where/delete-where-05.ru create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/delete-where/delete-where-06.ru create mode 100755 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/delete-where/manifest.ttl create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/delete/delete-01.ru create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/delete/delete-02.ru create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/delete/delete-03.ru create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/delete/delete-04.ru create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/delete/delete-05.ru create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/delete/delete-06.ru create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/delete/delete-07.ru create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/delete/delete-post-01f.ttl create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/delete/delete-post-01s.ttl create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/delete/delete-post-01s2.ttl create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/delete/delete-post-02f.ttl create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/delete/delete-post-02s.ttl create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/delete/delete-post-03f.ttl create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/delete/delete-pre-01.ttl create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/delete/delete-pre-02.ttl create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/delete/delete-pre-03.ttl create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/delete/delete-using-01.ru create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/delete/delete-using-02.ru create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/delete/delete-using-03.ru create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/delete/delete-using-04.ru create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/delete/delete-using-05.ru create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/delete/delete-using-06.ru create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/delete/delete-with-01.ru create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/delete/delete-with-02.ru create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/delete/delete-with-03.ru create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/delete/delete-with-04.ru create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/delete/delete-with-05.ru create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/delete/delete-with-06.ru create mode 100755 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/delete/manifest.ttl create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/drop/drop-all-01.ru create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/drop/drop-default-01.ru create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/drop/drop-default.ttl create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/drop/drop-g1.ttl create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/drop/drop-g2.ttl create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/drop/drop-graph-01.ru create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/drop/drop-named-01.ru create mode 100755 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/drop/manifest.ttl create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/entailment/bind-data.ttl create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/entailment/bind01.rq create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/entailment/bind01.srx create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/entailment/bind02.rq create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/entailment/bind02.srx create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/entailment/bind03.rq create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/entailment/bind03.srx create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/entailment/bind04.rq create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/entailment/bind04.srx create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/entailment/bind05.rq create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/entailment/bind05.srx create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/entailment/bind06.rq create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/entailment/bind06.srx create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/entailment/bind07.rq create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/entailment/bind07.srx create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/entailment/bind08.rq create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/entailment/bind08.srx create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/entailment/d-ent-01.rq create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/entailment/d-ent-01.srx create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/entailment/d-ent-01.ttl create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/entailment/data-01.ttl create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/entailment/data-02.ttl create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/entailment/data-03.ttl create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/entailment/data-06.ttl create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/entailment/data-07.ttl create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/entailment/data-08.ttl create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/entailment/data-11.ttl create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/entailment/lang.rq create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/entailment/lang.srx create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/entailment/lang.ttl create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/entailment/manifest.ttl create mode 100755 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/entailment/owlds01.rq create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/entailment/owlds01.srx create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/entailment/owlds01.ttl create mode 100755 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/entailment/owlds02.rq create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/entailment/owlds02.srx create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/entailment/owlds02.ttl create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/entailment/paper-sparqldl-Q1-rdfs.srx create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/entailment/paper-sparqldl-Q1.rq create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/entailment/paper-sparqldl-Q1.srx create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/entailment/paper-sparqldl-Q2.rq create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/entailment/paper-sparqldl-Q2.srx create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/entailment/paper-sparqldl-Q3.rq create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/entailment/paper-sparqldl-Q3.srx create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/entailment/paper-sparqldl-Q4.rq create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/entailment/paper-sparqldl-Q4.srx create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/entailment/paper-sparqldl-Q5.rq create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/entailment/paper-sparqldl-Q5.srx create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/entailment/paper-sparqldl-data.ttl create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/entailment/parent.ttl create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/entailment/parent10.rq create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/entailment/parent10.srx create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/entailment/parent2.rq create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/entailment/parent2.srx create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/entailment/parent3.rq create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/entailment/parent3.srx create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/entailment/parent4.rq create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/entailment/parent4.srx create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/entailment/parent5.rq create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/entailment/parent5.srx create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/entailment/parent6.rq create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/entailment/parent6.srx create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/entailment/parent7.rq create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/entailment/parent7.srx create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/entailment/parent8.rq create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/entailment/parent8.srx create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/entailment/parent9.rq create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/entailment/parent9.srx create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/entailment/plainLit.rq create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/entailment/plainLit.srx create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/entailment/plainLit.ttl create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/entailment/rdf01.rq create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/entailment/rdf01.srx create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/entailment/rdf01.ttl create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/entailment/rdf02.rq create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/entailment/rdf02.srx create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/entailment/rdf02.ttl create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/entailment/rdf03.rq create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/entailment/rdf03.srx create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/entailment/rdf03.ttl create mode 100755 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/entailment/rdf04.rq create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/entailment/rdf04.srx create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/entailment/rdf04.ttl create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/entailment/rdfs01.rq create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/entailment/rdfs01.srx create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/entailment/rdfs01.ttl create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/entailment/rdfs02.rq create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/entailment/rdfs02.srx create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/entailment/rdfs03.rq create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/entailment/rdfs03.srx create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/entailment/rdfs03.ttl create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/entailment/rdfs04.rq create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/entailment/rdfs04.srx create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/entailment/rdfs04.ttl create mode 100755 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/entailment/rdfs05.rq create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/entailment/rdfs05.srx create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/entailment/rdfs05.ttl create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/entailment/rdfs06.rq create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/entailment/rdfs06.srx create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/entailment/rdfs06.ttl create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/entailment/rdfs07.rq create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/entailment/rdfs07.srx create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/entailment/rdfs07.ttl create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/entailment/rdfs08.rq create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/entailment/rdfs08.srx create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/entailment/rdfs08.ttl create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/entailment/rdfs09.rq create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/entailment/rdfs09.srx create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/entailment/rdfs09.ttl create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/entailment/rdfs10.rq create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/entailment/rdfs10.srx create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/entailment/rdfs10.ttl create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/entailment/rdfs11.rq create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/entailment/rdfs11.srx create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/entailment/rdfs11.ttl create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/entailment/rdfs12.rq create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/entailment/rdfs12.srx create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/entailment/rdfs12.ttl create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/entailment/rdfs13.rq create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/entailment/rdfs13.srx create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/entailment/rdfs13.ttl create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/entailment/simple.ttl create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/entailment/simple1.rq create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/entailment/simple1.srx create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/entailment/simple2.rq create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/entailment/simple2.srx create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/entailment/simple3.rq create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/entailment/simple3.srx create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/entailment/simple4.rq create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/entailment/simple4.srx create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/entailment/simple5.rq create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/entailment/simple5.srx create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/entailment/simple6.rq create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/entailment/simple6.srx create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/entailment/simple7.rq create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/entailment/simple7.srx create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/entailment/simple8.rq create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/entailment/simple8.srx create mode 100755 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/entailment/sparqldl-01.rq create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/entailment/sparqldl-01.srx create mode 100755 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/entailment/sparqldl-02.rq create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/entailment/sparqldl-02.srx create mode 100755 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/entailment/sparqldl-03.rq create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/entailment/sparqldl-03.srx create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/entailment/sparqldl-04.rq create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/entailment/sparqldl-04.srx create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/entailment/sparqldl-05.rq create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/entailment/sparqldl-05.srx create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/entailment/sparqldl-06.rq create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/entailment/sparqldl-06.srx create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/entailment/sparqldl-07.rq create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/entailment/sparqldl-07.srx create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/entailment/sparqldl-08.rq create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/entailment/sparqldl-08.srx create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/entailment/sparqldl-09.rq create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/entailment/sparqldl-09.srx create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/entailment/sparqldl-10.rq create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/entailment/sparqldl-10.srx create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/entailment/sparqldl-11.rq create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/entailment/sparqldl-11.srx create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/entailment/sparqldl-12.rq create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/entailment/sparqldl-12.srx create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/entailment/sparqldl-13.rq create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/entailment/sparqldl-13.srx create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/exists/exists01.rq create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/exists/exists01.srx create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/exists/exists01.ttl create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/exists/exists02.rq create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/exists/exists02.srx create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/exists/exists02.ttl create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/exists/exists03.rq create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/exists/exists03.srx create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/exists/exists04.rq create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/exists/exists04.srx create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/exists/exists05.rq create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/exists/exists05.srx create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/exists/manifest.ttl create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/functions.ttl create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/functions/abs01.rq create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/functions/abs01.srx create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/functions/bnode01.rq create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/functions/bnode01.srx create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/functions/bnode02.rq create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/functions/bnode02.srx create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/functions/ceil01.rq create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/functions/ceil01.srx create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/functions/coalesce01.rq create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/functions/coalesce01.srx create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/functions/concat01.rq create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/functions/concat01.srx create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/functions/concat02.rq create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/functions/concat02.srx create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/functions/contains01.rq create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/functions/contains01.srx create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/functions/data-builtin-3.ttl create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/functions/data-coalesce.ttl create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/functions/data-empty.nt create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/functions/data.ttl create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/functions/data2.ttl create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/functions/data3.ttl create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/functions/data4.ttl create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/functions/day-01.rq create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/functions/day-01.srx create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/functions/encode01.rq create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/functions/encode01.srx create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/functions/ends01.rq create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/functions/ends01.srx create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/functions/floor01.rq create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/functions/floor01.srx create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/functions/hash-unicode.ttl create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/functions/hours-01.rq create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/functions/hours-01.srx create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/functions/if01.rq create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/functions/if01.srx create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/functions/if02.rq create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/functions/if02.srx create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/functions/in01.rq create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/functions/in01.srx create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/functions/in02.rq create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/functions/in02.srx create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/functions/iri01.rq create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/functions/iri01.srx create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/functions/isnumeric01.rq create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/functions/isnumeric01.srx create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/functions/lcase01.rq create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/functions/lcase01.srx create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/functions/length01.rq create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/functions/length01.srx create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/functions/manifest.ttl create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/functions/md5-01.rq create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/functions/md5-01.srx create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/functions/md5-02.rq create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/functions/md5-02.srx create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/functions/minutes-01.rq create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/functions/minutes-01.srx create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/functions/month-01.rq create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/functions/month-01.srx create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/functions/notin01.rq create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/functions/notin01.srx create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/functions/notin02.rq create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/functions/notin02.srx create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/functions/now01.rq create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/functions/now01.srx create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/functions/plus-1.rq create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/functions/plus-1.srx create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/functions/plus-2.rq create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/functions/plus-2.srx create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/functions/rand01.rq create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/functions/rand01.srx create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/functions/replace01.rq create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/functions/replace01.srx create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/functions/replace02.rq create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/functions/replace02.srx create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/functions/replace03.rq create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/functions/replace03.srx create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/functions/round01.rq create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/functions/round01.srx create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/functions/seconds-01.rq create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/functions/seconds-01.srx create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/functions/sha1-01.rq create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/functions/sha1-01.srx create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/functions/sha1-02.rq create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/functions/sha1-02.srx create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/functions/sha256-01.rq create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/functions/sha256-01.srx create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/functions/sha256-02.rq create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/functions/sha256-02.srx create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/functions/sha512-01.rq create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/functions/sha512-01.srx create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/functions/sha512-02.rq create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/functions/sha512-02.srx create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/functions/starts01.rq create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/functions/starts01.srx create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/functions/strafter01.rq create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/functions/strafter01.srx create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/functions/strafter01a.srx create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/functions/strafter02.rq create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/functions/strafter02.srx create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/functions/strbefore01.rq create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/functions/strbefore01.srx create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/functions/strbefore01a.srx create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/functions/strbefore02.rq create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/functions/strbefore02.srx create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/functions/strdt01.rq create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/functions/strdt01.srx create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/functions/strdt02.rq create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/functions/strdt02.srx create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/functions/strdt03.rq create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/functions/strdt03.srx create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/functions/strlang01.rq create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/functions/strlang01.srx create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/functions/strlang02.rq create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/functions/strlang02.srx create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/functions/strlang03.rq create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/functions/strlang03.srx create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/functions/struuid01.rq create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/functions/struuid01.srx create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/functions/substring01.rq create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/functions/substring01.srx create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/functions/substring02.rq create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/functions/substring02.srx create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/functions/timezone-01.rq create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/functions/timezone-01.srx create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/functions/tz-01.rq create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/functions/tz-01.srx create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/functions/ucase01.rq create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/functions/ucase01.srx create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/functions/uuid01.rq create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/functions/uuid01.srx create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/functions/year-01.rq create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/functions/year-01.srx create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/grouping/group-data-1.ttl create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/grouping/group-data-2.ttl create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/grouping/group01.rq create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/grouping/group01.srx create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/grouping/group02.rq create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/grouping/group02.srx create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/grouping/group03.rq create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/grouping/group03.srx create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/grouping/group04.rq create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/grouping/group04.srx create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/grouping/group05.rq create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/grouping/group05.srx create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/grouping/group06.rq create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/grouping/group07.rq create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/grouping/manifest.ttl create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/http-rdf-update/index.html create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/http-rdf-update/tests.html create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/http-rdf-update/tests.txt create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/json-res/data.ttl create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/json-res/jsonres01.rq create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/json-res/jsonres01.srj create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/json-res/jsonres02.rq create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/json-res/jsonres02.srj create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/json-res/jsonres03.rq create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/json-res/jsonres03.srj create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/json-res/jsonres04.rq create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/json-res/jsonres04.srj create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/json-res/manifest.ttl create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/manifest-all.ttl create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/move/manifest.ttl create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/move/move-01.ru create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/move/move-01.ttl create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/move/move-02.ttl create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/move/move-03.ru create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/move/move-06.ru create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/move/move-07.ru create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/move/move-default.ttl create mode 100755 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/negation/exists-01.rq create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/negation/exists-01.srx create mode 100755 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/negation/exists-02.rq create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/negation/exists-02.srx create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/negation/full-minuend.rq create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/negation/full-minuend.srx create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/negation/full-minuend.ttl create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/negation/manifest.ttl create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/negation/part-minuend.rq create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/negation/part-minuend.srx create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/negation/part-minuend.ttl create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/negation/set-data.save create mode 100755 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/negation/set-data.ttl create mode 100755 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/negation/set-equals-1.rq create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/negation/set-equals-1.save create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/negation/set-equals-1.srx create mode 100755 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/negation/subset-01.rq create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/negation/subset-01.srx create mode 100755 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/negation/subset-02.rq create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/negation/subset-02.srx create mode 100755 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/negation/subset-03.rq create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/negation/subset-03.srx create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/negation/subsetByExcl.ttl create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/negation/subsetByExcl01.rq create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/negation/subsetByExcl01.srx create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/negation/subsetByExcl02.rq create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/negation/subsetByExcl02.srx create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/negation/temporalProximity01.rq create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/negation/temporalProximity01.srx create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/negation/temporalProximity01.ttl create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/project-expression/manifest.ttl create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/project-expression/projexp01.rq create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/project-expression/projexp01.srx create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/project-expression/projexp01.ttl create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/project-expression/projexp02.rq create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/project-expression/projexp02.srx create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/project-expression/projexp02.ttl create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/project-expression/projexp03.rq create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/project-expression/projexp03.srx create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/project-expression/projexp03.ttl create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/project-expression/projexp04.rq create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/project-expression/projexp04.srx create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/project-expression/projexp04.ttl create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/project-expression/projexp05.rq create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/project-expression/projexp05.srx create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/project-expression/projexp05.ttl create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/project-expression/projexp06.rq create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/project-expression/projexp06.srx create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/project-expression/projexp06.ttl create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/project-expression/projexp07.rq create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/project-expression/projexp07.srx create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/project-expression/projexp07.ttl create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/property-path/clique3.ttl create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/property-path/data-diamond-loop.ttl create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/property-path/data-diamond-tail.ttl create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/property-path/data-diamond.ttl create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/property-path/diamond-1.srx create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/property-path/diamond-2.srx create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/property-path/diamond-loop-1.srx create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/property-path/diamond-loop-2.srx create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/property-path/diamond-loop-3.srx create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/property-path/diamond-loop-4.srx create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/property-path/diamond-loop-5.srx create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/property-path/diamond-loop-5a.srx create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/property-path/diamond-loop-6.srx create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/property-path/diamond-tail-1.srx create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/property-path/diamond-tail-2.srx create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/property-path/empty.ttl create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/property-path/manifest.ttl create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/property-path/ng-01.ttl create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/property-path/ng-02.ttl create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/property-path/ng-03.ttl create mode 100755 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/property-path/path-2-1.rq create mode 100755 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/property-path/path-2-2.rq create mode 100755 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/property-path/path-2-3.rq create mode 100755 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/property-path/path-3-1.rq create mode 100755 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/property-path/path-3-2.rq create mode 100755 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/property-path/path-3-3.rq create mode 100755 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/property-path/path-3-4.rq create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/property-path/path-ng-01.rq create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/property-path/path-ng-01.srx create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/property-path/path-ng-02.rq create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/property-path/path-p1.rq create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/property-path/path-p1.srx create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/property-path/path-p1.ttl create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/property-path/path-p2.rq create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/property-path/path-p2.srx create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/property-path/path-p3.rq create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/property-path/path-p3.srx create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/property-path/path-p3.ttl create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/property-path/path-p4.rq create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/property-path/path-p4.srx create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/property-path/pp01.rq create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/property-path/pp01.srx create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/property-path/pp01.ttl create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/property-path/pp02.rq create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/property-path/pp02.srx create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/property-path/pp03.rq create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/property-path/pp03.srx create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/property-path/pp03.ttl create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/property-path/pp04.rq create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/property-path/pp04.srx create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/property-path/pp05.rq create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/property-path/pp05.srx create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/property-path/pp05.ttl create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/property-path/pp06.rq create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/property-path/pp06.srx create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/property-path/pp061.ttl create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/property-path/pp062.ttl create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/property-path/pp07.srx create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/property-path/pp07.ttl create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/property-path/pp08.rq create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/property-path/pp08.srx create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/property-path/pp08.ttl create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/property-path/pp09.rq create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/property-path/pp09.srx create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/property-path/pp09.ttl create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/property-path/pp10.rq create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/property-path/pp10.srx create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/property-path/pp10.ttl create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/property-path/pp11.rq create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/property-path/pp11.srx create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/property-path/pp11.ttl create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/property-path/pp12.rq create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/property-path/pp12.srx create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/property-path/pp13.rq create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/property-path/pp13.srx create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/property-path/pp13.ttl create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/property-path/pp14.rq create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/property-path/pp14.srx create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/property-path/pp14.ttl create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/property-path/pp15.rq create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/property-path/pp15.srx create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/property-path/pp16.srx create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/property-path/pp16.ttl create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/property-path/pp36.rq create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/property-path/pp36.srx create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/property-path/pp37.rq create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/property-path/pp37.srx create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/property-path/pp37.ttl create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/protocol/manifest.ttl create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/service-description/manifest.ttl create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/service/README create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/service/data01.ttl create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/service/data01endpoint.ttl create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/service/data02endpoint1.ttl create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/service/data02endpoint2.ttl create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/service/data03endpoint1.ttl create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/service/data03endpoint2.ttl create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/service/data04.ttl create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/service/data04endpoint.ttl create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/service/data05.ttl create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/service/data05endpoint1.ttl create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/service/data05endpoint2.ttl create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/service/data06endpoint1.ttl create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/service/data07.ttl create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/service/dataendpoint01.ttl create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/service/manifest.ttl create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/service/service01.rq create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/service/service01.srx create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/service/service02.rq create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/service/service02.srx create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/service/service03.rq create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/service/service03.srx create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/service/service04.rq create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/service/service04.srx create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/service/service04a.rq create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/service/service05.rq create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/service/service05.srx create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/service/service06.rq create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/service/service06.srx create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/service/service07.rq create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/service/service07.srx create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/subquery/manifest.ttl create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/subquery/sq01.rdf create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/subquery/sq01.rq create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/subquery/sq01.srx create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/subquery/sq02.rq create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/subquery/sq02.srx create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/subquery/sq03.rq create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/subquery/sq03.srx create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/subquery/sq04.rdf create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/subquery/sq04.rq create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/subquery/sq04.srx create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/subquery/sq05.rdf create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/subquery/sq05.rq create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/subquery/sq05.srx create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/subquery/sq06.rq create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/subquery/sq06.srx create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/subquery/sq07.rq create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/subquery/sq07.srx create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/subquery/sq08.rdf create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/subquery/sq08.rq create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/subquery/sq08.srx create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/subquery/sq09.rdf create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/subquery/sq09.rq create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/subquery/sq09.srx create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/subquery/sq10.rdf create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/subquery/sq10.rq create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/subquery/sq10.srx create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/subquery/sq11.rq create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/subquery/sq11.srx create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/subquery/sq11.ttl create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/subquery/sq12.rq create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/subquery/sq12.ttl create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/subquery/sq12_out.ttl create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/subquery/sq13.rq create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/subquery/sq13.srx create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/subquery/sq13.ttl create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/subquery/sq14-out.ttl create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/subquery/sq14.rq create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/subquery/sq14.ttl create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/syntax-fed/manifest.ttl create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/syntax-fed/syntax-service-01.rq create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/syntax-fed/syntax-service-02.rq create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/syntax-fed/syntax-service-03.rq create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/syntax-query/manifest.ttl create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/syntax-query/qname-escape-01.rq create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/syntax-query/qname-escape-02.rq create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/syntax-query/qname-escape-03.rq create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/syntax-query/syn-bad-01.rq create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/syntax-query/syn-bad-02.rq create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/syntax-query/syn-bad-03.rq create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/syntax-query/syn-bad-04.rq create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/syntax-query/syn-bad-05.rq create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/syntax-query/syn-bad-06.rq create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/syntax-query/syn-bad-07.rq create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/syntax-query/syn-bad-08.rq create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/syntax-query/syn-bad-pname-01.rq create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/syntax-query/syn-bad-pname-02.rq create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/syntax-query/syn-bad-pname-03.rq create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/syntax-query/syn-bad-pname-04.rq create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/syntax-query/syn-bad-pname-05.rq create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/syntax-query/syn-bad-pname-06.rq create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/syntax-query/syn-bad-pname-07.rq create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/syntax-query/syn-bad-pname-08.rq create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/syntax-query/syn-bad-pname-09.rq create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/syntax-query/syn-bad-pname-10.rq create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/syntax-query/syn-bad-pname-11.rq create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/syntax-query/syn-bad-pname-12.rq create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/syntax-query/syn-bad-pname-13.rq create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/syntax-query/syn-pname-01.rq create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/syntax-query/syn-pname-02.rq create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/syntax-query/syn-pname-03.rq create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/syntax-query/syn-pname-04.rq create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/syntax-query/syn-pname-05.rq create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/syntax-query/syn-pname-06.rq create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/syntax-query/syn-pname-07.rq create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/syntax-query/syn-pname-08.rq create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/syntax-query/syn-pname-09.rq create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/syntax-query/syn-pp-in-collection.rq create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/syntax-query/syntax-BINDscope1.rq create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/syntax-query/syntax-BINDscope2.rq create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/syntax-query/syntax-BINDscope3.rq create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/syntax-query/syntax-BINDscope4.rq create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/syntax-query/syntax-BINDscope5.rq create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/syntax-query/syntax-BINDscope6.rq create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/syntax-query/syntax-BINDscope7.rq create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/syntax-query/syntax-BINDscope8.rq create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/syntax-query/syntax-SELECTscope1.rq create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/syntax-query/syntax-SELECTscope2.rq create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/syntax-query/syntax-SELECTscope3.rq create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/syntax-query/syntax-aggregate-01.rq create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/syntax-query/syntax-aggregate-02.rq create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/syntax-query/syntax-aggregate-03.rq create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/syntax-query/syntax-aggregate-04.rq create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/syntax-query/syntax-aggregate-05.rq create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/syntax-query/syntax-aggregate-06.rq create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/syntax-query/syntax-aggregate-07.rq create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/syntax-query/syntax-aggregate-08.rq create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/syntax-query/syntax-aggregate-09.rq create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/syntax-query/syntax-aggregate-10.rq create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/syntax-query/syntax-aggregate-11.rq create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/syntax-query/syntax-aggregate-12.rq create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/syntax-query/syntax-aggregate-13.rq create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/syntax-query/syntax-aggregate-14.rq create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/syntax-query/syntax-aggregate-15.rq create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/syntax-query/syntax-bind-02.rq create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/syntax-query/syntax-bindings-01.rq create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/syntax-query/syntax-bindings-02.rq create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/syntax-query/syntax-bindings-02a.rq create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/syntax-query/syntax-bindings-03.rq create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/syntax-query/syntax-bindings-03a.rq create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/syntax-query/syntax-bindings-04.rq create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/syntax-query/syntax-bindings-05.rq create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/syntax-query/syntax-bindings-05a.rq create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/syntax-query/syntax-bindings-09.rq create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/syntax-query/syntax-construct-where-01.rq create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/syntax-query/syntax-construct-where-02.rq create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/syntax-query/syntax-exists-01.rq create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/syntax-query/syntax-exists-02.rq create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/syntax-query/syntax-exists-03.rq create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/syntax-query/syntax-minus-01.rq create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/syntax-query/syntax-not-exists-01.rq create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/syntax-query/syntax-not-exists-02.rq create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/syntax-query/syntax-not-exists-03.rq create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/syntax-query/syntax-oneof-01.rq create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/syntax-query/syntax-oneof-02.rq create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/syntax-query/syntax-oneof-03.rq create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/syntax-query/syntax-propertyPaths-01.rq create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/syntax-query/syntax-select-expr-01.rq create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/syntax-query/syntax-select-expr-02.rq create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/syntax-query/syntax-select-expr-03.rq create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/syntax-query/syntax-select-expr-04.rq create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/syntax-query/syntax-select-expr-05.rq create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/syntax-query/syntax-subquery-01.rq create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/syntax-query/syntax-subquery-02.rq create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/syntax-query/syntax-subquery-03.rq create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/syntax-update-1/manifest.ttl create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/syntax-update-1/syntax-update-01.ru create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/syntax-update-1/syntax-update-02.ru create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/syntax-update-1/syntax-update-03.ru create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/syntax-update-1/syntax-update-04.ru create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/syntax-update-1/syntax-update-05.ru create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/syntax-update-1/syntax-update-06.ru create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/syntax-update-1/syntax-update-07.ru create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/syntax-update-1/syntax-update-08.ru create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/syntax-update-1/syntax-update-09.ru create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/syntax-update-1/syntax-update-10.ru create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/syntax-update-1/syntax-update-11.ru create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/syntax-update-1/syntax-update-12.ru create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/syntax-update-1/syntax-update-13.ru create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/syntax-update-1/syntax-update-14.ru create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/syntax-update-1/syntax-update-15.ru create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/syntax-update-1/syntax-update-16.ru create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/syntax-update-1/syntax-update-17.ru create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/syntax-update-1/syntax-update-18.ru create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/syntax-update-1/syntax-update-19.ru create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/syntax-update-1/syntax-update-20.ru create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/syntax-update-1/syntax-update-21.ru create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/syntax-update-1/syntax-update-22.ru create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/syntax-update-1/syntax-update-23.ru create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/syntax-update-1/syntax-update-24.ru create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/syntax-update-1/syntax-update-25.ru create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/syntax-update-1/syntax-update-26.ru create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/syntax-update-1/syntax-update-27.ru create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/syntax-update-1/syntax-update-28.ru create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/syntax-update-1/syntax-update-29.ru create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/syntax-update-1/syntax-update-30.ru create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/syntax-update-1/syntax-update-31.ru create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/syntax-update-1/syntax-update-32.ru create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/syntax-update-1/syntax-update-33.ru create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/syntax-update-1/syntax-update-34.ru create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/syntax-update-1/syntax-update-35.ru create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/syntax-update-1/syntax-update-36.ru create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/syntax-update-1/syntax-update-37.ru create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/syntax-update-1/syntax-update-38.ru create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/syntax-update-1/syntax-update-39.ru create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/syntax-update-1/syntax-update-40.ru create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/syntax-update-1/syntax-update-53.ru create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/syntax-update-1/syntax-update-54.ru create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/syntax-update-1/syntax-update-bad-01.ru create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/syntax-update-1/syntax-update-bad-02.ru create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/syntax-update-1/syntax-update-bad-03.ru create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/syntax-update-1/syntax-update-bad-04.ru create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/syntax-update-1/syntax-update-bad-05.ru create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/syntax-update-1/syntax-update-bad-06.ru create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/syntax-update-1/syntax-update-bad-07.ru create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/syntax-update-1/syntax-update-bad-08.ru create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/syntax-update-1/syntax-update-bad-09.ru create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/syntax-update-1/syntax-update-bad-10.ru create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/syntax-update-1/syntax-update-bad-11.ru create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/syntax-update-1/syntax-update-bad-12.ru create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/syntax-update-2/large-request-01.ru create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/syntax-update-2/manifest.ttl create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/update-silent/add-silent.ru create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/update-silent/add-to-default-silent.ru create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/update-silent/clear-default-silent.ru create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/update-silent/clear-silent.ru create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/update-silent/copy-silent.ru create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/update-silent/copy-to-default-silent.ru create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/update-silent/create-silent.ru create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/update-silent/drop-default-silent.ru create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/update-silent/drop-silent.ru create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/update-silent/load-silent-into.ru create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/update-silent/load-silent.ru create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/update-silent/manifest.ttl create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/update-silent/move-silent.ru create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/update-silent/move-to-default-silent.ru create mode 100644 corese-unit-test/src/test/resources/data/w3c-sparql11/sparql11-test-suite/update-silent/spo.ttl diff --git a/.gitignore b/.gitignore index 7d310acd66..1cb16ebea5 100644 --- a/.gitignore +++ b/.gitignore @@ -90,3 +90,8 @@ nb-configuration.xml log/ log.txt corese-server/SSL_SERVER_PID + +############################## +## test +############################## +earl-report-test.ttl diff --git a/corese-unit-test/src/test/java/fr/inria/corese/engine/TestQuery1.java b/corese-unit-test/src/test/java/fr/inria/corese/engine/TestQuery1.java index ffcf5bf74b..05f55a7761 100644 --- a/corese-unit-test/src/test/java/fr/inria/corese/engine/TestQuery1.java +++ b/corese-unit-test/src/test/java/fr/inria/corese/engine/TestQuery1.java @@ -262,7 +262,7 @@ public void typecheckowlrl() throws EngineException, MalformedURLException, Load Load load = Load.create(g); load.parse(TestQuery1.class.getResource("/primer.owl").getPath()); - QueryProcess exec = QueryProcess.create(g); + QueryProcess.create(g); Transformer t = Transformer.create(g, Transformer.OWLRL); t.process(); Transformer t2 = Transformer.create(g, Transformer.TURTLE_HTML); diff --git a/corese-unit-test/src/test/java/fr/inria/corese/engine/TestQuery2.java b/corese-unit-test/src/test/java/fr/inria/corese/engine/TestQuery2.java new file mode 100644 index 0000000000..ca2127c516 --- /dev/null +++ b/corese-unit-test/src/test/java/fr/inria/corese/engine/TestQuery2.java @@ -0,0 +1,176 @@ +package fr.inria.corese.engine; + +import static org.junit.Assert.assertEquals; + +import org.junit.Test; + +import fr.inria.corese.core.Graph; +import fr.inria.corese.core.query.QueryProcess; +import fr.inria.corese.kgram.core.Mappings; +import fr.inria.corese.kgram.core.Query; +import fr.inria.corese.kgram.core.SparqlException; +import fr.inria.corese.sparql.exceptions.EngineException; +import fr.inria.corese.sparql.triple.parser.NSManager; + +/** + * + * @author corby + */ +public class TestQuery2 { + static String data = Thread.currentThread().getContextClassLoader().getResource("data/").getPath(); + + @Test + public void test5() throws EngineException, SparqlException { + String i = "insert data {" + + "us:John foaf:knows us:Jim, us:James ;" + + "foaf:age 20 ." + + "us:Jim foaf:knows us:Jack ;" + + "foaf:age 30 }"; + String q = "select * where {?s foaf:knows ?o ; foaf:age ?a}"; + + Graph g = Graph.create(); + QueryProcess exec = QueryProcess.create(g); + exec.query(i); + + Mappings map = exec.query(q); + + String q1 = "select * where {" + + "?s foaf:knows ?o ; foaf:age ?a}" + + "values (?s ?n) {(us:John 'John')}"; + + Query qq1 = exec.compile(q1); + Mappings map2 = exec.modifier(qq1, map); + assertEquals(2, map2.size()); + + } + + @Test + public void test4() throws EngineException, SparqlException { + String i = "insert data {" + + "us:John foaf:knows us:Jim, us:James ;" + + "foaf:age 20 ." + + "us:Jim foaf:knows us:Jack ;" + + "foaf:age 30 }"; + String q = "select * where {?s foaf:knows ?o ; foaf:age ?a}"; + + Graph g = Graph.create(); + QueryProcess exec = QueryProcess.create(g); + exec.query(i); + + Mappings map = exec.query(q); + + String q1 = "select distinct ?s where {" + + "?s foaf:knows ?o ; foaf:age ?a}"; + + Query qq1 = exec.compile(q1); + exec.modifier(qq1, map); + assertEquals(2, map.size()); + + } + + @Test + public void test3() throws EngineException, SparqlException { + String i = "insert data {" + + "us:John foaf:knows us:Jim, us:James ;" + + "foaf:age 20 ." + + "us:Jim foaf:knows us:Jack ;" + + "foaf:age 30 }"; + String q = "select * where {?s foaf:knows ?o ; foaf:age ?a}"; + + Graph g = Graph.create(); + QueryProcess exec = QueryProcess.create(g); + exec.query(i); + + Mappings map = exec.query(q); + + String q1 = "select * (count(?o) as ?c) where {" + + "?s foaf:knows ?o ; foaf:age ?a}" + + "group by ?s " + + "order by ?s " + + "having(?c > 1)"; + + Query qq1 = exec.compile(q1); + exec.modifier(qq1, map); + assertEquals(2, map.getValue("?c").intValue()); + + } + + @Test + public void test2() throws EngineException, SparqlException { + String i = "insert data {" + + "us:John foaf:knows us:Jim, us:James ;" + + "foaf:age 20 ." + + "us:Jim foaf:knows us:Jack ;" + + "foaf:age 30 }"; + String q = "select * where {?s foaf:knows ?o ; foaf:age ?a}"; + + Graph g = Graph.create(); + QueryProcess exec = QueryProcess.create(g); + exec.query(i); + + Mappings map = exec.query(q); + + String q1 = "select * (count(?o) as ?c) where {" + + "?s foaf:knows ?o ; foaf:age ?a}" + + "group by ?s " + + "order by ?s "; + + Query qq1 = exec.compile(q1); + exec.modifier(qq1, map); + assertEquals(1, map.getValue("?c").intValue()); + assertEquals(2, map.get(1).getValue("?c").intValue()); + } + + @Test + public void test1() throws EngineException, SparqlException { + String i = "insert data {" + + "us:John foaf:knows us:Jim, us:James ;" + + "foaf:age 20 ." + + "us:Jim foaf:knows us:Jack ;" + + "foaf:age 30 }"; + String q = "select * where {?s foaf:knows ?o ; foaf:age ?a}"; + + Graph g = Graph.create(); + QueryProcess exec = QueryProcess.create(g); + exec.query(i); + + Mappings map = exec.query(q); + + String q1 = "select * where {" + + "?s foaf:knows ?o ; foaf:age ?a}" + + "order by ?o"; + + Query qq1 = exec.compile(q1); + exec.modifier(qq1, map); + assertEquals(uri("Jim"), map.getValue("?s").getLabel()); + + String q2 = "select * where {" + + "?s foaf:knows ?o ; foaf:age ?a}" + + "order by (?a)"; + + Query qq2 = exec.compile(q2); + exec.modifier(qq2, map); + assertEquals(20, map.getValue("?a").intValue()); + + String q3 = "select * where {" + + "?s foaf:knows ?o ; foaf:age ?a}" + + "order by desc(?a)"; + + Query qq3 = exec.compile(q3); + exec.modifier(qq3, map); + assertEquals(30, map.getValue("?a").intValue()); + + String q4 = "select * (2*?a as ?ad) where {" + + "?s foaf:knows ?o ; foaf:age ?a}" + + "order by (?a)"; + + Query qq4 = exec.compile(q4); + exec.modifier(qq4, map); + assertEquals(40, map.getValue("?ad").intValue()); + } + + String uri(String str) { + return NSManager.USER + str; + } + +} diff --git a/corese-unit-test/src/test/java/fr/inria/corese/engine/TestRuleEngine.java b/corese-unit-test/src/test/java/fr/inria/corese/engine/TestRuleEngine.java new file mode 100644 index 0000000000..8204b86290 --- /dev/null +++ b/corese-unit-test/src/test/java/fr/inria/corese/engine/TestRuleEngine.java @@ -0,0 +1,550 @@ +package fr.inria.corese.engine; + +import static org.junit.Assert.assertEquals; + +import java.io.IOException; +import java.util.Date; + +import org.junit.AfterClass; +import org.junit.BeforeClass; +import org.junit.Test; + +import fr.inria.corese.compiler.eval.QuerySolver; +import fr.inria.corese.core.EdgeFactory; +import fr.inria.corese.core.Graph; +import fr.inria.corese.core.GraphStore; +import fr.inria.corese.core.api.Engine; +import fr.inria.corese.core.load.Load; +import fr.inria.corese.core.load.LoadException; +import fr.inria.corese.core.query.QueryEngine; +import fr.inria.corese.core.query.QueryProcess; +import fr.inria.corese.core.rule.RuleEngine; +import fr.inria.corese.kgram.core.Mappings; +import fr.inria.corese.kgram.core.Query; +import fr.inria.corese.sparql.api.IDatatype; +import fr.inria.corese.sparql.exceptions.EngineException; +import fr.inria.corese.sparql.storage.api.Parameters; + +/** + * Test rule engines and pipeline + * + */ +public class TestRuleEngine { + + static String data = TestRuleEngine.class.getResource("/data").getPath(); + static Graph graph; + static Engine rengine; + static RuleEngine fengine; + + @BeforeClass + public static void init() throws EngineException { + // Graph.setCompareIndex(true); + QuerySolver.definePrefix("c", "http://www.inria.fr/acacia/comma#"); + // Load.setDefaultGraphValue(true); + // EdgeIndexer.test = false; + + graph = createGraph(true); + Load load = Load.create(graph); + QueryProcess.setPlanDefault(Query.QP_HEURISTICS_BASED); + try { + System.out.println(data + "engine/ontology/test.rdfs"); + System.out.println(data + "engine/data/test.rdf"); + System.out.println(data + "engine/rule/test2.brul"); + System.out.println(data + "engine/rule/meta.rul"); + + load.parse(data + "engine/ontology/test.rdfs"); + load.parse(data + "engine/data/test.rdf"); + load.parse(data + "engine/rule/test2.brul"); + load.parse(data + "engine/rule/meta.rul", "meta.rul"); + } catch (LoadException e) { + e.printStackTrace(); + } + + fengine = load.getRuleEngine(); + fengine.setSpeedUp(true); + + QueryProcess.create(graph); + // rengine = Engine.create(exec); + // + // rengine.load(data + "engine/rule/test2.brul"); + // rengine.load(data + "engine/rule/meta.brul"); + } + + @AfterClass + static public void finish() { + EdgeFactory.trace(); + } + + static GraphStore createGraph() { + return createGraph(false); + } + + static GraphStore createGraph(boolean b) { + GraphStore g = GraphStore.create(b); + Parameters p = Parameters.create(); + p.add(Parameters.type.MAX_LIT_LEN, 2); + // g.setStorage(IStorage.STORAGE_FILE, p); + return g; + } + + @Test + public void testEnt() throws LoadException, EngineException { + Graph g = Graph.create(); + String q = "select (xt:entailment() as ?g) where {" + + "}"; + QueryProcess exec = QueryProcess.create(g); + Mappings map = exec.query(q); + IDatatype dt = (IDatatype) map.getValue("?g"); + Graph gg = (Graph) dt.getPointerObject(); + assertEquals(7, gg.size()); + } + + @Test + public void test57() { + Graph graph = createGraph(); + // QueryProcess.definePrefix("e", "htp://example.org/"); + QueryProcess exec = QueryProcess.create(graph); + + RuleEngine re = RuleEngine.create(graph); + + String rule = "prefix e: " + + "construct {[a e:Parent; e:term(?x ?y)]}" + + "where {[a e:Father; e:term(?x ?y)]}"; + + String rule2 = "prefix e: " + + "construct {[a e:Father; e:term(?x ?y)]}" + + "where {[a e:Parent; e:term(?x ?y)]}"; + + // String rule3 = "prefix e: " + + // "construct {[a e:Parent]}" + // + "where {[a e:Father]}"; + + // String rule4 = "prefix e: " + + // "construct {[a e:Father]}" + // + "where {[a e:Parent]}"; + + try { + re.defRule(rule); + re.defRule(rule2); + } catch (EngineException e1) { + e1.printStackTrace(); + } + + String init = "prefix e: " + "insert data {" + + "[ a e:Father ; e:term( ) ]" + + "}"; + + String query = "prefix e: " + "select * where {" + + // "?x foaf:knows ?z " + + "[a e:Parent; e:term(?x ?y)]" + + "}"; + + try { + exec.query(init); + // re.setDebug(true); + re.process(); + Mappings map = exec.query(query); + //// System.out.println(map); + assertEquals("Result", 1, map.size()); + + } catch (EngineException e) { + e.printStackTrace(); + } + + } + + @Test + public void testOWLRL() throws EngineException, IOException, LoadException { + GraphStore gs = GraphStore.create(); + QueryProcess exec = QueryProcess.create(gs); + Load ld = Load.create(gs); + // ld.setLevel(Access.Level.USER); + try { + ld.parse(data + "template/owl/data/primer.owl"); + ld.parse(data + "owlrule/owlrllite.rul"); + } catch (LoadException ex) { + System.out.println(ex); + throw ex; + } + RuleEngine re = ld.getRuleEngine(); + // Date d1 = new Date(); + re.setProfile(RuleEngine.OWL_RL_FULL); + re.process(); + + String q = "prefix f: " + + "select * " + + "where {" + + "graph kg:rule {" + + "?x ?p ?y " + + "filter (isURI(?x) && strstarts(?x, f:) " + + " && isURI(?y) && strstarts(?y, f:))" + + "}" + + "filter not exists {graph ?g {?x ?p ?y } filter(?g != kg:rule)}" + + "}" + + "order by ?x ?p ?y"; + Mappings map = exec.query(q); + assertEquals(103, map.size()); + + } + + @Test + public void testOWLRL2() throws EngineException, IOException { + GraphStore gs = GraphStore.create(); + QueryProcess exec = QueryProcess.create(gs); + Load ld = Load.create(gs); + try { + ld.parse(data + "template/owl/data/primer.owl"); + ld.parse(data + "owlrule/owlrllite.rul"); + } catch (LoadException ex) { + System.out.println(ex); + } + RuleEngine re = ld.getRuleEngine(); + // Date d1 = new Date(); + // re.setProfile(re.OWL_RL); + re.process(); + + String q = "prefix f: " + + "select * " + + "where {" + + "graph kg:rule {" + + "?x ?p ?y " + + "filter (isURI(?x) && strstarts(?x, f:) " + + " && isURI(?y) && strstarts(?y, f:))" + + "}" + + "filter not exists {graph ?g {?x ?p ?y } filter(?g != kg:rule)}" + + "}" + + "order by ?x ?p ?y"; + + Mappings map = exec.query(q); + assertEquals(103, map.size()); + + } + + @Test + public void testOWLRL22() throws EngineException, IOException { + GraphStore gs = GraphStore.create(); + QueryProcess exec = QueryProcess.create(gs); + Load ld = Load.create(gs); + try { + ld.parse(data + "template/owl/data/primer.owl"); + } catch (LoadException ex) { + System.out.println(ex); + } + RuleEngine re = RuleEngine.create(gs); + re.setProfile(RuleEngine.OWL_RL); + // Date d1 = new Date(); + re.process(); + + String q = "prefix f: " + + "select * " + + "where {" + + "graph kg:rule {" + + "?x ?p ?y " + + "filter (isURI(?x) && strstarts(?x, f:) " + + " && isURI(?y) && strstarts(?y, f:))" + + "}" + + "filter not exists {graph ?g {?x ?p ?y } filter(?g != kg:rule)}" + + "}" + + "order by ?x ?p ?y"; + + Mappings map = exec.query(q); + // assertEquals(114, map.size()); + assertEquals(122, map.size()); + + } + + public void testOWLRL3() throws LoadException, EngineException { + GraphStore g = GraphStore.create(); + Load ld = Load.create(g); + ld.parse(data + "template/owl/data/primer.owl"); + RuleEngine re = RuleEngine.create(g); + re.setProfile(RuleEngine.OWL_RL_LITE); + re.process(); + + String q = "select * " + + "from kg:rule " + + "where { ?x ?p ?y }"; + + QueryProcess exec = QueryProcess.create(g); + Mappings map = exec.query(q); + + assertEquals(611, map.size()); + + String qq = "select distinct ?p ?pr " + + "from kg:rule " + + "where { ?x ?p ?y bind (kg:provenance(?p) as ?pr) }"; + + map = exec.query(qq); + + // assertEquals(31, map.size()); + + String qqq = "select distinct ?q " + + "from kg:rule " + + "where { " + + "?x ?p ?y bind (kg:provenance(?p) as ?pr) " + + "graph ?pr { [] sp:predicate ?q }" + + "} order by ?q"; + + map = exec.query(qqq); + + // assertEquals(19, map.size()); + + String q4 = "select ?q " + + "where { " + + "graph eng:engine { ?q a sp:Construct }" + + "} "; + + map = exec.query(q4); + + assertEquals(64, map.size()); + + String q5 = "select ?q " + + "where { " + + "graph eng:record { ?r a kg:Index }" + + "} "; + + map = exec.query(q5); + + assertEquals(159, map.size()); + + String q6 = "select ?r " + + "where { " + + "graph kg:re2 { ?r a kg:Index }" + + "} "; + + map = exec.query(q6); + assertEquals(3, map.size()); + + String q7 = "select ?r " + + "where { " + + "graph eng:queries { ?r a sp:Construct }" + + "} "; + + map = exec.query(q7); + assertEquals(4, map.size()); + } + + @Test + public void testOWLRL4() throws LoadException, EngineException { + GraphStore g = GraphStore.create(); + Load ld = Load.create(g); + ld.parse(data + "template/owl/data/primer.owl"); + RuleEngine re = RuleEngine.create(g); + re.setProfile(RuleEngine.OWL_RL_LITE); + // re.process(); + g.addEngine(re); + String q = "select * " + + "from kg:rule " + + "where { ?x ?p ?y }"; + QueryProcess exec = QueryProcess.create(g); + Mappings map = exec.query(q); + + assertEquals(597, map.size()); + } + + @Test + + public void testRuleOptimization() throws LoadException, EngineException { + Graph g1 = testRuleOpt(); + Graph g2 = testRuleNotOpt(); + + QueryProcess e1 = QueryProcess.create(g1, true); + QueryProcess e2 = QueryProcess.create(g2, true); + + String q = "prefix c: " + + "select distinct ?x where {" + + "?x a c:Person ; " + + " c:hasCreated ?doc " + + "?doc a c:Document" + + "}"; + + Mappings m1 = e1.query(q); + Mappings m2 = e2.query(q); + assertEquals(m1.size(), m2.size()); + } + + public Graph testRuleOpt() throws LoadException, EngineException { + RuleEngine re = testRules(); + Graph g = re.getRDFGraph(); + + re.setSpeedUp(true); + System.out.println("Graph: " + g.size()); + Date d1 = new Date(); + re.process(); + Date d2 = new Date(); + System.out.println("** Time opt: " + (d2.getTime() - d1.getTime()) / (1000.0)); + validate(g, 37735); + + assertEquals(54028, g.size()); + return g; + } + + public Graph testRuleNotOpt() throws LoadException, EngineException { + RuleEngine re = testRules(); + Graph g = re.getRDFGraph(); + + System.out.println("Graph: " + g.size()); + Date d1 = new Date(); + re.process(); + Date d2 = new Date(); + System.out.println("** Time std: " + (d2.getTime() - d1.getTime()) / (1000.0)); + + validate(g, 41109); + assertEquals(57402, g.size()); + return g; + + } + + RuleEngine testRules() throws LoadException { + Graph g = createGraph(); + Load ld = Load.create(g); + ld.parse(data + "comma/comma.rdfs"); + ld.parseDir(data + "comma/data"); + ld.parseDir(data + "comma/data2"); + try { + ld.parse(data + "owlrule/owlrllite-junit.rul"); + } catch (LoadException e) { + e.printStackTrace(); + } + RuleEngine re = ld.getRuleEngine(); + return re; + + } + + void validate(Graph g, int n) throws EngineException { + QueryProcess exec = QueryProcess.create(g); + String q = "select * " + + "from kg:rule " + + "where {?x ?p ?y}"; + + Mappings map = exec.query(q); + assertEquals(n, map.size()); + } + + // //@Test + // public void test1(){ + // + // String query = + // "prefix c: " + + // "select ?x ?y where { " + + // "?y c:hasSister ?z" + + // "?x c:hasBrother ?y " + + // "}"; + // + // LBind bind = rengine.SPARQLProve(query); + // assertEquals("Result", 13, bind.size()); + // } + // + // + // //@Test + // public void test2(){ + // + // String query = + // "prefix c: " + + // "select * where {" + + // "?x c:hasGrandParent c:Pierre " + + // "}"; + // + // LBind bind = rengine.SPARQLProve(query); + // assertEquals("Result", 4, bind.size()); + // } + // + // + // //@Test + // public void test3(){ + // + // String query = + // "prefix c: " + + // "select * where {" + + // "?x c:hasGrandParent c:Pierre ?x c:hasID ?id " + + // "}"; + // + // LBind bind = rengine.SPARQLProve(query); + // assertEquals("Result", 0, bind.size()); + // } + + @Test + public void test4() throws EngineException { + + String query = "prefix c: " + + "select * where {" + + "?x c:hasGrandParent c:Pierre " + + "}"; + + fengine.process(); + QueryProcess exec = QueryProcess.create(graph); + Mappings map; + try { + map = exec.query(query); + assertEquals("Result", 4, map.size()); + } catch (EngineException e) { + assertEquals("Result", 4, e); + } + } + + @Test + public void test44() throws EngineException { + + String query = "prefix c: " + + "select * where {" + + "?x c:hasGrandParent c:Pierre " + + "}"; + + String ent = "select * where {graph kg:entailment {?x ?p ?y}}"; + + graph.process(fengine); + QueryProcess exec = QueryProcess.create(graph); + Mappings map; + try { + map = exec.query(query); + assertEquals("Result", 4, map.size()); + + map = exec.query(ent); + // System.out.println(map); + + } catch (EngineException e) { + assertEquals("Result", 4, e); + } + } + + @Test + public void test8() throws EngineException { + Graph g = createGraph(); + // QueryProcess exec = QueryProcess.create(g); + + QueryEngine qe = QueryEngine.create(g); + String query = "insert data { rdfs:label 'John' }"; + qe.addQuery(query); + + qe.process(); + + assertEquals("Result", 1, g.size()); + } + + @Test + public void testWF() { + + String query = "prefix c: " + + "select * where {" + + "?x c:hasGrandParent c:Pierre " + + "}"; + + String ent = "select * where {graph kg:entailment {?x ?p ?y}}"; + + graph.addEngine(fengine); + + QueryProcess exec = QueryProcess.create(graph); + Mappings map; + try { + map = exec.query(query); + assertEquals("Result", 4, map.size()); + + map = exec.query(ent); + // System.out.println(map); + + } catch (EngineException e) { + assertEquals("Result", 4, e); + } + } + +} diff --git a/corese-unit-test/src/test/java/fr/inria/corese/w3c/RDFStar/Compare.java b/corese-unit-test/src/test/java/fr/inria/corese/w3c/RDFStar/Compare.java new file mode 100644 index 0000000000..70ff1f431f --- /dev/null +++ b/corese-unit-test/src/test/java/fr/inria/corese/w3c/RDFStar/Compare.java @@ -0,0 +1,218 @@ +package fr.inria.corese.w3c.RDFStar; + +import java.util.HashMap; + +import fr.inria.corese.kgram.api.core.Edge; +import fr.inria.corese.kgram.api.core.Node; +import fr.inria.corese.kgram.core.Mapping; +import fr.inria.corese.kgram.core.Mappings; +import fr.inria.corese.sparql.api.IDatatype; +import fr.inria.corese.sparql.datatype.DatatypeMap; + +/** + * + */ +public class Compare { + boolean strict = true; + Mappings kgram, w3c; + + public Compare(Mappings corese, Mappings w3c) { + kgram = corese; + this.w3c = w3c; + } + + /** + * KGRAM vs W3C result + */ + public boolean validate() { + if (kgram.size() != w3c.size()) { + return false; + } + return check(kgram, w3c); + } + + public boolean check(Mappings kgram, Mappings w3c) { + boolean result = true, printed = false; + HashMap table = new HashMap<>(); + + for (Mapping w3cres : w3c) { + // for each w3c result + boolean ok = false; + + for (Mapping kres : kgram) { + // find a new kgram result that is equal to w3c + if (table.containsKey(kres)) { + continue; + } + + ok = compare(kgram, w3c, kres, w3cres); + + if (ok) { + table.put(kres, w3cres); + break; + } + } + + if (!ok) { + result = false; + + System.out.println("** Failure"); + if (printed == false) { + System.out.println("corese:"); + System.out.println(kgram); + System.out.println("w3c:"); + System.out.println(w3c); + printed = true; + } + for (Node var : w3cres.getQueryNodes()) { + // for each w3c variable/value + Node val = w3cres.getNode(var); + System.out.println(var + " [" + val + "]"); + } + System.out.println("--"); + } + + } + return result; + } + + // compare two results + boolean compare(Mappings kgmap, Mappings w3map, Mapping kgres, Mapping w3res) { + TBN tbn = new TBN(); + boolean ok = true; + + for (Node var : w3res.getQueryNodes()) { + if (!ok) { + break; + } + + // for each w3c variable/value + IDatatype w3val = datatype(w3res.getNode(var)); + // find same value in kgram + if (w3val != null) { + String cvar = var.getLabel(); + Node kNode = kgres.getNode(var); + if (kNode == null) { + ok = false; + } else { + IDatatype kdt = datatype(kNode); + IDatatype wdt = w3val; + ok = compare(kdt, wdt, tbn); + } + } + } + + if (ok && kgmap.getSelect() != null) { + // kgram result has additional data + for (Node node : kgmap.getSelect()) { + if (kgres.getNodeValue(node) != null && w3res.getNode(node) == null) { + ok = false; + // if (w3res.getQueryNodes().length > 0) { + // System.out.println("kg: "+ node + " = " + kgres.getNodeValue(node)); + // System.out.println(); + // System.out.println("w3c: " + w3res); + // System.out.println("kgr: " + kgres); + // } + break; + } + } + } + + return ok; + } + + // target value of a Node + IDatatype datatype(Node n) { + if (n == null) { + return null; + } + return n.getValue(); + } + + boolean compare(Edge e1, Edge e2, TBN tbn) { + return compare(e1.getSubjectValue(), e2.getSubjectValue(), tbn) && + compare(e1.getObjectValue(), e2.getObjectValue(), tbn) && + compare(e1.getPredicateValue(), e2.getPredicateValue(), tbn); + } + + // compare kgram vs w3c values + boolean compare(IDatatype kdt, IDatatype wdt, TBN tbn) { + boolean ok = true; + + if (kdt.isTriple()) { + if (wdt.isTriple()) { + ok = compare(kdt.getEdge(), wdt.getEdge(), tbn); + } else { + ok = false; + } + } else if (kdt.isBlank()) { + if (wdt.isBlank()) { + // blanks may not have same ID but + // if repeated they should both be the same + ok = tbn.same(kdt, wdt); + } else { + ok = false; + } + } else if (wdt.isBlank()) { + ok = false; + } else if (kdt.isNumber() && wdt.isNumber()) { + ok = kdt.sameTerm(wdt); + + if (DatatypeMap.isLong(kdt) && DatatypeMap.isLong(wdt)) { + // ok + } else { + if (!ok) { + // compare them at 10^-10 + ok = Math.abs((kdt.doubleValue() - wdt.doubleValue())) < 10e-10; + if (ok) { + } + } + } + + } else { + ok = kdt.sameTerm(wdt); + if (!ok) { + if (matchDatatype(kdt, wdt)) { + ok = kdt.equals(wdt); + } + } + } + + if (ok && strict && wdt.isLiteral()) { + // check same datatypes + if (kdt.getDatatype() != null && wdt.getDatatype() != null) { + ok = kdt.getDatatype().sameTerm(wdt.getDatatype()); + } else if (kdt.getDatatype() != wdt.getDatatype()) { + ok = false; + } + if (!ok) { + } + } + + return ok; + + } + + boolean matchDatatype(IDatatype dt1, IDatatype dt2) { + return (dt1.getCode() == IDatatype.LITERAL) && (dt2.getCode() == IDatatype.STRING) + || (dt1.getCode() == IDatatype.STRING) && (dt2.getCode() == IDatatype.LITERAL); + } + + /** + * Blanks may have different ID in test case and in kgram but same ID should + * remain the same Hence store ID in hashtable to compare + * + */ + class TBN extends HashMap { + + boolean same(IDatatype dt1, IDatatype dt2) { + if (containsKey(dt1)) { + return get(dt1).sameTerm(dt2); + } else { + put(dt1, dt2); + return true; + } + } + } + +} diff --git a/corese-unit-test/src/test/java/fr/inria/corese/w3c/RDFStar/RDFStarReport.java b/corese-unit-test/src/test/java/fr/inria/corese/w3c/RDFStar/RDFStarReport.java new file mode 100644 index 0000000000..3c9d1bbef8 --- /dev/null +++ b/corese-unit-test/src/test/java/fr/inria/corese/w3c/RDFStar/RDFStarReport.java @@ -0,0 +1,93 @@ +package fr.inria.corese.w3c.RDFStar; + +import java.io.FileWriter; +import java.io.IOException; + +import fr.inria.corese.sparql.datatype.DatatypeMap; + +/** + * + * @author Olivier Corby, Wimmics INRIA I3S, 2017 + * + */ +public class RDFStarReport { + + static final String root = "urn:x-shacl-test:"; + + static final String header = "@prefix doap: .\n" + + "@prefix earl: .\n" + + "@prefix owl: .\n" + + "@prefix rdf: .\n" + + "@prefix rdfs: .\n" + + "@prefix xsd: .\n" + + "@prefix foaf: .\n" + + "@prefix dc: .\n" + + "\n" + + + "<> foaf:primaryTopic ;\n" + + "dc:issued %s ;\n" + + "foaf:maker .\n" + + "\n" + + + "\n" + + " a doap:Project, earl:Software, earl:TestSubject ;\n" + + "doap:name \"Corese\" ;\n" + + "doap:release [\n" + + " doap:name \"Corese 4.3.1\" ;\n" + + " doap:revision \"4.3.1\" ;\n" + + " doap:created \"2022-02-02\"^^xsd:date ;\n" + + "] ;\n" + + "doap:developer ;\n" + + "doap:homepage ;\n" + + "doap:description \"Corese Semantic Web Factory, Inria, UCA.\"@en ; \n" + + "doap:programming-language \"Java\" .\n\n" + + + " a foaf:Organization, earl:Assertor;\n" + + "foaf:name \"Wimmics team\";\n" + + "foaf:homepage .\n\n"; + + static final String result = "[\n" + + " rdf:type earl:Assertion ;\n" + + " earl:assertedBy ;\n" + + " earl:subject ;\n" + + " earl:test <%s> ;\n" + + " earl:result [\n" + + " a earl:TestResult ;\n" + + " earl:outcome %s ;\n" + + " dc:date %s ;\n" + + " earl:mode earl:automatic ;\n" + + " ] \n" + + "].\n"; + + StringBuilder sb; + String path; + + RDFStarReport(String path) { + this(path, "SHACL"); + } + + RDFStarReport(String path, String title) { + sb = new StringBuilder(); + sb.append(String.format(header, DatatypeMap.newDate())); + this.path = path; + } + + void result(String test, boolean b) { + sb.append(String.format(result, test, value(b), DatatypeMap.newDate())); + } + + String value(boolean b) { + return (b) ? "earl:passed" : "earl:failed"; + } + + String clean(String uri) { + return root.concat(uri.substring(path.length() - 1)); + } + + void write(String path) throws IOException { + FileWriter fw = new FileWriter(path); + fw.write(sb.toString()); + fw.flush(); + fw.close(); + } +} diff --git a/corese-unit-test/src/test/java/fr/inria/corese/w3c/RDFStar/RDFStarTest.java b/corese-unit-test/src/test/java/fr/inria/corese/w3c/RDFStar/RDFStarTest.java new file mode 100644 index 0000000000..91dd35df1e --- /dev/null +++ b/corese-unit-test/src/test/java/fr/inria/corese/w3c/RDFStar/RDFStarTest.java @@ -0,0 +1,501 @@ +package fr.inria.corese.w3c.RDFStar; + +import java.io.IOException; +import java.util.ArrayList; +import java.util.List; +import java.util.logging.Level; +import java.util.logging.Logger; + +import javax.xml.parsers.ParserConfigurationException; + +import org.junit.Test; +import org.xml.sax.SAXException; + +import fr.inria.corese.core.Graph; +import fr.inria.corese.core.load.Load; +import fr.inria.corese.core.load.LoadException; +import fr.inria.corese.core.load.QueryLoad; +import fr.inria.corese.core.load.result.SPARQLJSONResult; +import fr.inria.corese.core.load.result.SPARQLResult; +import fr.inria.corese.core.print.TripleFormat; +import fr.inria.corese.core.query.QueryProcess; +import fr.inria.corese.core.rule.RuleEngine; +import fr.inria.corese.core.util.Property; +import fr.inria.corese.kgram.api.core.Edge; +import fr.inria.corese.kgram.api.core.Node; +import fr.inria.corese.kgram.core.Mappings; +import fr.inria.corese.sparql.api.IDatatype; +import fr.inria.corese.sparql.exceptions.EngineException; +import fr.inria.corese.sparql.triple.parser.NSManager; + +/** + * error in w3c test: + * sparql/eval trs:sparql-star-op-3 + */ +public class RDFStarTest { + + // nb success:216 + // nb failure:2 + // nb variant:1 + @Test + public void test() throws EngineException, LoadException, IOException { + System.out.println("Hello World!"); + new RDFStarTest().process(); + + } + + static final String data = RDFStarTest.class.getResource("/data/rdf-star-main/tests/").getPath(); + static final String rdfs = "http://www.w3.org/2000/01/rdf-schema#"; + static final String mf = "http://www.w3.org/2001/sw/DataAccess/tests/test-manifest#"; + static final String qt = "http://www.w3.org/2001/sw/DataAccess/tests/test-query#"; + static final String ut = "http://www.w3.org/2009/sparql/tests/test-update#"; + boolean trace = false; + RDFStarReport report = new RDFStarReport("", "rdf star"); + int nbsuc = 0; + int nbfail = 0; + int nbvariant = 0; + + // RDFStarTest() { + // report = new RDFStarReport("", "rdf star"); + // } + + public static void main(String[] args) throws LoadException, EngineException, IOException { + new RDFStarTest().process(); + } + + void report(String test, boolean suc) { + report.result(test, suc); + if (suc) { + nbsuc++; + } else { + nbfail++; + } + } + + /** + * @todo: + * "test"@en-us not sameTerm "test"@en-US + */ + + void process() throws LoadException, EngineException, IOException { + Property.set(Property.Value.RDF_STAR, true); + // nested subject literal is an error + // nested 042 does not unify with nested 42 + // nested undefined literal does not unify with bnode + Property.set(Property.Value.RDF_STAR_VALIDATION, true); + Property.set(Property.Value.LOAD_IN_DEFAULT_GRAPH, true); + // Property.set(Property.Value.SPARQL_COMPLIANT, true); + + for (IDatatype dt : RDFStarTest.this.manifest()) { + String name = dt.getLabel(); + manifest(name); + } + + report.write(data + "/report.ttl"); + System.out.println("nb success: " + nbsuc); + System.out.println("nb failure: " + nbfail); + System.out.println("nb variant: " + nbvariant); + } + + // main manifest + void manifest(String name) throws LoadException, EngineException { + Graph g = Graph.create(); + Load ld = Load.create(g); + ld.parse(name); + g.init(); + for (Edge ee : g.getEdges(mf + "entries")) { + manifest(g, name, g.getDatatypeList(ee.getObjectNode())); + } + } + + // manifest name + void manifest(Graph g, String name, List testList) throws EngineException { + System.out.println(name); + if (trace) + System.out.println("process: " + testList); + + for (IDatatype dt : testList) { + test(g, dt); + } + } + + String getValue(Graph g, String predicate, String subject) { + Edge edge = g.getEdge(predicate, subject, 0); + if (edge == null) { + return null; + } + return edge.getObjectNode().getLabel(); + } + + IDatatype getDatatypeValue(Graph g, String predicate, String subject) { + Edge edge = g.getEdge(predicate, subject, 0); + if (edge == null) { + return null; + } + return edge.getObjectValue(); + } + + /** + * test: subject uri of a test + */ + void test(Graph gg, IDatatype test) throws EngineException { + System.out.println("test: " + test); + String subject = test.getLabel(); + Edge eaction = gg.getEdge(mf + "action", subject, 0); + Edge eresult = gg.getEdge(mf + "result", subject, 0); + Edge etype = gg.getEdge(NSManager.RDF + "type", subject, 0); + String entailment = getValue(gg, mf + "entailmentRegime", subject); + String type = etype == null ? "undefined" : etype.getObjectNode().getLabel(); + String result = null; + Boolean bresult = null; + String comment = getValue(gg, rdfs + "comment", subject); + if (comment != null) { + System.out.println("comment: " + comment); + } + + if (eresult != null) { + Node nresult = eresult.getObjectNode(); + IDatatype dt = eresult.getObjectValue(); + if (nresult.isBlank()) { + eresult = gg.getEdge(ut + "data", nresult, 0); + if (eresult != null) { + result = eresult.getObjectNode().getLabel(); + } + } else if (dt.isBoolean()) { + bresult = dt.booleanValue(); + } else { + result = nresult.getLabel(); + } + } + + boolean suc = true; + + if (eaction != null) { + Node node = eaction.getObjectNode(); + if (trace) + System.out.println("action: " + node.getLabel()); + if (trace) + if (result != null) + System.out.println("result: " + result); + + if (node.isBlank()) { + // [qt:query sparql ; qt:data rdf] + Edge equery = gg.getEdge(qt + "query", node, 0); + Edge erequest = gg.getEdge(qt + "request", node, 0); + if (erequest == null) { + erequest = gg.getEdge(ut + "request", node, 0); + } + Edge edata = gg.getEdge(qt + "data", node, 0); + if (edata == null) { + edata = gg.getEdge(ut + "data", node, 0); + } + + boolean isQuery = equery != null; + boolean isRequest = erequest != null; + + if ((isQuery || isRequest) && edata != null) { + if (trace) + if (isQuery) + System.out.println("query: " + equery.getObjectNode().getLabel()); + if (trace) + if (isRequest) + System.out.println("request: " + erequest.getObjectNode().getLabel()); + if (trace) + System.out.println("data: " + edata.getObjectNode().getLabel()); + + suc = query(test.getLabel(), edata.getObjectNode().getLabel(), + isQuery ? equery.getObjectNode().getLabel() : erequest.getObjectNode().getLabel(), + result, type, entailment, isQuery); + } else { + if (trace) + System.out.println("query: " + equery); + if (trace) + System.out.println("data: " + edata); + } + } else { + suc = action(test.getLabel(), node.getLabel(), result, type, entailment, bresult); + } + } else { + if (trace) + System.out.println("action: " + eaction); + } + + report(subject, suc); + } + + void load(Load ld, String name) throws LoadException, EngineException { + if (name.endsWith(".rq") || name.endsWith(".ru")) { + String q = QueryLoad.create().readWE(name); + QueryProcess exec = QueryProcess.create(Graph.create()); + exec.compile(q); + } else { + ld.parse(name); + } + } + + void entailment(Graph g, String entailment) { + if (entailment != null && entailment.equals("RDFS-Plus")) { + RuleEngine re = RuleEngine.create(g); + re.setProfile(RuleEngine.OWL_RL); + try { + re.process(); + } catch (EngineException ex) { + Logger.getLogger(RDFStarTest.class.getName()).log(Level.SEVERE, null, ex); + } + } + } + + // test with sparql query + boolean query(String test, String rdf, String query, String result, String type, String entailment, + boolean isQuery) { + Graph g = Graph.create(); + Load ld = Load.create(g); + try { + load(ld, rdf); + } catch (EngineException | LoadException ex) { + System.out.println("syntax error: " + rdf); + System.out.println(type); + System.out.println(ex.getMessage()); + return false; + } + + entailment(g, entailment); + + QueryLoad ql = QueryLoad.create(); + try { + String q = ql.readWE(query); + if (trace) + System.out.println("query:\n" + q); + // if (type.contains("Negative")) System.out.println(type); + QueryProcess exec = QueryProcess.create(g); + Mappings map = exec.query(q); + Mappings map2 = result(result); + // String strResult = ql.readWE(result); + return genericompare(test, q, g, map, map2, !type.contains("Negative")); + + } catch (LoadException | EngineException | IOException | ParserConfigurationException | SAXException ex) { + Logger.getLogger(RDFStarTest.class.getName()).log(Level.SEVERE, null, ex); + } + return false; + } + + // test with load + boolean action(String test, String name, String result, String type, String entailment, Boolean bresult) + throws EngineException { + Graph g = Graph.create(); + Load ld = Load.create(g); + try { + load(ld, name); + if (type.contains("Negative")) { + System.out.println(type); + if (result == null && bresult == null) { + System.out.println(g.display()); + } + } + } catch (LoadException | EngineException ex) { + System.out.println("syntax error detected: " + name); + System.out.println(type); + if (type.contains("Negative")) { + // we detect failure: test is a success + return true; + } else { + System.out.println(ex.getMessage()); + return false; + } + } + + entailment(g, entailment); + boolean suc = true; + + if (result != null) { + Graph gres = Graph.create(); + Load ldr = Load.create(gres); + QueryLoad ql = QueryLoad.create(); + try { + // String myresult = check(name, result); + load(ldr, result); + // String rdfstr = ql.readWE(result); + suc = compare(test, g, gres, !type.contains("Negative")); + } catch (LoadException ex) { + Logger.getLogger(RDFStarTest.class.getName()).log(Level.SEVERE, null, ex); + suc = false; + } + } else if (bresult != null) { + suc = g.isCorrect() == bresult; + if (!suc) { + System.out.println("corese graph: " + g.isCorrect() + " w3c result: " + bresult); + } + } + return suc; + } + + boolean genericompare(String test, String q, Graph g, Mappings m1, Mappings m2, boolean positive) { + if (m2.getGraph() != null) { + if (m1.getGraph() == null) { + return compare(test, g, (Graph) m2.getGraph(), positive); + } else { + return compare(test, (Graph) m1.getGraph(), (Graph) m2.getGraph(), positive); + } + } else { + return compare(q, m1, m2); + } + } + + boolean compare(String q, Mappings m1, Mappings m2) { + return myCompare(q, m1, m2); + } + + boolean myCompare(String q, Mappings m1, Mappings m2) { + Compare cp = new Compare(m1, m2); + return cp.check(m1, m2); + } + + void basicCompare(String q, Mappings m1, Mappings m2) { + if (m1.size() != m2.size()) { + System.out.println("query:\n" + q); + display(m1, m2); + } + } + + void compare(Graph g, Graph r) { + + } + + boolean compare(String test, Graph g, Graph r, boolean positive) { + g.init(); + r.init(); + try { + boolean b = query(test, g, r, positive); + if (b != positive) { + System.out.println("corese: " + b + " w3c: " + positive); + display(g, r); + } + return b == positive; + } catch (EngineException ex) { + Logger.getLogger(RDFStarTest.class.getName()).log(Level.SEVERE, null, ex); + } + return false; + } + + // + /** + * translate result graph into sparql ast query + * return as result the projection of result graph ast query on input graph + * semantics: input graph => result graph + * + */ + boolean query(String test, Graph ginput, Graph gresult, boolean positive) + throws EngineException { + + Mappings map = query(test, ginput, gresult); + + if (map.size() > 0 != positive) { + System.out.println("result: " + map.size() + " positive: " + positive); + System.out.println(map.getAST()); + System.out.println("w3c trig graph:"); + System.out.println(TripleFormat.create(gresult, true)); + System.out.println(TripleFormat.create(gresult)); + } + return map.size() > 0; + } + + Mappings query(String test, Graph ginput, Graph gresult) throws EngineException { + if (test.contains("semantics#malformed-literal-bnode-neg")) { + return sparqlQuery(test, ginput, gresult); + } else { + return graphQuery(test, ginput, gresult); + } + } + + Mappings sparqlQuery(String test, Graph ginput, Graph gresult) throws EngineException { + String q = "select * where {?s ?p ?o} limit 1"; + if (test.contains("semantics#malformed-literal-bnode-neg")) { + // negative test: query success => test failure + q = "# check that malformed literal in nested triple does not entail bnode\n" + + "prefix : \n" + + "select * where {" + + "<< :a :b ?x>> :p1 :o1 " + + "filter isBlank(?x)" + + "}"; + } + QueryProcess exec = QueryProcess.create(ginput); + Mappings map = exec.query(q); + System.out.println("sparql:\n" + q); + System.out.println("result:\n" + map.size() + " " + map); + System.out.println("input graph:\n" + ginput.display()); + System.out.println("result graph:\n" + gresult.display()); + nbvariant++; + return map; + } + + Mappings graphQuery(String test, Graph ginput, Graph gresult) throws EngineException { + QueryProcess exec = QueryProcess.create(ginput); + Mappings map = exec.queryTrig(gresult); + return map; + } + + void display(Graph g, Graph r) { + System.out.println("corese:"); + display(g); + System.out.println("rdf star:"); + display(r); + } + + void display(Mappings m1, Mappings m2) { + System.out.println("corese:"); + display(m1); + + System.out.println("rdf star:"); + display(m2); + } + + void display(Mappings map) { + if (map.getGraph() == null) { + System.out.println(map); + } else { + display((Graph) map.getGraph()); + } + } + + void display(Graph g) { + System.out.println("size: " + g.size()); + System.out.println(g.display()); + } + + Mappings result(String name) + throws IOException, ParserConfigurationException, SAXException, LoadException, EngineException { + Mappings map = null; + if (name.endsWith(".srj")) { + SPARQLJSONResult json = SPARQLJSONResult.create(); + map = json.parse(name); + + } else if (name.endsWith(".srx")) { + SPARQLResult xml = SPARQLResult.create(); + map = xml.parse(name); + } else if (name.endsWith(".ttl") || name.endsWith(".trig") || name.endsWith(".nq")) { + Graph g = Graph.create(); + Load ld = Load.create(g); + load(ld, name); + map = new Mappings(); + map.setGraph(g); + } + return map; + } + + void compare(boolean corese, boolean w3c) { + if (corese != w3c) { + System.out.println("corese graph: " + corese + " w3c result: " + w3c); + } + } + + List manifest() throws LoadException { + Graph g = Graph.create(); + Load ld = Load.create(g); + ld.parse(data + "manifest.ttl"); + for (Edge ee : g.getEdges(mf + "include")) { + return g.getDatatypeList(ee.getObjectNode().getDatatypeValue()); + } + return new ArrayList<>(); + } + +} diff --git a/corese-unit-test/src/test/java/fr/inria/corese/w3c/shacl/DataShapeTest.java b/corese-unit-test/src/test/java/fr/inria/corese/w3c/shacl/DataShapeTest.java new file mode 100644 index 0000000000..752f29662a --- /dev/null +++ b/corese-unit-test/src/test/java/fr/inria/corese/w3c/shacl/DataShapeTest.java @@ -0,0 +1,490 @@ +/* + * To change this template, choose Tools | Templates + * and open the template in the editor. + */ +package fr.inria.corese.w3c.shacl; + +import static fr.inria.corese.core.util.Property.Value.LOAD_IN_DEFAULT_GRAPH; + +import java.io.IOException; +import java.util.ArrayList; +import java.util.Collections; +import java.util.Date; +import java.util.HashMap; + +import org.junit.Test; +import org.slf4j.LoggerFactory; + +import fr.inria.corese.core.Graph; +import fr.inria.corese.core.load.Load; +import fr.inria.corese.core.load.LoadException; +import fr.inria.corese.core.query.QueryProcess; +import fr.inria.corese.core.shacl.Shacl; +import fr.inria.corese.core.storage.api.dataManager.DataManager; +import fr.inria.corese.core.transform.Transformer; +import fr.inria.corese.core.util.Property; +import fr.inria.corese.core.workflow.Data; +import fr.inria.corese.core.workflow.ShapeWorkflow; +import fr.inria.corese.kgram.core.Mapping; +import fr.inria.corese.kgram.core.Mappings; +import fr.inria.corese.sparql.api.IDatatype; +import fr.inria.corese.sparql.datatype.DatatypeMap; +import fr.inria.corese.sparql.exceptions.EngineException; +import fr.inria.corese.sparql.triple.parser.NSManager; + +/** + * + * @author Olivier Corby, Wimmics INRIA I3S, 2016 + * + */ +public class DataShapeTest { + static final String SHACL = NSManager.SHAPE + "shacl"; + private static org.slf4j.Logger logger = LoggerFactory.getLogger(DataShapeTest.class); + + static final String data = DataShapeTest.class.getClassLoader() + .getResource("data/data-shapes/data-shapes-test-suite/tests/").getPath() + "/"; + + static String[] names = { + "core/property", + "core/path", + "core/node", + "core/complex", + "core/misc", + "core/targets", + "core/validation-reports", + + "sparql/property", + "sparql/node", + + // "sparql/component" + }; + static String qm = "prefix mf: .\n" + + "prefix sht: ." + + "select * where {" + + "?m mf:include ?f" + + "}"; + + static String qres = "prefix sh: ." + + "prefix mf: .\n" + + "select * where {" + + "?x sh:conforms ?b " + + "optional { ?res mf:result ?x }" + + "optional { " + + "?x sh:result ?r " + + "?r sh:focusNode ?f ; " + + " sh:sourceConstraintComponent ?c " + + "optional { ?r sh:sourceShape ?sh } " + + "optional { ?r sh:value ?val } " + + "optional { ?r sh:resultPath ?p }" + + "optional { ?r sh:resultSeverity ?s }" + + "optional { ?r sh:resultMessage ?m }" + + "}" + + "}" + + "order by ?f ?val "; + + static String qdata = "prefix sh: ." + + "prefix mf: .\n" + + "prefix sht: ." + + "select * where {" + + "?x sht:dataGraph ?data ;" + + " sht:shapesGraph ?shape" + + "}"; + + static String qcheck = "prefix sh: ." + + "prefix mf: .\n" + + "select * where {" + + "?x sh:conforms ?b " + + "}"; + + static IDatatype dtsuc, dtfail; + EarlReport report; + int count = 0; + int error = 0; + int num = 0; + boolean lds = true; + boolean benchmark = false, repeat = false, verbose = true; + boolean done = false; + HashMap tjava, tlds; + + public DataShapeTest() { + tjava = new HashMap(); + tlds = new HashMap(); + + } + + void display() { + ArrayList list = new ArrayList(); + for (String s : tjava.keySet()) { + list.add(s); + } + Collections.sort(list); + double djava = 0, dlds = 0; + int i = 1; + System.out.println(""); + System.out.println(""); + System.out.println(""); + System.out.println(""); + System.out.println(""); + System.out.println(""); + System.out.println(""); + for (String name : list) { + System.out.println(""); + System.out.println(String.format("", i++, name, tjava.get(name), + tlds.get(name))); + System.out.println(""); + djava += tjava.get(name); + dlds += tlds.get(name); + } + System.out.println(String.format("", djava, dlds)); + + System.out.println("
NumTestJavaLDScript
%s%s%s%s
Total%s%s
"); + System.out.println(""); + System.out.println(""); + } + + public void main(String[] args) throws LoadException, EngineException, IOException { + // new DataShapeTest().testSimple(); + new DataShapeTest().testThread(); + } + + void testThread() { + for (int i = 0; i < 1; i++) { + System.out.println("thread:" + i); + new ShapeThread().start(); + } + } + + class ShapeThread extends Thread { + @Override + public void run() { + try { + new DataShapeTest().testSimple(); + } catch (LoadException ex) { + logger.error(ex.getMessage()); + } catch (EngineException | IOException ex) { + logger.error(ex.getMessage()); + } + } + } + + @Test + public void testSimple() throws LoadException, EngineException, IOException { + Property.set(LOAD_IN_DEFAULT_GRAPH, true); + // Property.set(Property.Value.RDF_STAR_TRIPLE, true); + // Property.set(Property.Value.DATATYPE_ENTAILMENT, false); + System.out.println("Property: " + Property.display()); + Date d1 = new Date(); + test(); + Date d2 = new Date(); + System.out.println("Total: " + (d2.getTime() - d1.getTime()) / 1000.0); + } + + /** + * Java : 5.6014 LDS : 5.1073 + */ + public void benchmark() throws LoadException, EngineException, IOException { + benchmark = true; + lds = true; + System.out.println("LDScript"); + process(); + lds = false; + System.out.println("Java"); + process(); + display(); + } + + public void process() throws LoadException, EngineException, IOException { + for (int i = 0; i < 5; i++) { + // warm up + test(); + } + repeat = true; + + Date d1 = new Date(); + test(); + repeat = false; + Date d2 = new Date(); + System.out.println("Total: " + (d2.getTime() - d1.getTime()) / 1000.0); + + } + + public void test() throws LoadException, EngineException, IOException { + // Access.set(Access.Feature.LINKED_FUNCTION, Access.Level.USER_DEFAULT); + + // 4 distinct from 4.0 + // Function.typecheck = true; + // Function.rdftypecheck = true; + report = new EarlReport("file://" + data); + // DatatypeMap.setSPARQLCompliant(true); + for (String name : names) { + + // if (!name.contains("node")){ + // continue; + // } + + System.out.println(name); + process(data + name + "/"); + System.out.println(); + } + + report.write("earl-report-test.ttl"); + System.out.println((error == 0) ? "No error" : ("*** ERRORS: " + error)); + } + + public void process(String name) throws LoadException, EngineException { + Graph g = manifest(name); + QueryProcess exec = QueryProcess.create(g); + Mappings map = exec.query(qm); + + for (Mapping m : map) { + IDatatype dt = (IDatatype) m.getValue("?f"); + if (repeat) { + exec(dt.getLabel()); + } else { + file(dt.getLabel()); + } + } + } + + void exec(String file) throws EngineException, LoadException { + Date d1 = new Date(); + for (int i = 0; i < 10; i++) { + file(file); + } + Date d2 = new Date(); + record(file, (d2.getTime() - d1.getTime()) / 10000.0); + System.out.println(file + " " + (d2.getTime() - d1.getTime()) / 10000.0); + } + + void record(String f, double d) { + if (lds) { + tlds.put(f, d); + } else { + tjava.put(f, d); + } + } + + void file(String file) throws EngineException, LoadException { + // if (! file.contains("equals-001.ttl")) { + // return; + // } + Graph g = Graph.create(); + Load ld = Load.create(g); + ld.parse(file); + QueryProcess exec = QueryProcess.create(g); + Mappings map = exec.query(qdata); + IDatatype datadt = (IDatatype) map.getValue("?data"); + IDatatype shapedt = (IDatatype) map.getValue("?shape"); + + Graph greport = exec(shapedt.getLabel(), datadt.getLabel()); + + QueryProcess exec0 = QueryProcess.create(greport); + // does it conform ? + Mappings mm = exec0.query(qcheck); + + QueryProcess exec1 = QueryProcess.create(greport); + Mappings mapkgram = exec1.query(qres); + + QueryProcess exec2 = QueryProcess.create(g); + Mappings mapw3c = exec2.query(qres); + + String mes = ""; + if (mapkgram.size() != mapw3c.size()) { + mes = "*** "; + error++; + } + + if (!benchmark || mapkgram.size() != mapw3c.size()) { + if (verbose) { + System.out.println(count++ + " " + mes + file + " " + mapw3c.size() + " " + mapkgram.size()); + } + } + + if (true) { + if (mm.size() != 1) { + System.out.println("**** " + mm.size() + " reports"); + } + + if (mapkgram.size() == mapw3c.size()) { + boolean suc = compare(file, g, mapw3c, mapkgram); + report.result(mapw3c, suc); + if (!suc) { + error++; + } + } else { + trace(g, greport); + report.result(mapw3c, false); + } + } + } + + Graph exec(String shape, String data) throws EngineException, LoadException { + return execds(shape, data); + } + + // 4.705 4.645 + // 4.275 + Graph execds(String shape, String data) throws EngineException, LoadException { + Graph g = load(data); + Graph sh = (data.equals(shape)) ? g : load(shape, g); + + Shacl shacl = new Shacl(g); + before(shacl); + // shacl.setTrace(true); + Graph res = shacl.eval(sh); + // shacl.setup(Shacl.SETUP_DETAIL, true); + after(shacl); + return res; + } + + void before(Shacl shacl) { + if (dtsuc != null) { + shacl.input().setVariable(shacl.TRACEMAPSUC_VAR, dtsuc); + shacl.input().setVariable(shacl.TRACEMAPFAIL_VAR, dtfail); + } + } + + void setup(Shacl shacl) { + IDatatype map = DatatypeMap.map(); + map.set(DatatypeMap.newResource(shacl.SETUP_DETAIL), DatatypeMap.TRUE); + shacl.input().setVariable(shacl.SETUP_VAR, map); + } + + void after(Shacl shacl) { + dtsuc = shacl.output().getVariable(shacl.TRACEMAPSUC_VAR); + dtfail = shacl.output().getVariable(shacl.TRACEMAPFAIL_VAR); + } + + void trace() { + trace(dtsuc); + trace(dtfail); + } + + void trace(IDatatype dt) { + IDatatype key = DatatypeMap.newResource(NSManager.SHACL, "subtotal"); + for (IDatatype name : dt.getMap().keySet()) { + IDatatype val = dt.getMap().get(name); + IDatatype count = val.getMap().get(key); + System.out.println(name + " " + count); + } + } + + Graph execwf(String shape, String data) throws EngineException { + ShapeWorkflow wf = new ShapeWorkflow(shape, data, false, lds); + Data res = wf.process(); + return res.getVisitedGraph(); + } + + Graph load(String path) throws LoadException { + Graph g = Graph.create(); + load(path, g); + return g; + } + + Graph load(String path, DataManager man) throws LoadException { + Graph g = Graph.create(); + Load ld = Load.create(g, man); + ld.parse(path); + g.index(); + return g; + } + + Graph load(String path, Graph g) throws LoadException { + Load ld = Load.create(g); + ld.parse(path); + g.index(); + return g; + } + + void result(Mappings map) { + } + + void trace(Graph w3c, Graph kg) { + try { + Transformer t1 = Transformer.create(w3c, Transformer.TURTLE); + Transformer t2 = Transformer.create(kg, Transformer.TURTLE); + System.out.println("w3c report: "); + System.out.println(t1.transform()); + System.out.println("__"); + System.out.println("kgram report: "); + System.out.println(t2.transform()); + System.out.println("=="); + } catch (EngineException e) { + System.out.println(e.getMessage()); + } + } + + boolean compare(String file, Graph g, Mappings w3c, Mappings kgram) { + int i = 0; + boolean suc = true; + for (Mapping m1 : w3c) { + Mapping m2 = kgram.get(i); + + boolean b1 = compare(i, " confo: ", m1, m2, "?b", false); + boolean b2 = compare(i, " focus: ", m1, m2, "?f", false); + boolean b3 = compare(i, " value: ", m1, m2, "?val", false); + boolean b4 = compare(i, " path: ", g, m1, m2, "?p", true); + boolean b5 = compare(i, " const: ", m1, m2, "?c", false); + boolean b6 = compare(i, " sever: ", m1, m2, "?s", false); + boolean b7 = compare(i, " shape: ", m1, m2, "?sh", false); + boolean b8 = compare(i, " mess: ", m1, m2, "?m", false); + + suc = suc && b1 && b2 && b3 && b4 && b5 && b6 && b7 && b8; + i++; + } + + return suc; + } + + boolean compare(int i, String mes, Mapping w3, Mapping kg, String var, boolean path) { + return compare(i, mes, null, w3, kg, var, path); + } + + boolean compare(int i, String mes, Graph g, Mapping w3, Mapping kg, String var, boolean path) { + try { + IDatatype dtw3 = (IDatatype) w3.getValue(var); + IDatatype dtkg = (IDatatype) kg.getValue(var); + if (dtw3 != null) { + if (dtkg == null) { + System.out.println(i + mes + dtw3 + " " + dtkg); + return false; + } else if (path && dtw3.isBlank()) { + // in kg report graph, path is pretty printed and stored in a st:graph custom + // literal datatype + // in such a way that once pretty printed, validation report graph path is a + // SHACL path + // hence here we compare the pretty print of W3C path with pretty print of kg + // path + Transformer t = Transformer.create(g, Transformer.TURTLE); + IDatatype ddw3 = t.process(dtw3); + if (!ddw3.stringValue().equals(dtkg.stringValue())) { + System.out.println(i + mes); + System.out.println("w3c: " + ddw3.stringValue()); + System.out.println("kg: " + dtkg.stringValue() + " " + dtkg.getList()); + System.out.println("__"); + return false; + } + } else if (!((dtw3.isBlank() && dtkg.isBlank()) || dtw3.equals(dtkg))) { + System.out.println(i + mes + dtw3 + " " + dtkg); + return false; + } + + } + return true; + } catch (EngineException e) { + System.out.println(e.getMessage()); + return false; + } + } + + Graph manifest(String dir) throws LoadException { + Graph g = Graph.create(); + Load ld = Load.create(g); + ld.parse(dir + "manifest.ttl"); + return g; + } +} diff --git a/corese-unit-test/src/test/java/fr/inria/corese/w3c/shacl/EarlReport.java b/corese-unit-test/src/test/java/fr/inria/corese/w3c/shacl/EarlReport.java new file mode 100644 index 0000000000..2ef5d3aea5 --- /dev/null +++ b/corese-unit-test/src/test/java/fr/inria/corese/w3c/shacl/EarlReport.java @@ -0,0 +1,75 @@ +package fr.inria.corese.w3c.shacl; + +import java.io.FileWriter; +import java.io.IOException; + +import fr.inria.corese.kgram.core.Mappings; +import fr.inria.corese.sparql.api.IDatatype; +import fr.inria.corese.sparql.datatype.DatatypeMap; + +/** + * + * @author Olivier Corby, Wimmics INRIA I3S, 2017 + * + */ +public class EarlReport { + + static final String root = "urn:x-shacl-test:"; + + static final String header = "@prefix doap: .\n" + + "@prefix earl: .\n" + + "@prefix owl: .\n" + + "@prefix rdf: .\n" + + "@prefix rdfs: .\n" + + "@prefix xsd: .\n" + + "\n" + + "\n" + + " rdf:type doap:Project ;\n" + + " rdf:type earl:Software ;\n" + + " rdf:type earl:TestSubject ;\n" + + " doap:developer ;\n" + + " doap:name \"Corese SHACL\" ;\n" + + " doap:date %s \n" + + ".\n\n"; + + static final String result = "[\n" + + " rdf:type earl:Assertion ;\n" + + " earl:assertedBy ;\n" + + " earl:result [\n" + + " rdf:type earl:TestResult ;\n" + + " earl:mode earl:automatic ;\n" + + " earl:outcome %s ;\n" + + " ] ;\n" + + " earl:subject ;\n" + + " earl:test <%s> ;\n" + + "].\n"; + + StringBuilder sb; + String path; + + EarlReport(String path) { + sb = new StringBuilder(); + sb.append(String.format(header, DatatypeMap.newDate())); + this.path = path; + } + + void result(Mappings map, boolean b) { + IDatatype res = (IDatatype) map.getValue("?res"); + sb.append(String.format(result, value(b), clean(res.stringValue()))); + } + + String value(boolean b) { + return (b) ? "earl:passed" : "earl:failed"; + } + + String clean(String uri) { + return root.concat(uri.substring(path.length() - 1)); + } + + void write(String path) throws IOException { + FileWriter fw = new FileWriter(path); + fw.write(sb.toString()); + fw.flush(); + fw.close(); + } +} diff --git a/corese-unit-test/src/test/java/fr/inria/corese/w3c/sparql/Dataset.java b/corese-unit-test/src/test/java/fr/inria/corese/w3c/sparql/Dataset.java new file mode 100644 index 0000000000..c65025bb6e --- /dev/null +++ b/corese-unit-test/src/test/java/fr/inria/corese/w3c/sparql/Dataset.java @@ -0,0 +1,69 @@ +package fr.inria.corese.w3c.sparql; + +import java.util.ArrayList; +import java.util.List; + +import fr.inria.corese.kgram.api.core.Node; +import fr.inria.corese.kgram.core.Mapping; +import fr.inria.corese.kgram.core.Mappings; + +public class Dataset { + + ArrayList uris, names; + + Dataset() { + uris = new ArrayList(); + names = new ArrayList(); + } + + Dataset init(Mappings lm, String vname, String vuri) { + + for (Mapping map : lm) { + Node uri = map.getNode(vuri); + Node name = map.getNode(vname); + if (uri != null) { + if (name != null) { + add(name.getLabel(), uri.getLabel()); + } else { + addURI(uri.getLabel()); + } + } + } + + return this; + } + + void add(String name, String uri) { + int i = 0; + for (String n : names) { + if (n.equals(name) && uris.get(i).equals(uri)) { + return; + } + i++; + } + uris.add(uri); + names.add(name); + } + + void addURI(String uri) { + if (!uris.contains(uri)) { + uris.add(uri); + } + } + + List getURIs() { + return uris; + } + + List getNames() { + return names; + } + + String getNameOrURI(int i) { + if (names.size() > 0) { + return names.get(i); + } else { + return uris.get(i); + } + } +} diff --git a/corese-unit-test/src/test/java/fr/inria/corese/w3c/sparql/Earl.java b/corese-unit-test/src/test/java/fr/inria/corese/w3c/sparql/Earl.java new file mode 100644 index 0000000000..aa50ae9270 --- /dev/null +++ b/corese-unit-test/src/test/java/fr/inria/corese/w3c/sparql/Earl.java @@ -0,0 +1,82 @@ +package fr.inria.corese.w3c.sparql; + +import java.io.BufferedWriter; +import java.io.File; +import java.io.FileWriter; +import java.io.IOException; +import java.util.Formatter; + +import org.apache.logging.log4j.Level; +import org.apache.logging.log4j.LogManager; + +import fr.inria.corese.core.load.LoadException; +import fr.inria.corese.core.load.QueryLoad; +import fr.inria.corese.sparql.datatype.DatatypeMap; + +public class Earl { + + static final String NL = System.getProperty("line.separator"); + static final String data = TestW3C11KGraphNew.more; + + StringBuilder sb; + Formatter fmt; + + String header, pattern, corese; + + Earl() { + sb = new StringBuilder(); + fmt = new Formatter(sb); + try { + QueryLoad ql = QueryLoad.create(); + header = ql.readWE(data + "prefix.txt"); + corese = ql.readWE(data + "corese.txt"); + pattern = ql.readWE(data + "pattern.txt"); + fmt.format(header); + fmt.format(corese); + } catch (LoadException ex) { + LogManager.getLogger(Earl.class.getName()).log(Level.ERROR, "", ex); + } + } + + void define(String test, boolean res) { + fmt.format(pattern, test, result(res), DatatypeMap.newDate().toSparql()); + } + + void skip(String test) { + fmt.format(pattern, test, "earl:untested", DatatypeMap.newDate().toSparql()); + } + + String result(boolean res) { + if (res) + return "earl:passed"; + else + return "earl:failed"; + } + + public String toString() { + return sb.toString(); + } + + public void toFile(String name) { + File f = new File(name); + try { + FileWriter w = new FileWriter(f); + BufferedWriter b = new BufferedWriter(w); + b.write(sb.toString()); + b.flush(); + w.close(); + } catch (IOException e) { + e.printStackTrace(); + } + } + + void process() { + define("aggregates/test1", true); + System.out.println(this); + } + + public static void main(String[] args) { + new Earl().process(); + } + +} diff --git a/corese-unit-test/src/test/java/fr/inria/corese/w3c/sparql/TestW3C10KGraphNew.java b/corese-unit-test/src/test/java/fr/inria/corese/w3c/sparql/TestW3C10KGraphNew.java new file mode 100644 index 0000000000..23220b1c90 --- /dev/null +++ b/corese-unit-test/src/test/java/fr/inria/corese/w3c/sparql/TestW3C10KGraphNew.java @@ -0,0 +1,42 @@ +/* + * To change this template, choose Tools | Templates + * and open the template in the editor. + */ + +package fr.inria.corese.w3c.sparql; + +import org.junit.AfterClass; +import org.junit.BeforeClass; +import org.junit.Test; +import org.junit.Assert; + + +/** + * + * @author Olivier Corby, Wimmics INRIA I3S, 2016 + * + */ +public class TestW3C10KGraphNew { + + public static void main(String[] args) { + new TestW3C11KGraphNew().process(0); + } + + @BeforeClass + public static void setUpClass() throws Exception { + // before2(); + + } + + @AfterClass + public static void tearDownClass() throws Exception { + // after2(); + } + + // Number of known failures: 7 + @Test + public void mytest() { + int nb_errors = new TestW3C11KGraphNew().process(0); + Assert.assertEquals(7, nb_errors); + } +} diff --git a/corese-unit-test/src/test/java/fr/inria/corese/w3c/sparql/TestW3C11KGraphNew.java b/corese-unit-test/src/test/java/fr/inria/corese/w3c/sparql/TestW3C11KGraphNew.java new file mode 100644 index 0000000000..e45cfc9cc4 --- /dev/null +++ b/corese-unit-test/src/test/java/fr/inria/corese/w3c/sparql/TestW3C11KGraphNew.java @@ -0,0 +1,1779 @@ +package fr.inria.corese.w3c.sparql; + +import java.io.BufferedReader; +import java.io.ByteArrayInputStream; +import java.io.File; +import java.io.FileInputStream; +import java.io.FileNotFoundException; +import java.io.FileReader; +import java.io.IOException; +import java.io.InputStream; +import java.io.UnsupportedEncodingException; +import java.net.MalformedURLException; +import java.net.URL; +import java.util.ArrayList; +import java.util.Collections; +import java.util.Date; +import java.util.Hashtable; +import java.util.List; +import java.util.logging.Logger; + +import javax.xml.parsers.ParserConfigurationException; + +import org.apache.logging.log4j.Level; +import org.apache.logging.log4j.LogManager; +import org.junit.After; +import org.junit.AfterClass; +import org.junit.Assert; +import org.junit.Before; +import org.junit.BeforeClass; +import org.junit.Test; +import org.xml.sax.SAXException; + +import fr.inria.corese.compiler.eval.QuerySolver; +import fr.inria.corese.compiler.parser.NodeImpl; +import fr.inria.corese.core.Graph; +import fr.inria.corese.core.load.Load; +import fr.inria.corese.core.load.LoadException; +import fr.inria.corese.core.load.QueryLoad; +import fr.inria.corese.core.logic.Entailment; +import fr.inria.corese.core.logic.RDF; +import fr.inria.corese.core.logic.RDFS; +import fr.inria.corese.core.print.CSVFormat; +import fr.inria.corese.core.print.JSONFormat; +import fr.inria.corese.core.print.TSVFormat; +import fr.inria.corese.core.print.TemplateFormat; +import fr.inria.corese.core.query.ProducerImpl; +import fr.inria.corese.core.query.ProviderImpl; +import fr.inria.corese.core.query.QueryProcess; +import fr.inria.corese.core.rule.RuleEngine; +import fr.inria.corese.core.transform.Transformer; +import fr.inria.corese.core.util.SPINProcess; +import fr.inria.corese.kgram.api.core.Edge; +import fr.inria.corese.kgram.api.core.Node; +import fr.inria.corese.kgram.api.query.Producer; +import fr.inria.corese.kgram.api.query.Provider; +import fr.inria.corese.kgram.core.Mapping; +import fr.inria.corese.kgram.core.Mappings; +import fr.inria.corese.kgram.core.Query; +import fr.inria.corese.sparql.api.IDatatype; +import fr.inria.corese.sparql.datatype.DatatypeMap; +import fr.inria.corese.sparql.exceptions.EngineException; +import fr.inria.corese.sparql.exceptions.SafetyException; +import fr.inria.corese.sparql.exceptions.UndefinedExpressionException; +import fr.inria.corese.sparql.triple.parser.ASTQuery; +import fr.inria.corese.sparql.triple.parser.NSManager; +import fr.inria.corese.sparql.triple.printer.SPIN; + +/** + * KGRAM benchmark on W3C SPARQL 1.1 Query & Update Test cases + * + * entailment: + * + * error in w3c ? rdfs08.rq inherit rdfs:range ? rdfs11.rq subclassof is + * reflexive + * + * + * @author Olivier Corby, Edelweiss, INRIA 2011 + * + */ +public class TestW3C11KGraphNew { + // root of test case RDF data + + // static final String data0 = + // "/home/corby/workspace/coreseV2/src/test/resources/data/"; + // static final String data = + // "/home/corby/NetBeansProjects/kgram/trunk/kgtool/src/test/resources/data/"; + static final String data = TestW3C11KGraphNew.class.getResource("/data/").getPath(); + // old local copy: + // static final String froot = data + + // "w3c-sparql11/WWW/2009/sparql/docs/tests/data-sparql11/"; + // new local copy: + static final String froot = data + "w3c-sparql11/sparql11-test-suite/"; + static final String root0 = data + "w3c-sparql10/data-r2/"; + static final String frdf = data + "w3c-rdf/rdf-mt/tests/"; + static final String wrdf = "https://dvcs.w3.org/hg/rdf/raw-file/default/rdf-mt/tests/"; + + // W3C test case: + static final String wroot = "http://www.w3.org/2009/sparql/docs/tests/data-sparql11/"; + // static final String RULE = "/net/servers/ftp-sop/wimmics/soft/rule/rdfs.rul"; + static final String RULE = data + "w3c-sparql11/data/rdfs.rul"; + // static final String root0 = data0 + "test-suite-archive/data-r2/"; + static final String DC = "http://purl.org/dc/elements/1.1/"; + + static final String TTL = "/home/corby/AData/work/w3c/"; + static int cc = 0; + /** + * ********** + * TO SET: ********** + */ + // ** directory where data are: + static final String root = froot; + // ** directory where to save earl report: + static final String more = data + "earl/"; + // query + static final String man = "prefix mf: " + + "prefix qt: " + + "prefix sd: " + + "prefix ent: " + + "prefix dawgt: " + + "select * where {" + + "?x mf:action ?a " + + "minus {?x dawgt:approval dawgt:Withdrawn}" + + "optional {?a qt:query ?q} " + + "optional {?a qt:data ?d}" + + "optional {?a qt:graphData ?g} " + + "optional {?a sd:entailmentRegime ?ent}" + + "optional {?x sd:entailmentRegime ?ent}" + + "optional {?x mf:result ?r}" + + "optional {?x rdf:type ?t}" + + "optional {?x mf:feature ?fq}" + + "optional { ?x mf:recognizedDatatypes/rdf:rest*/rdf:first ?rdt }" + + "optional { ?x mf:unrecognizedDatatypes/rdf:rest*/rdf:first ?udt }" + + "optional { ?a qt:serviceData [ qt:endpoint ?ep ; qt:data ?ed ] }" + + "{?man rdf:first ?x} " + + "} " + + "group by ?x order by ?q "; + // update + static final String man2 = "prefix mf: " + + "prefix ut: " + + "prefix sd: " + + "prefix ent: " + + "prefix dawgt: " + + "select * where {" + + "?x mf:action ?a " + + "minus {?x dawgt:approval dawgt:Withdrawn}" + + "optional {?a ut:request ?q} " + + "optional {?a ut:data ?d}" + + "optional {?a ut:graphData [?p ?g; rdfs:label ?name] " + + "filter(?p = ut:data || ?p = ut:graph) } " + + "optional {?x sd:entailmentRegime ?ent}" + + "optional {?x mf:result ?ee filter(! exists {?ee ?qq ?yy}) }" + + "optional {?x mf:result [ut:data ?r] }" + + "optional {?x mf:result [ut:graphData [rdfs:label ?nres; ?pp ?gr ]] " + + "filter(?pp = ut:data || ?pp = ut:graph) }" + + "optional {?x rdf:type ?t}" + + "{?man rdf:first ?x} " + + "} " + + "group by ?x order by ?q "; + static String ENTAILMENT = "http://www.w3.org/ns/entailment/"; + static String NEGATIVE = "Negative"; + static String POSITIVE = "Positive"; + Testing tok, tko; + int gok = 0, gko = 0, + total = 0, nbtest = 0; + boolean verbose = true; + boolean sparql1 = true; + boolean strict = true; + boolean trace = true; + List errors = new ArrayList(); + List names = new ArrayList(); + Earl earl; + private Graph spinGraph = Graph.create(); + + class Testing extends Hashtable { + } + + @BeforeClass + public static void setUpClass() throws Exception { + // before2(); + // Graph.setEdgeMetadataDefault(true); + } + + @AfterClass + public static void tearDownClass() throws Exception { + // after2(); + } + + static void before() { + Graph g = Graph.create(); + QueryProcess exec = QueryProcess.create(g); + + QuerySolver.setVisitorable(true); + DatatypeMap.TRUE.setPublicDatatypeValue(DatatypeMap.newList()); + + String q = "@public @error " + + "function us:error(?e, ?x , ?y) { " + + "xt:print('****************** error') ; " + + "xt:print(java:getAST(xt:query())) ;" + + "xt:display( ?e, ?x, ?y) ; " + + "xt:add(ds:getPublicDatatypeValue(true), xt:list(?e, ?x, ?y)) ;" + + "error() " + + "}"; + + try { + Query qq = exec.compile(q); + } catch (EngineException ex) { + System.out.println(ex); + Logger.getLogger(TestW3C11KGraphNew.class.getName()).log(java.util.logging.Level.SEVERE, null, ex); + } + + } + + static void after() { + System.out.println("After"); + int i = 0; + for (IDatatype dt : DatatypeMap.TRUE.getPublicDatatypeValue().getValues()) { + System.out.println(i++ + " " + dt); + } + } + + static void before2() { + Graph g = Graph.create(); + QueryProcess exec = QueryProcess.create(g); + + QuerySolver.setVisitorable(true); + + IDatatype map = DatatypeMap.map(); + map.set(DatatypeMap.newResource(NSManager.USER, "error"), DatatypeMap.newList()); + DatatypeMap.setPublicDatatypeValue(map); + + String q = "@public {" + + "function us:start() {" + + "let (?map = xt:map()) {" + + "xt:set(?map, us:error, xt:list()) ;" + + "ds:setPublicDatatypeValue(true, ?map)" + + "}" + + "}" + + "@error " + + "function us:error(?e, ?x , ?y) { " + + "us:recerror(?e, ?x, ?y) ; " + + "error() " + + "}" + + "@filter " + + "function us:filter(?g, ?e, ?b) { " + // + "xt:print(?e);" + + "us:record(?e) ;" + + "?b " + + "}" + + "@select " + + "function us:select(?e, ?b) { " + // + "xt:print(?e);" + + "us:record(?e) ;" + + "?b " + + "}" + + "function us:record(?e) {" + + "if (java:isTerm(?e)) {" + + "xt:set(ds:getPublicDatatypeValue(true), java:getLabel(?e), java:getLabel(?e)) ;" + + "let (( | ?l) = ?e) {" + + "for (?ee in ?e) {" + + "us:record(?ee)" + + "}" + + "}" + + "}" + + "}" + + "function us:recerror(?e, ?x, ?y) {" + + "xt:add(xt:get(ds:getPublicDatatypeValue(true), us:error), xt:list(?e, ?x, ?y))" + + "}" + + "}"; + + try { + Query qq = exec.compile(q); + // exec.funcall(NSManager.USER + "start", new IDatatype[0]); + } catch (EngineException ex) { + System.out.println(ex); + Logger.getLogger(TestW3C11KGraphNew.class.getName()).log(java.util.logging.Level.SEVERE, null, ex); + } + + } + + static void after2() { + System.out.println("After"); + int i = 0; + for (IDatatype dt : DatatypeMap.getPublicDatatypeValue()) { + System.out.println(i++ + " " + dt.getValueList().get(1)); + } + i = 0; + for (IDatatype dt : DatatypeMap.getPublicDatatypeValue() + .get(DatatypeMap.newResource(NSManager.USER, "error"))) { + System.out.println(i++ + " " + dt); + } + } + + @Before + public void setUp() throws EngineException, MalformedURLException, IOException { + // doSetUp(); + } + + void doSetUp() { + String q = "@public @update " + + "function us:myupdate(del, ins) {" + + "if (xt:size(del) > 0, xt:print('delete:', del), true);" + + "if (xt:size(ins) > 0, xt:print('insert:', ins), true)" + + "}"; + QueryProcess exec = QueryProcess.create(Graph.create()); + try { + exec.compile(q); + } catch (EngineException ex) { + Logger.getLogger(TestW3C11KGraphNew.class.getName()).log(java.util.logging.Level.SEVERE, null, ex); + } + } + + @After + public void tearDown() { + } + + public TestW3C11KGraphNew() { + DatatypeMap.setSPARQLCompliant(true); + // fr.inria.corese.core.NodeImpl.byIDatatype = true; + // Load.setDefaultGraphValue(true); + tko = new Testing(); + tok = new Testing(); + earl = new Earl(); + // QueryProcess.testAlgebra(true); + // Graph.METADATA_DEFAULT = true; + } + + // Number of known failures: 2 + public static void main(String[] args) { + int nb_errors = new TestW3C11KGraphNew().process(); + Assert.assertEquals(2, nb_errors); + } + + // Number of known failures: 2 + @Test + public void mytest() { + int nb_errors = new TestW3C11KGraphNew().process(); + Assert.assertEquals(2, nb_errors); + } + + /** + * SPARQL 1.0 + */ + void test0() { + sparql1 = false; + test(root0 + "distinct"); + test(root0 + "algebra"); + test(root0 + "ask"); + test(root0 + "basic"); + test(root0 + "bnode-coreference"); + test(root0 + "optional"); + test(root0 + "boolean-effective-value"); + test(root0 + "bound"); + test(root0 + "optional-filter"); + test(root0 + "cast"); + test(root0 + "expr-equals"); + test(root0 + "expr-ops"); + test(root0 + "graph"); + test(root0 + "i18n"); + test(root0 + "regex"); + test(root0 + "solution-seq"); + test(root0 + "triple-match"); + test(root0 + "type-promotion"); + test(root0 + "syntax-sparql1"); + test(root0 + "syntax-sparql2"); + test(root0 + "syntax-sparql3"); + test(root0 + "syntax-sparql4"); + test(root0 + "syntax-sparql5"); + test(root0 + "open-world"); + test(root0 + "sort"); + test(root0 + "dataset"); + test(root0 + "reduced"); + test(root0 + "expr-builtin"); + test(root0 + "construct"); + } + + void test00() { + sparql1 = false; + test(root0 + "open-world"); + + } + + void testRDF() { + sparql1 = true; + + test(wrdf, "manifest.ttl", false, true, true); + // test(wrdf, "manifest-az.ttl", false, true, true); + } + + /** + * SPARQL 1.1 + */ + void test1() { + sparql1 = true; + + // test(root + "service"); + test(root + "syntax-fed"); + test(root + "syntax-query"); + test(root + "negation"); + test(root + "project-expression"); + test(root + "subquery"); + test(root + "construct"); + test(root + "grouping"); + test(root + "functions"); + test(root + "json-res"); + test(root + "csv-tsv-res"); + test(root + "aggregates"); + test(root + "property-path"); + test(root + "bind"); + test(root + "bindings"); + test(root + "exists"); + + test(root + "subquery"); + + } + + void testUpdate() { + sparql1 = true; + + test(root + "syntax-update-1", true); + test(root + "syntax-update-2", true); + test(root + "basic-update", true); + test(root + "delete-data", true); + test(root + "delete-where", true); + test(root + "delete", true); + test(root + "delete-insert", true); + test(root + "update-silent", true); + + test(root + "drop", true); + test(root + "clear", true); + test(root + "add", true); + test(root + "move", true); + test(root + "copy", true); + } + + void test() { + sparql1 = true; + // test(root + "functions", false); + test(root + "bind"); + + } + + void testelem() { + sparql1 = false; + test(root0 + "bind"); + } + + public int process() { + return process(1); + } + + // @Test + public int process(int version) { + gok = 0; + gko = 0; + + // 25 (june 2016) + // 28 errors 416 success + // 29 errors 04/05/12 + // 31 errors 11/05/12 because of optional DOT + // QueryProcess.setJoin(true); + // Graph.setValueTable(true); + // Graph.setCompareIndex(true); + if (version == 1) { + test1(); + testUpdate(); + } else { + test0(); // 25 errorstest + } + + ArrayList vec = new ArrayList(); + for (String key : tok.keySet()) { + vec.add(key); + } + Collections.sort(vec); + + total = gok + gko; + + println(""); + println("Corese 3.0/KGRAM SPARQL 1.1 Query & Update W3C Test cases"); + + println(""); + println(""); + println(""); + println("

Corese 3.0 KGRAM SPARQL 1.1 Query & Update W3C Test cases

"); + println("

Olivier Corby - Wimmics - INRIA I3S

"); + println("

" + new Date() + " - Corese 3.0 homepage

"); + // println("

SPARQL + // test cases

"); + println(""); + println(""); + println(""); + println(""); + + println(""); + int i = 1; + + for (String key : vec) { + int ind = key.lastIndexOf("/"); + String title = key.substring(0, ind); + ind = title.lastIndexOf("/"); + title = title.substring(ind + 1); + + int suc = tok.get(key); + int fail = tko.get(key); + String att = ""; + if (fail == 0 && suc != 0) { + att = " class='success'"; + } + System.out.print(""); + System.out.print(""); + System.out.print(""); + System.out.print(""); + System.out.print(""); + + int ratio = 0; + try { + ratio = 100 * suc / (suc + fail); + } catch (Exception e) { + } + print(""); + println(""); + } + + println("
testsuccessfailureratio
total" + gok + "" + gko + "" + + (100 * gok) / (total) + "%" + i++ + "" + title + "" + suc + "" + fail + "" + ratio + "%
"); + int j = 0, k = 1; + if (errors.size() > 0) { + println("

Failure

"); + } + for (String name : names) { + if (name.indexOf("data-sparql11") != -1) { + println(k++ + ": " + name.substring(name.indexOf("data-sparql11"))); + } else { + println(k++ + ": " + name); + } + + println("
\n" + errors.get(j++) + "\n
"); + println(""); + } + println(""); + + if (total != nbtest) { + println("*** Missing result: " + total + " " + nbtest); + } + + process(spinGraph); + + earl.toFile(more + "earl.ttl"); + + Graph ge = Graph.create(); + Load le = Load.create(ge); + try { + le.parse(more + "earl.ttl"); + // System.out.println(ge); + } catch (LoadException ex) { + LogManager.getLogger(TestW3C11KGraphNew.class.getName()).log(Level.ERROR, "", ex); + } + + // There are 5 known erros + return errors.size(); + + // Processor.finish(); + } + + void println(String str) { + System.out.println(str); + } + + void print(String str) { + System.out.print(str); + } + + /** + * Test one manifest + */ + void skip(String path) { + test(path, false, false, false); + } + + void test(String path) { + test(path, false, false, true); + } + + void test(String path, boolean update) { + test(path, update, false, true); + } + + /** + * Process one manifest Load manifest.ttl in a Graph SPARQL Query the graph + * to get the query list, input and output list. + */ + void test(String path, boolean update, boolean isRDF, boolean process) { + if (!path.endsWith("/")) { + path = path + "/"; + } + test(path, "manifest.ttl", update, isRDF, process); + } + + void test(String path, String fman, boolean update, boolean isRDF, boolean process) { + String manifest = path + fman; + + try { + System.out.println("** Load: " + pp(manifest)); + + Graph g = Graph.create(); + Load load = Load.create(g); + try { + load.parse(manifest); + } catch (LoadException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } + QueryProcess exec = QueryProcess.create(g); + exec.setListGroup(true); + + String qman = man; + if (update) { + qman = man2; + } + + Mappings res = exec.query(qman); + System.out.println("** NB test: " + res.size()); + // System.out.println(res); + nbtest += res.size(); + + int ok = 0, ko = 0; + + for (Mapping map : res) { + // each map is a test case + if (!process) { + String test = getValue(map, "?x"); + earl.skip(test); + } else if (query(path, map, update, isRDF)) { + ok++; + } else { + ko++; + } + } + + gok += ok; + gko += ko; + + tok.put(pp(manifest), ok); + tko.put(pp(manifest), ko); + } catch (EngineException e) { + // TODO Auto-generated catch block + System.out.println(manifest); + e.printStackTrace(); + } + } + + String getValue(Mapping map, String var) { + if (map.getNode(var) != null) { + return map.getNode(var).getLabel(); + } + return null; + } + + String[] getValues(Mapping map, String var) { + List list = map.getNodes(var, true); + String[] fnamed = new String[list.size()]; + int j = 0; + for (Node n : list) { + fnamed[j++] = n.getLabel(); + } + return fnamed; + } + + List getValueList(Mapping map, String var) { + List list = map.getNodes(var, true); + ArrayList fnamed = new ArrayList(); + for (Node n : list) { + fnamed.add(n.getLabel()); + } + return fnamed; + } + + /** + * One test + * + * @param fquery + * @param fdefault RDF file for default graph + * @param fresult + * @param fnamed RDF files for named graphs + * @param ent entailment + * + * @return + */ + boolean query(String path, Mapping map, boolean isUpdate, boolean isRDF) { + // System.out.println(map); + + String defbase = uri(path + File.separator); + // Dataset with named graphs only + Dataset input = new Dataset().init(map.getMappings(), "?name", "?g"); + Dataset output = new Dataset().init(map.getMappings(), "?nres", "?gr"); + // dEFAULT GRAPH + List fdefault = getValueList(map, "?d"); + + String test = getValue(map, "?x"); + String fquery = getValue(map, "?q"); + String fresult = getValue(map, "?r"); + String ent = getValue(map, "?ent"); + String type = getValue(map, "?t"); + String fq = getValue(map, "?fq"); + + String[] ep = getValues(map, "?ep"); + String[] ed = getValues(map, "?ed"); + + List rdt = map.getNodes("?rdt", true); + List udt = map.getNodes("?udt", true); + + boolean isEmpty = getValue(map, "?ee") != null; + boolean isBlankResult = false; + boolean isJSON = false, isCSV = false, isTSV = false; + // boolean rdfs = ent != null && ent.equals(ENTAILMENT+"RDFS"); + boolean rdfs = ent != null && !ent.equals(ENTAILMENT + "RDF"); + boolean rdf = ent != null && ent.equals(ENTAILMENT + "RDF"); + int entail = QueryProcess.STD_ENTAILMENT; + + if (fresult != null) { + Node nr = map.getNode("?r"); + isBlankResult = nr.isBlank(); + } + + if (fquery == null) { + fquery = getValue(map, "?a"); + } + + // here + // if (! fquery.contains("exists03") ) return true; + if (trace && fquery != null) { + System.out.println(pp(fquery)); + } + + if (fresult != null) { + fresult = clean(fresult); // remove file:// + } + fquery = clean(fquery); + + String query = ""; + Graph qg = null; + + if (isRDF) { + // action is a RDF graph + qg = Graph.create(true); + qg.set(Entailment.DATATYPE_INFERENCE, true); + Load ld = Load.create(qg); + try { + ld.parse(fquery); + } catch (LoadException ex) { + LogManager.getLogger(TestW3C11KGraphNew.class.getName()).log(Level.ERROR, "", ex); + earl.define(test, false); + return false; + } + + } else { + QueryLoad ql = QueryLoad.create(); + try { + query = ql.readWE(fquery); + } catch (LoadException ex) { + LogManager.getLogger(TestW3C11KGraphNew.class.getName()).log(Level.ERROR, "", ex); + } + + if (query == null || query == "") { + System.out.println("** ERROR 1: " + fquery + " " + query); + System.out.println(map); + return false; + } + } + + Graph graph = Graph.create(); + + if (rdf || rdfs) { + + graph.setEntailment(); + if (rdf) { + graph.set(RDF.RDF, true); + } else { + graph.set(RDFS.RDFS, true); + } + } + + Load load = Load.create(graph); + // graph.setOptimize(true); + load.reset(); + QueryProcess.setPlanDefault(Query.QP_HEURISTICS_BASED); + QueryProcess exec = QueryProcess.create(graph, true); + // exec.setSPARQLCompliant(true); + // for update: + exec.setLoader(load); + + /** + * ********************************************************* + * + * Load Result + * + ********************************************************** + */ + Mappings w3XMLResult = null; + Mappings w3RDFResult = null; + Graph gres = null; + int nbres = -1; + + // Load the result + if (isRDF) { + gres = Graph.create(); + if (fresult.equals("true") || fresult.equals("false")) { + } else { + Load ld = Load.create(gres); + try { + ld.parse(fresult); + } catch (LoadException ex) { + LogManager.getLogger(TestW3C11KGraphNew.class.getName()).log(Level.ERROR, "", ex); + } + } + } else if (fresult == null && output.getURIs().isEmpty()) { // frnamed.size()==0){ + if (isEmpty) { + gres = Graph.create(); + } + } else if (fresult != null && fresult.endsWith(".srx")) { + // XML Result + try { + Producer p = ProducerImpl.create(Graph.create()); + InputStream stream = getStream(fresult); + if (stream != null) { + w3XMLResult = fr.inria.corese.compiler.result.XMLResult.create(p).parse(stream); + } else { + System.out.println("** Stream Error: " + fresult); + w3XMLResult = new Mappings(); + } + nbres = w3XMLResult.size(); + } catch (FileNotFoundException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } catch (ParserConfigurationException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } catch (SAXException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } catch (IOException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } + + } else if (fresult != null && fresult.endsWith(".srj")) { + isJSON = true; + } else if (fresult != null && fresult.endsWith(".csv")) { + isCSV = true; + } else if (fresult != null && fresult.endsWith(".tsv")) { + isTSV = true; + } else if (output.getURIs().size() > 0 + || (fresult != null && (fresult.endsWith(".ttl") || fresult.endsWith(".rdf")))) { + + if (sparql1 || path.contains("construct")) { + // Result Dataset + gres = Graph.create(); + Load rl = Load.create(gres); + rl.reset(); + + if (fresult != null && !isBlankResult) { + try { + rl.parse(ttl2rdf(fresult)); + } catch (LoadException ex) { + LogManager.getLogger(TestW3C11KGraphNew.class.getName()).log(Level.ERROR, "", ex); + } + } + + int i = 0; + + for (String g : output.getURIs()) { + rl.reset(); + try { + rl.parse(g, output.getNameOrURI(i++)); + } catch (LoadException ex) { + LogManager.getLogger(TestW3C11KGraphNew.class.getName()).log(Level.ERROR, "", ex); + } + } + gres.prepare(); + } else { + // SPARQL 1.0 RDF Result Format + w3RDFResult = parseRDFResult(ttl2rdf(fresult)); + nbres = w3RDFResult.size(); + } + } + + /** + * ********************************************************* + * + * Check Positive Negative Syntax + * + ********************************************************** + */ + // default base to interpret from + Query qq = null; + if (!isRDF) { + exec.setDefaultBase(defbase); + try { + qq = exec.compile(query); + + if (type == null) { + } else if (type.contains(POSITIVE)) { + + // positive syntax test + if (!qq.isCorrect()) { + System.out.println("** Should be positive: " + fquery); + names.add(fquery); + errors.add(query); + } + + earl.define(test, qq.isCorrect()); + return qq.isCorrect(); + } + // NEGATIVE is tested below, at runtime + } catch (SafetyException e1) { + } catch (UndefinedExpressionException e1) { + if (type.contains(POSITIVE)) { + + // // positive syntax test + // if (!qq.isCorrect()) { + // System.out.println("** Should be positive: " + fquery); + // names.add(fquery); + // errors.add(query); + // } + + earl.define(test, true); + return true; + } + } catch (EngineException e1) { + if (type != null && type.contains(NEGATIVE)) { + earl.define(test, true); + return true; + } + + names.add(fquery); + errors.add(query); + earl.define(test, false); + return false; + } + } + + if (ep.length > 0) { + Provider p = endpoint(ep, ed); + exec.set(p); + } else if (fq != null) { + Provider p = ProviderImpl.create(); + exec.set(p); + } + + /** + * ********************************************************* + * + * Load RDF Dataset Consider from [named] to build Dataset + * + ********************************************************** + */ + fr.inria.corese.sparql.triple.parser.Dataset ds = fr.inria.corese.sparql.triple.parser.Dataset.create(); + ds.setUpdate(isUpdate); + + if (!isRDF) { + + // Dataset may be specified by query from/named: + if (fdefault.isEmpty()) { + // get query from + for (Node node : qq.getFrom()) { + String name = node.getLabel(); + fdefault.add(name); + } + } + if (input.getURIs().isEmpty()) { + // get query from named + for (Node node : qq.getNamed()) { + String name = node.getLabel(); + input.addURI(name); + } + } + + if (fdefault.size() > 0) { + // Load RDF files for default graph + ds.defFrom(); + for (String file : fdefault) { + ds.addFrom(file); + try { + load.parse(file, file); + } catch (LoadException ex) { + LogManager.getLogger(TestW3C11KGraphNew.class.getName()).log(Level.ERROR, "", ex); + } + } + } + + if (input.getURIs().size() > 0) { + // Load RDF files for named graphs + ds.defNamed(); + int i = 0; + for (String file : input.getURIs()) { + String name = input.getNameOrURI(i++); + try { + load.parse(file, name); + } catch (LoadException ex) { + LogManager.getLogger(TestW3C11KGraphNew.class.getName()).log(Level.ERROR, "", ex); + } + ds.addNamed(name); + } + } + } + + if (rdfs || rdf) { + // load RDF/S definitions & RDFS inference rules + + if (rdfs) { + entail = QueryProcess.RDFS_ENTAILMENT; + ds.addFrom(RDFS.RDFS); + try { + load.parse(RDFS.RDFS); + load.parse(RULE); + } catch (LoadException e) { + e.printStackTrace(); + } + } else { + entail = QueryProcess.RDF_ENTAILMENT; + // exclude rdfs properties when load rdf + load.exclude(RDFS.RDFS); + } + + // exclude dublin core: + load.exclude(DC); + try { + load.parse(RDF.RDF, RDF.RDF); + } catch (LoadException ex) { + LogManager.getLogger(TestW3C11KGraphNew.class.getName()).log(Level.ERROR, "", ex); + } + ds.addFrom(RDF.RDF); + + // re.setDebug(true); + // graph.getWorkflow().setDebug(true); + RuleEngine re = load.getRuleEngine(); + if (re != null) { + // re.process(); + graph.addEngine(re); + } + } + + /** + * **************************************************** + * + * Query Processing + * + **************************************************** + */ + try { + // may be used to test SPIN, etc. + // query = process(query, defbase); + Mappings res; + + if (isRDF) { + // project the entailed graph on the action graph + exec = QueryProcess.create(qg); + res = exec.query(gres); + } else { + // System.out.println(query); + // exec.setVisitorable(true); + // exec.setDetail(true); + res = exec.sparql(query, ds, entail); + } + // System.out.println("Test: " + res); + + // Mappings res = exec.sparql(query, ds, entail); + // System.out.println(res.getQuery().getAST()); + // System.out.println(res); + // CHECK RESULT + boolean result = true, b = true; + + if (isRDF) { + if (gres.size() > 0) { + // compare action and result graph + result = res.size() > 0; + // boolean tc = qg.typeCheck(); + // System.out.println("type check (opt): " + tc); + } else if (fresult.equals("false")) { + // check action graph is flawed + boolean tc = qg.typeCheck(); + System.out.println("type check: " + tc); + result = !tc; + } + + if (!rdt.isEmpty() || !udt.isEmpty()) { + b = check(qg, rdt, udt); + } + + if (type.contains(POSITIVE)) { + result = result && b; + } else { + result = !(result && b); + } + + if (!result) { + System.out.println("error: " + test); + } + + } else if (type != null && type.contains(NEGATIVE)) { + // KGRAM should detect an error here + if (res.getQuery().isCorrect()) { + System.out.println("** Should be false: " + res.getQuery().isCorrect()); + result = false; + } + } else if (!res.getQuery().isCorrect()) { + System.out.println("** Should be true: " + res.getQuery().isCorrect()); + result = false; + } else if (isJSON) { + // checked by hand + JSONFormat json = JSONFormat.create(res); + System.out.println(json); + } else if (isCSV) { + // checked by hand + CSVFormat json = CSVFormat.create(res); + System.out.println(json); + } else if (isTSV) { + // checked by hand + TSVFormat json = TSVFormat.create(res); + System.out.println(json); + } else if (gres != null) { + // construct where + Graph kg = exec.getGraph(res); + if (kg == null) { + kg = graph; + } + gres.setDebug(true); + // compare SPARQL result kg and Test case result gres + QueryProcess verif = QueryProcess.create(kg); + Mappings mm = verif.queryTurtle(gres); + if (mm.size() == 0) { // (kg != null && !gres.compare(kg)) { + System.out.println("kgram:"); + System.out.println(kg.display()); + System.out.println("w3c"); + System.out.println(gres.display()); + if (!sparql1 && path.contains("construct")) { + // ok verified by hand 2011-03-15 because of blanks in graph + System.out.println("*** SKIP"); + } else { + result = false; + + // System.out.println("w3c: " + gres.size()); + // System.out.println( TripleFormat.create(gres, true)); + // System.out.println("kgram: " + kg.size()); + // TripleFormat tf = TripleFormat.create(kg, true); + // System.out.println(tf); + } + } + } else if (nbres != res.size()) { + if (verbose) { + System.out.println("** Failure"); + if (fdefault.size() > 0) { + System.out.println(pp(fdefault.get(0)) + " "); + } + if (fquery != null) { + System.out.println(pp(fquery) + " "); + } + if (fresult != null) { + System.out.println(pp(fresult)); + } + System.out.println("kgram result: "); + System.out.println(res); + System.out.println("w3c result:"); + System.out.println(w3XMLResult); + System.out.println("w3c: " + nbres + "; kgram: " + res.size()); + } + System.out.println(query); + result = false; + } else if (w3RDFResult != null) { + // old rdf result format + result = validate(res, w3RDFResult); + } else { + // XML Result Format + // System.out.println("** kgram: \n" + res); + // System.out.println("** w3c: \n" + w3XMLResult); + result = validate(res, w3XMLResult); + } + + if (result == false) { + names.add(fquery); + errors.add(query); + } + + earl.define(test, result); + return result; + + } catch (EngineException e) { + if (type != null && type.contains(NEGATIVE)) { + earl.define(test, true); + return true; + } else { + System.out.println(e); + } + + System.out.println("** ERROR 2: " + e.getMessage() + " " + nbres + " " + 0); + if (fdefault.size() > 0) { + System.out.print(pp(fdefault.get(0)) + " "); + } + if (fquery != null) { + System.out.print(pp(fquery) + " "); + } + if (fresult != null) { + System.out.println(pp(fresult)); + } + System.out.println(query); + errors.add(query); + names.add(fquery); + earl.define(test, false); + return false; + } + } + + InputStream getStream(String path) { + try { + URL uri = new URL(path); + return uri.openStream(); + } catch (MalformedURLException e) { + // TODO Auto-generated catch block + // e.printStackTrace(); + } catch (IOException e) { + // TODO Auto-generated catch block + // e.printStackTrace(); + } + + FileInputStream stream; + try { + stream = new FileInputStream(path); + return stream; + } catch (FileNotFoundException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } + return null; + } + + Provider endpoint(String[] ep, String[] ed) { + ProviderImpl p = ProviderImpl.create(); + int j = 0; + for (String nep : ep) { + String name = ed[j++]; + + // rdf version + // String ff = ttl2rdf(name); + Graph g = Graph.create(); + Load load = Load.create(g); + try { + load.parse(name); + } catch (LoadException ex) { + LogManager.getLogger(TestW3C11KGraphNew.class.getName()).log(Level.ERROR, "", ex); + } + p.add(nep, g); + } + + return p; + } + + /** + * Blanks may have different ID in test case and in kgram but same ID should + * remain the same Hence store ID in hashtable to compare + * + */ + class TBN extends Hashtable { + + boolean same(IDatatype dt1, IDatatype dt2) { + if (containsKey(dt1)) { + return get(dt1).sameTerm(dt2); + } else { + put(dt1, dt2); + return true; + } + } + } + + // target value of a Node + IDatatype datatype(Node n) { + if (n == null) { + return null; + } + return (IDatatype) n.getValue(); + } + + /** + * KGRAM vs W3C result + */ + boolean validate(Mappings kgram, Mappings w3c) { + if (kgram.size() != w3c.size()) { + return false; + } + return check(kgram, w3c); // && check(w3c, kgram); + } + + boolean validate2(Mappings kgram, Mappings w3c) { + return check(kgram, w3c); + } + + boolean check(Mappings kgram, Mappings w3c) { + boolean result = true, printed = false; + Hashtable table = new Hashtable(); + + for (Mapping w3cres : w3c) { + // for each w3c result + boolean ok = false; + + for (Mapping kres : kgram) { + // find a new kgram result that is equal to w3c + if (table.contains(kres)) { + continue; + } + + ok = compare(kgram, w3c, kres, w3cres); + + if (ok) { + // if (kgram.getSelect().size() != w3cres.size()) ok = false; + + // for (Node qNode : kgram.getSelect()) { + // // check that kgram has no additional binding + // if (kres.getNode(qNode) != null) { + // if (w3cres.getNode(qNode) == null) { + // ok = false; + // } + // } + // } + } + + if (ok) { + table.put(kres, w3cres); + break; + } + } + + if (!ok) { + result = false; + + System.out.println("** Failure"); + if (printed == false) { + System.out.println(kgram); + printed = true; + } + for (Node var : w3cres.getQueryNodes()) { + // for each w3c variable/value + Node val = w3cres.getNode(var); + System.out.println(var + " [" + val + "]"); + } + System.out.println("--"); + } + + } + return result; + } + + // compare two results + boolean compare(Mappings kgmap, Mappings w3map, Mapping kgres, Mapping w3res) { + TBN tbn = new TBN(); + boolean ok = true; + + for (Node var : w3res.getQueryNodes()) { // map.getSelect()){ //w3cres.getQueryNodes()) { + if (!ok) { + break; + } + + // for each w3c variable/value + IDatatype w3val = datatype(w3res.getNode(var)); + // find same value in kgram + if (w3val != null) { + String cvar = var.getLabel(); + Node kNode = kgres.getNode(var); + if (kNode == null) { + ok = false; + } else { + IDatatype kdt = datatype(kNode); + IDatatype wdt = w3val; + ok = compare(kdt, wdt, tbn); + } + } + } + + if (ok && kgmap.getSelect() != null) { + // kgram result has additional data + for (Node node : kgmap.getSelect()) { + if (kgres.getNodeValue(node) != null && w3res.getNode(node) == null) { + ok = false; + // if (w3res.getQueryNodes().length > 0) { + // System.out.println("kg: "+ node + " = " + kgres.getNodeValue(node)); + // System.out.println(); + // System.out.println("w3c: " + w3res); + // System.out.println("kgr: " + kgres); + // } + break; + } + } + } + + return ok; + } + + // compare kgram vs w3c values + boolean compare(IDatatype kdt, IDatatype wdt, TBN tbn) { + boolean ok = true; + if (kdt.isBlank()) { + if (wdt.isBlank()) { + // blanks may not have same ID but + // if repeated they should both be the same + ok = tbn.same(kdt, wdt); + } else { + ok = false; + } + } else if (wdt.isBlank()) { + ok = false; + } else if (kdt.isNumber() && wdt.isNumber()) { + ok = kdt.sameTerm(wdt); + + if (DatatypeMap.isLong(kdt) && DatatypeMap.isLong(wdt)) { + // ok + } else { + if (!ok) { + // compare them at 10^-10 + ok = Math.abs((kdt.doubleValue() - wdt.doubleValue())) < 10e-10; + if (ok) { + // System.out.println("** Consider as equal: " + kdt.toSparql() + " = " + + // wdt.toSparql()); + } + } + } + + } else { + ok = kdt.sameTerm(wdt); + if (!ok) { + if (matchDatatype(kdt, wdt)) { + ok = kdt.equals(wdt); + } + } + } + + if (ok && strict && wdt.isLiteral()) { + // check same datatypes + if (kdt.getDatatype() != null && wdt.getDatatype() != null) { + ok = kdt.getDatatype().sameTerm(wdt.getDatatype()); + } else if (kdt.getDatatype() != wdt.getDatatype()) { + ok = false; + } + if (!ok) { + } + } + + return ok; + + } + + boolean matchDatatype(IDatatype dt1, IDatatype dt2) { + return (dt1.getCode() == IDatatype.LITERAL) && (dt2.getCode() == IDatatype.STRING) + || (dt1.getCode() == IDatatype.STRING) && (dt2.getCode() == IDatatype.LITERAL); + } + + boolean compare(List lVar, List lVal, Mapping kres) { + boolean ok = true; + TBN tbn = new TBN(); + int i = 0; + for (Node var : lVar) { + if (!ok) { + break; + } + + // for each w3c variable/value + // find same value in kgram + Node w3cval = lVal.get(i++); + + if (w3cval != null) { + String cvar = "?" + var.getLabel(); + Node kNode = kres.getNode(cvar); + if (kNode == null) { + ok = false; + } else { + IDatatype kdt = datatype(kNode); + IDatatype wdt = datatype(w3cval); + ok = compare(kdt, wdt, tbn); + } + } + } + + return ok; + } + + private boolean check(Graph g, List rdt, List udt) { + boolean b1 = rdt(g, rdt, true); + boolean b2 = rdt(g, udt, false); + return b1 && b2; + } + + // (un)recognized datatype + boolean rdt(Graph g, List list, boolean res) { + if (list.isEmpty()) { + return true; + } + for (Node n : list) { + IDatatype dd = (IDatatype) n.getValue(); + + for (Edge ent : g.getEdges()) { + IDatatype dt = (IDatatype) ent.getNode(1).getValue(); + + if (dt.getDatatypeURI() != null) { + if (dt.getDatatypeURI().equals(dd.getLabel())) { + return res; + } + } else if (dt.getLabel().equals(dd.getLabel())) { + // rdfs:range xsd:integer + return res; + } + } + } + return !res; + } + + String pp(String name) { + String pat = "sparql11/"; + int index = name.indexOf(pat); + if (index == -1) { + return name; + } + return name.substring(index + pat.length()); + } + + String name(String path) { + int index = path.lastIndexOf(File.separator); + return path.substring(index + 1); + } + + String uri(String file) { + try { + URL url = new URL(file); + return file; + } catch (MalformedURLException e) { + } + return "file://" + file; + } + + String ttl2rdf(String name) { + // if (name.endsWith(".ttl")){ + // name = name.substring(0, name.length()-4); + // name = name + ".rdf"; + // } + return clean(name); + } + + String clean(String name) { + String HEAD = "file://"; + if (name.startsWith(HEAD)) { + name = name.substring(HEAD.length()); + } + return name; + } + + // read and return query + public String read(String name) { + // name = clean(name); + String query = "", str = ""; + try { + BufferedReader fq = new BufferedReader(new FileReader(name)); + while (true) { + str = fq.readLine(); + if (str == null) { + fq.close(); + break; + } + query += str + "\n"; + } + } catch (FileNotFoundException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } catch (IOException e) { + // TODO Auto-generated catch block + } + return query; + } + + Mappings parseRDFResult(String fresult) { + String query = "prefix rs: " + + "select ?var ?val where { " + + "{ ?r rs:solution ?s " + + "optional {?s rs:index ?i }" + + "optional { " + + "?s rs:binding [ rs:variable ?var ; rs:value ?val ] } " + + "} " + + "union {?r rs:boolean 'true'^^xsd:boolean}" + + "}" + + "order by ?i " + + "group by ?s "; + + Graph g = Graph.create(); + Load load = Load.create(g); + try { + load.parse(fresult); + } catch (LoadException ex) { + LogManager.getLogger(TestW3C11KGraphNew.class.getName()).log(Level.ERROR, "", ex); + } + + QueryProcess exec = QueryProcess.create(g); + exec.setListGroup(true); + Mappings map = null; + try { + map = exec.query(query); + // System.out.println(map); + } catch (EngineException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } + Mappings res = translate(map); + return res; + + } + + /** + * W3C map to KGRAM map + */ + Mappings translate(Mappings ms) { + Mappings res = new Mappings(); + for (Mapping map : ms) { + Mapping m = translate(map); + res.add(m); + } + return res; + } + + Mapping translate(Mapping m) { + if (m.getMappings() == null) { + return m; + } + + Mapping res = Mapping.create(); + + for (Mapping map : m.getMappings()) { + Node var = map.getNode("?var"); + Node val = map.getNode("?val"); + if (var != null && val != null) { + NodeImpl q = NodeImpl.createVariable("?" + var.getLabel()); + res.addNode(q, val); + } + } + + return res; + } + + /** + * Generate SPIN query Pretty Print SPIN quert as SPARQL Parse SPARQL query + */ + void spin(Query qq) { + Graph g = Graph.create(); + QueryProcess exec = QueryProcess.create(g); + Load ld = Load.create(g); + + ASTQuery ast = exec.getAST(qq); + // System.out.println(ast); + + SPIN sp = SPIN.create(); + sp.visit(ast); + + // System.out.println("spin:\n" + sp); + String str = sp.toString(); + try { + ld.load(new ByteArrayInputStream(str.getBytes("UTF-8")), "spin.ttl"); + } catch (LoadException ex) { + LogManager.getLogger(TestW3C11KGraphNew.class.getName()).log(Level.ERROR, "", ex); + LogManager.getLogger(TestW3C11KGraphNew.class.getName()).log(Level.ERROR, "query: [" + str + "]"); + + } catch (UnsupportedEncodingException ex) { + LogManager.getLogger(TestW3C11KGraphNew.class.getName()).log(Level.ERROR, "", ex); + } + + TemplateFormat tf = TemplateFormat.create(g, "/home/corby/AData/spin/template"); + tf.setNSM(ast.getNSM()); + // System.out.println(tf); + + String res = tf.toString(); + try { + Query q = exec.compile(res); + + // if (res.length() == 0 ){ + // System.out.println(ast); + // System.out.println("PP:"); + // System.out.println(res); + // System.out.println("SPIN:"); + // System.out.println(str); + // } + } catch (EngineException ex) { + LogManager.getLogger(TestW3C11KGraphNew.class.getName()).log(Level.ERROR, "PP:\n" + res); + LogManager.getLogger(TestW3C11KGraphNew.class.getName()).log(Level.ERROR, "AST:\n" + ast.toString()); + LogManager.getLogger(TestW3C11KGraphNew.class.getName()).log(Level.ERROR, "SPIN:\n" + str); + + } + } + + /** + * ************************************************** + */ + private String process(String query, String defbase) throws EngineException { + // spin(query); + // System.out.println(query); + return toSPIN(query, defbase); + } + + private void spin(String query) { + SPINProcess sp = SPINProcess.create(); + try { + String spin = sp.toSpin(query); + QueryLoad ql = QueryLoad.create(); + String name = TTL + "f" + cc++ + ".ttl"; + ql.write(name, spin); + } catch (EngineException ex) { + LogManager.getLogger(TestW3C11KGraphNew.class.getName()).log(Level.ERROR, "", ex); + } + + } + + private String toSPIN(String query, String defbase) throws EngineException { + System.out.println("query: \n" + query); + SPINProcess sp = SPINProcess.create(); + sp.setSPARQLCompliant(true); + sp.setDefaultBase(defbase); + String str = sp.toSpinSparql(query); + System.out.println("result: " + str); + return str; + } + + // add SPIN query into a global graph + void store(String query) { + try { + SPINProcess spin = SPINProcess.create(); + String sp = spin.toSpin(query); + spin.toGraph(sp, spinGraph); + } catch (EngineException ex) { + LogManager.getLogger(TestW3C11KGraphNew.class.getName()).log(Level.ERROR, "", ex); + } + + } + + // SPIN Graph + void process(Graph g) { + // query(g); + } + + void pprint(Graph g) { + Transformer pp = Transformer.create(g, Transformer.SPIN); + NSManager nsm = NSManager.create(); + nsm.definePrefix("foaf", "http://xmlns.com/foaf/0.1/"); + nsm.definePrefix("ex", "http://www.example.org/"); + + pp.setNSM(nsm); + System.out.println(pp); + } + + void query(Graph g) { + String q = "prefix sp: " + + "select distinct ?c (count(?x) as ?cc) where {" + // + "{?x a ?c} union " + + "{?x ?c ?v filter(strstarts(?c, sp:))}" + + "} " + + "group by ?c"; + + String q1 = "prefix sp: " + + "select (count(*) as ?cc) where {" + // + "{?x a ?c} union " + + "{?x sp:subject ?s ; " + + "sp:object ?o" + + "{?x sp:predicate ?p } union { ?x sp:path ?p } " + + "}" + + "} " + + ""; + + QueryProcess exec = QueryProcess.create(g); + try { + Mappings map = exec.query(q); + System.out.println(map); + } catch (EngineException ex) { + LogManager.getLogger(TestW3C11KGraphNew.class.getName()).log(Level.ERROR, "", ex); + } + } +} diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f0.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f0.rdf new file mode 100644 index 0000000000..f36e60364f --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f0.rdf @@ -0,0 +1,12 @@ + + + + + + Epidaure + + + 1-1996 + Squelettes Euclidiens d'objets discrets n-dimensionnels + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f1.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f1.rdf new file mode 100644 index 0000000000..040c316078 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f1.rdf @@ -0,0 +1,42 @@ + + + + + + Moisan + Sabine + + + + + Ployette + Florimont + + + + + Thonnat + Monique + + + + + Clment + Vronique + + + + + Vincent + Rgis + + + + + Orion + + + 12-1995 + Documentation de l'Interface du Logiciel OCAPI - Version 2.0 + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f10.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f10.rdf new file mode 100644 index 0000000000..63880c558f --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f10.rdf @@ -0,0 +1,18 @@ + + + + + + Hermosillo + Gerardo + + + + + Robotvis + + + 2-2001 + A Variational Approach to Multi-Modal Image Matching + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f100.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f100.rdf new file mode 100644 index 0000000000..74f0bc8bb1 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f100.rdf @@ -0,0 +1,19 @@ + + + + + + de + A. + + + + + Bourdonnaye + la + + + 1-1995 + A substructuring method for a harmonic wave propagation problem : Analysis of the conditioning number of the problem on the interfaces + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f101.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f101.rdf new file mode 100644 index 0000000000..e93359e74e --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f101.rdf @@ -0,0 +1,54 @@ + + + + + + Abalakin + I. + + + + + Braza + M. + + + + + Camarri + S. + + + + + Dervieux + A. + + + + + Koobus + B. + + + + + Kozubskaya + T. + + + + + Rodes + P. + + + + + Sinus + + + 11-2000 + Unstable and unsteady aerodynamics : compared information from different numerical models + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f102.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f102.rdf new file mode 100644 index 0000000000..cdcaea644a --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f102.rdf @@ -0,0 +1,24 @@ + + + + + + Carrillo + Jos�Antonio + + + + + Goudon + Thierry + + + + + Caiman + + + 10-2001 + A numerical study on large-time asymptotics of the Lifshitz-Slyozov system + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f103.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f103.rdf new file mode 100644 index 0000000000..ca245faa1c --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f103.rdf @@ -0,0 +1,13 @@ + + + + + + Piperno + S. + + + 12-1994 + Méthodes d'intégration temporelle décalée pour un probl\`eme aéroélastique mono-dimensionnel non linéaire + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f104.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f104.rdf new file mode 100644 index 0000000000..b77a8cf7d0 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f104.rdf @@ -0,0 +1,24 @@ + + + + + + Boussinot + Frdric + + + + + Laneve + Cosimo + + + + + Meije + + + 3-1995 + Two Semantics for a Language of Reactive Objects + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f105.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f105.rdf new file mode 100644 index 0000000000..ee0ff7ffaa --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f105.rdf @@ -0,0 +1,24 @@ + + + + + + Boussinot + Frdric + + + + + de + Robert + + + + + Meije + + + 3-1995 + The SL Synchronous Language + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f106.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f106.rdf new file mode 100644 index 0000000000..4ad87982d3 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f106.rdf @@ -0,0 +1,18 @@ + + + + + + Sangiorgi + Davide + + + + + Meije + + + 4-1995 + Bisimulation for higher-order process calculi + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f107.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f107.rdf new file mode 100644 index 0000000000..95eeb68c30 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f107.rdf @@ -0,0 +1,24 @@ + + + + + + Fournier + Robert + + + + + Kherrati + Wihem + + + + + Sinus + + + 3-1995 + Etude d'algorithmes graphiques dans le cadre de la simulation numrique. + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f108.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f108.rdf new file mode 100644 index 0000000000..fede189937 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f108.rdf @@ -0,0 +1,24 @@ + + + + + + Attali + Isabelle + + + + + Parigot + Didier + + + + + Croap + + + 9-1994 + Integrating Natural Semantics and Attribute Grammars: the Minotaur System + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f109.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f109.rdf new file mode 100644 index 0000000000..f0f54f54cb --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f109.rdf @@ -0,0 +1,24 @@ + + + + + + Baccelli + Franois + + + + + Schmidt + Volker + + + + + Mistral + + + 2-1995 + Taylor Expansions for Poisson Driven $(\max,+)$-Linear Systems + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f11.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f11.rdf new file mode 100644 index 0000000000..ced2d6651e --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f11.rdf @@ -0,0 +1,30 @@ + + + + + + Liu + Zhen + + + + + Nain + Philippe + + + + + Towsley + Don + + + + + Mistral + + + 11-1995 + Bounds on Finite Horizon QoS Metrics with Application to Call Admission + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f110.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f110.rdf new file mode 100644 index 0000000000..22cdf57afd --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f110.rdf @@ -0,0 +1,24 @@ + + + + + + Morin + Pascal + + + + + Samson + Claude + + + + + Icare + + + 2-1995 + Time-varying Exponential Stabilization of the Attitude of a Rigid Spacecraft with Two Controls + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f111.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f111.rdf new file mode 100644 index 0000000000..a618db0111 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f111.rdf @@ -0,0 +1,30 @@ + + + + + + Baratchart + Laurent + + + + + Leblond + Juliette + + + + + Partington + Jonathan + + + + + Miaou + + + 2-1995 + Flow control using the theory of zero sum Markov games + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f112.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f112.rdf new file mode 100644 index 0000000000..214536f20a --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f112.rdf @@ -0,0 +1,18 @@ + + + + + + Teillaud + Monique + + + + + Prisme + + + 2-1995 + Union and Split Operations on Dynamic Trapezoidal Maps + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f113.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f113.rdf new file mode 100644 index 0000000000..538a1877c2 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f113.rdf @@ -0,0 +1,24 @@ + + + + + + Declerck + Jerome + + + + + Subsol + Gerard + + + + + Thirion + Jean-Philippe + + + Automatic Retrieval of Anatomical Structures in 3D Medical Images + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f114.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f114.rdf new file mode 100644 index 0000000000..9ba017aba6 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f114.rdf @@ -0,0 +1,18 @@ + + + + + + Pennec + Xavier + + + + + Thirion + Jean-Philippe + + + Validation of 3-D Registration Methods based on Points and Frames + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f115.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f115.rdf new file mode 100644 index 0000000000..1bee59f9ad --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f115.rdf @@ -0,0 +1,24 @@ + + + + + + Bascle + Benedicte + + + + + Deriche + Rachid + + + + + Robotvis + + + 12-1994 + Region tracking through image sequences + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f116.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f116.rdf new file mode 100644 index 0000000000..8d1a2c7efc --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f116.rdf @@ -0,0 +1,24 @@ + + + + + + Blaszka + Thierry + + + + + Deriche + Rachid + + + + + Robotvis + + + 12-1994 + A Model Based Method for Characterization and Location of Curved Im age Features + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f117.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f117.rdf new file mode 100644 index 0000000000..90bef8429e --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f117.rdf @@ -0,0 +1,18 @@ + + + + + + Retore + Christian + + + + + Meije + + + 12-1994 + A note on intersection types + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f118.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f118.rdf new file mode 100644 index 0000000000..79cebc8d90 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f118.rdf @@ -0,0 +1,18 @@ + + + + + + Retore + Christian + + + + + Meije + + + 12-1994 + On the relation between coherence semantics and multiplicative pro of nets + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f119.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f119.rdf new file mode 100644 index 0000000000..ac1023c7cf --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f119.rdf @@ -0,0 +1,30 @@ + + + + + + Coscoy + Yann + + + + + Kahn + Gilles + + + + + Thery + Laurent + + + + + Croap + + + 1-1995 + Extracting Text from Proofs + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f12.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f12.rdf new file mode 100644 index 0000000000..785bc23c59 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f12.rdf @@ -0,0 +1,24 @@ + + + + + + Desnogues + Pascal + + + + + Rakotoarisoa + Hery + + + + + Mistral + + + 1-1996 + ``ARC'': Simulateur d'architecture de rseaux de communications + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f120.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f120.rdf new file mode 100644 index 0000000000..1e772aa4a7 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f120.rdf @@ -0,0 +1,30 @@ + + + + + + Malandain + Gregoire + + + + + Fernandez-Vidal + Sara + + + + + Rocchisani + Jean-Marie + + + + + Epidaure + + + 10-1994 + Physically Based Rigid Registration of 3-D Free-Form Objects : appl ication to Medical Imaging + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f121.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f121.rdf new file mode 100644 index 0000000000..3846d846f4 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f121.rdf @@ -0,0 +1,18 @@ + + + + + + Koobus + Bruno + + + + + Sinus + + + 12-1994 + An implicit method for turbulent boundary layers simulation + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f122.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f122.rdf new file mode 100644 index 0000000000..46074a602d --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f122.rdf @@ -0,0 +1,18 @@ + + + + + + Retore + Christian + + + + + Meije + + + 12-1994 + A self-dual modality for "before" in the category of coherence spac es and in the category of hypercoherences + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f123.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f123.rdf new file mode 100644 index 0000000000..81454dfcf6 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f123.rdf @@ -0,0 +1,42 @@ + + + + + + Boissonnat + Jean-Daniel + + + + + Cerezo + Andre + + + + + Devillers + Olivier + + + + + Duquesne + Jacqueline + + + + + Yvinec + Mariette + + + + + Prisme + + + 11-1993 + An Algorithm for constructing the convex hull of a set of spheres i n dimension d + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f124.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f124.rdf new file mode 100644 index 0000000000..2ed7ec8d43 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f124.rdf @@ -0,0 +1,18 @@ + + + + + + Abgrall + Remi + + + + + Sinus + + + 12-1994 + Some remarks about the Riemann problem of first order Hamilton--Jac obi equations on general geometries + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f125.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f125.rdf new file mode 100644 index 0000000000..d2c2ec60f6 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f125.rdf @@ -0,0 +1,24 @@ + + + + + + Boudol + Gerard + + + + + Laneve + Cosimo + + + + + Meije + + + 12-1994 + The discriminating power of multiplicities in the $\lambda$-calculus + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f126.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f126.rdf new file mode 100644 index 0000000000..ececf797a1 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f126.rdf @@ -0,0 +1,24 @@ + + + + + + Abalakin + Ilya + + + + + Koobus + Bruno + + + + + Sinus + + + 11-2000 + The behavior of two near-wall models for k-\varepsilon prediction of stall + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f127.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f127.rdf new file mode 100644 index 0000000000..bf31d6690c --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f127.rdf @@ -0,0 +1,36 @@ + + + + + + Rothwell + Charlie + + + + + Mundy + Joe + + + + + Hoffman + Bill + + + + + Nguyen + Van-Duc + + + + + Robotvis + + + 12-1994 + Sophia Antipolis, Projet Robotvis , Decembre 1994 So + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f128.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f128.rdf new file mode 100644 index 0000000000..745da03e58 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f128.rdf @@ -0,0 +1,24 @@ + + + + + + Blaszka + Thierry + + + + + Deriche + Rachid + + + + + Robotvis + + + 11-1994 + Recovering and Characterizing Image Features Using An Efficient Mod el Based Approach + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f129.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f129.rdf new file mode 100644 index 0000000000..d097b57ff3 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f129.rdf @@ -0,0 +1,30 @@ + + + + + + Godart + Cyril + + + + + Salvetti + Maria-Vittoria + + + + + Desideri + Jean-Antoine + + + + + Sinus + + + 12-1994 + Etude numrique de modles thermochimiques coupls pour les coulem ents hypersoniques eulriens + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f13.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f13.rdf new file mode 100644 index 0000000000..34088358c1 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f13.rdf @@ -0,0 +1,24 @@ + + + + + + Artiges + Damien + + + + + Nain + Philippe + + + + + Mistral + + + 11-1995 + Upper and Lower Bounds on Overflow Probabilities for a Multiplexer with Multiclass Markovian Sources + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f130.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f130.rdf new file mode 100644 index 0000000000..527252dcc4 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f130.rdf @@ -0,0 +1,24 @@ + + + + + + Martin + Regis + + + + + Guillard + Herve + + + + + Sinus + + + 11-1994 + A Second Order Defect Correction Scheme for Unsteady Problems Sophia Antipolis, Projet Sinus , Novembre 1994 + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f131.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f131.rdf new file mode 100644 index 0000000000..654b6d0b3e --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f131.rdf @@ -0,0 +1,18 @@ + + + + + + Koole + Ger + + + + + Mistral + + + 12-1994 + On the pathwise optimal Bernoulli routing policy for homogeneous pa rallel servers + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f132.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f132.rdf new file mode 100644 index 0000000000..ab7648ec9b --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f132.rdf @@ -0,0 +1,30 @@ + + + + + + Volden + Espen + + + + + Giraudon + Gerard + + + + + Berthod + Marc + + + + + Pastis + + + 12-1994 + Modelling Image Redundancy + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f133.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f133.rdf new file mode 100644 index 0000000000..981366dcf9 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f133.rdf @@ -0,0 +1,18 @@ + + + + + + Berlandier + Pierre + + + + + Secoia + + + 12-1994 + Deux variations sur le thme de la consistance d'arcs : maintien et renforcement + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f134.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f134.rdf new file mode 100644 index 0000000000..cba87fa688 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f134.rdf @@ -0,0 +1,18 @@ + + + + + + Cerou + Frederic + + + + + Mefisto + + + 12-1994 + Long time asymptotics for some dynamical noise free non-linear filt ering problems + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f135.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f135.rdf new file mode 100644 index 0000000000..9dfa30f52c --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f135.rdf @@ -0,0 +1,30 @@ + + + + + + Feldmar + Jacques + + + + + Ayache + Nicholas + + + + + Betting + Fabienne + + + + + Epidaure + + + 12-1994 + 3D-2D projective registration of free-form curves and surfaces Sophia Antipolis, Projet Epidaure , Decembre 1994 + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f136.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f136.rdf new file mode 100644 index 0000000000..7307b31609 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f136.rdf @@ -0,0 +1,18 @@ + + + + + + Pottier + Loc + + + + + Lemme + + + 11-2000 + Quotients dans le CCI + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f137.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f137.rdf new file mode 100644 index 0000000000..d099776dce --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f137.rdf @@ -0,0 +1,36 @@ + + + + + + Bascle + Benedicte + + + + + Deriche + Rachid + + + + + Meyer + Francois + + + + + Bouthemy + Patrick + + + + + Robotvis + + + 12-1994 + Tracking complex primitives in an image sequence + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f138.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f138.rdf new file mode 100644 index 0000000000..d66657865e --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f138.rdf @@ -0,0 +1,30 @@ + + + + + + Liu + Zhen + + + + + Nain + Philippe + + + + + Towsley + Don + + + + + Mistral + + + 12-1994 + On a Generalization of Kingman's Bounds + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f139.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f139.rdf new file mode 100644 index 0000000000..84c1a2c710 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f139.rdf @@ -0,0 +1,36 @@ + + + + + + Boissonnat + Jean-Daniel + + + + + Czyzowicz + Jurek + + + + + Devillers + Olivier + + + + + Yvinec + Mariette + + + + + Prisme + + + 11-1994 + Circular Separability of Polygons + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f14.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f14.rdf new file mode 100644 index 0000000000..196b984561 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f14.rdf @@ -0,0 +1,19 @@ + + + + + + Loriot + M. + + + + + Fezoui + L. + + + 9-1993 + A Parallel Compressible 3D Navier-Stokes Solver Using Unstructured Meshes + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f140.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f140.rdf new file mode 100644 index 0000000000..10cbbfa677 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f140.rdf @@ -0,0 +1,18 @@ + + + + + + Griniasty + Meir + + + + + Mefisto + + + 11-1994 + Autonomous algorithms for image restoration + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f141.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f141.rdf new file mode 100644 index 0000000000..6d9e508e53 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f141.rdf @@ -0,0 +1,30 @@ + + + + + + Kato + Zoltan + + + + + Berthod + Marc + + + + + Zerubia + Josiane + + + + + Pastis + + + 8-1994 + A hierarchical Markov random field model and multi-temperature anne aling for parallel image classification + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f142.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f142.rdf new file mode 100644 index 0000000000..d096fa3c1a --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f142.rdf @@ -0,0 +1,30 @@ + + + + + + Baccelli + Francois + + + + + Gaujal + Bruno + + + + + Foss + Sergei + + + + + Mistral + + + 11-1994 + Structural, temporal and stochastic properties of unbounded free-ch oice Petri nets + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f143.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f143.rdf new file mode 100644 index 0000000000..2959d1319d --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f143.rdf @@ -0,0 +1,18 @@ + + + + + + Viville + Thierry + + + + + Robotvis + + + 11-2000 + Using markers to compensate displacements in MRI volume sequences. + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f144.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f144.rdf new file mode 100644 index 0000000000..abb39c7bc4 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f144.rdf @@ -0,0 +1,24 @@ + + + + + + Bossy + Mireille + + + + + Talay + Denis + + + + + Omega + + + 11-1994 + Convergence Rate for the Approximation of the Limit Law of Weakly I nteracting Particles 2: Application to the Burgers Equation + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f145.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f145.rdf new file mode 100644 index 0000000000..a937db5e4a --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f145.rdf @@ -0,0 +1,18 @@ + + + + + + Grimm + Jose + + + + + Safir + + + 11-1994 + Implementation en C de l'arithmetique de Sisyphe + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f146.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f146.rdf new file mode 100644 index 0000000000..1824a675a5 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f146.rdf @@ -0,0 +1,18 @@ + + + + + + Aboulalaa + Adnan + + + + + Mistral + + + 11-1994 + Sur un theoreme de limite conditionnelle + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f147.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f147.rdf new file mode 100644 index 0000000000..f3b5e5ca0e --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f147.rdf @@ -0,0 +1,18 @@ + + + + + + Abgrall + Remi + + + + + Sinus + + + 10-1994 + How to prevent pressure oscillations in multicomponent flow calcul ations : a quasi conservative approach + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f148.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f148.rdf new file mode 100644 index 0000000000..f05dc0dfd7 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f148.rdf @@ -0,0 +1,36 @@ + + + + + + Campillo + Fabien + + + + + Bernier + Herve + + + + + Cerou + Frederic + + + + + Gland + Le + + + + + Mefisto + + + 11-1994 + Parallelisme de donnees et filtrage non lineaire : Analyse de perfo rmance + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f149.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f149.rdf new file mode 100644 index 0000000000..3044742d59 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f149.rdf @@ -0,0 +1,24 @@ + + + + + + Florack + Luc + + + + + Nielsen + Mads + + + + + Robotvis + + + 7-1994 + The Intrinsic Structure of the Optic Flow Field + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f15.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f15.rdf new file mode 100644 index 0000000000..8da8f9cee0 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f15.rdf @@ -0,0 +1,19 @@ + + + + + + Depeyre + S. + + + + + Issautier + D. + + + 6-1995 + Application aux schmas volumes finis d'une mthode de pnalisation des contraintes pour le systme de Maxwell + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f150.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f150.rdf new file mode 100644 index 0000000000..27396360d6 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f150.rdf @@ -0,0 +1,24 @@ + + + + + + Fidrich + Marta + + + + + Thirion + Jean-Philippe + + + + + Epidaure + + + 10-1994 + Multiscale Extraction and Representation of Features from Medical I mages + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f151.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f151.rdf new file mode 100644 index 0000000000..898eb2c8c8 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f151.rdf @@ -0,0 +1,54 @@ + + + + + + Castelluccia + Claude + + + + + Chrisment + Isabelle + + + + + Dabbous + Walid + + + + + Diot + Christophe + + + + + Huitema + Christian + + + + + Siegel + Ellen + + + + + Simone + De + + + + + Rodeo + + + 10-1994 + Tailored Protocol Development Using ESTEREL + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f152.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f152.rdf new file mode 100644 index 0000000000..420ffb49c7 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f152.rdf @@ -0,0 +1,30 @@ + + + + + + Viville + Thierry + + + + + Lingrand + Diane + + + + + Francois + and + + + + + Robotvis + + + 11-2000 + Implementing a variant of the Kanatani's estimation method. + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f153.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f153.rdf new file mode 100644 index 0000000000..610de747cd --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f153.rdf @@ -0,0 +1,24 @@ + + + + + + Dery + Anne-Marie + + + + + Lejouad + Wided + + + + + Secoia + + + 11-1994 + From Modular to Distributed Architectures: Centaur and Smeci Experi ments + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f154.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f154.rdf new file mode 100644 index 0000000000..8ec7bbf61f --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f154.rdf @@ -0,0 +1,24 @@ + + + + + + Campillo + Fabien + + + + + Traore + Abdoulaye + + + + + Mefisto + + + 11-1994 + Lyapunov exponents of controlled SDE's and stabilizability property : Some examples + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f155.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f155.rdf new file mode 100644 index 0000000000..fca7b9479e --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f155.rdf @@ -0,0 +1,30 @@ + + + + + + Baratchart + Laurent + + + + + Leblond + Juliette + + + + + Partington + Jonathan + + + + + Miaou + + + 10-1994 + Hardy approximation to $L^p$ functions on subsets of the circle Sophia Antipolis, Projet Miaou , Octobre 1994 + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f156.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f156.rdf new file mode 100644 index 0000000000..ea89cec5ee --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f156.rdf @@ -0,0 +1,30 @@ + + + + + + Boissonnat + Jean-Daniel + + + + + Czyzowicz + Jurek + + + + + Devillers + Olivier + + + + + Prisme + + + 11-1994 + Convex Tours of Bounded Curvature + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f157.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f157.rdf new file mode 100644 index 0000000000..ff891c808e --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f157.rdf @@ -0,0 +1,30 @@ + + + + + + Tidball + Mabel + + + + + Pourtallier + Odile + + + + + Altman + Eitan + + + + + Mistral + + + 10-1994 + Approximations in dynamic zero-sum games, II + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f158.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f158.rdf new file mode 100644 index 0000000000..d79f609034 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f158.rdf @@ -0,0 +1,18 @@ + + + + + + Thirion + Jean-Philippe + + + + + Epidaure + + + 12-1993 + The Extremal mesh and the understanding of 3D surfaces + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f159.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f159.rdf new file mode 100644 index 0000000000..1592069c97 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f159.rdf @@ -0,0 +1,24 @@ + + + + + + Thirion + Jean-Philippe + + + + + Benayoun + Serge + + + + + Epidaure + + + 8-1993 + Image surface extremal points, new feature points for image registr ation + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f16.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f16.rdf new file mode 100644 index 0000000000..7d03533e34 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f16.rdf @@ -0,0 +1,18 @@ + + + + + + Devernay + Frdric + + + + + Robotvis + + + 11-1995 + A Non-Maxima Suppression Method for Edge Detection with Sub-Pixel Accuracy + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f160.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f160.rdf new file mode 100644 index 0000000000..765a3846fb --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f160.rdf @@ -0,0 +1,18 @@ + + + + + + Thirion + Jean-Philippe + + + + + Epidaure + + + 5-1993 + New feature points based on geometric invariants for 3D image regis tration + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f161.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f161.rdf new file mode 100644 index 0000000000..91f65d73eb --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f161.rdf @@ -0,0 +1,24 @@ + + + + + + Thirion + Jean-Philippe + + + + + Gourdon + Alexis + + + + + Epidaure + + + 4-1993 + The Marching lines algorithm : new results and proofs : part 2. + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f162.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f162.rdf new file mode 100644 index 0000000000..515c7a8a97 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f162.rdf @@ -0,0 +1,24 @@ + + + + + + Thirion + Jean-Philippe + + + + + Gourdon + Alexis + + + + + Epidaure + + + 4-1993 + The Marching lines algorithm : new results and proofs : part 1. + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f163.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f163.rdf new file mode 100644 index 0000000000..33f938256f --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f163.rdf @@ -0,0 +1,18 @@ + + + + + + Thirion + Jean-Philippe + + + + + Epidaure + + + 11-1992 + The Gradient and laplacien filtered back projection operators Sophia Antipolis, Projet Epidaure , Novembre 1992 + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f164.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f164.rdf new file mode 100644 index 0000000000..d90d4ea1bc --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f164.rdf @@ -0,0 +1,24 @@ + + + + + + Thirion + Jean-Philippe + + + + + Gourdon + Alexis + + + + + Epidaure + + + 5-1992 + The 3D marching lines algorithm and its application to crest lines extraction + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f165.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f165.rdf new file mode 100644 index 0000000000..46c2a32ef0 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f165.rdf @@ -0,0 +1,30 @@ + + + + + + Bertot + Yves + + + + + Pons + Olivier + + + + + Pottier + Loc + + + + + Lemme + + + 11-2000 + Graphes de dpendance pour les dmonstrateurs de thormes intractifs + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f166.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f166.rdf new file mode 100644 index 0000000000..12cbce1e29 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f166.rdf @@ -0,0 +1,18 @@ + + + + + + Thirion + Jean-Philippe + + + + + Epidaure + + + 6-1991 + A geometric alternative to computed tomography + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f167.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f167.rdf new file mode 100644 index 0000000000..97b7e0acfb --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f167.rdf @@ -0,0 +1,18 @@ + + + + + + Nielsen + Mads + + + + + Robotvis + + + 3-1994 + Surface Reconstruction: GNCs and MFAs + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f168.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f168.rdf new file mode 100644 index 0000000000..4b07fa31c0 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f168.rdf @@ -0,0 +1,24 @@ + + + + + + Abgrall + Remi + + + + + Harten + Ami + + + + + Sinus + + + 9-1994 + Multiresolution Representation in Unstructured Meshes : I. Prelimin ary Report + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f169.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f169.rdf new file mode 100644 index 0000000000..dfba9b298f --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f169.rdf @@ -0,0 +1,30 @@ + + + + + + Nielsen + Mads + + + + + Florack + Luc + + + + + Deriche + Rachid + + + + + Robotvis + + + 7-1994 + Regularization and Scale Space + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f17.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f17.rdf new file mode 100644 index 0000000000..f66788bccf --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f17.rdf @@ -0,0 +1,24 @@ + + + + + + Devernay + Frdric + + + + + Faugeras + Olivier + + + + + Robotvis + + + 11-1995 + From Projective to Euclidean Reconstruction + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f170.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f170.rdf new file mode 100644 index 0000000000..7f9b909d52 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f170.rdf @@ -0,0 +1,18 @@ + + + + + + Nielsen + Mads + + + + + Robotvis + + + 3-1994 + Adaptive Regularization: Towards Self-Calibrated Reconstruction + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f171.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f171.rdf new file mode 100644 index 0000000000..8ff39d7d1f --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f171.rdf @@ -0,0 +1,24 @@ + + + + + + Robert + Luc + + + + + Faugeras + Olivier + + + + + Robotvis + + + 9-1994 + Relative 3D Positioning and 3D Convex Hull Computation from a Weakl y Calibrated Stereo Pair + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f172.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f172.rdf new file mode 100644 index 0000000000..c1a60b0e45 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f172.rdf @@ -0,0 +1,18 @@ + + + + + + Abgrall + Remi + + + + + Sinus + + + 9-1994 + Approximation of the multidimensional Riemann problem in Compressib le Fluid Mechanics by a Roe type method + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f173.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f173.rdf new file mode 100644 index 0000000000..b8ca4ffe23 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f173.rdf @@ -0,0 +1,18 @@ + + + + + + Zhang + Zhengyou + + + + + Robotvis + + + 9-1994 + Estimating Motion and Structure from Correspondences of Line Segmen ts Between Two Perspective Images + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f174.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f174.rdf new file mode 100644 index 0000000000..1ecd99126a --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f174.rdf @@ -0,0 +1,24 @@ + + + + + + Dupont + Stphane + + + + + Berthod + Marc + + + + + Pastis + + + 9-1994 + Interferometrie radar et Deroulement de phase + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f175.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f175.rdf new file mode 100644 index 0000000000..810c68ce97 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f175.rdf @@ -0,0 +1,24 @@ + + + + + + Dery + Anne-Marie + + + + + Rideau + Laurence + + + + + Croap + + + 8-1994 + Distributed programming environments: an example of a message proto col + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f176.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f176.rdf new file mode 100644 index 0000000000..a8f3d2b22f --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f176.rdf @@ -0,0 +1,36 @@ + + + + + + Devillers + Olivier + + + + + Golin + Mordecai + + + + + Kedem + Klara + + + + + Schirra + Stefan + + + + + Prisme + + + 9-1994 + Revenge of the Dog: Queries on Voronoi Diagrams of Moving Points + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f177.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f177.rdf new file mode 100644 index 0000000000..9d6548cc7f --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f177.rdf @@ -0,0 +1,24 @@ + + + + + + Aranda-Bricaire + Eduardo + + + + + Moog + Claude + + + + + Miaou + + + 7-1994 + Infinitesimal Brunovsky Form for Nonlinear Systems with Applicatio ns to Dynamic Linearization + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f178.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f178.rdf new file mode 100644 index 0000000000..d4112acb9b --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f178.rdf @@ -0,0 +1,24 @@ + + + + + + Lobry + Claude + + + + + Sari + Tewfik + + + + + Comore + + + 11-2000 + The peaking phenomenon and singular perturbations : an extension of Tikhonov's theorem + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f179.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f179.rdf new file mode 100644 index 0000000000..670351c7c3 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f179.rdf @@ -0,0 +1,18 @@ + + + + + + Pomet + Jean-Baptiste + + + + + Miaou + + + 7-1994 + A Differential Geometric Setting for Dynamic Equivalence and Dynami c Linearization + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f18.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f18.rdf new file mode 100644 index 0000000000..b98854b354 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f18.rdf @@ -0,0 +1,18 @@ + + + + + + Sausse + Alain + + + + + Safir + + + 12-1995 + tude par le calcul formel d'une question issue du problme 4 corps + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f180.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f180.rdf new file mode 100644 index 0000000000..7409185e89 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f180.rdf @@ -0,0 +1,18 @@ + + + + + + Koobus + Bruno + + + + + Lallemand + Marie-Helene + + + An Additive Standpoint in Parallel Two-Level Multigrid Algorithms + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f181.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f181.rdf new file mode 100644 index 0000000000..4fb02f23ae --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f181.rdf @@ -0,0 +1,30 @@ + + + + + + Marco + Nathalie + + + + + Koobus + Bruno + + + + + Dervieux + Alain + + + + + Sinus + + + 8-1994 + An Additive Multilevel Preconditioning Method + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f182.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f182.rdf new file mode 100644 index 0000000000..06e5b123a6 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f182.rdf @@ -0,0 +1,24 @@ + + + + + + Boudol + Grard + + + + + Castellani + Ilaria + + + + + Mimosa + + + 9-2001 + Noninterference for Concurrent Programs and Thread Systems + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f183.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f183.rdf new file mode 100644 index 0000000000..55aeacd90b --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f183.rdf @@ -0,0 +1,24 @@ + + + + + + Duval + Benoit + + + + + Guillard + Herve + + + + + Sinus + + + 7-1994 + Gestion de maillages triangulaires deformables + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f184.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f184.rdf new file mode 100644 index 0000000000..d7143da4d0 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f184.rdf @@ -0,0 +1,24 @@ + + + + + + Zeller + Cyril + + + + + Faugeras + Olivier + + + + + Robotvis + + + 7-1994 + Applications of Non-Metric Vision to Some Visual Guided Tasks Sophia Antipolis, Projet Robotvis , Juillet 1994 + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f185.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f185.rdf new file mode 100644 index 0000000000..dd240907ee --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f185.rdf @@ -0,0 +1,30 @@ + + + + + + Avnaim + Francis + + + + + Boissonnat + Jean-Daniel + + + + + Devillers + Olivier + + + + + Preparata + Franco + + + Evaluating signs of determinants using single-precision arithmetic + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f186.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f186.rdf new file mode 100644 index 0000000000..ee76a3ddf4 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f186.rdf @@ -0,0 +1,24 @@ + + + + + + Navab + Nassir + + + + + Faugeras + Olivier + + + + + Robotvis + + + 7-1994 + The Critical Sets of Lines for Camera Displacement Estimation : A M ixed Euclidean-Projective and Constructive Approach + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f187.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f187.rdf new file mode 100644 index 0000000000..2936533c79 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f187.rdf @@ -0,0 +1,18 @@ + + + + + + Faure + Christele + + + + + Safir + + + 7-1994 + Objets conditionnels et objets inconnus + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f188.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f188.rdf new file mode 100644 index 0000000000..faa4d24fb9 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f188.rdf @@ -0,0 +1,30 @@ + + + + + + Baccelli + Franois + + + + + Klein + Maurice + + + + + Zuyev + Serguei + + + + + Mistral + + + 3-1994 + Perturbation Analysis of Functionals of Random Measures + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f189.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f189.rdf new file mode 100644 index 0000000000..6d716ac912 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f189.rdf @@ -0,0 +1,18 @@ + + + + + + Zuyev + Sergei + + + + + Mistral + + + 7-1994 + Poisson Power Tesselations + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f19.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f19.rdf new file mode 100644 index 0000000000..07d91c955d --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f19.rdf @@ -0,0 +1,48 @@ + + + + + + Moisan + Sabine + + + + + Vincent + Rgis + + + + + Thonnat + Monique + + + + + Clment + Vronique + + + + + van + John + + + + + Elst + den + + + + + Orion + + + 11-1995 + Manuel de rfrence du Logiciel OCAPI Version 2.0 + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f190.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f190.rdf new file mode 100644 index 0000000000..a271b8d030 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f190.rdf @@ -0,0 +1,18 @@ + + + + + + Bertot + Yves + + + + + Lemme + + + 11-2000 + A Coq formalization of a Type Checker for Object Initialization in the Java Virtual Machine + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f191.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f191.rdf new file mode 100644 index 0000000000..798e75b5a2 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f191.rdf @@ -0,0 +1,24 @@ + + + + + + Devernay + Frederic + + + + + Faugeras + Olivier + + + + + Robotvis + + + 7-1994 + Computing Differential Properties of 3-D Shapes from Stereoscopic I mages without 3-D Models + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f192.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f192.rdf new file mode 100644 index 0000000000..ac6ecd07f7 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f192.rdf @@ -0,0 +1,24 @@ + + + + + + Finta + Lucian + + + + + Liu + Zhen + + + + + Mistral + + + 5-1994 + Scheduling of Parallel Programs in Single-Bus Multiprocessor Systems + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f193.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f193.rdf new file mode 100644 index 0000000000..76a709c1b0 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f193.rdf @@ -0,0 +1,24 @@ + + + + + + Benayoun + Serge + + + + + Ayache + Nicholas + + + + + Cohen + Isaac + + + An adaptive model for 2D and 3D dense non rigid motion computation + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f194.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f194.rdf new file mode 100644 index 0000000000..82b502c16e --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f194.rdf @@ -0,0 +1,18 @@ + + + + + + Tidball + Mabel + + + + + Miaou + + + 6-1994 + Undiscounted zero sum differential games with stopping times + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f195.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f195.rdf new file mode 100644 index 0000000000..025a8f7972 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f195.rdf @@ -0,0 +1,18 @@ + + + + + + Jiang + Zhong + + + + + Miaou + + + 6-1994 + A note on robust control of nonlinear systems with input unmodeled dynamics + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f196.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f196.rdf new file mode 100644 index 0000000000..cfa8e44e76 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f196.rdf @@ -0,0 +1,24 @@ + + + + + + Despeyroux + Joelle + + + + + Hirschowitz + Andre + + + + + Croap + + + 6-1994 + Higher-order abstract syntax with induction in Coq + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f197.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f197.rdf new file mode 100644 index 0000000000..0dfb927e33 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f197.rdf @@ -0,0 +1,24 @@ + + + + + + Merlet + Jean-Pierre + + + + + Mouly + Nicolas + + + + + Prisme + + + 2-1994 + Espaces de travail et planification de trajectoire des robots paral leles plans + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f198.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f198.rdf new file mode 100644 index 0000000000..dfaa641a09 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f198.rdf @@ -0,0 +1,7 @@ + + + + 10-1993 + Comparison and Analysis of some Numerical Schemes for Stiff Complex Chemistry Problems + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f199.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f199.rdf new file mode 100644 index 0000000000..6cdfa2db5b --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f199.rdf @@ -0,0 +1,24 @@ + + + + + + Campillo + Fabien + + + + + Lejay + Antoine + + + + + Sysdys + + + 11-2000 + A Monte Carlo Method without Grid to Compute the Exchange Coefficient in the Double Porosity Model. Part I: From the Matrix to the Fissures + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f2.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f2.rdf new file mode 100644 index 0000000000..cbc00f05c9 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f2.rdf @@ -0,0 +1,30 @@ + + + + + + Baccelli + Franois + + + + + Hasenfuss + Sven + + + + + Schmidt + Volker + + + + + Mistral + + + 1-1996 + Expansions for Steady-State Characteristics in (max,+) -Linear Systems + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f20.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f20.rdf new file mode 100644 index 0000000000..79058fe660 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f20.rdf @@ -0,0 +1,30 @@ + + + + + + Ferreira + Afonso + + + + + Prennes + Stphane + + + + + Rivano + Herv + + + + + Mascotte + + + 1-2001 + Fractional Coloring of Bounded Degree Trees + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f200.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f200.rdf new file mode 100644 index 0000000000..6e40d69796 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f200.rdf @@ -0,0 +1,12 @@ + + + + + + Keriven + R. + + + CLP++, Programmation Logique avec Contraintes en C++ + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f201.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f201.rdf new file mode 100644 index 0000000000..e9e86522a4 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f201.rdf @@ -0,0 +1,12 @@ + + + + + + Souflis + D. + + + Un Langage Logique Concurrent par Contraintes + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f202.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f202.rdf new file mode 100644 index 0000000000..24f072b632 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f202.rdf @@ -0,0 +1,12 @@ + + + + + + Caplain + G. + + + Quelques Rsultats sur l'Agrgation d'Echelles de Prfrences Individuelles + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f203.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f203.rdf new file mode 100644 index 0000000000..1b1831e391 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f203.rdf @@ -0,0 +1,24 @@ + + + + + + Devillers + Olivier + + + + + Golin + Mordecai + + + + + Prisme + + + 6-1994 + Incremental algorithms for finding the convex hulls of circles and the lower envelopes of parabolas + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f204.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f204.rdf new file mode 100644 index 0000000000..5ea13eef8a --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f204.rdf @@ -0,0 +1,18 @@ + + + + + + Castellani + Ilaria + + + + + Meije + + + 5-1994 + Observing distribution in processes : static and dynamic localities + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f205.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f205.rdf new file mode 100644 index 0000000000..9c90395a95 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f205.rdf @@ -0,0 +1,36 @@ + + + + + + Morin + Pascal + + + + + Samson + Claude + + + + + Pomet + Jean-Baptitste + + + + + Jiang + Zhong + + + + + Icare + + + 5-1994 + Time-varying feedback stabilization of the attitude of a rigid spac ecraft + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f206.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f206.rdf new file mode 100644 index 0000000000..b4b22870dd --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f206.rdf @@ -0,0 +1,24 @@ + + + + + + Pennec + Xavier + + + + + Ayache + Nicholas + + + + + Epidaure + + + 5-1994 + An 0(n2) algorithm for 3D substructure matching of proteins + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f207.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f207.rdf new file mode 100644 index 0000000000..6048d93274 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f207.rdf @@ -0,0 +1,30 @@ + + + + + + Zhang + Zhengyou + + + + + Deriche + Rachid + + + + + Faugeras + Olivier + + + + + Robotvis + + + 5-1994 + A robust technique for matching two uncalibrated images through the recovery of the unknown epipolar geometry + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f208.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f208.rdf new file mode 100644 index 0000000000..9a3bd0d035 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f208.rdf @@ -0,0 +1,24 @@ + + + + + + Bally + V. + + + + + Talay + Denis + + + + + Omega + + + 3-1994 + The Law of the Euler scheme for stochastic differential equations : I. convergence rate of the distribution function + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f209.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f209.rdf new file mode 100644 index 0000000000..f5e262ea9b --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f209.rdf @@ -0,0 +1,24 @@ + + + + + + Devillers + Olivier + + + + + Golin + Mordecai + + + + + Prisme + + + 4-1994 + Dog bites postman: point location in the moving Voronoi diagram and related problems + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f21.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f21.rdf new file mode 100644 index 0000000000..41612d3252 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f21.rdf @@ -0,0 +1,24 @@ + + + + + + Castelluccia + Claude + + + + + Dabbous + Walid + + + + + Rodeo + + + 12-1995 + HIPPCO: A High Performance Protocol Code Optimizer + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f210.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f210.rdf new file mode 100644 index 0000000000..39e7e34caa --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f210.rdf @@ -0,0 +1,18 @@ + + + + + + Berg + Mark + + + + + Prisme + + + 3-1994 + On lazy randomized incremental construction + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f211.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f211.rdf new file mode 100644 index 0000000000..c1404788b7 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f211.rdf @@ -0,0 +1,24 @@ + + + + + + Mriaux + Maud + + + + + Piperno + Serge + + + + + Caiman + + + 11-2000 + Mthodes de volumes finis en maillages variables pour des quations hyperboliques en une dimension + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f212.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f212.rdf new file mode 100644 index 0000000000..801a21f9f7 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f212.rdf @@ -0,0 +1,18 @@ + + + + + + Anderson + Penny + + + + + Croap + + + 3-1994 + Program extraction in a logical framework setting + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f213.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f213.rdf new file mode 100644 index 0000000000..d609f6b751 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f213.rdf @@ -0,0 +1,18 @@ + + + + + + Delingette + Herve + + + + + Epidaure + + + 3-1994 + Simplex meshes : a general representation for 3D shape reconstructi on + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f214.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f214.rdf new file mode 100644 index 0000000000..e52ff164d0 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f214.rdf @@ -0,0 +1,18 @@ + + + + + + Borovkov + Alexander + + + + + Mistral + + + 1-1994 + Asymptotic expansions for functionals processes + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f215.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f215.rdf new file mode 100644 index 0000000000..e3ae0636ad --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f215.rdf @@ -0,0 +1,36 @@ + + + + + + Ferrante + Patrick + + + + + Mussi + Philippe + + + + + Siegel + Gunther + + + + + Mallet + Lionel + + + + + Mistral + + + 4-1994 + Object oriented simulation : Highlighs on the PROSIT : parallel dis crete event simulator + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f216.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f216.rdf new file mode 100644 index 0000000000..498cf5b4ba --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f216.rdf @@ -0,0 +1,24 @@ + + + + + + Mussi + Philippe + + + + + Rakotoarisoa + Hery + + + + + Mistral + + + 4-1994 + PARSEVAL : a workbench for queueing networks parallel simulation + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f217.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f217.rdf new file mode 100644 index 0000000000..7af8e0caaa --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f217.rdf @@ -0,0 +1,18 @@ + + + + + + Anderson + Penny + + + + + Croap + + + 5-1994 + Representing proof transformations for program optimization + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f218.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f218.rdf new file mode 100644 index 0000000000..784f33dcff --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f218.rdf @@ -0,0 +1,30 @@ + + + + + + Dalmas + Stephane + + + + + Gaetano + Marc + + + + + Sausse + Alain + + + + + Safir + + + 3-1994 + ASAP : a protocol for symbolic computation systems + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f219.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f219.rdf new file mode 100644 index 0000000000..4e77d40c75 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f219.rdf @@ -0,0 +1,24 @@ + + + + + + Liu + Zhen + + + + + Mussi + Philippe + + + + + Mistral + + + 4-1994 + Deadlock free routing on a ring : a performance evaluation + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f22.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f22.rdf new file mode 100644 index 0000000000..929d0fc566 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f22.rdf @@ -0,0 +1,18 @@ + + + + + + Sacile + Roberto + + + + + Acacia + + + 11-1995 + Using CommonKADS to build an expertise model for breast cancer + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f220.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f220.rdf new file mode 100644 index 0000000000..c8f1087807 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f220.rdf @@ -0,0 +1,24 @@ + + + + + + Mallet + Lionel + + + + + Mussi + Philippe + + + + + Mistral + + + 4-1994 + Object oriented parallel discrete event simulation : the PROSIT app roach + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f221.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f221.rdf new file mode 100644 index 0000000000..13c0e884cf --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f221.rdf @@ -0,0 +1,18 @@ + + + + + + Gourdon + Alexis + + + + + Ayache + Nicholas + + + Registration of a curve on a surface using differential properties + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f222.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f222.rdf new file mode 100644 index 0000000000..217a977541 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f222.rdf @@ -0,0 +1,24 @@ + + + + + + Abalakin + Ilya + + + + + Dervieux + Alain + + + + + Sinus + + + 11-2000 + On time averaging in Organised Eddy Simulation modelling + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f223.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f223.rdf new file mode 100644 index 0000000000..7415d67cb2 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f223.rdf @@ -0,0 +1,18 @@ + + + + + + Gaujal + Bruno + + + + + Mistral + + + 3-1994 + Optimal allocation sequences of two processes sharing a resource + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f224.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f224.rdf new file mode 100644 index 0000000000..999f2b6e32 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f224.rdf @@ -0,0 +1,18 @@ + + + + + + Pottier + Loc + + + + + Safir + + + 3-1994 + Groebner bases of toric ideals + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f225.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f225.rdf new file mode 100644 index 0000000000..5e785077a3 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f225.rdf @@ -0,0 +1,24 @@ + + + + + + Feldmar + Jacques + + + + + Ayache + Nicholas + + + + + Epidaure + + + 3-1994 + Rigid, affine and locally affine registration of free-form surfaces + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f226.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f226.rdf new file mode 100644 index 0000000000..1f0db90289 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f226.rdf @@ -0,0 +1,30 @@ + + + + + + Subsol + Gerard + + + + + Thirion + Jean-Philippe + + + + + Ayache + Nicholas + + + + + Epidaure + + + 3-1994 + First steps towards automatic building of anatomical atlases + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f227.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f227.rdf new file mode 100644 index 0000000000..4988b60784 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f227.rdf @@ -0,0 +1,18 @@ + + + + + + Foss + Serguei + + + + + Meval + + + 7-1993 + On a certain segment process with Voronoi clustering + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f228.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f228.rdf new file mode 100644 index 0000000000..9a5c387564 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f228.rdf @@ -0,0 +1,18 @@ + + + + + + Mairesse + Jean + + + + + Meval + + + 6-1993 + Products of irreducible random matrices in the $(Max,+)$ Algebra : part 1 + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f229.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f229.rdf new file mode 100644 index 0000000000..f450d2add4 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f229.rdf @@ -0,0 +1,18 @@ + + + + + + Mer + Katherine + + + + + Sinus + + + 3-1994 + Variational analysis of a mixed finite element : finite volume sche me on general triangulation + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f23.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f23.rdf new file mode 100644 index 0000000000..29519fe251 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f23.rdf @@ -0,0 +1,24 @@ + + + + + + Deriche + Rachid + + + + + Faugeras + Olivier + + + + + Robotvis + + + 11-1995 + Les EDP en Traitement des Images et Vision par Ordinateur + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f230.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f230.rdf new file mode 100644 index 0000000000..b8a2306184 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f230.rdf @@ -0,0 +1,18 @@ + + + + + + Robert + Luc + + + + + Robotvis + + + 2-1994 + Camera calibration without feature extraction + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f231.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f231.rdf new file mode 100644 index 0000000000..24b9a1dc22 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f231.rdf @@ -0,0 +1,24 @@ + + + + + + Farhat + Charbel + + + + + Lanteri + Stephane + + + + + Sinus + + + 1-1994 + Simulation of compressible viscous flows on a variety pf MPPs : com putational algorithms for unstructured dynamic meshes and performance results + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f232.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f232.rdf new file mode 100644 index 0000000000..bf172df6b9 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f232.rdf @@ -0,0 +1,30 @@ + + + + + + Weigl + Konrad + + + + + Giraudon + Gerard + + + + + Berthod + Marc + + + + + Pastis + + + 12-1993 + Application of projection learning to the detection of urban areas in SPOT satellite images + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f233.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f233.rdf new file mode 100644 index 0000000000..1950e8521e --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f233.rdf @@ -0,0 +1,19 @@ + + + + + + He + L. + + + + + B. + et + + + 12-1993 + Moving Grid Numerical Simulations of Planar Time-Dependent Detonations + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f234.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f234.rdf new file mode 100644 index 0000000000..9d17bba9c5 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f234.rdf @@ -0,0 +1,24 @@ + + + + + + Magaud + Nicolas + + + + + Bertot + Yves + + + + + Lemme + + + 10-2000 + Changements de reprsentation des donnes dans le calcul des constructions inductives + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f235.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f235.rdf new file mode 100644 index 0000000000..066f7a1f6e --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f235.rdf @@ -0,0 +1,24 @@ + + + + + + Laveau + Stephane + + + + + Faugeras + Olivier + + + + + Robotvis + + + 2-1994 + 3-D Scene Representation as a Collection of Images and Fundamenta l Matrices + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f236.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f236.rdf new file mode 100644 index 0000000000..354143fc69 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f236.rdf @@ -0,0 +1,24 @@ + + + + + + Finta + Lucian + + + + + Liu + Zhen + + + + + Mistral + + + 1-1994 + Single Machine Scheduling Subject to Precedence Delays + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f237.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f237.rdf new file mode 100644 index 0000000000..680eecc5b3 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f237.rdf @@ -0,0 +1,31 @@ + + + + + + Carpentier + R. + + + + + de + A. + + + + + Bourdonnaye + la + + + + + Larrouturou + B. + + + 1-1994 + On the Derivation of the Modified Equation for the Analysis of Linear Numerical Methods + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f238.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f238.rdf new file mode 100644 index 0000000000..9cf5423cdf --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f238.rdf @@ -0,0 +1,31 @@ + + + + + + Issautier + D. + + + + + Poupaud + F. + + + + + Fezoui + L. + + + + + J.P. + et + + + 4-1993 + A Parallel Weighted Particle Algorithm for Solving the Boltzmann (B.G.K) Equation on the Connection Machine + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f239.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f239.rdf new file mode 100644 index 0000000000..e8d1357bf5 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f239.rdf @@ -0,0 +1,18 @@ + + + + + + Ciccoli + Marie-Claude + + + + + Sinus + + + 2-1994 + Numerical simulation of 3D hypersonic flows + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f24.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f24.rdf new file mode 100644 index 0000000000..cd35f78c3e --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f24.rdf @@ -0,0 +1,18 @@ + + + + + + FRANCESCATTO + Jrme + + + + + Sinus + + + 11-1995 + Rsolution de l'quation de Poisson sur des maillages tirs par une mthode multigrille + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f240.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f240.rdf new file mode 100644 index 0000000000..50a59068f2 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f240.rdf @@ -0,0 +1,36 @@ + + + + + + Delingette + Herve + + + + + Subsol + Gerard + + + + + Cotin + Stephane + + + + + Pignon + Jerome + + + + + Epidaure + + + 2-1994 + A Craniofacial surgery simulation testbed + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f241.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f241.rdf new file mode 100644 index 0000000000..0ceca7f521 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f241.rdf @@ -0,0 +1,24 @@ + + + + + + Bossy + Mireille + + + + + Talay + Denis + + + + + Omega + + + 2-1994 + Convergence rate for the approximation of the limit law of weakly i nteracting particles 1: smooth interacting kernels + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f242.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f242.rdf new file mode 100644 index 0000000000..8ffab0cb42 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f242.rdf @@ -0,0 +1,30 @@ + + + + + + Boissonnat + Jean-Daniel + + + + + Cerezo + Andre + + + + + Leblond + Juliette + + + + + Prisme + + + 1-1994 + A note on shortest paths in the plane subject to a constraint on t he derivative of the curvature + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f243.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f243.rdf new file mode 100644 index 0000000000..6f634757f0 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f243.rdf @@ -0,0 +1,30 @@ + + + + + + Picinbono + Guillaume + + + + + Delingette + Herv + + + + + Ayache + Nicholas + + + + + Epidaure + + + 10-2000 + Non-Linear Anisotropic Elasticity for Real-Time Surgery Simulation + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f244.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f244.rdf new file mode 100644 index 0000000000..0b6cb2d59e --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f244.rdf @@ -0,0 +1,30 @@ + + + + + + Urago + Sabine + + + + + Zerubia + Josiane + + + + + Berthod + Marc + + + + + Pastis + + + 2-1994 + A Markovian Model For Contour Grouping + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f245.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f245.rdf new file mode 100644 index 0000000000..c781c55eb2 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f245.rdf @@ -0,0 +1,18 @@ + + + + + + Mourrain + Bernard + + + + + Safir + + + 11-1993 + About the rational map + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f246.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f246.rdf new file mode 100644 index 0000000000..a8b79bd295 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f246.rdf @@ -0,0 +1,13 @@ + + + + + + Lebastard + F. + + + 12-1993 + CHOOE: Un gestionnaire d'environnement distribu + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f247.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f247.rdf new file mode 100644 index 0000000000..f0671f4a19 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f247.rdf @@ -0,0 +1,13 @@ + + + + + + Issautier + D. + + + 10-1993 + Algorithmes Particulaires pour Calculateurs Architecture Massivement Parallle + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f248.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f248.rdf new file mode 100644 index 0000000000..a3ac55b8d1 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f248.rdf @@ -0,0 +1,24 @@ + + + + + + Caplain + G. + + + + + Lalement + R. + + + + + T. + et + + + Semantic analysis of a control-parallel extension of Fortran + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f249.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f249.rdf new file mode 100644 index 0000000000..fd54c5b75d --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f249.rdf @@ -0,0 +1,25 @@ + + + + + + Piperno + S. + + + + + Larrouturou + B. + + + + + M. + et + + + 6-1993 + Analysis and Compensation of Numerical Damping in a one-dimensional Aeroelastic Problem + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f25.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f25.rdf new file mode 100644 index 0000000000..e03f212eac --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f25.rdf @@ -0,0 +1,24 @@ + + + + + + Mussi + Philippe + + + + + Siegel + Gunther + + + + + Sloop + + + 11-1995 + Sequential Simulation in Prosit: Programming Model and Implementation + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f250.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f250.rdf new file mode 100644 index 0000000000..3a12e84f6c --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f250.rdf @@ -0,0 +1,19 @@ + + + + + + de + A. + + + + + Bourdonnaye + la + + + 6-1993 + High Frequency Approximation of Integral Equations Modelizing Scattering Phenomena + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f251.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f251.rdf new file mode 100644 index 0000000000..963770fcce --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f251.rdf @@ -0,0 +1,19 @@ + + + + + + de + A. + + + + + Bourdonnaye + la + + + 3-1993 + Diverses Formulations du couplage entre Mthode Volumique et Mthode Intgrale pour l'Equation de Helmholtz et l'Electromagntisme + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f252.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f252.rdf new file mode 100644 index 0000000000..b0bdcf0456 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f252.rdf @@ -0,0 +1,18 @@ + + + + + + Sainsaulieu + L. + + + + + B. + et + + + Modlisation Eulrienne des Ecoulements Diphasiques Disperss et Rsolution par une Mthode Dcentre + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f253.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f253.rdf new file mode 100644 index 0000000000..253e43f956 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f253.rdf @@ -0,0 +1,13 @@ + + + + + + Lebastard + F. + + + 10-1992 + DRIVER : Version 1.34 Manuel de Rfrence + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f254.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f254.rdf new file mode 100644 index 0000000000..9a623db8ea --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f254.rdf @@ -0,0 +1,13 @@ + + + + + + Lebastard + F. + + + 10-1992 + DRIVER : Une Couche Objet pour les Bases de Donnes Relationnelles + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f255.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f255.rdf new file mode 100644 index 0000000000..2f698b79a1 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f255.rdf @@ -0,0 +1,13 @@ + + + + + + Piperno + S. + + + 10-1992 + Numerical Methods Used in Aeroelasticity Simulations + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f256.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f256.rdf new file mode 100644 index 0000000000..a2ce67b0fc --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f256.rdf @@ -0,0 +1,19 @@ + + + + + + de + A. + + + + + Bourdonnaye + la + + + 3-1992 + A Preconditioner for Integral Equations Modeling Helmholtz Equation + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f257.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f257.rdf new file mode 100644 index 0000000000..b69975eb64 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f257.rdf @@ -0,0 +1,18 @@ + + + + + + Pottier + Loc + + + + + Lemme + + + 10-2000 + Extraction dans le CCI + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f258.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f258.rdf new file mode 100644 index 0000000000..912b5e077f --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f258.rdf @@ -0,0 +1,36 @@ + + + + + + Bui + Xuan-Nam + + + + + Soueres + Philippe + + + + + Boissonnat + Jean-Daniel + + + + + Laumond + Jean-Paul + + + + + Prisme + + + 12-1993 + The shortest path synthesis for non-holonomic robots moving forward + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f259.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f259.rdf new file mode 100644 index 0000000000..23f1d07838 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f259.rdf @@ -0,0 +1,24 @@ + + + + + + Bonnet + A. + + + + + Larrouturou + B. + + + + + L. + et + + + On the Stability of Multiple Steady Planar Flames When the Lewis Number is Less Than 1 + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f26.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f26.rdf new file mode 100644 index 0000000000..7940b820e4 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f26.rdf @@ -0,0 +1,35 @@ + + + + + + Attali + Isabelle + + + + + Caromel + Denis + + + + + Ould + Sidi + + + + + Sloop + + + + + Croap + + + 11-1995 + An Operational Semantics for the Eiffel// Language + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f260.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f260.rdf new file mode 100644 index 0000000000..3bf0fb6fd0 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f260.rdf @@ -0,0 +1,24 @@ + + + + + + Papadopoulo + Theodore + + + + + Faugeras + Olivier + + + + + Robotvis + + + 1-1994 + Motion field of curves : applications + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f261.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f261.rdf new file mode 100644 index 0000000000..b15ee66563 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f261.rdf @@ -0,0 +1,18 @@ + + + + + + Berg + Mark + + + + + Prisme + + + 1-1994 + Reaching a goal with directional uncertainty + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f262.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f262.rdf new file mode 100644 index 0000000000..22c68ce29d --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f262.rdf @@ -0,0 +1,18 @@ + + + + + + Bui + Xuan + + + + + Prisme + + + 1-1994 + Accessibility region for a car that only moves forwards along optim al paths + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f263.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f263.rdf new file mode 100644 index 0000000000..0e64cf6beb --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f263.rdf @@ -0,0 +1,24 @@ + + + + + + Papadopoulo + Theodore + + + + + Faugeras + Olivier + + + + + Robotvis + + + 1-1994 + Analyse du mouvement tridimensionnel a partir de sequences d'images en utilisant des surfaces spatio-temporelles + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f264.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f264.rdf new file mode 100644 index 0000000000..8e7a346ee6 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f264.rdf @@ -0,0 +1,24 @@ + + + + + + Pomet + Jean-Baptiste + + + + + Samson + Claude + + + + + Icare + + + 12-1993 + Time-varying exponential stabilization of nonholonomic systems in p ower form + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f265.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f265.rdf new file mode 100644 index 0000000000..f4deb61a7a --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f265.rdf @@ -0,0 +1,30 @@ + + + + + + Boussinot + Frdric + + + + + Hazard + Laurent + + + + + Susini + Jean-Ferdy + + + + + Mimosa + + + 10-2000 + Programming with Junior + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f266.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f266.rdf new file mode 100644 index 0000000000..1181cd8a23 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f266.rdf @@ -0,0 +1,24 @@ + + + + + + Kutoyants + Yurii + + + + + Gland + Le + + + + + Mefisto + + + 12-1993 + Identification d'un systeme non-lineaire partiellement observe par la methode de la distance minimale + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f267.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f267.rdf new file mode 100644 index 0000000000..68d9e63d69 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f267.rdf @@ -0,0 +1,24 @@ + + + + + + Weigl + Konrad + + + + + Berthod + Marc + + + + + Pastis + + + 12-1993 + Neural networks as dynamical bases in function space + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f268.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f268.rdf new file mode 100644 index 0000000000..9a61af2e14 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f268.rdf @@ -0,0 +1,18 @@ + + + + + + Pennec + Xavier + + + + + Epidaure + + + 11-1993 + Correctness and robustness of 3D rigid matching with bounded sensor error + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f269.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f269.rdf new file mode 100644 index 0000000000..879bd7c970 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f269.rdf @@ -0,0 +1,18 @@ + + + + + + Rao + Zusheng + + + + + Mefisto + + + 11-1993 + Filtrage d'une diffusion reflechie a sauts observee a travers un pr ocessus ponctuel marque + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f27.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f27.rdf new file mode 100644 index 0000000000..d1447ccd09 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f27.rdf @@ -0,0 +1,24 @@ + + + + + + Mathieu-Marni + Sandrine + + + + + Berthod + Marc + + + + + Pastis + + + 12-1995 + COCKTAIL : Manuel d'utilisation + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f270.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f270.rdf new file mode 100644 index 0000000000..d410828050 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f270.rdf @@ -0,0 +1,18 @@ + + + + + + Prunet + Vincent + + + + + Croap + + + 11-1993 + Take pity on the user ! the RED customization package + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f271.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f271.rdf new file mode 100644 index 0000000000..64fe2539ba --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f271.rdf @@ -0,0 +1,18 @@ + + + + + + Malandain + Gregoire + + + + + Epidaure + + + 11-1993 + On topology in multidimensional discrete + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f272.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f272.rdf new file mode 100644 index 0000000000..1b302c1faa --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f272.rdf @@ -0,0 +1,24 @@ + + + + + + Micaelli + Alain + + + + + Samson + Claude + + + + + Icare + + + 11-1993 + Trajectory tracking for unicycle-type and two-steering-wheels mobil e robots + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f273.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f273.rdf new file mode 100644 index 0000000000..81cef09639 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f273.rdf @@ -0,0 +1,30 @@ + + + + + + Koobus + Bruno + + + + + Lallemand + Marie-Helene + + + + + Dervieux + Alain + + + + + Sinus + + + 6-1993 + Unstructured volume-agglomeration MG : solution of the Poisson equa tion + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f274.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f274.rdf new file mode 100644 index 0000000000..792dc6886d --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f274.rdf @@ -0,0 +1,36 @@ + + + + + + Giai-Checa + Bernard + + + + + Deriche + Rachid + + + + + Vieville + Thierry + + + + + Faugeras + Olivier + + + + + Robotvis + + + 11-1993 + Suivi de segments dans une sequence d'images monoculaire + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f275.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f275.rdf new file mode 100644 index 0000000000..64b4f2f6c5 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f275.rdf @@ -0,0 +1,30 @@ + + + + + + Zhang + Zhengyou + + + + + Luong + Quang-Tuan + + + + + Faugeras + Olivier + + + + + Robotvis + + + 11-1993 + Motion of an uncalibrated stereo rig : self-calibration and metric reconstruction + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f276.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f276.rdf new file mode 100644 index 0000000000..2d6464ad61 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f276.rdf @@ -0,0 +1,18 @@ + + + + + + Mairesse + Jean + + + + + Mistral + + + 10-1993 + A Graphical representation for matrices in the,Max,+ algebra + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f277.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f277.rdf new file mode 100644 index 0000000000..9d776d7e9a --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f277.rdf @@ -0,0 +1,18 @@ + + + + + + Zhang + Zhengyou + + + + + Robotvis + + + 10-1993 + Token tracking in a cluttered scene + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f278.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f278.rdf new file mode 100644 index 0000000000..be504b2a05 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f278.rdf @@ -0,0 +1,30 @@ + + + + + + Enciso + Reyes + + + + + Vieville + Thierry + + + + + Faugeras + Olivier + + + + + Robotvis + + + 10-1993 + Approximation du changement de focale et de mise au point par une t ransformation affine a trois parametres + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f279.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f279.rdf new file mode 100644 index 0000000000..d31edbc30d --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f279.rdf @@ -0,0 +1,18 @@ + + + + + + Boussinot + Frdric + + + + + Mimosa + + + 10-2000 + Junior Automata + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f28.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f28.rdf new file mode 100644 index 0000000000..cd6c4c7b11 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f28.rdf @@ -0,0 +1,18 @@ + + + + + + Debiez + Christophe + + + + + Sinus + + + 10-1995 + Etude d'un traitement par petites perturbations du domaine pour l'quation d'Euler instationnaire + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f280.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f280.rdf new file mode 100644 index 0000000000..1c23919750 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f280.rdf @@ -0,0 +1,24 @@ + + + + + + Marco + Nathalie + + + + + Beux + Francois + + + + + Sinus + + + 10-1993 + Multilevel optimization : application to shape optimum design with a one-shot method + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f281.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f281.rdf new file mode 100644 index 0000000000..c133bd5369 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f281.rdf @@ -0,0 +1,24 @@ + + + + + + Kostov + Vladimir + + + + + Degtiariova-Kostova + Elena + + + + + Prisme + + + 9-1993 + Suboptimal paths in the problem of a planar motion with bounded der ivative of the curvature + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f282.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f282.rdf new file mode 100644 index 0000000000..fdedc99ead --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f282.rdf @@ -0,0 +1,24 @@ + + + + + + Canales + Miguel + + + + + Gaujal + Bruno + + + + + Mistral + + + 9-1993 + Marking optimization and parallelism of marked graphs + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f283.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f283.rdf new file mode 100644 index 0000000000..5d32d00f60 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f283.rdf @@ -0,0 +1,24 @@ + + + + + + Labidi + Sofiane + + + + + Lejouad + Wided + + + + + Secoia + + + 8-1993 + De l'intelligence artificielle distribuee aux systemes multi-agents + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f284.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f284.rdf new file mode 100644 index 0000000000..2e566208ff --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f284.rdf @@ -0,0 +1,18 @@ + + + + + + Menec + Le + + + + + Miaou + + + 7-1993 + Games : gestion d'arbres d'etats multiples en SMECI + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f285.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f285.rdf new file mode 100644 index 0000000000..ff2fd94385 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f285.rdf @@ -0,0 +1,18 @@ + + + + + + Menec + Le + + + + + Miaou + + + 9-1993 + ADAM : aide au duel aerien moderne : theorie des jeux differentiels et programmation symbolique appliquees au probleme de l'Amraam + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f286.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f286.rdf new file mode 100644 index 0000000000..1b3564ed92 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f286.rdf @@ -0,0 +1,30 @@ + + + + + + Dobrindt + Katrin + + + + + Mehlhorn + Kurt + + + + + Yvinec + Mariette + + + + + Prisme + + + 9-1993 + A Complete and efficient algorithm for the intersection of a genera l ans a convex polyhedron + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f287.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f287.rdf new file mode 100644 index 0000000000..b9ff2dae5e --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f287.rdf @@ -0,0 +1,24 @@ + + + + + + Faugeras + Olivier + + + + + Robert + Luc + + + + + Robotvis + + + 9-1993 + What can two images tell us about a third one + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f288.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f288.rdf new file mode 100644 index 0000000000..a90482a7f6 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f288.rdf @@ -0,0 +1,36 @@ + + + + + + Viville + Thierry + + + + + Droulez + Jacques + + + + + Peh + Chin-Hwee + + + + + Ngri + Alexandre + + + + + Robotvis + + + 10-2000 + How do we perceive the eye intrinsic parameters ? + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f289.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f289.rdf new file mode 100644 index 0000000000..60bdb4997d --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f289.rdf @@ -0,0 +1,24 @@ + + + + + + Luong + Quang-Tuan + + + + + Faugeras + Olivier + + + + + Robotvis + + + 8-1993 + Self-calibration of a stereo rig from unknown camera motions and po int correspondences + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f29.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f29.rdf new file mode 100644 index 0000000000..67ac723c6b --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f29.rdf @@ -0,0 +1,36 @@ + + + + + + BACCELLI + Franois + + + + + KLEIN + Maurice + + + + + LEBOURGES + Marc + + + + + ZUYEV + Sergue + + + + + Mistral + + + 5-1995 + Gomtrie Alatoire et Architecture de Rseaux de Communications + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f290.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f290.rdf new file mode 100644 index 0000000000..f470a26166 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f290.rdf @@ -0,0 +1,18 @@ + + + + + + Salvetti + Maria + + + + + Sinus + + + 8-1993 + Modeles pratiques de catalyse a la paroi pour les calculs d'ecoulem ents hypersoniques + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f291.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f291.rdf new file mode 100644 index 0000000000..dcc0eb769d --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f291.rdf @@ -0,0 +1,24 @@ + + + + + + Desideri + Jean-Antoine + + + + + Guillard + Herve + + + + + Sinus + + + 8-1993 + Methodes numeriques pour la combustion supersonique : bilan et p erspectives + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f292.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f292.rdf new file mode 100644 index 0000000000..7ff68701db --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f292.rdf @@ -0,0 +1,30 @@ + + + + + + Thonnat + Monique + + + + + Clement + Veronique + + + + + den + Van + + + + + Pastis + + + 6-1993 + Supervision of perception tasks for autonomous systems : the OCAPI approach + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f293.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f293.rdf new file mode 100644 index 0000000000..67e625c308 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f293.rdf @@ -0,0 +1,24 @@ + + + + + + Kim + Hahnsang + + + + + Turletti + Thierry + + + + + Plante + + + 9-2001 + An Esterel-based Development Environment for Designing Software Radio Applications + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f294.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f294.rdf new file mode 100644 index 0000000000..7ba9896621 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f294.rdf @@ -0,0 +1,18 @@ + + + + + + Faugeras + Olivier + + + + + Robotvis + + + 7-1993 + Sur l'evolution de courbes simples du plan projectif reel + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f295.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f295.rdf new file mode 100644 index 0000000000..a61ae42d68 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f295.rdf @@ -0,0 +1,18 @@ + + + + + + Samson + Claude + + + + + Icare + + + 7-1993 + Mobile robot control Part 2 : control of chained systems and applic ation to path following and time-varying point-stabilization of wheele d vehicles + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f296.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f296.rdf new file mode 100644 index 0000000000..624874cdc4 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f296.rdf @@ -0,0 +1,18 @@ + + + + + + Merlet + Jean-Pierre + + + + + Prisme + + + 6-1993 + Manipulateurs paralleles 7eme partie : verification et planificatio n de trajectoire dans l'espace de travail + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f297.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f297.rdf new file mode 100644 index 0000000000..6a77306836 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f297.rdf @@ -0,0 +1,24 @@ + + + + + + Altman + Eitan + + + + + Foss + Serguei + + + + + Meval + + + 7-1993 + Polling on a graph with general arrival and service time distributi on + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f298.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f298.rdf new file mode 100644 index 0000000000..11aea6e045 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f298.rdf @@ -0,0 +1,18 @@ + + + + + + Atallah + Mikhail + + + + + Prisme + + + 7-1993 + On the multisearching problem for hypercubes + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f299.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f299.rdf new file mode 100644 index 0000000000..f758e69711 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f299.rdf @@ -0,0 +1,30 @@ + + + + + + Giai-Checa + Bernard + + + + + Bouthemy + Patrick + + + + + Vieville + Thierry + + + + + Robotvis + + + 5-1993 + Detection d'objets en mouvement + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f3.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f3.rdf new file mode 100644 index 0000000000..de826479c8 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f3.rdf @@ -0,0 +1,24 @@ + + + + + + Bertot + Yves + + + + + Fraer + Ranan + + + + + Croap + + + 1-1996 + Reasoning with Executable Specifications + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f30.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f30.rdf new file mode 100644 index 0000000000..2af2b19dcb --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f30.rdf @@ -0,0 +1,30 @@ + + + + + + Simon + Daniel + + + + + Castillo + Eduardo + + + + + Freedman + Paul + + + + + Icare, + + + 11-1995 + On the Validation of Robotics Control Systems Part II: Analysis of real-time closed-loop control tasks + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f300.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f300.rdf new file mode 100644 index 0000000000..c7afec1327 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f300.rdf @@ -0,0 +1,24 @@ + + + + + + Merlet + Nicolas + + + + + Zerubia + Josiane + + + + + Prisme + + + 4-1993 + Classical mechanics and roads detection in SPOT images + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f301.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f301.rdf new file mode 100644 index 0000000000..64ed8d0d0f --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f301.rdf @@ -0,0 +1,30 @@ + + + + + + Capolsini + Patrick + + + + + Dalmas + Stephane + + + + + Papegay + Yves + + + + + Safir + + + 1-1993 + "Quaterman" : une bibliotheque Maple de calculs et de manipulations sur l'algebre des quaternions + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f302.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f302.rdf new file mode 100644 index 0000000000..74bd7741a9 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f302.rdf @@ -0,0 +1,18 @@ + + + + + + Morano + Eric + + + + + Sinus + + + 5-1993 + Resolution par multigrilles stationnaires en maillages non structur es des equations d'Euler + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f303.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f303.rdf new file mode 100644 index 0000000000..4277d5f413 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f303.rdf @@ -0,0 +1,18 @@ + + + + + + Mathieu + Herve + + + + + Robotvis + + + 5-1993 + MD96 - A multi-DSP96002 board + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f304.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f304.rdf new file mode 100644 index 0000000000..55fe88a1fb --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f304.rdf @@ -0,0 +1,18 @@ + + + + + + Merlet + Jean-Pierre + + + + + Prisme + + + 5-1993 + Manipulateurs paralleles, 6eme partie : determination des espaces d e travail en orientation + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f305.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f305.rdf new file mode 100644 index 0000000000..55ca2b5295 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f305.rdf @@ -0,0 +1,18 @@ + + + + + + Olsder + Geert + + + + + Miaou + + + 5-1993 + Analyse de systemes MIN-MAX + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f306.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f306.rdf new file mode 100644 index 0000000000..de01b4d198 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f306.rdf @@ -0,0 +1,18 @@ + + + + + + Renversade + Mathieu + + + + + Sinus + + + 10-2000 + Optimisation d'un dispositif hyper-sustentateur par Algorithmes Gntiques + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f307.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f307.rdf new file mode 100644 index 0000000000..9eab53079e --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f307.rdf @@ -0,0 +1,18 @@ + + + + + + Guillard + Herve + + + + + Sinus + + + 5-1993 + Node-nested multi-grid method with Delaunay coarsening + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f308.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f308.rdf new file mode 100644 index 0000000000..8308ef2d1a --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f308.rdf @@ -0,0 +1,30 @@ + + + + + + Buffa + Michel + + + + + Faugeras + Olivier + + + + + Zhang + Zhengyou + + + + + Robotvis + + + 5-1993 + A Stereovision-based navigation system for a mobile robot + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f309.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f309.rdf new file mode 100644 index 0000000000..dd29b185e2 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f309.rdf @@ -0,0 +1,36 @@ + + + + + + Luong + Quang-Tuan + + + + + Deriche + Rachid + + + + + Faugeras + Olivier + + + + + Papadopoulo + Theodore + + + + + Robotvis + + + 5-1993 + On determining the fundamental matrix : analysis of diferent method s and experimental results + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f31.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f31.rdf new file mode 100644 index 0000000000..2cf63de4ba --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f31.rdf @@ -0,0 +1,36 @@ + + + + + + Espiau + Bernard + + + + + Kapellos + Konstantin + + + + + Jourdan + Muriel + + + + + Simon + Daniel + + + + + Bip + + + 11-1995 + On the Validation of Robotics Control Systems Part I: High Level Specification and Formal Verification + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f310.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f310.rdf new file mode 100644 index 0000000000..ffda00d7d1 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f310.rdf @@ -0,0 +1,18 @@ + + + + + + Deriche + Rachid + + + + + Robotvis + + + 5-1993 + Recursively implementating the Gaussian and its derivatives + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f311.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f311.rdf new file mode 100644 index 0000000000..8c5286a45b --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f311.rdf @@ -0,0 +1,24 @@ + + + + + + Malandain + Gregoire + + + + + Rocchisani + Jean-Marie + + + + + Epidaure + + + 4-1993 + Matching of 3D medical images with a potential based method + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f312.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f312.rdf new file mode 100644 index 0000000000..de4bc9d91f --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f312.rdf @@ -0,0 +1,18 @@ + + + + + + Guillard + Herve + + + + + Sinus + + + 4-1993 + Convergence analysis of a multi-level relaxation method + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f313.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f313.rdf new file mode 100644 index 0000000000..bcab77bd12 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f313.rdf @@ -0,0 +1,24 @@ + + + + + + Devillers + Olivier + + + + + Fabri + Andreas + + + + + Prisme + + + 4-1993 + Scalable algorithms for bichromatic line segment intersection probl ems on coarse grained multicomputers + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f314.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f314.rdf new file mode 100644 index 0000000000..64e618af81 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f314.rdf @@ -0,0 +1,36 @@ + + + + + + Beux + Francois + + + + + Lanteri + Stephane + + + + + Dervieux + Alain + + + + + Larrouturou + Bernard + + + + + Sinus + + + 4-1993 + Upwind stabilization of Navier-Stokes solvers + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f315.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f315.rdf new file mode 100644 index 0000000000..5cd48b5ffd --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f315.rdf @@ -0,0 +1,30 @@ + + + + + + Picinbono + Guillaume + + + + + Lombardo + Jean-Christophe + + + + + Delingette + Herv + + + + + Epidaure + + + 9-2000 + Improving Realism of a Surgery Simulator: Linear Anisotropic Elasticity, Complex Interactions and Force Extrapolation + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f316.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f316.rdf new file mode 100644 index 0000000000..bc81d24240 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f316.rdf @@ -0,0 +1,24 @@ + + + + + + Nkonga + Boniface + + + + + Guillard + Herve + + + + + Sinus + + + 4-1993 + Godunov type method on non-structured meshes for three-dimensional moving boundary problems + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f317.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f317.rdf new file mode 100644 index 0000000000..dd3659ec69 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f317.rdf @@ -0,0 +1,24 @@ + + + + + + Pissard-Gibollet + Roger + + + + + Rives + Patrick + + + + + Prisme + + + 12-1991 + Asservissement visuel applique a un robot mobile : etat de l'art et modelisation cinematique + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f318.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f318.rdf new file mode 100644 index 0000000000..ba0b9b214b --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f318.rdf @@ -0,0 +1,24 @@ + + + + + + Michel + Henri + + + + + Rives + Patrick + + + + + Icare + + + 2-1993 + Singularities in the determination of the situation of a robot effe ctor from the perspective view of 3 points + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f319.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f319.rdf new file mode 100644 index 0000000000..d7e415b1eb --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f319.rdf @@ -0,0 +1,18 @@ + + + + + + Boucherie + Richard + + + + + Meval + + + 3-1993 + A Characterisation of independence for competing Markov chains with applications to stochastic Petri nets + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f32.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f32.rdf new file mode 100644 index 0000000000..14ed70ea08 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f32.rdf @@ -0,0 +1,18 @@ + + + + + + Del + Facundo + + + + + Sinus + + + 11-2000 + A Lagrangian Approach Based on the Natural Neighbor Interpolation + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f320.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f320.rdf new file mode 100644 index 0000000000..3af1014bf7 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f320.rdf @@ -0,0 +1,18 @@ + + + + + + Boucherie + Richard + + + + + Meval + + + 4-1993 + Batch routing queuing networks with jump-over blocking + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f321.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f321.rdf new file mode 100644 index 0000000000..6e040b50ad --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f321.rdf @@ -0,0 +1,18 @@ + + + + + + Desideri + Jean-Antoine + + + + + Sinus + + + 4-1993 + La Technique d'annihilation de modes propres et applications + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f322.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f322.rdf new file mode 100644 index 0000000000..340fec967a --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f322.rdf @@ -0,0 +1,24 @@ + + + + + + Beux + Francois + + + + + Dervieux + Alain + + + + + Sinus + + + 3-1993 + A Hierarchical approach for shape optimisation + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f323.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f323.rdf new file mode 100644 index 0000000000..8d714233e4 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f323.rdf @@ -0,0 +1,36 @@ + + + + + + Jacobs + Ian + + + + + Montagnac + Francis + + + + + Bertot + Janet + + + + + Clement + Dominique + + + + + Croap + + + 2-1993 + The Sophtalk reference manual + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f324.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f324.rdf new file mode 100644 index 0000000000..3a528cf755 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f324.rdf @@ -0,0 +1,24 @@ + + + + + + Jacobs + Ian + + + + + Bertot + Janet + + + + + Croap + + + 2-1993 + Sophtalk Tutorials + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f325.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f325.rdf new file mode 100644 index 0000000000..f693fe6e57 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f325.rdf @@ -0,0 +1,18 @@ + + + + + + Abgrall + Remi + + + + + Sinus + + + 2-1993 + A Genuinely multidimensional Riemann solver + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f326.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f326.rdf new file mode 100644 index 0000000000..dd0c2237d5 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f326.rdf @@ -0,0 +1,30 @@ + + + + + + Dery + Anne-Marie + + + + + Huitema + Christian + + + + + Maille + William + + + + + Rodeo + + + 2-1993 + Environnement de programmation pour ASN.1 + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f327.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f327.rdf new file mode 100644 index 0000000000..f1eb4c3de9 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f327.rdf @@ -0,0 +1,30 @@ + + + + + + Cohen + Laurent + + + + + Bardinet + Eric + + + + + Ayache + Nicholas + + + + + Epidaure + + + 12-1992 + Surface reconstruction using active contour models + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f328.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f328.rdf new file mode 100644 index 0000000000..e7815abd41 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f328.rdf @@ -0,0 +1,24 @@ + + + + + + Mourrain + Bernard + + + + + Prieto + Hlne + + + + + Saga + + + 9-2000 + A framework for symbolic and numeric computations + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f329.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f329.rdf new file mode 100644 index 0000000000..527bd93192 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f329.rdf @@ -0,0 +1,18 @@ + + + + + + Turletti + Thierry + + + + + Rodeo + + + 1-1993 + H.261 software Codec for videoconferencing over the internet + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f33.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f33.rdf new file mode 100644 index 0000000000..787b6652b9 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f33.rdf @@ -0,0 +1,30 @@ + + + + + + Shekarforoush + Hassan + + + + + Berthod + Marc + + + + + Zerubia + Josiane + + + + + Pastis + + + 4-1995 + Subpixel Image Registration by Estimating the Polyphase Decomposition of the \\ Cross Power Spectrum + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f330.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f330.rdf new file mode 100644 index 0000000000..6fb7631172 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f330.rdf @@ -0,0 +1,18 @@ + + + + + + Chleq + Nicolas + + + + + Secoia + + + 12-1992 + Un Mecanisme de prediction deductive pour le raisonnement temporel + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f331.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f331.rdf new file mode 100644 index 0000000000..9ad3781e56 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f331.rdf @@ -0,0 +1,30 @@ + + + + + + Dehne + Frank + + + + + Fabri + Andreas + + + + + Rau-Chaplin + Andrew + + + + + Prisme + + + 12-1992 + Scalable parallel geometric algorithms for coarse grained multicomp uters + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f332.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f332.rdf new file mode 100644 index 0000000000..7f9a6d8120 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f332.rdf @@ -0,0 +1,36 @@ + + + + + + Simon + Daniel + + + + + Espiau + Bernard + + + + + Castillo + Eduardo + + + + + Kapellos + Konstantinos + + + + + Icare + + + 12-1992 + Computer-aided design of a generic robot controller handling reacti vity and real-time control issues + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f333.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f333.rdf new file mode 100644 index 0000000000..a7ba11006e --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f333.rdf @@ -0,0 +1,18 @@ + + + + + + Trombettoni + Gilles + + + + + Secoia + + + 12-1992 + Conception d'un algorithme de maintien de solutions dans un reseau de contraintes + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f334.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f334.rdf new file mode 100644 index 0000000000..7cd38c8dd2 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f334.rdf @@ -0,0 +1,30 @@ + + + + + + Boissonnat + Jean-Daniel + + + + + Devillers + Olivier + + + + + Preparata + Franco + + + + + Prisme + + + 10-1992 + Motion planning of legged robots : the spider robot problem + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f335.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f335.rdf new file mode 100644 index 0000000000..6985b9c327 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f335.rdf @@ -0,0 +1,18 @@ + + + + + + Corby + Olivier + + + + + Secoia + + + 10-1992 + NMS : un module multi-specialistes pour le generateur de systemes e xperts Smeci + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f336.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f336.rdf new file mode 100644 index 0000000000..9fe4957bc3 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f336.rdf @@ -0,0 +1,18 @@ + + + + + + Berlandier + Pierre + + + + + Secoia + + + 11-1992 + PROSE : une boite a outils fonctionnelle pour l'interpretation de c ontraintes : guide d'utilisation + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f337.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f337.rdf new file mode 100644 index 0000000000..ffd1dcd5be --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f337.rdf @@ -0,0 +1,18 @@ + + + + + + Dabbous + Walid + + + + + Rodeo + + + 11-1992 + Applicability of the session and the presentation layers for the su pport of high speed applications + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f338.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f338.rdf new file mode 100644 index 0000000000..34b5468676 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f338.rdf @@ -0,0 +1,24 @@ + + + + + + Baccelli + Francois + + + + + Canales + Miguel + + + + + Meval + + + 9-1991 + Parallel simulation of stochastic Petri nets using recursive equati ons + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f339.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f339.rdf new file mode 100644 index 0000000000..3c74349be1 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f339.rdf @@ -0,0 +1,30 @@ + + + + + + Faure + Christle + + + + + Davenport + James + + + + + Naciri + Hanane + + + + + Cafe + + + 9-2000 + Multi-valued Computer Algebra + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f34.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f34.rdf new file mode 100644 index 0000000000..96cefebc50 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f34.rdf @@ -0,0 +1,30 @@ + + + + + + Shekarforoush + Hassan + + + + + Berthod + Marc + + + + + Zerubia + Josiane + + + + + Pastis + + + 10-1995 + 3D Super-resolution Using Generalised Sampling Expansion + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f340.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f340.rdf new file mode 100644 index 0000000000..60fb26f3d8 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f340.rdf @@ -0,0 +1,30 @@ + + + + + + Abgrall + Remi + + + + + Desideri + Jean-Antoine + + + + + Mallet + Michel + + + + + Sinus + + + 6-1992 + Hypersonic flows for reentry problems + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f341.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f341.rdf new file mode 100644 index 0000000000..78c917fb4b --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f341.rdf @@ -0,0 +1,36 @@ + + + + + + Clement + Veronique + + + + + Giraudon + Gerard + + + + + Houzelle + Stephane + + + + + Sandakly + Fadi + + + + + Pastis + + + 10-1992 + Interpretation of remotely sensed images in a context of multisenso r fusion using a multi-specialist architecture + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f342.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f342.rdf new file mode 100644 index 0000000000..bd08c4ab68 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f342.rdf @@ -0,0 +1,42 @@ + + + + + + Dehne + Frank + + + + + Fabri + Andreas + + + + + Nassar + Mostafa + + + + + Rau-Chaplin + Andrew + + + + + Valiveti + Rada + + + + + Prisme + + + 9-1992 + Construction of d-dimensional hyperoctrees on a hypercube multiprocessor + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f343.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f343.rdf new file mode 100644 index 0000000000..3eb0f0a50e --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f343.rdf @@ -0,0 +1,18 @@ + + + + + + Altman + Eitan + + + + + Meval + + + 2-1992 + Flow control using the theory of zero sum Markov games + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f344.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f344.rdf new file mode 100644 index 0000000000..b3a909197f --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f344.rdf @@ -0,0 +1,30 @@ + + + + + + Aubert + Pierre + + + + + Ciccoli + Marie-Claude + + + + + Desideri + Jean-Antoine + + + + + Sinus + + + 8-1992 + Une Methode de parttition de domaine pour l'equation d'advection-di ffu sion + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f345.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f345.rdf new file mode 100644 index 0000000000..1f6b3d34a7 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f345.rdf @@ -0,0 +1,18 @@ + + + + + + Teillaud + Monique + + + + + Prisme + + + 7-1992 + Towards dynamic randomized algorithms in computational geometry + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f346.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f346.rdf new file mode 100644 index 0000000000..f1660d9d5c --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f346.rdf @@ -0,0 +1,24 @@ + + + + + + Jacobs + Ian + + + + + Rideau-Gallot + Laurence + + + + + Croap + + + n/a-n/a + A Centaur tutorial + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f347.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f347.rdf new file mode 100644 index 0000000000..cad5bec35c --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f347.rdf @@ -0,0 +1,30 @@ + + + + + + Boissonnat + Jean-Daniel + + + + + Devillers + Olivier + + + + + Teillaud + Monique + + + + + Prisme + + + 4-1990 + A dynamic construction of higher order Voronoi diagrams and its ran domized analysis + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f348.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f348.rdf new file mode 100644 index 0000000000..c30e313ddd --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f348.rdf @@ -0,0 +1,18 @@ + + + + + + Ciccoli + Marie-Claude + + + + + Sinus + + + 4-1992 + Homenthalpic-flow approach for hypersonic inviscid non-equilibrium flows + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f349.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f349.rdf new file mode 100644 index 0000000000..c3efeb8902 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f349.rdf @@ -0,0 +1,30 @@ + + + + + + Cioni + Jean-Pierre + + + + + Fezoui + Loula + + + + + Steve + Herve + + + + + Sinus + + + 2-1992 + Approximation des equations de Maxwell par des schemas decentres en elements finis + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f35.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f35.rdf new file mode 100644 index 0000000000..d1d4897695 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f35.rdf @@ -0,0 +1,36 @@ + + + + + + Zhang + Zhi-Li + + + + + Liu + Zhen + + + + + Kurose + Jim + + + + + Towsley + Don + + + + + Mistral + + + 11-1995 + Call Admission Control Schemes under the Generalized Processor Sharing Scheduling + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f350.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f350.rdf new file mode 100644 index 0000000000..8015b3f672 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f350.rdf @@ -0,0 +1,24 @@ + + + + + + Campillo + Fabien + + + + + Gland + Le + + + + + Mefisto + + + 7-1992 + Asymptotics of the GLRT for the disorder problem in diffusion proce sses + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f351.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f351.rdf new file mode 100644 index 0000000000..3e54f13fac --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f351.rdf @@ -0,0 +1,24 @@ + + + + + + Boissonnat + Jean-Daniel + + + + + Cazals + Frdric + + + + + Prisme + + + 9-2000 + Natural Neighbour Coordinates of Points on a Surface + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f352.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f352.rdf new file mode 100644 index 0000000000..605ee1e6a8 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f352.rdf @@ -0,0 +1,18 @@ + + + + + + Arnon + Dennis + + + + + Prisme + + + 7-1992 + Language-based document processing + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f353.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f353.rdf new file mode 100644 index 0000000000..47ac8d5b33 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f353.rdf @@ -0,0 +1,30 @@ + + + + + + Devloo + Philippe + + + + + Fezoui + Loula + + + + + Lacire + Stephane + + + + + Sinus + + + 5-1992 + Une Interface C++ pour programmer sur la connection machine + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f354.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f354.rdf new file mode 100644 index 0000000000..c4d40ed8a5 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f354.rdf @@ -0,0 +1,18 @@ + + + + + + Palmerio + Bernadette + + + + + Sinus + + + 5-1992 + Mesh adaptation for compressible flows + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f355.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f355.rdf new file mode 100644 index 0000000000..f50cc5522c --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f355.rdf @@ -0,0 +1,24 @@ + + + + + + Altman + Eitan + + + + + Nain + Philippe + + + + + Meval + + + 3-1992 + Closed-loop control with delayed information + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f356.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f356.rdf new file mode 100644 index 0000000000..a230ad6169 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f356.rdf @@ -0,0 +1,24 @@ + + + + + + Altman + Eitan + + + + + Nain + Philippe + + + + + Meval + + + 3-1992 + Optimal control of the M/G/1/ queue with repeated vacations of the server + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f357.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f357.rdf new file mode 100644 index 0000000000..2eb30b3045 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f357.rdf @@ -0,0 +1,18 @@ + + + + + + Altman + Eitan + + + + + Meval + + + 2-1992 + Asymptotic properties of constrained Markov decision processes + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f358.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f358.rdf new file mode 100644 index 0000000000..72d329d404 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f358.rdf @@ -0,0 +1,30 @@ + + + + + + Altman + Eitan + + + + + Konstantopoulos + Panagiotis + + + + + Liu + Zhen + + + + + Meval + + + 2-1992 + Some qualitative properties in polling systems + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f359.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f359.rdf new file mode 100644 index 0000000000..08973c28da --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f359.rdf @@ -0,0 +1,18 @@ + + + + + + Altman + Eitan + + + + + Meval + + + 12-1991 + Denumerable constrained Markov decision problems and finite approxi mations + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f36.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f36.rdf new file mode 100644 index 0000000000..8f1499f4fd --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f36.rdf @@ -0,0 +1,18 @@ + + + + + + Liu + Zhen + + + + + Mistral + + + 11-1995 + Worst-Case Analysis of Scheduling Heuristics of Parallel Systems + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f360.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f360.rdf new file mode 100644 index 0000000000..c0399cd10e --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f360.rdf @@ -0,0 +1,30 @@ + + + + + + Dervieux + Alain + + + + + Fezoui + Loula + + + + + Loriot + Francoise + + + + + Prisme + + + 6-1992 + On high resolution extensions of Lagrange-Galerkin finite-element s chemes + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f361.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f361.rdf new file mode 100644 index 0000000000..55d8ed1c08 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f361.rdf @@ -0,0 +1,24 @@ + + + + + + Boissonnat + Jean-Daniel + + + + + Devillers-Teillaud + Monique + + + + + Prisme + + + 12-1989 + On the randomized construction of the Delaunay tree + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f362.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f362.rdf new file mode 100644 index 0000000000..7257e14ef5 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f362.rdf @@ -0,0 +1,24 @@ + + + + + + Boissonnat + Jean-Daniel + + + + + Geiger + Bernhard + + + + + Prisme + + + 5-1992 + Three dimensional reconstruction of complex shapes based on the Del aunay triangulation + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f363.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f363.rdf new file mode 100644 index 0000000000..bbd910e8af --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f363.rdf @@ -0,0 +1,24 @@ + + + + + + Gomes + Jos + + + + + Faugeras + Olivier + + + + + Robotvis + + + 10-2000 + Representing and evolving smooth manifolds of arbitrary dimension embedded in R n as the intersection of n hypersurfaces: The vector distance functions + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f364.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f364.rdf new file mode 100644 index 0000000000..1b85ba51e0 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f364.rdf @@ -0,0 +1,30 @@ + + + + + + Thery + Laurent + + + + + Bertot + Yves + + + + + Kahn + Gilles + + + + + Croap + + + 5-1992 + Real theorem provers deserve real user-interfaces + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f365.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f365.rdf new file mode 100644 index 0000000000..8df3ef03de --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f365.rdf @@ -0,0 +1,24 @@ + + + + + + Rakotoarisoa + Hery + + + + + Mussi + Philippe + + + + + Meval + + + 9-1991 + PARSEVAL: parallelisation sur reseaux de transputers de simulations pour l'evaluation de performances + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f366.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f366.rdf new file mode 100644 index 0000000000..f7d2008f04 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f366.rdf @@ -0,0 +1,18 @@ + + + + + + Fournie + Eric + + + + + Omega + + + 5-1992 + Un Test de type Kolmogorov-smirnov pour processus de diffusion ergodiques + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f367.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f367.rdf new file mode 100644 index 0000000000..585ad0d57c --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f367.rdf @@ -0,0 +1,24 @@ + + + + + + Icart + Sylvie + + + + + Leblond + Juliette + + + + + Samson + Claude + + + Some results on feedback stabilization of a one-link flexible arm + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f368.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f368.rdf new file mode 100644 index 0000000000..e241ea64b8 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f368.rdf @@ -0,0 +1,18 @@ + + + + + + Afifi + Hossam + + + + + Rodeo + + + 3-1992 + Solving names within X500 + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f369.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f369.rdf new file mode 100644 index 0000000000..a5023346b0 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f369.rdf @@ -0,0 +1,24 @@ + + + + + + Vieville + Thierry + + + + + Sander + Peter + + + + + Robotvis + + + 5-1992 + Using pseudo Kalman-filters in the presence of constraints application to sensing behaviors + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f37.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f37.rdf new file mode 100644 index 0000000000..c92047fa50 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f37.rdf @@ -0,0 +1,42 @@ + + + + + + Boissonnat + Jean-Daniel + + + + + Czyzowicz + Jurek + + + + + Devillers + Olivier + + + + + Urrutia + Jorge + + + + + Yvinec + Mariette + + + + + Prisme + + + 11-1995 + Computing Largest Circles Separating Two Sets of Segments + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f370.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f370.rdf new file mode 100644 index 0000000000..e0bcb93ab1 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f370.rdf @@ -0,0 +1,18 @@ + + + + + + Boussinot + Frederic + + + + + Meije + + + 1-1992 + Reseaux de processus reactifs + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f371.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f371.rdf new file mode 100644 index 0000000000..96b3a054a9 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f371.rdf @@ -0,0 +1,24 @@ + + + + + + Garnesson + Philippe + + + + + Giraudon + Gerard + + + + + Pastis + + + 2-1992 + L'Approximation polygonale : bilans et perspectives + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f372.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f372.rdf new file mode 100644 index 0000000000..b73e7456a7 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f372.rdf @@ -0,0 +1,30 @@ + + + + + + Devillers + Olivier + + + + + Meiser + Stefan + + + + + Teillaud + Monique + + + + + Prisme + + + 12-1990 + Fully dynamic Delaunay triangulation in logarithmic expected time per operation + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f373.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f373.rdf new file mode 100644 index 0000000000..c282769b50 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f373.rdf @@ -0,0 +1,18 @@ + + + + + + Merlet + Jean-Pierre + + + + + Prisme + + + 11-1990 + An algorithm for the forward kinematics of general 6 D.O.F. parallel manipulators + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f374.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f374.rdf new file mode 100644 index 0000000000..1035037e11 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f374.rdf @@ -0,0 +1,24 @@ + + + + + + Gomes + Jos + + + + + Faugeras + Olivier + + + + + Robotvis + + + 10-2000 + Shape representation as the intersection of n - k hypersurfaces. + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f375.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f375.rdf new file mode 100644 index 0000000000..e92e0e865e --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f375.rdf @@ -0,0 +1,30 @@ + + + + + + Boissonnat + Jean-Daniel + + + + + Devillers + Olivier + + + + + Preparata + Franco + + + + + Prisme + + + 10-1990 + Computing the union of 3-colored triangles + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f376.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f376.rdf new file mode 100644 index 0000000000..83e0174dfe --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f376.rdf @@ -0,0 +1,42 @@ + + + + + + Boissonnat + Jean-Daniel + + + + + Devillers + Olivier + + + + + Schott + Rene + + + + + Teillaud + Monique + + + + + Yvinec + Mariette + + + + + Prisme + + + 8-1990 + Applications of random sampling to on-line algorithms in computational geometry + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f377.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f377.rdf new file mode 100644 index 0000000000..559e4ad3f1 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f377.rdf @@ -0,0 +1,18 @@ + + + + + + Devillers + Olivier + + + + + Prisme + + + 3-1990 + Simultaneous containment of several polygons : analysis of the contact configurations + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f378.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f378.rdf new file mode 100644 index 0000000000..5b4cc8965f --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f378.rdf @@ -0,0 +1,18 @@ + + + + + + Merlet + Jean-Pierre + + + + + Prisme + + + 12-1989 + Manipulateurs paralleles, 4eme partie : mode d'assemblage et cinematique directe sous forme polynomiale + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f379.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f379.rdf new file mode 100644 index 0000000000..b20c90ffa8 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f379.rdf @@ -0,0 +1,18 @@ + + + + + + Merlet + Jean-Pierre + + + + + Prisme + + + 3-1989 + Manipulateurs paralleles. 3e partie : applications + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f38.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f38.rdf new file mode 100644 index 0000000000..346e58c5b8 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f38.rdf @@ -0,0 +1,24 @@ + + + + + + Lingrand + Diane + + + + + Viville + Thierry + + + + + Robotvis + + + 10-1995 + Dynamic Foveal 3D Sensing Using Affine Models + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f380.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f380.rdf new file mode 100644 index 0000000000..2983efdc22 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f380.rdf @@ -0,0 +1,30 @@ + + + + + + Kato + Zoltan + + + + + Zerubia + Josiane + + + + + Berthod + Marc + + + + + Pastis + + + 2-1992 + Image classification using Markov random fields with two new relaxation methods : deterministic pseudo annealing and modified metropolis dynamics + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f381.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f381.rdf new file mode 100644 index 0000000000..1c69baea56 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f381.rdf @@ -0,0 +1,18 @@ + + + + + + Campillo + Fabien + + + + + Mefisto + + + 6-1990 + Optimal ergodic control of nonlinear stochastic systems + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f382.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f382.rdf new file mode 100644 index 0000000000..d68e227b04 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f382.rdf @@ -0,0 +1,18 @@ + + + + + + Zhang + Zhengyou + + + + + Robotvis + + + 4-1992 + Iterative point matching for registration of free-form curves Sophia Antipolis, Projet Robotvis , Avril 1992 + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f383.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f383.rdf new file mode 100644 index 0000000000..907195899d --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f383.rdf @@ -0,0 +1,30 @@ + + + + + + Lefebvre-Barbaroux + Sophie + + + + + Jean-Marie + Alain + + + + + Chaouiya + Claudine + + + + + Meval + + + 1-1992 + Problemes d'ordonnancement d'une superposition de flux periodiques sous contrainte temps-reel + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f384.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f384.rdf new file mode 100644 index 0000000000..d61b2c1806 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f384.rdf @@ -0,0 +1,36 @@ + + + + + + Samson + Christophe + + + + + Blanc-Fraud + Laure + + + + + Aubert + Gilles + + + + + Zerubia + Josiane + + + + + Ariana + + + 9-2000 + Classification d'Images Multibandes par Modles Variationnels + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f385.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f385.rdf new file mode 100644 index 0000000000..265bec70d5 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f385.rdf @@ -0,0 +1,18 @@ + + + + + + Grimm + Jose + + + + + Safir + + + 12-1991 + L'Arithmetique generique de Sisyphe + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f386.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f386.rdf new file mode 100644 index 0000000000..655291f2ff --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f386.rdf @@ -0,0 +1,30 @@ + + + + + + Falzon + Frederic + + + + + Giraudon + Gerard + + + + + Berthod + Marc + + + + + Pastis + + + 3-1992 + Vers un modele pour l'analyse multiechelle de surface 3D + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f387.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f387.rdf new file mode 100644 index 0000000000..861c682d4d --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f387.rdf @@ -0,0 +1,36 @@ + + + + + + Boissonnat + Jean-Daniel + + + + + Cerezo + Andre + + + + + Devillers + Olivier + + + + + Teillaud + Monique + + + + + Prisme + + + 4-1991 + Output sensitive construction of the 3D Delaunay triangulation of constrained sets of points + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f388.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f388.rdf new file mode 100644 index 0000000000..fcc00f57c5 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f388.rdf @@ -0,0 +1,30 @@ + + + + + + Devillers + Olivier + + + + + Teillaud + Monique + + + + + Yvinec + Mariette + + + + + Prisme + + + 11-1991 + Dynamic location in an arrangement of line segments in the plane + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f389.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f389.rdf new file mode 100644 index 0000000000..799dd1a9df --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f389.rdf @@ -0,0 +1,18 @@ + + + + + + Devillers + Olivier + + + + + Prisme + + + 4-1991 + Randomization yields simple O(n log* n) algorithms for difficult Omega(n) problems + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f39.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f39.rdf new file mode 100644 index 0000000000..b16cba1085 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f39.rdf @@ -0,0 +1,18 @@ + + + + + + Kaplan-Terrasse + Delphine + + + + + Tick + + + 12-2000 + Vers la certification du compilateur v5 d'Esterel dans Coq + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f390.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f390.rdf new file mode 100644 index 0000000000..71153b61af --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f390.rdf @@ -0,0 +1,18 @@ + + + + + + Lebastard + Franck + + + + + Secoia + + + 2-1990 + DRIVER : Couche objet virtuelle persistante & raisonnement + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f391.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f391.rdf new file mode 100644 index 0000000000..da98ec5e18 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f391.rdf @@ -0,0 +1,18 @@ + + + + + + Merlet + Jean-Pierre + + + + + Prisme + + + 3-1992 + Manipulateurs paralleles, 5eme partie : determination de l'espace de travail a orientation constante + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f392.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f392.rdf new file mode 100644 index 0000000000..714bfee307 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f392.rdf @@ -0,0 +1,18 @@ + + + + + + Merlet + Jean-Pierre + + + + + Prisme + + + 2-1988 + Parallel manipulators. Part 2 : Theory. Singular configurations and Grassmann geometry + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f393.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f393.rdf new file mode 100644 index 0000000000..95ff2ced28 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f393.rdf @@ -0,0 +1,30 @@ + + + + + + Devillers + Olivier + + + + + Meiser + Stefan + + + + + Teillaud + Monique + + + + + Prisme + + + 2-1992 + The space of spheres, a geometric tool to unify duality results on Voronoi diagrams + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f394.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f394.rdf new file mode 100644 index 0000000000..8849b48af2 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f394.rdf @@ -0,0 +1,18 @@ + + + + + + Devillers + Olivier + + + + + Prisme + + + 2-1992 + Robust and efficient implementation of the Delaunay tree + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f395.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f395.rdf new file mode 100644 index 0000000000..98f84ef86d --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f395.rdf @@ -0,0 +1,30 @@ + + + + + + Pony + Olivier + + + + + Descombes + Xavier + + + + + Zerubia + Josiane + + + + + Ariana + + + 9-2000 + Classification d'images satellitaires hyperspectrales en zone rurale et priurbaine + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f396.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f396.rdf new file mode 100644 index 0000000000..1b14267aaf --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f396.rdf @@ -0,0 +1,18 @@ + + + + + + Oniboni + Julien + + + + + Sinus + + + 8-2001 + Modlisation et simulation numrique de l'influx cardiaque + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f397.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f397.rdf new file mode 100644 index 0000000000..8bf787443c --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f397.rdf @@ -0,0 +1,18 @@ + + + + + + Grimm + Jos + + + + + Miaou + + + 9-2000 + Rational approximation of transfer functions in the hyperion software + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f398.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f398.rdf new file mode 100644 index 0000000000..292787c4e3 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f398.rdf @@ -0,0 +1,24 @@ + + + + + + Boissonnat + Jean-Daniel + + + + + Vigneron + Antoine + + + + + Prisme + + + 11-1999 + Elementary Algorithms for Reporting Intersections of Curve Segments + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f399.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f399.rdf new file mode 100644 index 0000000000..397f4c6a81 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f399.rdf @@ -0,0 +1,24 @@ + + + + + + Boissonnat + Jean-Daniel + + + + + Vigneron + Antoine + + + + + Prisme + + + 9-2000 + An Elementary Algorithm for Reporting Intersections of Red/Blue Curve Segments + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f4.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f4.rdf new file mode 100644 index 0000000000..c331ed57a9 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f4.rdf @@ -0,0 +1,18 @@ + + + + + + Bernhard + Pierre + + + + + Miaou + + + 12-1995 + A Separation Theorem for Expected Value and Feared Value Discrete Time Control + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f40.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f40.rdf new file mode 100644 index 0000000000..0f0d9dbaf5 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f40.rdf @@ -0,0 +1,24 @@ + + + + + + Viville + Thierry + + + + + Lingrand + Diane + + + + + Robotvis + + + 10-1995 + Using Singular Displacements for Uncalibrated Monocular Visual Systems + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f400.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f400.rdf new file mode 100644 index 0000000000..2ad85bba19 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f400.rdf @@ -0,0 +1,36 @@ + + + + + + Altman + Eitan + + + + + Barakat + Chadi + + + + + Manuel + Victor + + + + + Ramos + Ramos + + + + + Mistral + + + 9-2000 + Queueing analysis of simple FEC schemes for IP Telephony + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f401.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f401.rdf new file mode 100644 index 0000000000..39f0d3a048 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f401.rdf @@ -0,0 +1,36 @@ + + + + + + May + Martin + + + + + Diot + Christophe + + + + + Lyles + Bryan + + + + + Bolot + Jean + + + + + Rodeo + + + 8-2000 + Influence of Active Queue Management Parameters on Aggregate Traffic Performance + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f402.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f402.rdf new file mode 100644 index 0000000000..b33c5ca13d --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f402.rdf @@ -0,0 +1,24 @@ + + + + + + Dube + Parijat + + + + + Altman + Eitan + + + + + Mistral + + + 8-2000 + Queueing Analysis of Partial Message Discard Policy + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f403.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f403.rdf new file mode 100644 index 0000000000..dec80fc54a --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f403.rdf @@ -0,0 +1,30 @@ + + + + + + Andrianov + Nikolai + + + + + Saurel + Richard + + + + + Warnecke + Gerald + + + + + Smash + + + 9-2001 + A Simple Method for Compressible Multiphase Mixtures and Interfaces + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f404.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f404.rdf new file mode 100644 index 0000000000..8b231490de --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f404.rdf @@ -0,0 +1,24 @@ + + + + + + Devillers + Olivier + + + + + Guigue + Philippe + + + + + Prisme + + + 8-2000 + Le tampon mlangeur + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f405.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f405.rdf new file mode 100644 index 0000000000..5576071267 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f405.rdf @@ -0,0 +1,24 @@ + + + + + + Boissonnat + Jean-Daniel + + + + + Cazals + Frdric + + + + + Prisme + + + 8-2000 + Smooth Surface Reconstruction via Natural Neighbour Interpolation of Distance Functions + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f406.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f406.rdf new file mode 100644 index 0000000000..c52cba4132 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f406.rdf @@ -0,0 +1,18 @@ + + + + + + Altman + Eitan + + + + + Mistral + + + 8-2000 + Applications of Markov Decision Processes in Communication Networks: a Survey + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f407.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f407.rdf new file mode 100644 index 0000000000..751cea48f9 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f407.rdf @@ -0,0 +1,30 @@ + + + + + + Elizondo + David + + + + + Faure + Christle + + + + + Cappelaere + Bernard + + + + + Tropics + + + 7-2000 + Automatic- versus Manual- differentiation for non-linear inverse modeling + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f408.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f408.rdf new file mode 100644 index 0000000000..4e4ff6cfe0 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f408.rdf @@ -0,0 +1,42 @@ + + + + + + Roche + Alexis + + + + + Pennec + Xavier + + + + + Malandain + Grgoire + + + + + Ayache + Nicholas + + + + + Ourselin + Sbastien + + + + + Epidaure + + + 7-2000 + Generalized Correlation Ratio for Rigid Registration of 3D Ultrasound with MR Images + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f409.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f409.rdf new file mode 100644 index 0000000000..85316ccd58 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f409.rdf @@ -0,0 +1,24 @@ + + + + + + Dolean + Victorita + + + + + Lanteri + Stphane + + + + + Sinus + + + 6-2000 + A non-overlapping domain decomposition method for solving the Navier-Stokes equations on unstructured triangular meshes + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f41.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f41.rdf new file mode 100644 index 0000000000..d4c4a8a762 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f41.rdf @@ -0,0 +1,24 @@ + + + + + + Bally + Vlad + + + + + Talay + Denis + + + + + Omega + + + 10-1995 + The Law of the Euler Scheme for Stochastic Differential Equations: II. Convergence Rate of the Density + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f410.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f410.rdf new file mode 100644 index 0000000000..11e5f35222 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f410.rdf @@ -0,0 +1,30 @@ + + + + + + Arino + Julien + + + + + Gouz + Jean-Luc + + + + + Sciandra + Antoine + + + + + Comore + + + 6-2000 + A discrete, size-structured model of phytoplankton growth in the chemostat. + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f411.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f411.rdf new file mode 100644 index 0000000000..2146a44306 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f411.rdf @@ -0,0 +1,30 @@ + + + + + + Papadopoulo + Thodore + + + + + Manolis + and + + + + + Lourakis + I.A. + + + + + Robotvis + + + 6-2000 + Estimating the Jacobian of the Singular Value Decomposition: Theory and Applications + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f412.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f412.rdf new file mode 100644 index 0000000000..da60fd7cb3 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f412.rdf @@ -0,0 +1,36 @@ + + + + + + Montagnat + Johan + + + + + Delingette + Herv + + + + + Scapel + Nicolas + + + + + Ayache + Nicholas + + + + + Epidaure + + + 5-2000 + Representation, shape, topology and evolution of deformable surfaces. Application to 3D medical image segmentation. + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f413.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f413.rdf new file mode 100644 index 0000000000..0d64324c22 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f413.rdf @@ -0,0 +1,30 @@ + + + + + + Jalobeanu + Andr + + + + + Blanc-Fraud + Laure + + + + + Zerubia + Josiane + + + + + Ariana + + + 6-2000 + Satellite image deconvolution using complex wavelet packets + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f414.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f414.rdf new file mode 100644 index 0000000000..75c613edfc --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f414.rdf @@ -0,0 +1,30 @@ + + + + + + Jalobeanu + Andr + + + + + Blanc-Fraud + Laure + + + + + Zerubia + Josiane + + + + + Ariana + + + 6-2000 + Adaptive parameter estimation for satellite image deconvolution + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f415.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f415.rdf new file mode 100644 index 0000000000..622a318422 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f415.rdf @@ -0,0 +1,42 @@ + + + + + + Ferreira + A. + + + + + Prennes + S. + + + + + Richa + A.W + + + + + Rivano + H. + + + + + Stier + N. + + + + + Mascotte + + + 8-2001 + On the design of multifiber WDM networks + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f416.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f416.rdf new file mode 100644 index 0000000000..fe5db2ad5a --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f416.rdf @@ -0,0 +1,30 @@ + + + + + + Jalobeanu + Andr + + + + + Blanc-Fraud + Laure + + + + + Zerubia + Josiane + + + + + Ariana + + + 6-2000 + Etude de la restitution des paramtres instrumentaux en imagerie satellitaire + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f417.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f417.rdf new file mode 100644 index 0000000000..a83a029a2a --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f417.rdf @@ -0,0 +1,24 @@ + + + + + + Kleptsyna + Marina + + + + + Piatnitski + Andrey + + + + + Sysdys + + + 6-2000 + Averaging of non-selfadjoint parabolic equations with random evolution (dynamics) + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f418.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f418.rdf new file mode 100644 index 0000000000..cfbe44ca38 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f418.rdf @@ -0,0 +1,18 @@ + + + + + + VIGO + Guillaume + + + + + Sinus + + + 5-2000 + The extension of P.O.D. to complex system with non-homogenous boundary conditions, application to a turbulent pulsed jet. + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f419.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f419.rdf new file mode 100644 index 0000000000..6eeb45e746 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f419.rdf @@ -0,0 +1,30 @@ + + + + + + Rellier + Guillaume + + + + + Descombes + Xavier + + + + + Zerubia + Josiane + + + + + Ariana + + + 5-2000 + Local registration and deformation of a road cartographic database on a SPOT satellite image + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f42.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f42.rdf new file mode 100644 index 0000000000..d439a16f37 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f42.rdf @@ -0,0 +1,29 @@ + + + + + + Faugeras + Olivier + + + + + Mourrain + Bernard + + + + + Safir + + + + + Robotvis + + + 9-1995 + On the geometry and algebra of the point and line correspondences between $N$ images + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f420.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f420.rdf new file mode 100644 index 0000000000..4f8dbb46d1 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f420.rdf @@ -0,0 +1,30 @@ + + + + + + Boussinot + Frdric + + + + + Susini + Jean-Ferdy + + + + + Hazard + Laurent + + + + + Meije + + + 3-1998 + Distributed Reactive Machines + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f421.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f421.rdf new file mode 100644 index 0000000000..95c26c9794 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f421.rdf @@ -0,0 +1,18 @@ + + + + + + Bossy + Mireille + + + + + Omega + + + 5-2000 + Optimal Rate of Convergence of a Stochastic Particle Method to Solutions of 1D Viscous Scalar Conservation Law Equations + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f422.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f422.rdf new file mode 100644 index 0000000000..0bfe1203a0 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f422.rdf @@ -0,0 +1,24 @@ + + + + + + Filali + Fethi + + + + + Dabbous + Walid + + + + + Rodeo + + + 4-2000 + Optimization of GEO Satellite Links Deployment in the Internet + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f423.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f423.rdf new file mode 100644 index 0000000000..a76e32d8b6 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f423.rdf @@ -0,0 +1,30 @@ + + + + + + Boudol + Grard + + + + + Germain + Florence + + + + + Lacoste + Marc + + + + + Mimosa + + + 4-2000 + Analyse des Langages et Modles de la Mobilit + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f424.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f424.rdf new file mode 100644 index 0000000000..17e3c7cf60 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f424.rdf @@ -0,0 +1,30 @@ + + + + + + Stoica + Radu + + + + + Descombes + Xavier + + + + + Zerubia + Josiane + + + + + Ariana + + + 4-2000 + A Markov Point Process for Road Extraction in Remote Sensed Images + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f425.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f425.rdf new file mode 100644 index 0000000000..af729493ed --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f425.rdf @@ -0,0 +1,30 @@ + + + + + + Dolean + V. + + + + + Lanteri + S. + + + + + F. + and + + + + + Sinus + + + 4-2000 + Convergence analysis of a Schwarz type domain decomposition method for the solution of the Euler equations + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f426.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f426.rdf new file mode 100644 index 0000000000..748c2dbff9 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f426.rdf @@ -0,0 +1,18 @@ + + + + + + M. + Roberto + + + + + Mimosa + + + 3-2000 + On the reachability problem in cryptographic protocols + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f427.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f427.rdf new file mode 100644 index 0000000000..557de0f55d --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f427.rdf @@ -0,0 +1,18 @@ + + + + + + I.A. + Manolis + + + + + Robotvis + + + 3-2000 + Camera Self-Calibration Using the Kruppa Equations and the SVD of the Fundamental Matrix: The Case of Varying Intrinsic Parameters + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f428.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f428.rdf new file mode 100644 index 0000000000..5307db7dab --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f428.rdf @@ -0,0 +1,24 @@ + + + + + + Devillers + Olivier + + + + + Gandoin + Pierre-Marie + + + + + Prisme + + + 3-2000 + Geometric Compression for Interactive Transmission + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f429.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f429.rdf new file mode 100644 index 0000000000..cfff537c2f --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f429.rdf @@ -0,0 +1,18 @@ + + + + + + CARPENTIER + Romuald + + + + + Sinus + + + 4-2000 + Schma de haute prcision en maillage quadrangulaire structur pour des coulements compressibles non visqueux. + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f43.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f43.rdf new file mode 100644 index 0000000000..5bad11a246 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f43.rdf @@ -0,0 +1,18 @@ + + + + + + Zhang + Zhengyou + + + + + Robotvis + + + 10-1995 + Parameter Estimation Techniques: A Tutorial with Application to Conic Fitting + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f430.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f430.rdf new file mode 100644 index 0000000000..26e7fc2c01 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f430.rdf @@ -0,0 +1,24 @@ + + + + + + Barakat + Chadi + + + + + Altman + Eitan + + + + + Mistral + + + 3-2000 + On ACK Filtering on a Slow Reverse Channel + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f431.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f431.rdf new file mode 100644 index 0000000000..a545c85408 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f431.rdf @@ -0,0 +1,30 @@ + + + + + + Faure + Christle + + + + + Souli + Edgar + + + + + Berclaz + Tho + + + + + Tropics + + + 3-2000 + Rsonance paramagntique lectronique, optimisation et diffrentiation automatique + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f432.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f432.rdf new file mode 100644 index 0000000000..8e3a89c7c2 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f432.rdf @@ -0,0 +1,24 @@ + + + + + + Cachier + Pascal + + + + + Ayache + Nicholas + + + + + Epidaure + + + 8-2001 + Regularization Methods in Non-Rigid Registration: II. Isotropic Energies, Filters and Splines. + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f433.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f433.rdf new file mode 100644 index 0000000000..5567232919 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f433.rdf @@ -0,0 +1,18 @@ + + + + + + Dellire + Stphane + + + + + Caf + + + 2-2000 + Pgcd de deux polynmes paramtres : approche par la clture constructible dynamique et gnralisation de la mthode de S.A. Abramov, K.Yu. Kvashenko + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f434.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f434.rdf new file mode 100644 index 0000000000..eadefd96a0 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f434.rdf @@ -0,0 +1,24 @@ + + + + + + Imberty + Mikael + + + + + Descombes + Xavier + + + + + Ariana + + + 2-2000 + Simulation de processus objets : Etude de faisabilit pour une application la segmentation d'image + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f435.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f435.rdf new file mode 100644 index 0000000000..b71874697c --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f435.rdf @@ -0,0 +1,24 @@ + + + + + + Delingette + Herv + + + + + Montagnat + Johan + + + + + Epidaure + + + 1-2000 + Topology and shape constraints on parametric active contours + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f436.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f436.rdf new file mode 100644 index 0000000000..0b12a026bc --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f436.rdf @@ -0,0 +1,18 @@ + + + + + + Darrot + Eric + + + + + Sloop + + + 2-2000 + Rseaux rarrangeables commutateurs lamelles + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f437.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f437.rdf new file mode 100644 index 0000000000..66fc9d9aad --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f437.rdf @@ -0,0 +1,24 @@ + + + + + + Alvarez + Luis + + + + + Deriche + Rachid + + + + + Robotvis + + + 1-2000 + Dense Disparity Map Estimation Respecting Image Discontinuities: A PDE and Scale-Space Based Approach + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f438.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f438.rdf new file mode 100644 index 0000000000..b90763792c --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f438.rdf @@ -0,0 +1,24 @@ + + + + + + Morin + Pascal + + + + + Samson + Claude + + + + + Icare + + + 1-2000 + A characterization of the Lie Algebra Rank Condition by transverse periodic functions + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f439.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f439.rdf new file mode 100644 index 0000000000..8de8ded83a --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f439.rdf @@ -0,0 +1,18 @@ + + + + + + Bournet + Pierre-Emmanuel + + + + + Caiman + + + 1-2000 + Validation du code NS3IFS et comparaison avec des donnes exprimentales pour des coulements autour de tabliers de ponts + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f44.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f44.rdf new file mode 100644 index 0000000000..b4456d37ab --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f44.rdf @@ -0,0 +1,18 @@ + + + + + + Rothwell + Charlie + + + + + Robotvis + + + 10-1995 + The Importance of Reasoning about Occlusions during Hypothesis Verification in Object Recognition + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f440.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f440.rdf new file mode 100644 index 0000000000..222293a074 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f440.rdf @@ -0,0 +1,18 @@ + + + + + + Held + Christophe + + + + + Sinus + + + 1-2000 + Optimisation de formes en arodynamique sans gradient par rsolution simultane + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f441.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f441.rdf new file mode 100644 index 0000000000..0d69c1e8ae --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f441.rdf @@ -0,0 +1,24 @@ + + + + + + Clerget + Antoine + + + + + Dabbous + Walid + + + + + Rodeo + + + 11-1999 + Tag-based Fair Bandwidth Sharing for Responsive and Unresponsive flows + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f442.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f442.rdf new file mode 100644 index 0000000000..0719318640 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f442.rdf @@ -0,0 +1,24 @@ + + + + + + Camarri + Simone + + + + + Vittoria + Maria + + + + + Sinus + + + 12-1999 + Towards the Large-Eddy simulation of complex engineering flows with unstructured grids + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f443.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f443.rdf new file mode 100644 index 0000000000..fbfb8843d6 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f443.rdf @@ -0,0 +1,30 @@ + + + + + + Dsidri + Jean-Antoine + + + + + Peigin + Sergey + + + + + Timchenko + Sergey + + + + + Sinus + + + 12-1999 + Application of Genetic Algorithms to the Solution of the Space Vehicle Reentry Trajectory Optimization Problem + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f444.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f444.rdf new file mode 100644 index 0000000000..b98a07f177 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f444.rdf @@ -0,0 +1,24 @@ + + + + + + Amadio + Roberto + + + + + Meyssonnier + Charles + + + + + Mimosa + + + 8-2001 + On the decidability of fragments of the asynchronous Pi -calculus + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f445.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f445.rdf new file mode 100644 index 0000000000..a53e2c3ba3 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f445.rdf @@ -0,0 +1,30 @@ + + + + + + Beauquier + Bruno + + + + + Perennes + Stephane + + + + + Delmas + Olivier + + + + + Sloop + + + 12-1999 + Tight Bounds for Broadcasting in the Linear Cost Model + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f446.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f446.rdf new file mode 100644 index 0000000000..228e9b0c35 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f446.rdf @@ -0,0 +1,30 @@ + + + + + + Prima + Sylvain + + + + + Ourselin + Sbastien + + + + + Ayache + Nicholas + + + + + Epidaure + + + 12-1999 + Computation of the mid-sagittal plane in 3D medical images of the head + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f447.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f447.rdf new file mode 100644 index 0000000000..587685e457 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f447.rdf @@ -0,0 +1,36 @@ + + + + + + Liu + Zhen + + + + + Niclausse + Nicolas + + + + + Jalpa-Villanueva + Cesar + + + + + in + Sylva + + + + + Mistral + + + 12-1999 + Traffic Model and Performance Evaluation of Web Servers + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f448.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f448.rdf new file mode 100644 index 0000000000..ee85f934c5 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f448.rdf @@ -0,0 +1,30 @@ + + + + + + Hordijk + Arie + + + + + Liu + Zhen + + + + + Towsley + Don + + + + + Mistral + + + 12-1999 + Smoothing Effect of the Superposition of Homogeneous Sources in Tandem Networks + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f449.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f449.rdf new file mode 100644 index 0000000000..d551d7992e --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f449.rdf @@ -0,0 +1,41 @@ + + + + + + Devillers + Olivier + + + + + Fronville + Alexandra + + + + + Mourrain + Bernard + + + + + Teillaud + Monique + + + + + Saga + + + + + Prisme + + + 12-1999 + Algebraic methods and arithmetic filtering for exact predicates on circle arcs + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f45.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f45.rdf new file mode 100644 index 0000000000..f03df6ec17 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f45.rdf @@ -0,0 +1,24 @@ + + + + + + Altman + Eitan + + + + + Koole + Ger + + + + + Mistral + + + 10-1995 + On submodular value functions of dynamic programming + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f450.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f450.rdf new file mode 100644 index 0000000000..64efc74bba --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f450.rdf @@ -0,0 +1,30 @@ + + + + + + Altman + Eitan + + + + + Avrachenkov + Kostia + + + + + Barakat + Chadi + + + + + Mistral + + + 11-1999 + A stochastic model of TCP/IP with stationary ergodic random losses + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f451.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f451.rdf new file mode 100644 index 0000000000..be10a48010 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f451.rdf @@ -0,0 +1,30 @@ + + + + + + Matta + Nada + + + + + Corby + Olivier + + + + + Ribiere + Myriam + + + + + Acacia + + + 11-1999 + Mthodes de capitalisation de mmoire de projet + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f452.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f452.rdf new file mode 100644 index 0000000000..005238f4b1 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f452.rdf @@ -0,0 +1,30 @@ + + + + + + Coudert + D. + + + + + Ferreira + A. + + + + + Prennes + S. + + + + + Sloop + + + 11-1999 + Digraph Isomorphisms and Free Space Optical Networks + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f453.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f453.rdf new file mode 100644 index 0000000000..d92322143c --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f453.rdf @@ -0,0 +1,24 @@ + + + + + + Faugeras + Olivier + + + + + Hermosillo + Gerardo + + + + + Robotvis + + + 8-2001 + Well-posedness of eight problems of multi-modal statistical image-matching + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f454.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f454.rdf new file mode 100644 index 0000000000..fe25e501d9 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f454.rdf @@ -0,0 +1,24 @@ + + + + + + Campillo + Fabien + + + + + Piatnitski + Andrey + + + + + Sysdys + + + 11-1999 + Effective diffusion in vanishing viscosity + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f455.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f455.rdf new file mode 100644 index 0000000000..693b8e715f --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f455.rdf @@ -0,0 +1,18 @@ + + + + + + El + Rachid + + + + + Mistral + + + 12-1999 + Perturbation of Linear Quadratic Systems with Jump Parameters and Hybrid Controls + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f456.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f456.rdf new file mode 100644 index 0000000000..05092fc649 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f456.rdf @@ -0,0 +1,24 @@ + + + + + + Faure + Christle + + + + + Charpentier + Isabelle + + + + + Tropics + + + 11-1999 + Comparing strategies for coding adjoints + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f457.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f457.rdf new file mode 100644 index 0000000000..4273e44d5b --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f457.rdf @@ -0,0 +1,36 @@ + + + + + + Tabary + Marie-Laure + + + + + Ayache + Nicholas + + + + + Darcourt + Jacques + + + + + Malandain + Grgoire + + + + + Epidaure + + + 11-1999 + Analyse statistique d'images mdicales : tude et utilisation du logiciel SPM + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f458.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f458.rdf new file mode 100644 index 0000000000..36d0773c76 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f458.rdf @@ -0,0 +1,18 @@ + + + + + + Le + Alain + + + + + Sysdys + + + 11-1999 + Asymptotic Optimality of Approximate Filters in Stochastic Systems with Colored Noises + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f459.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f459.rdf new file mode 100644 index 0000000000..ab5701c79a --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f459.rdf @@ -0,0 +1,18 @@ + + + + + + Bronstein + Manuel + + + + + Cafe + + + 11-1999 + On solutions of linear ordinary difference equations in their coefficient field + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f46.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f46.rdf new file mode 100644 index 0000000000..6dce411ff7 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f46.rdf @@ -0,0 +1,24 @@ + + + + + + Liu + Zhen + + + + + Righter + Rhonda + + + + + Mistral, + + + 9-1995 + Optimal Load Balancing on Distributed Homogeneous Unreliable Processors + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f460.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f460.rdf new file mode 100644 index 0000000000..2af1677544 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f460.rdf @@ -0,0 +1,36 @@ + + + + + + Guimond + Alexandre + + + + + Roche + Alexis + + + + + Ayache + Nicholas + + + + + Meunier + Jean + + + + + Epidaure + + + 11-1999 + Multimodal Brain Warping Using the Demons Algorithm and Adaptative Intensity Corrections + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f461.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f461.rdf new file mode 100644 index 0000000000..c6cd0c344b --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f461.rdf @@ -0,0 +1,24 @@ + + + + + + Beauquier + Bruno + + + + + Darrot + Eric + + + + + Sloop + + + 10-1999 + On Arbitrary Waksman Networks and their Vulnerability + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f462.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f462.rdf new file mode 100644 index 0000000000..72b9141490 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f462.rdf @@ -0,0 +1,24 @@ + + + + + + Paragios + Nikos + + + + + Deriche + Rachid + + + + + Robotvis + + + 10-1999 + Coupled Geodesic Active Regions for Image Segmentation + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f463.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f463.rdf new file mode 100644 index 0000000000..fdb3916fad --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f463.rdf @@ -0,0 +1,18 @@ + + + + + + Devillers + Olivier + + + + + Prisme + + + 7-2001 + On the number of cylindrical shells + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f464.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f464.rdf new file mode 100644 index 0000000000..b3bac9cc6d --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f464.rdf @@ -0,0 +1,18 @@ + + + + + + Faure + Christle + + + + + Tropics + + + 10-1999 + Adjoining strategies for Multi-layered Programs + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f465.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f465.rdf new file mode 100644 index 0000000000..336f8e9564 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f465.rdf @@ -0,0 +1,24 @@ + + + + + + Faure + Christle + + + + + Dutto + Patrick + + + + + Tropics + + + 10-1999 + Extension of Odysse to the MPI library - Reverse mode - + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f466.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f466.rdf new file mode 100644 index 0000000000..90a9232d13 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f466.rdf @@ -0,0 +1,24 @@ + + + + + + Devillers + Olivier + + + + + Gandoin + Pierre-Marie + + + + + Prisme + + + 9-1999 + Compression gomtrique pour une transmission progressive + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f467.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f467.rdf new file mode 100644 index 0000000000..8a218036e3 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f467.rdf @@ -0,0 +1,30 @@ + + + + + + Baratchart + Laurent + + + + + Leblond + Juliette + + + + + R. + Jonathan + + + + + Miaou + + + 9-1999 + Constrained $H^p$ interpolation on subsets of the circle + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f468.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f468.rdf new file mode 100644 index 0000000000..e1fa6d3016 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f468.rdf @@ -0,0 +1,12 @@ + + + + + + Prisme + + + 9-1999 + The union of unit balls has quadratic complexity, even if they all contain the origin + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f469.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f469.rdf new file mode 100644 index 0000000000..8ecea8fa1e --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f469.rdf @@ -0,0 +1,36 @@ + + + + + + Guzengar + Dominique + + + + + Herv + and + + + + + and + Guillard + + + + + Dussauge + Jean-Paul + + + + + Sinus + + + 9-1999 + Modelling the dissipation equation in supersonic turbulent mixing layers with high density gradients + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f47.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f47.rdf new file mode 100644 index 0000000000..abc0a0e468 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f47.rdf @@ -0,0 +1,18 @@ + + + + + + Liu + Zhen + + + + + Mistral + + + 8-1995 + Performance Analysis of Stochastic Timed Petri Nets using Linear Programming Approach + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f470.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f470.rdf new file mode 100644 index 0000000000..5ba955fd56 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f470.rdf @@ -0,0 +1,18 @@ + + + + + + I.A. + Manolis + + + + + Robotvis + + + 8-1999 + Camera Self-Calibration Using the Singular Value Decomposition of the Fundamental Matrix: From Point Correspondences to 3D Measurements + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f471.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f471.rdf new file mode 100644 index 0000000000..4985e8aca1 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f471.rdf @@ -0,0 +1,24 @@ + + + + + + Descombes + Xavier + + + + + Pechersky + Eugne + + + + + Ariana + + + 8-1999 + Isotropic properties of some multi-body interaction models: two quality criteria for Markov Priors in image processing + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f472.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f472.rdf new file mode 100644 index 0000000000..021bed4272 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f472.rdf @@ -0,0 +1,29 @@ + + + + + + Malandain + Grgoire + + + + + Boissonnat + Jean-Daniel + + + + + Epidaure + + + + + Prisme + + + 7-2001 + Computing the Diameter of a Point Set + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f473.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f473.rdf new file mode 100644 index 0000000000..80a5fb36b3 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f473.rdf @@ -0,0 +1,24 @@ + + + + + + Dolean + V. + + + + + S. + and + + + + + Sinus + + + 9-1999 + A domain decomposition approach to finite volume solutions of the Euler equations on triangular meshes + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f474.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f474.rdf new file mode 100644 index 0000000000..e7cd0a99de --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f474.rdf @@ -0,0 +1,24 @@ + + + + + + Devillers + Olivier + + + + + P. + Franco + + + + + Prisme + + + 7-1999 + Evaluating the cylindricity of a nominally cylindrical point set (draft) + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f475.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f475.rdf new file mode 100644 index 0000000000..10351207c4 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f475.rdf @@ -0,0 +1,18 @@ + + + + + + Persson + Henrik + + + + + Lemme + + + 9-2001 + An Integrated Development of Buchberger's Algorithm in Coq + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f476.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f476.rdf new file mode 100644 index 0000000000..87427de220 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f476.rdf @@ -0,0 +1,30 @@ + + + + + + Roche + Alexis + + + + + Malandain + Grgoire + + + + + Ayache + Nicholas + + + + + Epidaure + + + 7-1999 + Unifying Maximum Likelihood Approaches in Medical Image Registration + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f477.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f477.rdf new file mode 100644 index 0000000000..61196849c6 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f477.rdf @@ -0,0 +1,30 @@ + + + + + + Altman + Eitan + + + + + Avrachenkov + Kostya + + + + + Barakat + Chadi + + + + + Mistral + + + 7-1999 + TCP in presence of bursty losses + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f478.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f478.rdf new file mode 100644 index 0000000000..1a76ee8d9e --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f478.rdf @@ -0,0 +1,35 @@ + + + + + + Barakat + Chadi + + + + + Altman + Eitan + + + + + Dabbous + Walid + + + + + Rodeo + + + + + Mistral + + + 7-1999 + On TCP Performance in an Heterogeneous Network: A Survey + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f479.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f479.rdf new file mode 100644 index 0000000000..6b38744265 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f479.rdf @@ -0,0 +1,42 @@ + + + + + + Krissian + Karl + + + + + Malandain + Grgoire + + + + + Ayache + Nicholas + + + + + Vaillant + Rgis + + + + + Trousset + Yves + + + + + Epidaure + + + 7-1999 + Model Based Detection of Tubular Structures in 3D Images + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f48.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f48.rdf new file mode 100644 index 0000000000..21832035b5 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f48.rdf @@ -0,0 +1,30 @@ + + + + + + Pennec + Xavier + + + + + Cachier + Pascal + + + + + Ayache + Nicolas + + + + + Epidaure + + + 12-2000 + Tracking brain deformations in time-sequences of 3D US images + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f480.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f480.rdf new file mode 100644 index 0000000000..4fdf232fc6 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f480.rdf @@ -0,0 +1,12 @@ + + + + + + Caf + + + 7-1999 + Reducibility of linear difference operators : a Galois-theoretic perspective + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f481.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f481.rdf new file mode 100644 index 0000000000..21b67c180d --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f481.rdf @@ -0,0 +1,18 @@ + + + + + + M. + Roberto + + + + + Meije + + + 7-1999 + The game of the name in cryptographic tables + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f482.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f482.rdf new file mode 100644 index 0000000000..3ac2753b33 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f482.rdf @@ -0,0 +1,30 @@ + + + + + + Hazard + Laurent + + + + + Susini + Jean-Ferdy + + + + + Boussinot + Frdric + + + + + Meije + + + 7-1999 + The Junior Reactive Kernel + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f483.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f483.rdf new file mode 100644 index 0000000000..998c5d6e44 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f483.rdf @@ -0,0 +1,24 @@ + + + + + + Attali + Dominique + + + + + Boissonnat + Jean-Daniel + + + + + Prisme + + + 7-2001 + Complexity of the Delaunay triangulation of points on polyhedral surfaces + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f484.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f484.rdf new file mode 100644 index 0000000000..234bfa4455 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f484.rdf @@ -0,0 +1,30 @@ + + + + + + Guimond + Alexandre + + + + + Meunier + Jean + + + + + Thirion + Jean-Philippe + + + + + Epidaure + + + 7-1999 + Average Brain Models: A Convergence Study + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f485.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f485.rdf new file mode 100644 index 0000000000..d22cfc5ae9 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f485.rdf @@ -0,0 +1,35 @@ + + + + + + Lty + Emmanuel + + + + + Turletti + Thierry + + + + + Baccelli + Franois + + + + + Ens-dmi + + + + + Rodeo + + + 7-1999 + Cell-based Multicast Grouping in Large-Scale Virtual Environments + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f486.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f486.rdf new file mode 100644 index 0000000000..673b883000 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f486.rdf @@ -0,0 +1,18 @@ + + + + + + Clerget + Antoine + + + + + Rodeo + + + 7-1999 + TUF : A Tag-based UDP Multicast Flow Control Protocol + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f487.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f487.rdf new file mode 100644 index 0000000000..237a31f4d9 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f487.rdf @@ -0,0 +1,41 @@ + + + + + + Altman + Eitan + + + + + Bhulai + Sandjai + + + + + Gaujal + Bruno + + + + + Hordijk + Arie + + + + + Sloop + + + + + Mistral + + + 6-1999 + Optimal Routing Problems and Multimodularity + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f488.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f488.rdf new file mode 100644 index 0000000000..35a82d05cc --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f488.rdf @@ -0,0 +1,18 @@ + + + + + + Remaki + Malika + + + + + Caiman + + + 7-1999 + A New Finite Volume Scheme for Solving Maxwell System + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f489.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f489.rdf new file mode 100644 index 0000000000..6d614f9439 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f489.rdf @@ -0,0 +1,24 @@ + + + + + + Faubourg + Ludovic + + + + + Pomet + Jean-Baptiste + + + + + Miaou + + + 7-1999 + Design of control Lyapunov functions for homogeneous Jurdjevic-Quinn systems + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f49.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f49.rdf new file mode 100644 index 0000000000..b67c365e2b --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f49.rdf @@ -0,0 +1,24 @@ + + + + + + Rothwell + Charlie + + + + + Stern + Julien + + + + + Robotvis + + + 10-1995 + Understanding the Shape Properties of Trihedral Polyhedra + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f490.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f490.rdf new file mode 100644 index 0000000000..6f09ec6f2d --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f490.rdf @@ -0,0 +1,30 @@ + + + + + + MATTA + Nada + + + + + RIBIERE + Myriam + + + + + CORBY + Olivier + + + + + Acacia + + + 6-1999 + Dfinition d'un Modle de mmoire de projet + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f491.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f491.rdf new file mode 100644 index 0000000000..8721369ab8 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f491.rdf @@ -0,0 +1,24 @@ + + + + + + Faure + Christle + + + + + Dutto + Patrick + + + + + Tropics + + + 6-1999 + Extension of Odysse to the MPI library - Direct mode - + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f492.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f492.rdf new file mode 100644 index 0000000000..3a33af4cf5 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f492.rdf @@ -0,0 +1,24 @@ + + + + + + Strandlie + Are + + + + + Zerubia + Josiane + + + + + Ariana + + + 6-1999 + A deterministic annealing PMHT algorithm with an application to particle tracking + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f493.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f493.rdf new file mode 100644 index 0000000000..4cbb2bddb1 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f493.rdf @@ -0,0 +1,30 @@ + + + + + + Baratchart + Laurent + + + + + Chyba + Monique + + + + + Pomet + Jean-Baptiste + + + + + Miaou + + + 7-2001 + Topological versus Smooth Linearization of Control Systems + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f494.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f494.rdf new file mode 100644 index 0000000000..8a7a6429fe --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f494.rdf @@ -0,0 +1,30 @@ + + + + + + Cachier + Pascal + + + + + Pennec + Xavier + + + + + Ayache + Nicholas + + + + + Epidaure + + + 6-1999 + Fast Non Rigid Matching by Gradient Descent: Study and Improvements of the ``Demons'' Algorithm + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f495.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f495.rdf new file mode 100644 index 0000000000..dccd14029a --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f495.rdf @@ -0,0 +1,24 @@ + + + + + + Tchoumatchenko + Konstantin + + + + + Zuyev + Sergei + + + + + Mistral + + + 6-1999 + Aggregate and Fractal Tessellations + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f496.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f496.rdf new file mode 100644 index 0000000000..2629c13374 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f496.rdf @@ -0,0 +1,18 @@ + + + + + + Henry-Grard + Loc + + + + + Meije + + + 5-1999 + Proof of the subject reduction property for a -calculus in COQ + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f497.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f497.rdf new file mode 100644 index 0000000000..7783118215 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f497.rdf @@ -0,0 +1,30 @@ + + + + + + Beauquier + Bruno + + + + + Prennes + Stphane + + + + + David + and + + + + + Sloop + + + 6-1999 + All-to-All Routing and Coloring in Weighted Trees of Rings + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f498.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f498.rdf new file mode 100644 index 0000000000..7721aff444 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f498.rdf @@ -0,0 +1,30 @@ + + + + + + Vanek + Petr + + + + + Janka + Ales + + + + + Herv + and + + + + + Sinus + + + 5-1999 + Convergence of Algebraic Multigrid Based on Smoothed Aggregation II: Extension to a Petrov-Galerkin Method + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f499.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f499.rdf new file mode 100644 index 0000000000..cd21e97150 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f499.rdf @@ -0,0 +1,30 @@ + + + + + + Baccelli + Franois + + + + + Gloaguen + Catherine + + + + + Sergei + and + + + + + Mistral + + + 5-1999 + Superposition of Planar Voronoi Tessellations + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f5.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f5.rdf new file mode 100644 index 0000000000..06ef500f76 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f5.rdf @@ -0,0 +1,25 @@ + + + + + + Depeyre + S. + + + + + Larrouturou + B. + + + + + Carpentier + R. + + + 8-1995 + Mthodes numriques dcentres d'ordre lev en deux dimensions d'espace + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f50.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f50.rdf new file mode 100644 index 0000000000..e0bd40abf4 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f50.rdf @@ -0,0 +1,42 @@ + + + + + + Dulbecco + Philippe + + + + + Gaffard + Jean-Luc + + + + + Laurent + Philippe + + + + + Leblond + Juliette + + + + + Pomet + Jean-Baptiste + + + + + Miaou + + + 9-1995 + Un modle dynamique de comportement d'une entreprise + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f500.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f500.rdf new file mode 100644 index 0000000000..b95b8457ce --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f500.rdf @@ -0,0 +1,18 @@ + + + + + + Naumann + Uwe + + + + + Tropics + + + 5-1999 + Heuristics for Efficiently Calculating Jacobians by Edge Elimination in Computational Graphs + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f501.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f501.rdf new file mode 100644 index 0000000000..65eb4cd295 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f501.rdf @@ -0,0 +1,18 @@ + + + + + + Naumann + Uwe + + + + + Tropics + + + 5-1999 + Efficient Calculation of Jacobians using Dynamic Programming + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f502.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f502.rdf new file mode 100644 index 0000000000..a4fb8c9b5c --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f502.rdf @@ -0,0 +1,24 @@ + + + + + + de + Armel + + + + + Bourdonnaye + La + + + + + Caiman + + + 5-1999 + High order scheme for a non linear Maxwell system modelling Kerr effect. + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f503.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f503.rdf new file mode 100644 index 0000000000..8ac5b78069 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f503.rdf @@ -0,0 +1,30 @@ + + + + + + Moresino + Francesco + + + + + Pourtallier + Odile + + + + + Mabel + and + + + + + Miaou + + + 5-1999 + Using Viscosity Solution for Approximations in Piecewise Deterministic Control Systems + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f504.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f504.rdf new file mode 100644 index 0000000000..0478193d8c --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f504.rdf @@ -0,0 +1,30 @@ + + + + + + Marco + Nathalie + + + + + Dsidri + Jean-Antoine + + + + + Stphane + and + + + + + Sinus + + + 4-1999 + Multi-Objective Optimization in CFD by Genetic Algorithms + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f505.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f505.rdf new file mode 100644 index 0000000000..4b1c16fb39 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f505.rdf @@ -0,0 +1,18 @@ + + + + + + Chicli + Laurent + + + + + Lemme + + + 6-2001 + Une formalisation des faisceaux et des schmas affines en thorie des types avec Coq + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f506.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f506.rdf new file mode 100644 index 0000000000..4224fc23bd --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f506.rdf @@ -0,0 +1,30 @@ + + + + + + Cotin + Stphane + + + + + Delingette + Herv + + + + + Ayache + Nicholas + + + + + Epidaure + + + 9-1998 + Efficient linear elastic models of soft tissues for real-time surgery simulation + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f507.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f507.rdf new file mode 100644 index 0000000000..eda4d88f76 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f507.rdf @@ -0,0 +1,18 @@ + + + + + + Lingrand + Diane + + + + + Robotvis + + + 4-1999 + Perspective projection's approximations: combined model and homographic singularities + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f508.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f508.rdf new file mode 100644 index 0000000000..b05de78e4f --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f508.rdf @@ -0,0 +1,69 @@ + + + + + + Faugeras + O. + + + + + Clment + F. + + + + + Deriche + R. + + + + + Keriven + R. + + + + + Papadopoulo + T. + + + + + Roberts + J. + + + + + Viville + T. + + + + + Cermics + + + + + Robotvis + + + + + Estime + + + + + Ondes + + + 5-1999 + The inverse EEG and MEG problems: The adjoint state approach I: The continuous case + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f509.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f509.rdf new file mode 100644 index 0000000000..9f4210545e --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f509.rdf @@ -0,0 +1,18 @@ + + + + + + Z. + Ioannis + + + + + Saga + + + 4-1999 + Sign methods for counting and computing real roots of algebraic systems + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f51.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f51.rdf new file mode 100644 index 0000000000..b5528a95c8 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f51.rdf @@ -0,0 +1,30 @@ + + + + + + Livre + Hlne + + + + + Dsidri + Jean-Antoine + + + + + Habbal + Abderrahmane + + + + + Sinus + + + 9-2001 + Optimisation numrique de profils d'aile par Algorithmes Gntiques et Jeux de Nash. + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f510.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f510.rdf new file mode 100644 index 0000000000..fca7ab7c99 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f510.rdf @@ -0,0 +1,18 @@ + + + + + + CARPENTIER + Romuald + + + + + Sinus + + + 4-1999 + The beta/gamma scheme for axisymetric calculus. + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f511.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f511.rdf new file mode 100644 index 0000000000..ed216a8e82 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f511.rdf @@ -0,0 +1,18 @@ + + + + + + M. + Jorn + + + + + Mistral + + + 4-1999 + Real-Time Scheduling: Non-Preemption, Critical Sections and Round Robin. + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f512.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f512.rdf new file mode 100644 index 0000000000..26d9fc6b75 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f512.rdf @@ -0,0 +1,18 @@ + + + + + + Naumann + Uwe + + + + + Tropics + + + 4-1999 + SAVE - Simulated Annealing applied to the Vertex Elimination Problem in Computational Graphs + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f513.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f513.rdf new file mode 100644 index 0000000000..6494448167 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f513.rdf @@ -0,0 +1,24 @@ + + + + + + Thirion + Bertrand + + + + + Faugeras + Olivier + + + + + Robotvis + + + 6-2001 + Activation detection and characterisation in brain fMRI sequences. Application to the study of monkey vision. + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f514.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f514.rdf new file mode 100644 index 0000000000..cca01add79 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f514.rdf @@ -0,0 +1,18 @@ + + + + + + Naumann + Uwe + + + + + Tropics + + + 4-1999 + Optimizing the Accumulation of Jacobians by Edge Elimination in the Computational Graph + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f515.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f515.rdf new file mode 100644 index 0000000000..582d4b3f0a --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f515.rdf @@ -0,0 +1,24 @@ + + + + + + Gomes + Jos + + + + + Olivier + and + + + + + Robotvis + + + 4-1999 + Reconciling Distance Functions and Level Sets + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f516.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f516.rdf new file mode 100644 index 0000000000..3de8de8d18 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f516.rdf @@ -0,0 +1,36 @@ + + + + + + Bermond + Jean-Claude + + + + + Marlin + Nausica + + + + + Peleg + David + + + + + Prenns + Stphane + + + + + Sloop + + + 4-1999 + Directed Virtual Path Layouts in ATM networks + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f517.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f517.rdf new file mode 100644 index 0000000000..49ec10a81b --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f517.rdf @@ -0,0 +1,18 @@ + + + + + + Dal-Zilio + Silvano + + + + + Meije + + + 4-1999 + A Bisimulation for the Blue Calculus + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f518.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f518.rdf new file mode 100644 index 0000000000..9a505968ca --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f518.rdf @@ -0,0 +1,30 @@ + + + + + + HERMOSILLO + Gerardo + + + + + FAUGERAS + Olivier + + + + + Jos + and + + + + + Robotvis + + + 4-1999 + Cortex Unfolding Using Level Set Methods + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f519.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f519.rdf new file mode 100644 index 0000000000..ed5d59d99a --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f519.rdf @@ -0,0 +1,30 @@ + + + + + + Samson + Christophe + + + + + Blanc-Fraud + Laure + + + + + Aubert + Gilles + + + + + Ariana + + + 4-1999 + Multiphase Evolution and Variational Image Classification + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f52.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f52.rdf new file mode 100644 index 0000000000..3de4ff040f --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f52.rdf @@ -0,0 +1,36 @@ + + + + + + Finta + Lucian + + + + + Liu + Zhen + + + + + Milis + Ioannis + + + + + Bampis + Evripidis + + + + + Mistral + + + 5-1995 + Scheduling UET-UCT Series-Parallel Graphs on Two Processors + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f520.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f520.rdf new file mode 100644 index 0000000000..fb79e08c43 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f520.rdf @@ -0,0 +1,12 @@ + + + + + + Sinus + + + 3-1999 + Parallelization of finite element codes with automatic placement of communications + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f521.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f521.rdf new file mode 100644 index 0000000000..deed1324ab --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f521.rdf @@ -0,0 +1,30 @@ + + + + + + Attali + Isabelle + + + + + Caromel + Denis + + + + + Guider + Romain + + + + + Oasis + + + 3-1999 + Static Analysis of Java for distributed and parallel programming + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f522.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f522.rdf new file mode 100644 index 0000000000..38ef47e35f --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f522.rdf @@ -0,0 +1,24 @@ + + + + + + Paragios + Nikos + + + + + Deriche + Rachid + + + + + Robotvis + + + 3-1999 + Geodesic Active Regions for Motion Estimation and Tracking + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f523.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f523.rdf new file mode 100644 index 0000000000..0c682ddab0 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f523.rdf @@ -0,0 +1,30 @@ + + + + + + Heydemann + Marie-Claude + + + + + Marlin + Nausica + + + + + Prennes + Stphane + + + + + Sloop + + + 2-1999 + Cayley Graphs with Complete Rotations + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f524.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f524.rdf new file mode 100644 index 0000000000..af0879f7da --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f524.rdf @@ -0,0 +1,36 @@ + + + + + + Garcin + Laurent + + + + + Descombes + Xavier + + + + + Zerubia + Josiane + + + + + Le Men + Hervé + + + + + Ariana + + + 6-2001 + Building Detection by Markov Object processes and a MCMC algorithm + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f525.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f525.rdf new file mode 100644 index 0000000000..13a62fc741 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f525.rdf @@ -0,0 +1,24 @@ + + + + + + Marco-Blaszka + Nathalie + + + + + Dsidri + Jean-Antoine + + + + + Sinus + + + 2-1999 + Numerical solution of optimization test-cases by Genetic Algorithms + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f526.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f526.rdf new file mode 100644 index 0000000000..44e0d01549 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f526.rdf @@ -0,0 +1,18 @@ + + + + + + Galtier + Jrme + + + + + Sloop + + + 1-1999 + Using Parallel Computing to Reduce CPU Power + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f527.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f527.rdf new file mode 100644 index 0000000000..27a63818fe --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f527.rdf @@ -0,0 +1,24 @@ + + + + + + Barakat + Chadi + + + + + Altman + Eitan + + + + + Mistral + + + 2-1999 + Analysis of TCP with Several Bottleneck Nodes + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f528.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f528.rdf new file mode 100644 index 0000000000..da181cbbcd --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f528.rdf @@ -0,0 +1,24 @@ + + + + + + Becker + Roland + + + + + Hansbo + Peter + + + + + Caiman + + + 1-1999 + A finite element method for domain decomposition with non-matching grids + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f529.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f529.rdf new file mode 100644 index 0000000000..df694955f4 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f529.rdf @@ -0,0 +1,24 @@ + + + + + + Flammini + Michele + + + + + Prenns + Stphane + + + + + Sloop + + + 1-1999 + Lower Bounds on the Broadcasting and Gossiping Time of Restricted Protocols + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f53.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f53.rdf new file mode 100644 index 0000000000..d8b2494dad --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f53.rdf @@ -0,0 +1,30 @@ + + + + + + Boussinot + Frdric + + + + + Doumenc + Guillaume + + + + + Stefani + Jean-Bernard + + + + + Meije + + + 10-1995 + Reactive Objects + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f530.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f530.rdf new file mode 100644 index 0000000000..f0ba860767 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f530.rdf @@ -0,0 +1,36 @@ + + + + + + Gargano + Luisa + + + + + Pelc + Andrzej + + + + + Prennes + Stphane + + + + + Vaccaro + Ugo + + + + + Sloop + + + 1-1999 + Efficient Communication in Unknown Networks + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f531.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f531.rdf new file mode 100644 index 0000000000..ef1c064c4a --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f531.rdf @@ -0,0 +1,24 @@ + + + + + + Ait-Hellal + Omar + + + + + Altman + Eitan + + + + + Mistral + + + 1-1999 + Fonctionnement de TCP: problmes et amliorations + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f532.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f532.rdf new file mode 100644 index 0000000000..030488b0b3 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f532.rdf @@ -0,0 +1,30 @@ + + + + + + Cotin + Stphane + + + + + Delingette + Herv + + + + + Ayache + Nicholas + + + + + Epidaure + + + 9-1998 + Real-time elastic deformations of soft tissues for surgery simulation + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f533.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f533.rdf new file mode 100644 index 0000000000..1a07d7227c --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f533.rdf @@ -0,0 +1,30 @@ + + + + + + Iollo + Angelo + + + + + Lanteri + Stphane + + + + + Dsidri + Jean-Antoine + + + + + Sinus + + + 12-1998 + Stability Properties of POD-Galerkin Approximations for the Compressible Navier-Stokes Equations + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f534.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f534.rdf new file mode 100644 index 0000000000..067574597f --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f534.rdf @@ -0,0 +1,42 @@ + + + + + + Ourselin + Sbastien + + + + + Roche + Alexis + + + + + Subsol + Grard + + + + + Pennec + Xavier + + + + + Sattonnet + Christophe + + + + + Epidaure + + + 12-1998 + Automatic Alignment of Histological Sections for 3D Reconstruction and Analysis + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f535.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f535.rdf new file mode 100644 index 0000000000..1037ce0445 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f535.rdf @@ -0,0 +1,30 @@ + + + + + + Stoica + Radu + + + + + Zerubia + Josiane + + + + + M. + Joseph + + + + + Ariana + + + 12-1998 + Indexing and Retrieval in Multimedia Libraries Through Parametric Texture Modeling using the 2D Wold Decomposition + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f536.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f536.rdf new file mode 100644 index 0000000000..bb008a81d2 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f536.rdf @@ -0,0 +1,30 @@ + + + + + + Agrawal + Rajeev + + + + + Baccelli + Franois + + + + + Rajan + Rajendran + + + + + Mistral + + + 5-1998 + An Algebra for Queueing Networks with Time Varying Service and its application to the analysis of integrated service networks + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f537.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f537.rdf new file mode 100644 index 0000000000..c1b3ce2455 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f537.rdf @@ -0,0 +1,24 @@ + + + + + + Gouz + Jean-Luc + + + + + Sari + Tewfik + + + + + Comore + + + 6-2001 + A class of piecewise linear differential equations arising in biological models + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f538.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f538.rdf new file mode 100644 index 0000000000..faf98f52da --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f538.rdf @@ -0,0 +1,24 @@ + + + + + + Barakat + Chadi + + + + + Altman + Eitan + + + + + Mistral + + + 12-1998 + Analysis of TCP in Networks with Small Buffering Capacity and Large Bandwidth-Delay Product + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f539.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f539.rdf new file mode 100644 index 0000000000..aa574bae69 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f539.rdf @@ -0,0 +1,36 @@ + + + + + + Chaher + Nesrine + + + + + Barakat + Chadi + + + + + Dabbous + Walid + + + + + Altman + Eitan + + + + + Mistral + + + 12-1998 + Improving TCP/IP over Geostationary Satellite Links + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f54.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f54.rdf new file mode 100644 index 0000000000..4eaec5dbdb --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f54.rdf @@ -0,0 +1,24 @@ + + + + + + Merlet + Nicolas + + + + + Zerubia + Josiane + + + + + Pastis + + + 9-1995 + ELIESER : Manuel utilisateur + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f540.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f540.rdf new file mode 100644 index 0000000000..fe1492c3a2 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f540.rdf @@ -0,0 +1,24 @@ + + + + + + Elkadi + Mohamed + + + + + Mourrain + Bernard + + + + + Saga + + + 12-1998 + Some applications of Bezoutians in Effective Algebraic Geometry + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f541.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f541.rdf new file mode 100644 index 0000000000..75d8789d83 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f541.rdf @@ -0,0 +1,18 @@ + + + + + + Faure + Christle + + + + + Safir + + + 9-1998 + Automatic Differentiation for adjoint code generation + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f542.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f542.rdf new file mode 100644 index 0000000000..09f88737ca --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f542.rdf @@ -0,0 +1,18 @@ + + + + + + Lejay + Antoine + + + + + Sysdys + + + 12-1998 + Approche probabiliste de l'homognisation des oprateurs sous forme divergence en milieu priodique + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f543.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f543.rdf new file mode 100644 index 0000000000..5562363f3b --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f543.rdf @@ -0,0 +1,24 @@ + + + + + + Gaudron + Guillaume + + + + + Pardoux + Etienne + + + + + Sysdys + + + 11-1998 + Convergence en loi d'EDSR et application l'homognisation d'EDP semi-linaires paraboliques + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f544.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f544.rdf new file mode 100644 index 0000000000..b558a0abd2 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f544.rdf @@ -0,0 +1,36 @@ + + + + + + Rey + David + + + + + Subsol + Grard + + + + + Delingette + Herv + + + + + Ayache + Nicholas + + + + + Epidaure + + + 11-1998 + Automatic Detection and Segmentation of Evolving Processes in 3D Medical Images: Application to Multiple Sclerosis + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f545.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f545.rdf new file mode 100644 index 0000000000..3ec2f77f60 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f545.rdf @@ -0,0 +1,18 @@ + + + + + + Bonald + Thomas + + + + + Mistral + + + 11-1998 + Comparison of TCP Reno and TCP Vegas via Fluid Approximation + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f546.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f546.rdf new file mode 100644 index 0000000000..ffb3f29f35 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f546.rdf @@ -0,0 +1,18 @@ + + + + + + Bronstein + Manuel + + + + + Safir + + + 11-1998 + The Lazy Hermite Reduction + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f547.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f547.rdf new file mode 100644 index 0000000000..faefc297e7 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f547.rdf @@ -0,0 +1,18 @@ + + + + + + M. + Jorn + + + + + Mistral + + + 11-1998 + Timing Analysis of Real-Time Scheduling Policies: A Trajectory Based Model + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f548.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f548.rdf new file mode 100644 index 0000000000..79fd84bdaa --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f548.rdf @@ -0,0 +1,24 @@ + + + + + + Papadopoulo + Tho + + + + + Faugeras + Olivier + + + + + Robotvis + + + 12-1995 + Computing Structure and Motion of General 3D Rigid Curves from Monocular Sequences of Perspective Images + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f549.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f549.rdf new file mode 100644 index 0000000000..25942875b6 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f549.rdf @@ -0,0 +1,24 @@ + + + + + + Baccelli + Franois + + + + + Hong + Dohy + + + + + Mistral + + + 11-1998 + Analyticity of Iterates of Random Non-Expansive Maps + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f55.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f55.rdf new file mode 100644 index 0000000000..db2b74140c --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f55.rdf @@ -0,0 +1,19 @@ + + + + + + Merlet + Nicolas + + + + + Zerubia + Josiane + + + 9-1995 + ELIESER : User Manual + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f550.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f550.rdf new file mode 100644 index 0000000000..f2449e979a --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f550.rdf @@ -0,0 +1,30 @@ + + + + + + Lala + Stphanie + + + + + de + Armel + + + + + Bourdonnaye + La + + + + + Caiman + + + 11-1998 + A finite-element method for Maxwell system preserving Gauss laws and Energy + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f551.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f551.rdf new file mode 100644 index 0000000000..0762b5b8b4 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f551.rdf @@ -0,0 +1,18 @@ + + + + + + Bostan + Mihai + + + + + Caiman + + + 11-1998 + Periodic solutions of the 1D Vlasov-Maxwell system with boundary conditions + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f552.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f552.rdf new file mode 100644 index 0000000000..801198b6af --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f552.rdf @@ -0,0 +1,18 @@ + + + + + + Piperno + Serge + + + + + Caiman + + + 9-1998 + Numerical simulation of aeroelastic instabilities of elementary bridge decks + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f553.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f553.rdf new file mode 100644 index 0000000000..1f215762ef --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f553.rdf @@ -0,0 +1,18 @@ + + + + + + Bertot + Yves + + + + + Croap + + + 10-1998 + The CtCoq System: Design and Architecture + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f554.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f554.rdf new file mode 100644 index 0000000000..b894dbfb66 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f554.rdf @@ -0,0 +1,24 @@ + + + + + + Piatnitski + Andrey + + + + + Remy + Elisabeth + + + + + Sysdys + + + 10-1998 + Homogenization of elliptic difference operators + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f555.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f555.rdf new file mode 100644 index 0000000000..0b492b75ad --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f555.rdf @@ -0,0 +1,30 @@ + + + + + + Declerck + Jrme + + + + + Ayache + Nicholas + + + + + R. + Elliot + + + + + Epidaure + + + 10-1998 + Use of a 4D planispheric transformation for the tracking and the analysis of LV motion with tagged MR images + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f556.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f556.rdf new file mode 100644 index 0000000000..d204f7cd26 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f556.rdf @@ -0,0 +1,24 @@ + + + + + + Bostan + Mihai + + + + + Frdric + et + + + + + Caiman + + + 10-1998 + tude numrique des solutions priodiques des systmes de Maxwell et de Vlasov-Maxwell par une mthode de contrle + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f557.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f557.rdf new file mode 100644 index 0000000000..0479cc5586 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f557.rdf @@ -0,0 +1,42 @@ + + + + + + Hert + Susan + + + + + Hoffmann + Michael + + + + + Kettner + Lutz + + + + + Pion + Sylvain + + + + + Seel + Michael + + + + + Prisme + + + 9-2001 + An Adaptable and Extensible Geometry Kernel + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f558.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f558.rdf new file mode 100644 index 0000000000..4c94c3e580 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f558.rdf @@ -0,0 +1,18 @@ + + + + + + Devillers + Olivier + + + + + Prisme + + + 10-1998 + Computational Geometry and Discrete Computations + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f559.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f559.rdf new file mode 100644 index 0000000000..1211113b01 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f559.rdf @@ -0,0 +1,36 @@ + + + + + + Hivernat + Christine + + + + + Descombes + Xavier + + + + + Randriamasy + Sabine + + + + + Zerubia + Josiane + + + + + Ariana + + + 10-1998 + Mise en correspondance et recalage de graphes : application aux rseaux routiers extraits d'un couple carte/image + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f56.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f56.rdf new file mode 100644 index 0000000000..d5958ff646 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f56.rdf @@ -0,0 +1,36 @@ + + + + + + Braun + Torsten + + + + + Diot + Christophe + + + + + Hoglander + Anna + + + + + Roca + Vincent + + + + + Rodeo + + + 8-1995 + An Experimental User Level Implementation of TCP. + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f560.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f560.rdf new file mode 100644 index 0000000000..9677d5931c --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f560.rdf @@ -0,0 +1,24 @@ + + + + + + Cluzeau + Thomas + + + + + Hubert + Evelyne + + + + + Caf + + + 6-2001 + Resolvent Representation for Regular Differential Ideals + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f561.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f561.rdf new file mode 100644 index 0000000000..2cae2f8237 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f561.rdf @@ -0,0 +1,24 @@ + + + + + + Devillers + Olivier + + + + + P. + Franco + + + + + Prisme + + + 10-1998 + Further Results on Arithmetic Filters for Geometric Predicates + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f562.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f562.rdf new file mode 100644 index 0000000000..c10b6bac3d --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f562.rdf @@ -0,0 +1,30 @@ + + + + + + Devillers + Olivier + + + + + Liotta + Giuseppe + + + + + P. + Franco + + + + + Prisme + + + 10-1998 + Checking the Convexity of Polytopes and the Planarity of Subdivisions + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f563.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f563.rdf new file mode 100644 index 0000000000..a80ad0d598 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f563.rdf @@ -0,0 +1,36 @@ + + + + + + Samson + Christophe + + + + + Blanc-Fraud + Laure + + + + + Aubert + Gilles + + + + + Zerubia + Josiane + + + + + Ariana + + + 10-1998 + Image Classification Using a Variational Approach + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f564.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f564.rdf new file mode 100644 index 0000000000..13cdf0b436 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f564.rdf @@ -0,0 +1,30 @@ + + + + + + Campillo + Fabien + + + + + Kleptsyna + Marina + + + + + Piatnitski + Andrey + + + + + Sysdys + + + 10-1998 + Homogenization of random parabolic operator with large potential + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f565.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f565.rdf new file mode 100644 index 0000000000..e8a2d1c0e1 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f565.rdf @@ -0,0 +1,18 @@ + + + + + + Faure + Christle + + + + + Safir + + + 10-1998 + Le Gradient de THYC3D par Odysse + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f566.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f566.rdf new file mode 100644 index 0000000000..af7643bd47 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f566.rdf @@ -0,0 +1,24 @@ + + + + + + Bostan + Mihai + + + + + Frdric + et + + + + + Caiman + + + 10-1998 + Periodic solutions of the Vlasov-Poisson system with boundary conditions + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f567.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f567.rdf new file mode 100644 index 0000000000..1def33a6d6 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f567.rdf @@ -0,0 +1,24 @@ + + + + + + Devillers + Olivier + + + + + Mukhopadhyay + Asish + + + + + Prisme + + + 10-1998 + Finding an ordinary conic and an ordinary hyperplane + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f568.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f568.rdf new file mode 100644 index 0000000000..1700b08dfa --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f568.rdf @@ -0,0 +1,24 @@ + + + + + + Mourrain + Bernard + + + + + Y. + Victor + + + + + Saga + + + 10-1998 + Multivariate polynomials, duality and structured matrices + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f569.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f569.rdf new file mode 100644 index 0000000000..d91476e1cc --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f569.rdf @@ -0,0 +1,18 @@ + + + + + + A. + David + + + + + Icare + + + 10-1998 + Non-Robustness of Continuous Homogeneous Stabilizers for Affine Control Systems + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f57.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f57.rdf new file mode 100644 index 0000000000..3c55073081 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f57.rdf @@ -0,0 +1,36 @@ + + + + + + Boissonnat + Jean-Daniel + + + + + Sharir + Micha + + + + + Tagansky + Boaz + + + + + Yvinec + Mariette + + + + + Prisme + + + 8-1995 + Voronoi Diagrams in Higher Dimensions under Certain Polyhedral Distance Functions + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f570.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f570.rdf new file mode 100644 index 0000000000..fe25ba9cd8 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f570.rdf @@ -0,0 +1,18 @@ + + + + + + Boudol + Grard + + + + + Mimosa + + + 6-2001 + The Recursive Record Semantics of Objects Revisited + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f571.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f571.rdf new file mode 100644 index 0000000000..dd2d6f5743 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f571.rdf @@ -0,0 +1,18 @@ + + + + + + Delingette + Herv + + + + + Epidaure + + + 9-1998 + Towards Realistic Soft Tissue Modeling in Medical Simulation + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f572.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f572.rdf new file mode 100644 index 0000000000..47b1287695 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f572.rdf @@ -0,0 +1,24 @@ + + + + + + Remaki + Malika + + + + + Loula + et + + + + + Caiman + + + 9-1998 + Une mthode de Galerkin Discontinu pour la rsolution des quations de Maxwell en milieu htrogne + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f573.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f573.rdf new file mode 100644 index 0000000000..515ddc1172 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f573.rdf @@ -0,0 +1,30 @@ + + + + + + Soler + Luc + + + + + Malandain + Grgoire + + + + + Delingette + Herv + + + + + Epidaure + + + 9-1998 + Segmentation automatique : application aux angioscanners 3D du foie + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f574.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f574.rdf new file mode 100644 index 0000000000..aa162ccf34 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f574.rdf @@ -0,0 +1,18 @@ + + + + + + Bertot + Yves + + + + + Croap + + + 9-1998 + A certified compiler for an imperative language + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f575.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f575.rdf new file mode 100644 index 0000000000..9a476c05b3 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f575.rdf @@ -0,0 +1,18 @@ + + + + + + Boussinot + Frdric + + + + + Meije + + + 9-1998 + SugarCubes Implementation of Causality + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f576.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f576.rdf new file mode 100644 index 0000000000..05870937c9 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f576.rdf @@ -0,0 +1,24 @@ + + + + + + Faure + Christle + + + + + Papegay + Yves + + + + + Safir + + + 9-1998 + O dy sse User's Guide - Version 1.7 + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f577.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f577.rdf new file mode 100644 index 0000000000..16aac8f5cf --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f577.rdf @@ -0,0 +1,18 @@ + + + + + + Piperno + Serge + + + + + Caiman + + + 9-1998 + Stabilit L 2 de schmas volumes finis pour les quations de Maxwell en 2D et 3D sur maillage non-structur quelconque. + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f578.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f578.rdf new file mode 100644 index 0000000000..ba5af7a15e --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f578.rdf @@ -0,0 +1,36 @@ + + + + + + Dieng + Rose + + + + + Corby + Olivier + + + + + Giboin + Alain + + + + + Ribière + Myriam + + + + + Acacia + + + 9-1998 + Methods and Tools for Corporate Knowledge Management + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f579.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f579.rdf new file mode 100644 index 0000000000..64d25f6fc0 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f579.rdf @@ -0,0 +1,41 @@ + + + + + + Devillers + Olivier + + + + + Mourrain + Bernard + + + + + Preparata + Franco + + + + + Trebuchet + Philippe + + + + + Saga + + + + + Prisme + + + 6-2001 + On circular cylinders by four or five points in space + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f58.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f58.rdf new file mode 100644 index 0000000000..8e5db9dff9 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f58.rdf @@ -0,0 +1,18 @@ + + + + + + de + Mark + + + + + Prisme + + + 7-1995 + Computing a single cell in the union of two simple polygons + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f580.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f580.rdf new file mode 100644 index 0000000000..4c650214b3 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f580.rdf @@ -0,0 +1,30 @@ + + + + + + Renault + Philippe + + + + + Faugeras + Olivier + + + + + Viville + Thierry + + + + + Robotvis + + + 9-1998 + Continuous multi-image preprocessing for Euclidean reconstruction + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f581.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f581.rdf new file mode 100644 index 0000000000..353117ffa1 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f581.rdf @@ -0,0 +1,24 @@ + + + + + + Devillers + Olivier + + + + + Gandoin + Pierre-Marie + + + + + Prisme + + + 8-1998 + Rounding Voronoi diagram + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f582.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f582.rdf new file mode 100644 index 0000000000..ff2608d981 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f582.rdf @@ -0,0 +1,24 @@ + + + + + + Morin + Pascal + + + + + Samson + Claude + + + + + Icare + + + 8-1998 + Exponential stabilization of nonlinear driftless systems with robustness to unmodeled dynamics + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f583.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f583.rdf new file mode 100644 index 0000000000..52bdce6b85 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f583.rdf @@ -0,0 +1,18 @@ + + + + + + Sangiorgi + Davide + + + + + Meije + + + 8-1998 + Interpreting Functions as pi-calculus Processes: a Tutorial + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f584.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f584.rdf new file mode 100644 index 0000000000..61121a1566 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f584.rdf @@ -0,0 +1,30 @@ + + + + + + Jalobeanu + Andr + + + + + Blanc-Fraud + Laure + + + + + Zerubia + Josiane + + + + + Ariana + + + 8-1998 + Estimation d'hyperparamtres pour la restauration d'images satellitaires par une mthode "MCMCML" + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f585.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f585.rdf new file mode 100644 index 0000000000..206c4eb3ab --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f585.rdf @@ -0,0 +1,36 @@ + + + + + + Roche + Alexis + + + + + Malandain + Grgoire + + + + + Pennec + Xavier + + + + + Ayache + Nicholas + + + + + Epidaure + + + 3-1998 + Multimodal Image Registration by Maximization of the Correlation Ratio + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f586.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f586.rdf new file mode 100644 index 0000000000..5576ba4913 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f586.rdf @@ -0,0 +1,24 @@ + + + + + + Agrawal + Rajeev + + + + + M. + Armand + + + + + Mistral + + + 8-1998 + On a Reduced Load Equivalence for Fluid Queues Under Subexponentiality + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f587.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f587.rdf new file mode 100644 index 0000000000..c0266d613f --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f587.rdf @@ -0,0 +1,30 @@ + + + + + + Cournde + Paul-Henry + + + + + Debiez + Christophe + + + + + Dervieux + Alain + + + + + Sinus + + + 7-1998 + A Positive MUSCL Scheme for Triangulations + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f588.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f588.rdf new file mode 100644 index 0000000000..2e25db992d --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f588.rdf @@ -0,0 +1,36 @@ + + + + + + Viozat + Ccile + + + + + Held + Christophe + + + + + Mer + Katherine + + + + + Dervieux + Alain + + + + + Sinus + + + 7-1998 + On Vertex-Centered Unstructured Finite-Volume Methods for Stretched Anisotropic Triangulations + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f589.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f589.rdf new file mode 100644 index 0000000000..9137204cac --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f589.rdf @@ -0,0 +1,24 @@ + + + + + + Marco + Nathalie + + + + + Lanteri + Stphane + + + + + Sinus + + + 7-1998 + A Two-Level Parallelization Strategy for Genetic Algorithms Applied to Shape Optimum Design + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f59.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f59.rdf new file mode 100644 index 0000000000..eea14eeb58 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f59.rdf @@ -0,0 +1,30 @@ + + + + + + Alt + Helmut + + + + + Godau + Michael + + + + + Whitesides + Sue + + + + + Prisme + + + 7-1995 + Universal 3-Dimensional Visibility Representations for Graphs + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f590.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f590.rdf new file mode 100644 index 0000000000..f18e6fd535 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f590.rdf @@ -0,0 +1,30 @@ + + + + + + Carr + Gilles + + + + + Lanteri + Stphane + + + + + Fournier + Luc + + + + + Sinus + + + 7-1998 + Parallel linear multigrid algorithms applied to the acceleration of compressible flows + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f591.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f591.rdf new file mode 100644 index 0000000000..2431869216 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f591.rdf @@ -0,0 +1,18 @@ + + + + + + Becker + Roland + + + + + Caiman + + + 7-1998 + Weighted Error Estimators for the Incompressible Navier-Stokes Equations + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f592.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f592.rdf new file mode 100644 index 0000000000..08c0dade2e --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f592.rdf @@ -0,0 +1,24 @@ + + + + + + Paragios + Nikos + + + + + Deriche + Rachid + + + + + Robotvis + + + 6-1998 + Geodesic Active Regions for Texture Segmentation + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f593.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f593.rdf new file mode 100644 index 0000000000..72a12070b4 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f593.rdf @@ -0,0 +1,24 @@ + + + + + + Chaabane + Slim + + + + + Jaoua + Mohamed + + + + + Miaou + + + 7-1998 + Un algorithme d'identification de frontires soumises des conditions aux limites de Signorini + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f594.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f594.rdf new file mode 100644 index 0000000000..0736d66b69 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f594.rdf @@ -0,0 +1,24 @@ + + + + + + Guillard + Herv + + + + + Murrone + Angelo + + + + + Smash + + + 5-2001 + On the behavior of upwind schemes in the low Mach number limit : II. Godunov type schemes. + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f595.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f595.rdf new file mode 100644 index 0000000000..bd16efe91e --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f595.rdf @@ -0,0 +1,18 @@ + + + + + + Beauquier + Bruno + + + + + Sloop + + + 7-1998 + All-to-All Communication for some Wavelength-Routed All-Optical Networks + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f596.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f596.rdf new file mode 100644 index 0000000000..4a4daa51d3 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f596.rdf @@ -0,0 +1,18 @@ + + + + + + Devillers + Olivier + + + + + Prisme + + + 7-1998 + On Deletion in Delaunay Triangulation. + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f597.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f597.rdf new file mode 100644 index 0000000000..4f4b6ede7d --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f597.rdf @@ -0,0 +1,18 @@ + + + + + + Degtiariova-Kostova + Elena + + + + + Prisme + + + 6-1998 + The planar motion with two bounded controls - the acceleration and the derivative of the curvature + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f598.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f598.rdf new file mode 100644 index 0000000000..9f47935847 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f598.rdf @@ -0,0 +1,30 @@ + + + + + + Krissian + Karl + + + + + Malandain + Grgoire + + + + + Ayache + Nicholas + + + + + Epidaure + + + 6-1998 + Model Based Multiscale Detection and Reconstruction of 3D Vessels + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f599.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f599.rdf new file mode 100644 index 0000000000..58a537859f --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f599.rdf @@ -0,0 +1,24 @@ + + + + + + Kleptsyna + M.L. + + + + + Le + A. + + + + + Sysdys + + + 6-1998 + An elementary approach to filtering in systems with fractional Brownian observation noise + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f6.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f6.rdf new file mode 100644 index 0000000000..9ea835a9e6 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f6.rdf @@ -0,0 +1,18 @@ + + + + + + V.P.Kostov + E.V.Degtiariova-Kostova + + + + + Prisme + + + 12-1995 + Some properties of clothoids + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f60.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f60.rdf new file mode 100644 index 0000000000..be49722613 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f60.rdf @@ -0,0 +1,18 @@ + + + + + + Briand + Emmanuel + + + + + Caiman + + + 11-2000 + Manuel d'Utilisation de COSI 0.1 + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f600.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f600.rdf new file mode 100644 index 0000000000..7e01605b49 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f600.rdf @@ -0,0 +1,24 @@ + + + + + + Matta + Nada + + + + + Martin + Philippe + + + + + Acacia + + + 5-1998 + CGKAT: User's Manual + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f601.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f601.rdf new file mode 100644 index 0000000000..03c671dd15 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f601.rdf @@ -0,0 +1,24 @@ + + + + + + Baccelli + Franois + + + + + Bonald + Thomas + + + + + Mistral + + + 5-1998 + Window Flow Control in FIFO Networks with Cross Traffic + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f602.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f602.rdf new file mode 100644 index 0000000000..35daf5fbed --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f602.rdf @@ -0,0 +1,24 @@ + + + + + + Baccelli + Franois + + + + + Hong + Dohy + + + + + Mistral + + + 5-1998 + Analytic Expansions of (max,+) Lyapunov Exponents + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f603.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f603.rdf new file mode 100644 index 0000000000..d921fa7317 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f603.rdf @@ -0,0 +1,18 @@ + + + + + + Darrot + Eric + + + + + Sloop + + + 5-1998 + Arbres couvrants arte-disjoints dans les grilles toriques d -dimensionnelles pour la diffusion de messages longs + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f604.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f604.rdf new file mode 100644 index 0000000000..b8142178bf --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f604.rdf @@ -0,0 +1,30 @@ + + + + + + Lorette + Anne + + + + + Descombes + Xavier + + + + + Zerubia + Josiane + + + + + Ariana + + + 5-1998 + Extraction des Zones Urbaines Fonde sur une Analyse de la Texture par Modlisation Markovienne + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f605.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f605.rdf new file mode 100644 index 0000000000..6da687948f --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f605.rdf @@ -0,0 +1,24 @@ + + + + + + Cachier + Pascal + + + + + Ayache + Nicholas + + + + + Epidaure + + + 5-2001 + Regularization in Image Non-Rigid Registration: I. Trade-off between Smoothness and Intensity Similarity + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f606.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f606.rdf new file mode 100644 index 0000000000..3a5884eb4c --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f606.rdf @@ -0,0 +1,30 @@ + + + + + + Baccelli + Franois + + + + + Tchoumatchenko + Konstantin + + + + + Zuyev + Sergei + + + + + Mistral + + + 5-1998 + Markov Paths on the Poisson-Delaunay Graph with applications to routing in mobile networks + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f607.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f607.rdf new file mode 100644 index 0000000000..cca5b0ad95 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f607.rdf @@ -0,0 +1,30 @@ + + + + + + Aubert + Gilles + + + + + Deriche + Rachid + + + + + Kornprobst + Pierre + + + + + Robotvis + + + 4-1998 + A Variational Method and its Mathematical Study in Image Sequence Analysis + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f608.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f608.rdf new file mode 100644 index 0000000000..5e4ad16ec9 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f608.rdf @@ -0,0 +1,18 @@ + + + + + + A. + David + + + + + Icare + + + 4-1998 + Exponential Stabilization of Certain Configurations of the General N -Trailer System + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f609.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f609.rdf new file mode 100644 index 0000000000..2d8e12d1f7 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f609.rdf @@ -0,0 +1,24 @@ + + + + + + Degtiariova-Kostova + Elena + + + + + Kostov + Vladimir + + + + + Prisme + + + 4-1998 + Irregularity of optimal trajectories in a control problem for a car-like robot + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f61.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f61.rdf new file mode 100644 index 0000000000..c8b68b004b --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f61.rdf @@ -0,0 +1,18 @@ + + + + + + J. + Paul + + + + + Prisme + + + 7-1995 + Simultaneous Dominance Representation of Multiple Posets + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f610.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f610.rdf new file mode 100644 index 0000000000..fb4b213248 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f610.rdf @@ -0,0 +1,18 @@ + + + + + + Beauquier + Bruno + + + + + Sloop + + + 4-1998 + Broadcasting in WDM Optical Rings and Tori + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f611.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f611.rdf new file mode 100644 index 0000000000..5e8a52e6db --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f611.rdf @@ -0,0 +1,42 @@ + + + + + + Fabri + Andreas + + + + + Giezeman + Geert-Jan + + + + + Kettner + Lutz + + + + + Schirra + Stefan + + + + + Schonherr + Sven + + + + + Prisme + + + 4-1998 + On the Design of CGAL, the Computational Geometry Algorithms Library + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f612.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f612.rdf new file mode 100644 index 0000000000..63ed5d85f7 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f612.rdf @@ -0,0 +1,48 @@ + + + + + + Baratchart + L. + + + + + Grimm + J. + + + + + Leblond + J. + + + + + Olivi + M. + + + + + Seyfert + F. + + + + + F. + et + + + + + Miaou + + + 3-1998 + Identification d'un filtre hyperfrquences par approximation dans le domaine complexe + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f613.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f613.rdf new file mode 100644 index 0000000000..2ac3985240 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f613.rdf @@ -0,0 +1,18 @@ + + + + + + VIGO + Guillaume + + + + + Sinus + + + 3-1998 + La Dcomposition Orthogonale Propre Applique aux quations de Navier-Stokes compressible instationnaire + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f614.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f614.rdf new file mode 100644 index 0000000000..a2bf7ad58b --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f614.rdf @@ -0,0 +1,18 @@ + + + + + + Pennec + Xavier + + + + + Epidaure + + + 3-1998 + Computing the mean of geometric features : Application to the mean rotation + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f615.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f615.rdf new file mode 100644 index 0000000000..1f0187f8da --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f615.rdf @@ -0,0 +1,24 @@ + + + + + + Morin + Pascal + + + + + Samson + Claude + + + + + Icare + + + 5-2001 + Practical stabilization of driftless homogeneous systems based on the use of transverse periodic functions + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f616.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f616.rdf new file mode 100644 index 0000000000..ae28c6580b --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f616.rdf @@ -0,0 +1,24 @@ + + + + + + Moisan + Sabine + + + + + Rigault + Jean-Paul + + + + + Orion + + + 2-1998 + A C++ Frame Library User Manual and Implementation Notes + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f617.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f617.rdf new file mode 100644 index 0000000000..b8daa4bbfc --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f617.rdf @@ -0,0 +1,18 @@ + + + + + + Ayache + Nicholas + + + + + Epidaure + + + 2-1998 + L'analyse automatique des images mdicales : Etat de l'art et perspectives + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f618.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f618.rdf new file mode 100644 index 0000000000..7016da73d7 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f618.rdf @@ -0,0 +1,36 @@ + + + + + + Fuchs + Michael + + + + + Diot + Christophe + + + + + Turletti + Thierry + + + + + Hofmann + Markus + + + + + Rodeo + + + 2-1998 + A Framework for Reliable Multicast in the Internet + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f619.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f619.rdf new file mode 100644 index 0000000000..183c4c0117 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f619.rdf @@ -0,0 +1,23 @@ + + + + + + Dos + Gabriel + + + + + Safir + + + + + Saga + + + 2-1998 + Vers une nouvelle approche du calcul scientifique en C++ + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f62.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f62.rdf new file mode 100644 index 0000000000..8b448112ee --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f62.rdf @@ -0,0 +1,24 @@ + + + + + + Baccelli + Franois + + + + + Mairesse + Jean + + + + + Mistral + + + 8-1995 + Ergodic Theorems for Stochastic Operators and Discrete Event Networks + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f620.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f620.rdf new file mode 100644 index 0000000000..77aec57a2a --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f620.rdf @@ -0,0 +1,18 @@ + + + + + + Leleu + Pierre + + + + + Croap + + + 2-1998 + Metatheoretic results for a modal lambda calculus + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f621.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f621.rdf new file mode 100644 index 0000000000..9ca500665a --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f621.rdf @@ -0,0 +1,18 @@ + + + + + + Carpentier + Romuald + + + + + Sinus + + + 2-1998 + Comparaison entre des schmas 2D de type Roe sur maillage rgulier triangle ou quadrangle. II: calcul au sommet - Le $\beta\gamma$ schma. + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f622.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f622.rdf new file mode 100644 index 0000000000..7bd4c356fc --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f622.rdf @@ -0,0 +1,12 @@ + + + + + + Croap + + + 2-1998 + Smantique Naturelle: Spcifications et Preuves + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f623.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f623.rdf new file mode 100644 index 0000000000..5ebe18429e --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f623.rdf @@ -0,0 +1,18 @@ + + + + + + Zhang + Zhengyou + + + + + Robotvis + + + 2-1998 + Feature-Based Facial Expression Recognition: Experiments With a Multi-Layer Perceptron + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f624.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f624.rdf new file mode 100644 index 0000000000..dcc31e232c --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f624.rdf @@ -0,0 +1,30 @@ + + + + + + Remaki + Malika + + + + + Fzoui + Loula + + + + + Poupaud + Frdric + + + + + Caiman + + + 1-1998 + Un nouveau schma de type volumes finis appliqu aux quations de Maxwell en milieu htrogne + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f625.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f625.rdf new file mode 100644 index 0000000000..7ddaea00be --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f625.rdf @@ -0,0 +1,24 @@ + + + + + + Aubert + Gilles + + + + + Blanc-Fraud + Laure + + + + + Ariana + + + 1-1998 + An elementary proof of the equivalence between 2D and 3D classical snakes and geodesic active contours + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f626.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f626.rdf new file mode 100644 index 0000000000..f8b01dad15 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f626.rdf @@ -0,0 +1,18 @@ + + + + + + Iollo + Angelo + + + + + Sinus + + + 12-1997 + Remarks on the Approximation of the Euler Equations by a Low Order Model + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f627.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f627.rdf new file mode 100644 index 0000000000..5762e028fc --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f627.rdf @@ -0,0 +1,30 @@ + + + + + + Granger + Sbastien + + + + + Pennec + Xavier + + + + + Roche + Alexis + + + + + Epidaure + + + 4-2001 + Rigid Point-Surface Registration using Oriented Points and an EM Variant of ICP for Computer Guided Oral Implantology + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f628.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f628.rdf new file mode 100644 index 0000000000..47b1e25566 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f628.rdf @@ -0,0 +1,30 @@ + + + + + + Baratchart + Laurent + + + + + Leblond + Juliette + + + + + R. + Jonathan + + + + + Miaou + + + 1-1998 + Problems of Adamjan-Arov-Krein type on subsets of the circle and minimal norm extensions + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f629.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f629.rdf new file mode 100644 index 0000000000..9c008e94a3 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f629.rdf @@ -0,0 +1,24 @@ + + + + + + Bernard + Olivier + + + + + Gouz + Jean-Luc + + + + + Comore + + + 1-1998 + Global qualitative behavior of a class of nonlinear biological systems; application to the qualitative validation of phytoplankton growth models. + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f63.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f63.rdf new file mode 100644 index 0000000000..b869f35c10 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f63.rdf @@ -0,0 +1,36 @@ + + + + + + Csurka + Gabriella + + + + + Zeller + Cyril + + + + + Zhang + Zhengyou + + + + + Faugeras + Olivier + + + + + Robotvis + + + 6-1995 + Characterizing the Uncertainty of the Fundamental Matrix + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f630.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f630.rdf new file mode 100644 index 0000000000..5e1452a9a7 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f630.rdf @@ -0,0 +1,18 @@ + + + + + + Bouali + Amar + + + + + Meije + + + 12-1997 + Xeve : an Esterel Verification Environment (Version v1_3) + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f631.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f631.rdf new file mode 100644 index 0000000000..c5cd0e821d --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f631.rdf @@ -0,0 +1,18 @@ + + + + + + Giacometti + Jean-Patrick + + + + + Semir + + + 12-1997 + Mobile Programs for Mobile Users on Malleable Platforms + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f632.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f632.rdf new file mode 100644 index 0000000000..0dafa9faba --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f632.rdf @@ -0,0 +1,30 @@ + + + + + + Moisan + Sabine + + + + + Vincent + Rgis + + + + + Thonnat + Monique + + + + + Orion + + + 12-1997 + Program Supervision: from Knowledge Modeling to Dedicated Engines + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f633.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f633.rdf new file mode 100644 index 0000000000..b2e13f7d71 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f633.rdf @@ -0,0 +1,18 @@ + + + + + + Pomet + Jean-Baptiste + + + + + Miaou + + + 12-1997 + On the curves that may be approached by trajectories of a smooth control affine system + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f634.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f634.rdf new file mode 100644 index 0000000000..e5275ca9d0 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f634.rdf @@ -0,0 +1,18 @@ + + + + + + Leleu + Pierre + + + + + Croap + + + 12-1997 + A Modal Lambda Calculus with Iteration and Case Constructs + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f635.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f635.rdf new file mode 100644 index 0000000000..e8bc6c1068 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f635.rdf @@ -0,0 +1,36 @@ + + + + + + G. + E. + + + + + Jr. + Coffman + + + + + Liu + Zhen + + + + + R. + Richard + + + + + Mistral + + + 12-1997 + Optimal Robot Scheduling for Web Search Engines + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f636.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f636.rdf new file mode 100644 index 0000000000..81d562ca02 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f636.rdf @@ -0,0 +1,30 @@ + + + + + + Alliez + Pierre + + + + + Devillers + Olivier + + + + + Snoeyink + Jack + + + + + Prisme + + + 12-1997 + Removing degeneracies by perturbing the problem or the world + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f637.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f637.rdf new file mode 100644 index 0000000000..75a5302f24 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f637.rdf @@ -0,0 +1,18 @@ + + + + + + Bertot + Yves + + + + + Croap + + + 12-1997 + Programming Language Specifications and Environments + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f638.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f638.rdf new file mode 100644 index 0000000000..1a62b39fb1 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f638.rdf @@ -0,0 +1,30 @@ + + + + + + Attali + Isabelle + + + + + Pascual + Valrie + + + + + Roudet + Christophe + + + + + Croap + + + 12-1997 + A language and an integrated environment for program transformations + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f639.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f639.rdf new file mode 100644 index 0000000000..c5aeb72b6a --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f639.rdf @@ -0,0 +1,24 @@ + + + + + + Faure + Christle + + + + + Papegay + Yves + + + + + Safir + + + 12-1997 + Odysse Version 1.6 . The User's Reference Manual + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f64.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f64.rdf new file mode 100644 index 0000000000..0a05f59531 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f64.rdf @@ -0,0 +1,24 @@ + + + + + + PROTTER + Philip + + + + + TALAY + Denis + + + + + Omega + + + 7-1995 + The Euler Scheme for Lvy driven Stochastic Differential Equations + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f640.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f640.rdf new file mode 100644 index 0000000000..61aa059ea6 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f640.rdf @@ -0,0 +1,18 @@ + + + + + + Hascot + Laurent + + + + + Tropics + + + 4-2001 + The Data-Dependence Graph of Adjoint Programs + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f641.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f641.rdf new file mode 100644 index 0000000000..b4df1b9d38 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f641.rdf @@ -0,0 +1,18 @@ + + + + + + Le + Alain + + + + + Sysdys + + + 12-1997 + Asymptotic Behaviour of Reduced - Order Filters + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f642.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f642.rdf new file mode 100644 index 0000000000..cf6ff419fd --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f642.rdf @@ -0,0 +1,30 @@ + + + + + + Kornprobst + Pierre + + + + + Deriche + Rachid + + + + + Aubert + Gilles + + + + + Robotvis + + + 11-1997 + Image Sequence Restoration: A PDE based coupled method for image restoration and motion segmentation + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f643.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f643.rdf new file mode 100644 index 0000000000..4cbf704d0d --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f643.rdf @@ -0,0 +1,18 @@ + + + + + + LAURENT + Olivier + + + + + Croap + + + 11-1997 + Smantique Naturelle et Coq : vers la spcification et les preuves sur les langages objets + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f644.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f644.rdf new file mode 100644 index 0000000000..b4765bfa4d --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f644.rdf @@ -0,0 +1,24 @@ + + + + + + Molchanov + Ilya + + + + + Zuyev + Sergei + + + + + Mistral + + + 11-1997 + Variational Analysis of Functionals of a Poisson Process + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f645.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f645.rdf new file mode 100644 index 0000000000..ef1422cca2 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f645.rdf @@ -0,0 +1,18 @@ + + + + + + M. + Roberto + + + + + Meije + + + 11-1997 + Modelling IP Mobility + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f646.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f646.rdf new file mode 100644 index 0000000000..df62f806ae --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f646.rdf @@ -0,0 +1,18 @@ + + + + + + M. + Roberto + + + + + Meije + + + 11-1997 + Analysis of a guard condition in type theory (preliminary report) + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f647.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f647.rdf new file mode 100644 index 0000000000..335e1ed7c5 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f647.rdf @@ -0,0 +1,36 @@ + + + + + + Dourthe + Cdric + + + + + de + Armel + + + + + Bourdonnaye + La + + + + + Pichot + Christian + + + + + Caiman + + + 11-1997 + Imagerie microonde : reconstruction quantitative du profil de permittivit complexe d'htrognits enterres. + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f648.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f648.rdf new file mode 100644 index 0000000000..68203360b6 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f648.rdf @@ -0,0 +1,36 @@ + + + + + + Massoni + Jacques + + + + + Saurel + Richard + + + + + Nkonga + Boniface + + + + + Abgrall + Rmi + + + + + Smash + + + 4-2001 + Propositions de mthodes et modles eulriens pour les problmes interfaces entre fluides compressibles en prsence de transfert de chaleur + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f649.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f649.rdf new file mode 100644 index 0000000000..803e4ec42d --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f649.rdf @@ -0,0 +1,18 @@ + + + + + + Devillers + Olivier + + + + + Prisme + + + 11-1997 + Improved Incremental Randomized Delaunay Triangulation. + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f65.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f65.rdf new file mode 100644 index 0000000000..8378d16e0b --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f65.rdf @@ -0,0 +1,18 @@ + + + + + + Lapalut + Stphane + + + + + Acacia + + + 8-1995 + Text Clustering to Support Knowledge Acquisition from Documents + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f650.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f650.rdf new file mode 100644 index 0000000000..883e05e803 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f650.rdf @@ -0,0 +1,24 @@ + + + + + + Turletti + Thierry + + + + + Fosse + Sacha + + + + + Rodeo + + + 11-1997 + Experiments with a Layered Transmission Scheme over the Internet + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f651.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f651.rdf new file mode 100644 index 0000000000..a68a1bdb2f --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f651.rdf @@ -0,0 +1,30 @@ + + + + + + Yu + Shan + + + + + Berthod + Marc + + + + + Giraudon + Grard + + + + + Pastis + + + 11-1997 + Towards Robust Analysis of Satellite Images Using Map Information Application to Urban Area Detection + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f652.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f652.rdf new file mode 100644 index 0000000000..cea018d6dd --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f652.rdf @@ -0,0 +1,24 @@ + + + + + + Ernst + Thierry + + + + + Dabbous + Walid + + + + + Rodeo + + + 10-1997 + A Circuit-based Approach for Routing in Unidirectional Links Networks + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f653.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f653.rdf new file mode 100644 index 0000000000..f0d5375e03 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f653.rdf @@ -0,0 +1,18 @@ + + + + + + Hoschka + Philipp + + + + + W3c + + + 10-1997 + Compact and Efficient Presentation Conversion Routines + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f654.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f654.rdf new file mode 100644 index 0000000000..5abf04f003 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f654.rdf @@ -0,0 +1,42 @@ + + + + + + Bertot + J. + + + + + Bertot + Y. + + + + + Coscoy + Y. + + + + + Goguenwith + H. + + + + + F. + and + + + + + Croap + + + 10-1997 + User Guide to the C T COQ Proof Environment + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f655.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f655.rdf new file mode 100644 index 0000000000..e0fe9ad0d8 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f655.rdf @@ -0,0 +1,30 @@ + + + + + + Bonnet + Frdric + + + + + Bostan + Mihai + + + + + Loula + et + + + + + Caiman + + + 10-1997 + tude d'une classe de $\beta$-$\gamma$ schmas en formulation volumes finis pour des problmes hyperboliques. + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f656.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f656.rdf new file mode 100644 index 0000000000..5868c484d1 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f656.rdf @@ -0,0 +1,30 @@ + + + + + + Bertot + Yves + + + + + Kleymann-Schreiber + Thomas + + + + + Sequeira + Dilip + + + + + Croap + + + 10-1997 + Implementing Proof by Pointing without a Structure Editor + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f657.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f657.rdf new file mode 100644 index 0000000000..0688f581c6 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f657.rdf @@ -0,0 +1,18 @@ + + + + + + Bourdells + Michel + + + + + Meije + + + 10-1997 + The steam boiler controller problem in ESTEREL and its verification by means of symbolic analysis + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f658.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f658.rdf new file mode 100644 index 0000000000..8fad2ec5d1 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f658.rdf @@ -0,0 +1,30 @@ + + + + + + de + Armel + + + + + Bourdonnaye + La + + + + + Tolentino + Marc + + + + + Caiman + + + 10-1997 + Rduction du conditionnement pour les problmes de discrtisation microlocale + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f659.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f659.rdf new file mode 100644 index 0000000000..6f6ab5a04d --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f659.rdf @@ -0,0 +1,30 @@ + + + + + + Beauquier + Bruno + + + + + Hell + Pavol + + + + + Prennes + Stphane + + + + + Sloop + + + 10-1997 + Optimal Wavelength Routed Multicasting + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f66.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f66.rdf new file mode 100644 index 0000000000..78bdf2925c --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f66.rdf @@ -0,0 +1,30 @@ + + + + + + Cleaveland + Rance + + + + + Madelaine + Eric + + + + + Sims + Steve + + + + + Meije + + + 7-1995 + A Front-End Generator for Verification Tools + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f660.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f660.rdf new file mode 100644 index 0000000000..a5d02b5242 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f660.rdf @@ -0,0 +1,18 @@ + + + + + + Thry + Laurent + + + + + Croap + + + 10-1997 + Proving and Computing: a certified version of the Buchberger's algorithm + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f661.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f661.rdf new file mode 100644 index 0000000000..21ed6b6fcf --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f661.rdf @@ -0,0 +1,24 @@ + + + + + + Boissonnat + Jean-Daniel + + + + + P. + Franco + + + + + Prisme + + + 9-1997 + Robust plane sweep for intersecting segments + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f662.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f662.rdf new file mode 100644 index 0000000000..d0728ef3e9 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f662.rdf @@ -0,0 +1,48 @@ + + + + + + de + Armel + + + + + Bourdonnaye + La + + + + + Farhat + Charbel + + + + + Macedo + Antonini + + + + + Magouls + Frdric + + + + + Roux + Franois-Xavier + + + + + Caiman + + + 10-1997 + A non overlapping domain decomposition method for the exterior Helmholtz problem + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f663.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f663.rdf new file mode 100644 index 0000000000..b46c83a1f3 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f663.rdf @@ -0,0 +1,24 @@ + + + + + + Galtier + Jrme + + + + + Penna + Paolo + + + + + Mascotte + + + 4-2001 + Complexity Links Between Matrix Multiplication, Klee's Measure and Call Access Control for Satellite Constellations + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f664.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f664.rdf new file mode 100644 index 0000000000..d6eea01a82 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f664.rdf @@ -0,0 +1,35 @@ + + + + + + Altman + Eitan + + + + + Gaujal + Bruno + + + + + Hordijk + Arie + + + + + Sloop + + + + + Mistral + + + 9-1997 + Optimal Open-Loop Control of Vacations, Polling and Service Assignment + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f665.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f665.rdf new file mode 100644 index 0000000000..131c30a88b --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f665.rdf @@ -0,0 +1,18 @@ + + + + + + Carpentier + Romuald + + + + + Sinus + + + 9-1997 + Analyse des erreurs dispersives et dissipatives de quelques schmas advectifs modernes. Application l'aro-acoustique + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f666.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f666.rdf new file mode 100644 index 0000000000..60f013e137 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f666.rdf @@ -0,0 +1,18 @@ + + + + + + Sigelle + Marc + + + + + Pastis + + + 9-1997 + Simultaneous Image Restoration and Hyperparameter Estimation for Incomplete Data by a Cumulant Analysis + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f667.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f667.rdf new file mode 100644 index 0000000000..1575cbe90e --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f667.rdf @@ -0,0 +1,24 @@ + + + + + + Gautier + Laurent + + + + + Diot + Christophe + + + + + Rodeo + + + 9-1997 + MiMaze, a Multiuser Game on the Internet + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f668.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f668.rdf new file mode 100644 index 0000000000..0839c5cda7 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f668.rdf @@ -0,0 +1,24 @@ + + + + + + Boussinot + Frdric + + + + + Susini + Jean-Ferdy + + + + + Meije + + + 9-1997 + The SugarCubes Tool Box + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f669.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f669.rdf new file mode 100644 index 0000000000..d914199969 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f669.rdf @@ -0,0 +1,18 @@ + + + + + + Dal-Zilio + Silvano + + + + + Meije + + + 9-1997 + Implicit Polymorphic Type System for the Blue Calculus + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f67.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f67.rdf new file mode 100644 index 0000000000..acfebcc3a5 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f67.rdf @@ -0,0 +1,42 @@ + + + + + + Santos + Aristide + + + + + Espiau + Bernard + + + + + Rives + Patrick + + + + + Simon + Daniel + + + + + Rigaud + Vincent + + + + + Icare + + + 7-1995 + Sensor-Based Control of Holonomic Autonomous Underwater Vehicles + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f670.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f670.rdf new file mode 100644 index 0000000000..d5054ecd22 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f670.rdf @@ -0,0 +1,18 @@ + + + + + + Merlet + Jean-Pierre + + + + + Prisme + + + 9-1997 + Estimation efficace des caractristiques de robots parallles: Extremums des raideurs et des coordonnes, vitesses, forces articulaires et Singularits dans un espace de travail en translation + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f671.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f671.rdf new file mode 100644 index 0000000000..736f000866 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f671.rdf @@ -0,0 +1,24 @@ + + + + + + Merlet + Nicolas + + + + + Zerubia + Josiane + + + + + Pastis + + + 8-1997 + Integration of global information for roads detection in satellite images + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f672.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f672.rdf new file mode 100644 index 0000000000..73d862082a --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f672.rdf @@ -0,0 +1,24 @@ + + + + + + Piperno + Serge + + + + + Farhat + Charbel + + + + + Caiman + + + 9-1997 + Design and Evaluation of Staggered Partitioned Procedures for Fluid-Structure Interaction Simulations + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f673.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f673.rdf new file mode 100644 index 0000000000..4c0bc41fb1 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f673.rdf @@ -0,0 +1,41 @@ + + + + + + May + Martin + + + + + Bolot + Jean-Chrysostome + + + + + Diot + Christophe + + + + + Jean-Marie + Alain + + + + + Mistral + + + + + Rodeo + + + 8-1997 + 1-Bit Schemes for Service Discrimination in the Internet: Analysis and Evaluation + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f674.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f674.rdf new file mode 100644 index 0000000000..cf931bef30 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f674.rdf @@ -0,0 +1,30 @@ + + + + + + Piperno + Serge + + + + + Remaki + Malika + + + + + Fezoui + Loula + + + + + Caiman + + + 4-2001 + A centered second-order finite volume scheme for the heterogeneous Maxwell equations in three dimensions on arbitrary unstructured meshes + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f675.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f675.rdf new file mode 100644 index 0000000000..e50fc5d7ef --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f675.rdf @@ -0,0 +1,36 @@ + + + + + + Liu + Zhen + + + + + Nain + Philippe + + + + + Towsley + Don + + + + + Zhang + Zhi-Li + + + + + Mistral + + + 8-1997 + Asymptotic Behavior of a Multiplexer Fed by a Long-Range Dependent Process + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f676.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f676.rdf new file mode 100644 index 0000000000..49dc1dddf2 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f676.rdf @@ -0,0 +1,24 @@ + + + + + + Faugeras + Olivier + + + + + Papadopoulo + Theodore + + + + + Robotvis + + + 7-1997 + Grassmann-Cayley algebra for modeling systems of cameras and the algebraic equations of the manifold of trifocal tensors + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f677.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f677.rdf new file mode 100644 index 0000000000..c87fe5c4e5 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f677.rdf @@ -0,0 +1,24 @@ + + + + + + Altman + Eitan + + + + + Traore + Karim + + + + + Mistral + + + 7-1997 + On the Integration of Best-Effort and Guaranteed Performance Services + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f678.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f678.rdf new file mode 100644 index 0000000000..f4cb42e277 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f678.rdf @@ -0,0 +1,24 @@ + + + + + + Faugeras + Olivier + + + + + Papadopoulo + Theodore + + + + + Robotvis + + + 7-1997 + A nonlinear method for estimating the projective geometry of three views + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f679.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f679.rdf new file mode 100644 index 0000000000..01a53c62b2 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f679.rdf @@ -0,0 +1,24 @@ + + + + + + Diot + Christophe + + + + + Gagnon + Francois + + + + + Rodeo + + + 7-1997 + Impact of Out-of-Sequence Processing on the Performance of Data Transmission + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f68.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f68.rdf new file mode 100644 index 0000000000..fa2ec5b036 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f68.rdf @@ -0,0 +1,30 @@ + + + + + + Amadio + Roberto + + + + + Boudol + Grard + + + + + Lhoussaine + Cdric + + + + + Mimosa + + + 11-2000 + The Receptive Distributed $\pi$-Calculus + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f680.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f680.rdf new file mode 100644 index 0000000000..d7efe2f26a --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f680.rdf @@ -0,0 +1,24 @@ + + + + + + Jaczynski + Michel + + + + + Trousse + Brigitte + + + + + Aid + + + 7-1997 + CBR*Tools : une bibliothque objet pour l'indexation des cas par situation comportementale + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f681.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f681.rdf new file mode 100644 index 0000000000..b105244c8f --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f681.rdf @@ -0,0 +1,30 @@ + + + + + + Boissonnat + Jean-Daniel + + + + + Devillers + Olivier + + + + + Lazard + Sylvain + + + + + Prisme + + + 7-1997 + Motion Planning of Legged Robots + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f682.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f682.rdf new file mode 100644 index 0000000000..b9877b9d41 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f682.rdf @@ -0,0 +1,24 @@ + + + + + + Bronnimann + Herv + + + + + Z. + Ioannis + + + + + Prisme + + + 7-1997 + Computing exact geometric predicates using modular arithmetic with single precision + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f683.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f683.rdf new file mode 100644 index 0000000000..cdab581b8c --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f683.rdf @@ -0,0 +1,18 @@ + + + + + + Z. + Ioannis + + + + + Safir + + + 7-1997 + How to count efficiently all affine roots of a polynomial system + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f684.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f684.rdf new file mode 100644 index 0000000000..cad52d06d0 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f684.rdf @@ -0,0 +1,18 @@ + + + + + + Lucido + Laurence + + + + + Robotvis + + + 7-1997 + Vers la navigation rfrence terrain par mise en correspondance de cartes bathymtriques + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f685.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f685.rdf new file mode 100644 index 0000000000..d82e8e0240 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f685.rdf @@ -0,0 +1,18 @@ + + + + + + L. + Georgy + + + + + Pastis + + + 7-1997 + Gibbs fields with multiple pairwise pixel interactions for texture simulation and segmentation + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f686.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f686.rdf new file mode 100644 index 0000000000..a50d209985 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f686.rdf @@ -0,0 +1,24 @@ + + + + + + Baccelli + Franois + + + + + R. + D. + + + + + Mistral + + + 6-1997 + Rare Events for Stationary Processes + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f687.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f687.rdf new file mode 100644 index 0000000000..4dd24770db --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f687.rdf @@ -0,0 +1,48 @@ + + + + + + Chazelle + Bernard + + + + + Devillers + Olivier + + + + + Hurtado + Ferran + + + + + Mora + Merc + + + + + Sacristn + Vera + + + + + Teillaud + Monique + + + + + Prisme + + + 4-2001 + Splitting a Delaunay Triangulation in Linear Time + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f688.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f688.rdf new file mode 100644 index 0000000000..ab9d1dc51e --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f688.rdf @@ -0,0 +1,24 @@ + + + + + + Butt + Paolo + + + + + Picco + Pierre + + + + + Sysdys + + + 6-1997 + Large deviation principle for one dimensional vector spin models with Kac potentials + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f689.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f689.rdf new file mode 100644 index 0000000000..0d82fddf71 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f689.rdf @@ -0,0 +1,36 @@ + + + + + + Lucido + Laurence + + + + + Deriche + Rachid + + + + + Alvarez + Luis + + + + + Rigaud + Vincent + + + + + Robotvis + + + 6-1997 + Sur quelques schmas numriques pour la rsolution d'quations aux drives partielles pour le traitement d'images + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f69.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f69.rdf new file mode 100644 index 0000000000..6676ff39a8 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f69.rdf @@ -0,0 +1,30 @@ + + + + + + Kato + Zoltan + + + + + Zerubia + Josiane + + + + + Berthod + Marc + + + + + Pastis + + + 4-1995 + Unsupervised Parallel Image Classification Using a Hierarchical Markovian Model + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f690.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f690.rdf new file mode 100644 index 0000000000..a5a974dc8b --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f690.rdf @@ -0,0 +1,35 @@ + + + + + + Altman + Eitan + + + + + Gaujal + Bruno + + + + + Hordijk + Arie + + + + + Sloop + + + + + Mistral + + + 6-1997 + Multimodularity,Convexity and Optimization Properties + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f691.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f691.rdf new file mode 100644 index 0000000000..4e05d74dd0 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f691.rdf @@ -0,0 +1,35 @@ + + + + + + Altman + Eitan + + + + + Gaujal + Bruno + + + + + Hordijk + Arie + + + + + Sloop + + + + + Mistral + + + 6-1997 + Balanced Sequences and Optimal Routing + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f692.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f692.rdf new file mode 100644 index 0000000000..cc4da4c29d --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f692.rdf @@ -0,0 +1,31 @@ + + + + + + Altman + Eitan + + + + + Gaujal + Bruno + + + + + Hordijk + Arie + + + + + Mistral + Sloop + + + 6-1997 + Admission Control in Stochastic Event Graphs + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f693.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f693.rdf new file mode 100644 index 0000000000..221cf47e65 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f693.rdf @@ -0,0 +1,30 @@ + + + + + + Thirion + Jean-Philippe + + + + + Prima + Sylvain + + + + + Subsol + Grard + + + + + Epidaure + + + 6-1997 + Statistical Analysis of Dissymmetry in Volumetric Medical Images + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f694.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f694.rdf new file mode 100644 index 0000000000..f60f6f2f09 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f694.rdf @@ -0,0 +1,24 @@ + + + + + + Cioni + Jean-Pierre + + + + + Remaki + Malika + + + + + Caiman + + + 5-1997 + Comparaison de deux mthodes de volumes finis en lectromagnetisme + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f695.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f695.rdf new file mode 100644 index 0000000000..8169e4cd3a --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f695.rdf @@ -0,0 +1,48 @@ + + + + + + Beauquier + Bruno + + + + + Bermond + Jean-Claude + + + + + Gargano + Luisa + + + + + Hell + Pavol + + + + + Prennes + Stphane + + + + + Vaccaro + Ugo + + + + + Sloop + + + 5-1997 + Graph Problems Arising from Wavelength-Routing in All-Optical Networks + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f696.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f696.rdf new file mode 100644 index 0000000000..c9f55f4b9c --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f696.rdf @@ -0,0 +1,24 @@ + + + + + + PARAGIOS + Nikolaos + + + + + DERICHE + Rachid + + + + + Robotvis + + + 5-1997 + A PDE-based Level-Set Approach for Detection and Tracking of Moving Objects + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f697.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f697.rdf new file mode 100644 index 0000000000..74fdeeaaf0 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f697.rdf @@ -0,0 +1,24 @@ + + + + + + Thirion + Jean-Philippe + + + + + Calmon + Guillaume + + + + + Epidaure + + + 2-1997 + Deformation Analysis to Detect and Quantify Active Lesions in 3D Medical Image Sequences + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f698.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f698.rdf new file mode 100644 index 0000000000..0c89921b43 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f698.rdf @@ -0,0 +1,18 @@ + + + + + + Dieng + Rose + + + + + Acacia + + + 4-1997 + Comparison of Conceptual Graphs for Modelling Knowledge of Multiple Experts : Application to Traffic Accident Analysis + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f699.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f699.rdf new file mode 100644 index 0000000000..26c1357e75 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f699.rdf @@ -0,0 +1,24 @@ + + + + + + Guillard + Herv + + + + + Viozat + Ccile + + + + + Sinus + + + 4-1997 + On the Behavior of Upwind Schemes in the Low Mach Number Limit + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f7.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f7.rdf new file mode 100644 index 0000000000..5faea45d61 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f7.rdf @@ -0,0 +1,30 @@ + + + + + + Baratchart + Laurent + + + + + Berthod + Marc + + + + + Pottier + Loc + + + + + Pastis + + + 10-1995 + Optimization of positive generalized polynomials under l p constraints + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f70.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f70.rdf new file mode 100644 index 0000000000..69450c3c31 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f70.rdf @@ -0,0 +1,18 @@ + + + + + + Lanteri + Stphane + + + + + Sinus + + + 6-1995 + Parallel Solutions of Three-Dimensional Compressible Flows + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f700.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f700.rdf new file mode 100644 index 0000000000..dd28946fec --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f700.rdf @@ -0,0 +1,18 @@ + + + + + + Zuyev + Sergei + + + + + Mistral + + + 3-1997 + Stopping sets: Gamma-type results and hitting properties + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f701.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f701.rdf new file mode 100644 index 0000000000..206829aa46 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f701.rdf @@ -0,0 +1,54 @@ + + + + + + Altman + Eitan + + + + + Bolot + Jean + + + + + Nain + Philippe + + + + + Elouadghiri + Driss + + + + + Erramdani + Mohammed + + + + + Brown + Patrick + + + + + Collange + Denis + + + + + Mistral + + + 3-1997 + Performance Modeling of TCP/IP in a Wide-Area Network + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f702.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f702.rdf new file mode 100644 index 0000000000..8dab0a7f77 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f702.rdf @@ -0,0 +1,24 @@ + + + + + + Bronnimann + Herv + + + + + Yvinec + Mariette + + + + + Prisme + + + 3-1997 + Efficient Exact Evaluation of Signs of Determinants + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f703.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f703.rdf new file mode 100644 index 0000000000..52920f15b4 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f703.rdf @@ -0,0 +1,24 @@ + + + + + + Rideau + Laurence + + + + + Thry + Laurent + + + + + Croap + + + 3-1997 + Interactive Programming Environment for ML + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f704.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f704.rdf new file mode 100644 index 0000000000..4ed8ada048 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f704.rdf @@ -0,0 +1,24 @@ + + + + + + Shekarforoush + Hassan + + + + + Zerubia + Josiane + + + + + Pastis + + + 3-1997 + PERSIA: Manuel Utilisateur + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f705.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f705.rdf new file mode 100644 index 0000000000..b67a0db501 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f705.rdf @@ -0,0 +1,24 @@ + + + + + + Devillers + Olivier + + + + + Gandoin + Pierre-Marie + + + + + Prisme + + + 3-2001 + Compression interactive de maillages triangulaires arbitraires + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f706.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f706.rdf new file mode 100644 index 0000000000..fc399d2b8b --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f706.rdf @@ -0,0 +1,24 @@ + + + + + + Shekarforoush + Hassan + + + + + Zerubia + Josiane + + + + + Pastis + + + 3-1997 + SURPRISE: Manuel Utilisateur + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f707.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f707.rdf new file mode 100644 index 0000000000..8bcfaea060 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f707.rdf @@ -0,0 +1,30 @@ + + + + + + Gerbeau + Jean-Frdric + + + + + Glinsky-Olivier + Nathalie + + + + + Larrouturou + Bernard + + + + + Caiman + + + 3-1997 + Semi-implicit Roe-type fluxes for low-Mach number flows + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f708.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f708.rdf new file mode 100644 index 0000000000..499b45ff68 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f708.rdf @@ -0,0 +1,36 @@ + + + + + + Ait-Hellal + Omar + + + + + Altman + Eitan + + + + + Elouadghiri + Driss + + + + + Erramdani + Mohammed + + + + + Mistral + + + 2-1997 + Performance Evaluation of the Rate-Based Flow Control Mechanism for ABR Service + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f709.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f709.rdf new file mode 100644 index 0000000000..5c8ead902d --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f709.rdf @@ -0,0 +1,24 @@ + + + + + + MORIN + Pascal + + + + + SAMSON + Claude + + + + + Icare + + + 3-1997 + Control of Nonlinear Chained Systems. From the Routh-Hurwitz Stability Criterion to Time-Varying Exponential Stabilizers + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f71.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f71.rdf new file mode 100644 index 0000000000..dd7ef2eac8 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f71.rdf @@ -0,0 +1,24 @@ + + + + + + Bardinet + Eric + + + + + D. + Laurent + + + + + Epidaure + + + 7-1995 + A parametric deformable model to fit unstructured 3D data + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f710.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f710.rdf new file mode 100644 index 0000000000..35ca5c35e5 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f710.rdf @@ -0,0 +1,18 @@ + + + + + + Delingette + Herv + + + + + Epidaure + + + 2-1997 + General Object Reconstruction based on Simplex Meshes + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f711.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f711.rdf new file mode 100644 index 0000000000..4d67f944c5 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f711.rdf @@ -0,0 +1,18 @@ + + + + + + Z. + Ioannis + + + + + Safir + + + 1-1997 + A General Solver Based on Sparse Resultants: Numerical Issues and Kinematic Applications + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f712.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f712.rdf new file mode 100644 index 0000000000..284d31c20b --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f712.rdf @@ -0,0 +1,18 @@ + + + + + + M. + Roberto + + + + + Meije + + + 2-1997 + An asynchronous model of locality, failure, and process mobility + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f713.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f713.rdf new file mode 100644 index 0000000000..797d1a44e0 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f713.rdf @@ -0,0 +1,35 @@ + + + + + + Bossy + Mireille + + + + + Fezoui + Loula + + + + + Piperno + Serge + + + + + Omega + + + + + Caiman + + + 1-1997 + Comparaison d'une mthode stochastique et d'une mthode dterministe appliques l'quation de Burgers + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f714.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f714.rdf new file mode 100644 index 0000000000..d3a36393e6 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f714.rdf @@ -0,0 +1,24 @@ + + + + + + Janson + Svante + + + + + Szpankowski + Wojciech + + + + + Mistral + + + 1-1997 + Analysis of an Asymmetric Leader Election Algorithm + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f715.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f715.rdf new file mode 100644 index 0000000000..97a207f659 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f715.rdf @@ -0,0 +1,18 @@ + + + + + + Viozat + Ccile + + + + + Sinus + + + 1-1997 + Implicit Upwind Schemes for Low Mach Number Compressible Flows + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f716.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f716.rdf new file mode 100644 index 0000000000..2b718266c0 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f716.rdf @@ -0,0 +1,24 @@ + + + + + + Devillers + Olivier + + + + + P. + Franco + + + + + Prisme + + + 4-2001 + Culling a set of points for roundness or cylindricity evaluations + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f717.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f717.rdf new file mode 100644 index 0000000000..e2b1387955 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f717.rdf @@ -0,0 +1,18 @@ + + + + + + Jean-Marie + Alain + + + + + Mistral + + + 1-1997 + The Waiting Time Distribution in Poisson-Driven Deterministic Systems + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f718.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f718.rdf new file mode 100644 index 0000000000..31b6892d72 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f718.rdf @@ -0,0 +1,35 @@ + + + + + + Morin + Pascal + + + + + Pomet + Jean-Baptiste + + + + + Samson + Claude + + + + + Miaou + + + + + Icare + + + 12-1996 + Design of homogeneous time-varying stabilizing control laws for driftless controllable systems via oscillatory approximation of Lie brackets in closed-loop + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f719.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f719.rdf new file mode 100644 index 0000000000..42b9b51f1a --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f719.rdf @@ -0,0 +1,18 @@ + + + + + + Carpentier + Romuald + + + + + Sinus + + + 12-1996 + Le schma de MacCormack sur l'quation d'advection bidimensionnelle. Application au cas test C1 de l'ONERA. + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f72.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f72.rdf new file mode 100644 index 0000000000..1180728a1b --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f72.rdf @@ -0,0 +1,54 @@ + + + + + + Faugeras + Olivier + + + + + Hotz + Bernard + + + + + Mathieu + Herv + + + + + Viville + Thierry + + + + + Zhang + Zhengyou + + + + + Fua + Pascal + + + + + Thron + Eric + + + + + Robotvis + + + 8-1993 + Real time correlation-based stereo: algorithm, implementations and applications + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f720.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f720.rdf new file mode 100644 index 0000000000..b394c282dc --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f720.rdf @@ -0,0 +1,24 @@ + + + + + + Matta + Nada + + + + + Corby + Olivier + + + + + Acacia + + + 12-1996 + Modles Gnriques de Gestion de Conflits dans la Conception Concourante + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f721.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f721.rdf new file mode 100644 index 0000000000..ebe281e6f1 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f721.rdf @@ -0,0 +1,18 @@ + + + + + + Z. + Ioannis + + + + + Safir + + + 12-1996 + Polynomial system solving: the case of a six-atom molecule + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f722.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f722.rdf new file mode 100644 index 0000000000..3e11682830 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f722.rdf @@ -0,0 +1,24 @@ + + + + + + Boissonnat + Jean-Daniel + + + + + de + Eelco + + + + + Prisme + + + 12-1996 + Minkowski Operations For Satellite Antenna Layout + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f723.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f723.rdf new file mode 100644 index 0000000000..19948e2bcb --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f723.rdf @@ -0,0 +1,24 @@ + + + + + + Boissonnat + Jean-Daniel + + + + + Nullans + Stphane + + + + + Prisme + + + 12-1996 + Reconstruction of Geological Structures from Heterogeneous and Sparse Data + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f724.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f724.rdf new file mode 100644 index 0000000000..776151ac45 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f724.rdf @@ -0,0 +1,30 @@ + + + + + + Krissian + Karl + + + + + Malandain + Grgoire + + + + + Ayache + Nicholas + + + + + Epidaure + + + 12-1996 + Directional Anisotropic Diffusion applied to segmentation of vessels in 3D images + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f725.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f725.rdf new file mode 100644 index 0000000000..f656c264cb --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f725.rdf @@ -0,0 +1,30 @@ + + + + + + Chechkin + Gregory + + + + + Friedman + Avner + + + + + Piatnitski + Andrey + + + + + Sysdys + + + 12-1996 + The Boundary-Value Problem in Domains with Very Rapidly Oscillating Boundary + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f726.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f726.rdf new file mode 100644 index 0000000000..aacccc2ba7 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f726.rdf @@ -0,0 +1,24 @@ + + + + + + Piatnitski + Andrey + + + + + Remy + Elisabeth + + + + + Sysdys + + + 12-1996 + Comportement asymptotique du coefficient effectif pour un oprateur alatoire aux diffrences + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f727.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f727.rdf new file mode 100644 index 0000000000..93b6de8d8f --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f727.rdf @@ -0,0 +1,18 @@ + + + + + + Ben + Amel + + + + + Miaou + + + 3-2001 + Identification de fissures droites depuis des mesures frontire incompltes + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f728.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f728.rdf new file mode 100644 index 0000000000..ce56242cf7 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f728.rdf @@ -0,0 +1,18 @@ + + + + + + Delamarre + Quentin + + + + + Robotvis + + + 12-1996 + Modlisation de la main pour sa localisation dans une squence d'images + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f729.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f729.rdf new file mode 100644 index 0000000000..5fc93bee9b --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f729.rdf @@ -0,0 +1,24 @@ + + + + + + Bronnimann + Herv + + + + + Yvinec + Mariette + + + + + Prisme + + + 11-1996 + A complete analysis of Clarkson's algorithm for safe determinant evaluation + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f73.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f73.rdf new file mode 100644 index 0000000000..c6f2da3414 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f73.rdf @@ -0,0 +1,24 @@ + + + + + + Santos + Aristide + + + + + Bitmead + Robert + + + + + Icare + + + 7-1995 + Preserving Linear Design Capabilities in the Nonlinear Control of Nonholonomic Autonomous Underwater Vehicles + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f730.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f730.rdf new file mode 100644 index 0000000000..266f5bd4fd --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f730.rdf @@ -0,0 +1,18 @@ + + + + + + Liu + Zhen + + + + + Mistral + + + 11-1996 + Dynamic Scheduling of Parallel Computations + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f731.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f731.rdf new file mode 100644 index 0000000000..007a65f156 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f731.rdf @@ -0,0 +1,24 @@ + + + + + + Liu + Zhen + + + + + Righter + Rhonda + + + + + Mistral + + + 11-1996 + The Impact of Cell Dropping Policies in ATM Networks + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f732.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f732.rdf new file mode 100644 index 0000000000..1d9a4a7ca3 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f732.rdf @@ -0,0 +1,24 @@ + + + + + + Baccelli + Franois + + + + + Zuyev + Sergei + + + + + Mistral + + + 11-1996 + Poisson-Voronoi Spanning Trees with Applications to the Optimization of Communication Networks + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f733.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f733.rdf new file mode 100644 index 0000000000..94219feb7d --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f733.rdf @@ -0,0 +1,18 @@ + + + + + + Dalle + Olivier + + + + + Sloop + + + 11-1996 + LoadBuilder : a tool for generating and modeling workloads in distributed workstation environments + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f734.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f734.rdf new file mode 100644 index 0000000000..0473245658 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f734.rdf @@ -0,0 +1,18 @@ + + + + + + C. + Benjamin + + + + + Meije + + + 11-1996 + Behavioral Equivalence in the Polymorphic Pi-Calculus + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f735.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f735.rdf new file mode 100644 index 0000000000..f2a04876a8 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f735.rdf @@ -0,0 +1,24 @@ + + + + + + Godart + Cyril + + + + + Vittoria + Maria + + + + + Sinus + + + 11-1996 + Catalyse htrogne pour les coulements hypersoniques. + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f736.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f736.rdf new file mode 100644 index 0000000000..ea217a5fcd --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f736.rdf @@ -0,0 +1,30 @@ + + + + + + Declerck + Jrme + + + + + Feldmar + Jacques + + + + + Ayache + Nicholas + + + + + Epidaure + + + 11-1996 + Definition of a 4D continuous polar transformation for the tracking and the analysis of LV motion + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f737.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f737.rdf new file mode 100644 index 0000000000..fd258b9a58 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f737.rdf @@ -0,0 +1,36 @@ + + + + + + Rellier + Guillaume + + + + + Descombes + Xavier + + + + + Falzon + Frdric + + + + + Zerubia + Josiane + + + + + Ariana + + + 3-2001 + La poursuite de projection pour la classification d'image hyperspectrale texture + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f738.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f738.rdf new file mode 100644 index 0000000000..5052f92c94 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f738.rdf @@ -0,0 +1,30 @@ + + + + + + Coste-Manire + Eve + + + + + Rigaud + Vincent + + + + + al. + et + + + + + Icare + + + 11-1996 + UNION: UNderwater Intelligent Operation and Navigation + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f739.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f739.rdf new file mode 100644 index 0000000000..6541d0a786 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f739.rdf @@ -0,0 +1,18 @@ + + + + + + Boussinot + Frdric + + + + + Meije + + + 10-1996 + Icobj Programming + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f74.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f74.rdf new file mode 100644 index 0000000000..f6201d0dfd --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f74.rdf @@ -0,0 +1,36 @@ + + + + + + Robert + Luc + + + + + Zeller + Cyril + + + + + Faugeras + Olivier + + + + + Hbert + Martial + + + + + Robotvis + + + 6-1995 + Applications of non-metric vision to some visually guided robotics tasks + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f740.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f740.rdf new file mode 100644 index 0000000000..d9983f471a --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f740.rdf @@ -0,0 +1,24 @@ + + + + + + Franois + Charles + + + + + Claude + - + + + + + Icare + + + 11-1996 + Energy Efficient Control of Running Legged Robots. A Case Study : The Planar One-Legged Hopper + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f741.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f741.rdf new file mode 100644 index 0000000000..afb8598d69 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f741.rdf @@ -0,0 +1,30 @@ + + + + + + Baccelli + Franois + + + + + Hasenfuss + Sven + + + + + Schmidt + Volker + + + + + Mistral + + + 10-1996 + Transient and Stationary Waiting Times in (max,+)-Linear Systems with Poisson Input + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f742.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f742.rdf new file mode 100644 index 0000000000..e08d254101 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f742.rdf @@ -0,0 +1,24 @@ + + + + + + Faugeras + Olivier + + + + + Keriven + Renaud + + + + + Robotvis + + + 10-1996 + Variational principles, Surface Evolution, PDE's, level set methods and the Stereo Problem + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f743.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f743.rdf new file mode 100644 index 0000000000..1f7ccca38d --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f743.rdf @@ -0,0 +1,18 @@ + + + + + + Despeyroux + Thierry + + + + + Croap + + + 9-1996 + AS, for Abstract Syntax - Manual - V1.0 + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f744.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f744.rdf new file mode 100644 index 0000000000..124fe436f7 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f744.rdf @@ -0,0 +1,18 @@ + + + + + + Botella + Olivier + + + + + Sinus + + + 10-1996 + Rsolution des quations de Navier-Stokes par des schmas de projection Tchebychev + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f745.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f745.rdf new file mode 100644 index 0000000000..b5f5efe3bd --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f745.rdf @@ -0,0 +1,30 @@ + + + + + + Morris + Robin + + + + + Descombes + Xavier + + + + + Zerubia + Josiane + + + + + Pastis + + + 10-1996 + Fully Bayesian Image Segmentation -- an Engineering Perspective + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f746.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f746.rdf new file mode 100644 index 0000000000..caf15e0cf3 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f746.rdf @@ -0,0 +1,30 @@ + + + + + + Morris + Robin + + + + + Descombes + Xavier + + + + + Zerubia + Josiane + + + + + Pastis + + + 10-1996 + An analysis of some models used in image segmentation + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f747.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f747.rdf new file mode 100644 index 0000000000..ff950da723 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f747.rdf @@ -0,0 +1,35 @@ + + + + + + Touati + Corinne + + + + + Altman + Eitan + + + + + Galtier + Jrme + + + + + Mascotte + + + + + Mistral + + + 9-2001 + On fairness in Bandwidth Allocation + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f748.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f748.rdf new file mode 100644 index 0000000000..c083e6e798 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f748.rdf @@ -0,0 +1,36 @@ + + + + + + Descombes + Xavier + + + + + Morris + Robin + + + + + Zerubia + Josiane + + + + + Berthod + Marc + + + + + Pastis + + + 10-1996 + Estimation of Markov Random Field prior parameters using Markov chain Monte Carlo Maximum Likelihood + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f749.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f749.rdf new file mode 100644 index 0000000000..dafaa98d95 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f749.rdf @@ -0,0 +1,30 @@ + + + + + + Vincent + Rgis + + + + + Moisan + Sabine + + + + + Thonnat + Monique + + + + + Orion + + + 10-1996 + Une bibliothque pour des moteurs de pilotage de programmes + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f75.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f75.rdf new file mode 100644 index 0000000000..2e14391c7d --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f75.rdf @@ -0,0 +1,24 @@ + + + + + + Mathieu + Herv + + + + + Devernay + Frdric + + + + + Robotvis + + + 6-1995 + Systme de miroirs pour la stroscopie + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f750.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f750.rdf new file mode 100644 index 0000000000..8e5d163ada --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f750.rdf @@ -0,0 +1,24 @@ + + + + + + Gaspard + Franois + + + + + Viville + Thierry + + + + + Robotvis + + + 10-1996 + Hierarchical visual perception without calibration + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f751.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f751.rdf new file mode 100644 index 0000000000..5c7942d550 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f751.rdf @@ -0,0 +1,18 @@ + + + + + + Sangiorgi + Davide + + + + + Meije + + + 10-1996 + An interpretation of Typed Objects into Typed -calculus + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f752.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f752.rdf new file mode 100644 index 0000000000..9a4b223dfb --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f752.rdf @@ -0,0 +1,29 @@ + + + + + + Robert + Luc + + + + + Malandain + Grgoire + + + + + Robotvis + + + + + pidaure + + + 10-1996 + Fast Binary Image Processing Using Binary Decision Diagrams + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f753.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f753.rdf new file mode 100644 index 0000000000..7999585062 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f753.rdf @@ -0,0 +1,18 @@ + + + + + + M. + Roberto + + + + + Mimosa + + + n/a-n/a + On the symbolic reduction of processes with cryptographic functions + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f754.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f754.rdf new file mode 100644 index 0000000000..a873d511f5 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f754.rdf @@ -0,0 +1,18 @@ + + + + + + Debiez + Christophe + + + + + Sinus + + + 9-1996 + Contribution l'tude des schmas aux volumes finis dcentrs faible dissipation transverse + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f755.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f755.rdf new file mode 100644 index 0000000000..d7254fbafa --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f755.rdf @@ -0,0 +1,24 @@ + + + + + + Baratchart + Laurent + + + + + Olivi + Martine + + + + + Miaou + + + 9-1996 + Critical points and error rank in best $H_2$ matrix rational approximation of fixed McMillan degree. + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f756.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f756.rdf new file mode 100644 index 0000000000..b67c335204 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f756.rdf @@ -0,0 +1,24 @@ + + + + + + Devillers + Olivier + + + + + P. + Franco + + + + + Prisme + + + 9-1996 + A Probabilistic Analysis of the Power of Arithmetic Filters + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f757.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f757.rdf new file mode 100644 index 0000000000..1e170ed0a7 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f757.rdf @@ -0,0 +1,18 @@ + + + + + + Y. + Victor + + + + + Safir + + + 9-1996 + Numerical Computation of a Polynomial GCD and Extensions + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f758.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f758.rdf new file mode 100644 index 0000000000..008293af76 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f758.rdf @@ -0,0 +1,24 @@ + + + + + + Finta + Lucian + + + + + Liu + Zhen + + + + + Mistral + + + 8-1996 + Complexity of Task Graph Scheduling with Fixed Communication Capacity + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f759.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f759.rdf new file mode 100644 index 0000000000..8dac5aa4f9 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f759.rdf @@ -0,0 +1,24 @@ + + + + + + Tancredi + Luc + + + + + Teillaud + Monique + + + + + Prisme + + + 8-1996 + Gomtrie synthtique et robots parallles + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f76.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f76.rdf new file mode 100644 index 0000000000..73880801e3 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f76.rdf @@ -0,0 +1,30 @@ + + + + + + Subsol + Grard + + + + + Thirion + Jean-Philippe + + + + + Ayache + Nicholas + + + + + Epidaure + + + 5-1995 + A General Scheme for Automatically Building 3D Morphometric Anatomical Atlases: application to a Skull Atlas + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f760.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f760.rdf new file mode 100644 index 0000000000..eb8c7fef00 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f760.rdf @@ -0,0 +1,18 @@ + + + + + + M. + Ellen + + + + + Meije + + + 7-1996 + Latch Optimization in Circuits Generated from High-level Descriptions + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f761.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f761.rdf new file mode 100644 index 0000000000..cdf4940ef8 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f761.rdf @@ -0,0 +1,18 @@ + + + + + + Mer + Katherine + + + + + Sinus + + + 7-1996 + Fourth-Order Dissipation on Unstructured Anisotropic meshes for Convection-Diffusion problems + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f762.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f762.rdf new file mode 100644 index 0000000000..3164cc7f26 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f762.rdf @@ -0,0 +1,24 @@ + + + + + + Francescatto + Jrme + + + + + Dervieux + Alain + + + + + Sinus + + + 7-1996 + A Semi-Coarsening Strategy for Unstructured MG with Agglomeration + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f763.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f763.rdf new file mode 100644 index 0000000000..ed8974c48d --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f763.rdf @@ -0,0 +1,24 @@ + + + + + + Naciri + Hanane + + + + + Rideau + Laurence + + + + + Lemme + + + 3-2001 + Affichage et manipulation interactive de formules mathmatiques dans les documents structurs + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f764.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f764.rdf new file mode 100644 index 0000000000..e0173ced90 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f764.rdf @@ -0,0 +1,24 @@ + + + + + + Marco + Nathalie + + + + + Dervieux + Alain + + + + + Sinus + + + 7-1996 + Multilevel Parametrization for Aerodynamical Optimization of 3D Shapes + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f765.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f765.rdf new file mode 100644 index 0000000000..e8fbd60bf6 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f765.rdf @@ -0,0 +1,42 @@ + + + + + + Marco + Nathalie + + + + + Godart + Cyril + + + + + Dsidri + Jean-Antoine + + + + + Mantel + Bertrand + + + + + Priaux + Jacques + + + + + Sinus + + + 7-1996 + A genetic algorithm compared with a gradient-based method for the solution of an active-control model problem + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f766.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f766.rdf new file mode 100644 index 0000000000..f3ace03fb1 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f766.rdf @@ -0,0 +1,18 @@ + + + + + + Pomet + Jean-Baptiste + + + + + Miaou + + + 12-1995 + On Dynamic Feedback Linearization of Four-dimensional Affine Control Systems with Two Inputs + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f767.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f767.rdf new file mode 100644 index 0000000000..e74982a5cb --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f767.rdf @@ -0,0 +1,24 @@ + + + + + + Pourtallier + Odile + + + + + Tidball + Mabel + + + + + Miaou + + + 7-1996 + Approximation of the value function for a class of differential games with target + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f768.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f768.rdf new file mode 100644 index 0000000000..9c9b31432a --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f768.rdf @@ -0,0 +1,30 @@ + + + + + + Grimm + Jos + + + + + Pottier + Loc + + + + + Rostaing-Schmidt + Nicole + + + + + Safir + + + 2-1996 + Optimal time and minimum space-time product for reversing a certain class of programs + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f769.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f769.rdf new file mode 100644 index 0000000000..7524bee34a --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f769.rdf @@ -0,0 +1,24 @@ + + + + + + Bolot + Jean-Chrysostome + + + + + Grossglauser + Matthias + + + + + Rodeo + + + 3-1996 + Parsimonious Markov Modeling of Processes with Long Range Dependence + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f77.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f77.rdf new file mode 100644 index 0000000000..b039106b05 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f77.rdf @@ -0,0 +1,18 @@ + + + + + + Katz + Matthew + + + + + Prisme + + + 6-1995 + 3-D Vertical Ray Shooting and 2-D Point Enclosure, Range Searching, and Arc Shooting Amidst Convex Fat Objects + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f770.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f770.rdf new file mode 100644 index 0000000000..f319b4bda2 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f770.rdf @@ -0,0 +1,18 @@ + + + + + + Vanwelkenhuysen + Johan + + + + + Acacia + + + 4-1996 + Cooperative Design + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f771.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f771.rdf new file mode 100644 index 0000000000..f3aa6edc32 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f771.rdf @@ -0,0 +1,18 @@ + + + + + + M. + Mabel + + + + + Miaou + + + 7-1996 + Robustness of convex optimization with application to controled Markov chains + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f772.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f772.rdf new file mode 100644 index 0000000000..eeba1cbb55 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f772.rdf @@ -0,0 +1,24 @@ + + + + + + Delmas + Olivier + + + + + Perennes + Stphane + + + + + Sloop + + + 7-1996 + Circuit-switched gossiping in the 3-dimensional torus networks + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f773.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f773.rdf new file mode 100644 index 0000000000..941d04f771 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f773.rdf @@ -0,0 +1,18 @@ + + + + + + Zhang + Zhengyou + + + + + Robotvis + + + 7-1996 + Determining the Epipolar Geometry and its Uncertainty: A Review + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f774.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f774.rdf new file mode 100644 index 0000000000..1a4714c4b2 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f774.rdf @@ -0,0 +1,18 @@ + + + + + + Boussinot + Frdric + + + + + Mimosa + + + 2-2001 + Java Fair Threads + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f775.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f775.rdf new file mode 100644 index 0000000000..22e6ef6c92 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f775.rdf @@ -0,0 +1,18 @@ + + + + + + TIDBALL + Mabel + + + + + Miaou + + + 7-1996 + Rate of convergence of a numerical procedure for impulsive control problems + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f776.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f776.rdf new file mode 100644 index 0000000000..b04ab6bf67 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f776.rdf @@ -0,0 +1,36 @@ + + + + + + Bermond + Jean-Claude + + + + + Darrot + Eric + + + + + Delmas + Olivier + + + + + Perennes + Stphane + + + + + Sloop + + + 7-1996 + Hamilton circuits in the directed Butterfly network + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f777.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f777.rdf new file mode 100644 index 0000000000..734c58762c --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f777.rdf @@ -0,0 +1,18 @@ + + + + + + Zhang + Zhengyou + + + + + Robotvis + + + 12-1993 + Le problme de la mise en correspondance : L'tat de l'art + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f778.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f778.rdf new file mode 100644 index 0000000000..4093fe273a --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f778.rdf @@ -0,0 +1,36 @@ + + + + + + Bermond + Jean-Claude + + + + + Darrot + Eric + + + + + Delmas + Olivier + + + + + Perennes + Stphane + + + + + Sloop + + + 6-1996 + Hamilton cycle decomposition of the Butterfly network + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f779.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f779.rdf new file mode 100644 index 0000000000..da5d240baf --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f779.rdf @@ -0,0 +1,24 @@ + + + + + + Dery + Anne-Marie + + + + + Rideau + Laurence + + + + + Croap + + + 6-1996 + Distributed Architecture for Programming Environments + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f78.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f78.rdf new file mode 100644 index 0000000000..c650af45f8 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f78.rdf @@ -0,0 +1,24 @@ + + + + + + Nielsen + Franck + + + + + Yvinec + Mariette + + + + + Prisme + + + 5-1995 + An Output-Sensitive Convex Hull Algorithm for Planar Objects + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f780.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f780.rdf new file mode 100644 index 0000000000..7fa290c1c8 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f780.rdf @@ -0,0 +1,18 @@ + + + + + + M. + Roberto + + + + + Meije + + + 6-1996 + On Bisimulations for the Asynchronous pi-calculus + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f781.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f781.rdf new file mode 100644 index 0000000000..4d21995fdb --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f781.rdf @@ -0,0 +1,30 @@ + + + + + + Descombes + Xavier + + + + + Morris + Robin + + + + + Zerubia + Josiane + + + + + Pastis + + + 6-1996 + Quelques amliorations la segmentation d'images bayesienne + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f782.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f782.rdf new file mode 100644 index 0000000000..602122f99f --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f782.rdf @@ -0,0 +1,12 @@ + + + + + + Orion + + + 3-2001 + AI techniques for VSIS human tracker + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f783.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f783.rdf new file mode 100644 index 0000000000..95f946853c --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f783.rdf @@ -0,0 +1,24 @@ + + + + + + Elkadi + Mohamed + + + + + Mourrain + Bernard + + + + + Safir + + + 5-1996 + Approche Effective des Rsidus Algbriques + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f784.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f784.rdf new file mode 100644 index 0000000000..4a4424f325 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f784.rdf @@ -0,0 +1,18 @@ + + + + + + Zhang + Zhengyou + + + + + Robotvis + + + 5-1996 + A New Multistage Approach to Motion and Structure Estimation: From Essential Parameters to Euclidean Motion Via Fundamental Matrix + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f785.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f785.rdf new file mode 100644 index 0000000000..dfc350433b --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f785.rdf @@ -0,0 +1,18 @@ + + + + + + Gaujal + Bruno + + + + + Sloop + + + 2-1996 + Liveness in Weighted Routed Nets + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f786.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f786.rdf new file mode 100644 index 0000000000..9a9daeed81 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f786.rdf @@ -0,0 +1,24 @@ + + + + + + Boissonnat + Jean-Daniel + + + + + Lazard + Sylvain + + + + + Prisme + + + 5-1996 + A polynomial-time algorithm for computing a shortest path of bounded curvature amidst moderate obstacles + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f787.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f787.rdf new file mode 100644 index 0000000000..e3f9271764 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f787.rdf @@ -0,0 +1,18 @@ + + + + + + Y. + Victor + + + + + Safir + + + 6-1996 + On Approximating Complex Polynomial Zeros: Modified Quadtree (Weyl's) Construction and Improved Newton's Iteration + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f788.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f788.rdf new file mode 100644 index 0000000000..2003dbcc1c --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f788.rdf @@ -0,0 +1,18 @@ + + + + + + Giacometti + Jean-Patrick + + + + + Rodeo + + + 4-1996 + Chimaera 1.0 Tutorial & Reference + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f789.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f789.rdf new file mode 100644 index 0000000000..be87949243 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f789.rdf @@ -0,0 +1,18 @@ + + + + + + E. + Ercan + + + + + Ariana + + + 2-2001 + Modelling SAR Images with a Generalisation of the Rayleigh Distribution + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f79.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f79.rdf new file mode 100644 index 0000000000..0c94b85b0c --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f79.rdf @@ -0,0 +1,24 @@ + + + + + + Rapaport + Alain + + + + + Gouz + Jean-Luc + + + + + Comore + + + 11-2000 + Practical and polytopic observers for nonlinear uncertain systems + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f790.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f790.rdf new file mode 100644 index 0000000000..0cdcd6b43b --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f790.rdf @@ -0,0 +1,30 @@ + + + + + + Urago + Sabine + + + + + Zerubia + Josiane + + + + + Berthod + Marc + + + + + Pastis + + + 4-1996 + Modlisation markovienne pour le groupement de contours avec une coopration contours-rgions + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f791.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f791.rdf new file mode 100644 index 0000000000..f2f1bfbf17 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f791.rdf @@ -0,0 +1,18 @@ + + + + + + Fidrich + Marta + + + + + Epidaure + + + 3-1996 + Iso-surface Extraction in 4D with Applications related to Scale Space + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f792.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f792.rdf new file mode 100644 index 0000000000..47147180ff --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f792.rdf @@ -0,0 +1,24 @@ + + + + + + Grossglauser + Matthias + + + + + Bolot + Jean-Chrysostome + + + + + Rodeo + + + 3-1996 + On the Relevance of Long-Range Dependence in Network Traffic + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f793.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f793.rdf new file mode 100644 index 0000000000..ad35a2733b --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f793.rdf @@ -0,0 +1,18 @@ + + + + + + J. + Matthew + + + + + Prisme + + + 5-1996 + On Piercing Sets of Objects + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f794.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f794.rdf new file mode 100644 index 0000000000..f27187547e --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f794.rdf @@ -0,0 +1,24 @@ + + + + + + Boreale + Michele + + + + + Sangiorgi + Davide + + + + + Meije + + + 4-1996 + Some Congruence Properties for \pi-calculus Bisimilarities + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f795.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f795.rdf new file mode 100644 index 0000000000..14b5985392 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f795.rdf @@ -0,0 +1,24 @@ + + + + + + Devillers + Olivier + + + + + J. + Matthew + + + + + Prisme + + + 4-1996 + Optimal Line Bipartitions of Point Sets + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f796.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f796.rdf new file mode 100644 index 0000000000..3cf44326f7 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f796.rdf @@ -0,0 +1,24 @@ + + + + + + Baratchart + Laurent + + + + + B. + Edward + + + + + Miaou + + + 4-1996 + A criterion for uniqueness of a critical point in H 2 rational approximation + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f797.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f797.rdf new file mode 100644 index 0000000000..be4f322042 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f797.rdf @@ -0,0 +1,36 @@ + + + + + + Bouali + Amar + + + + + Ressouche + Annie + + + + + Roy + Valrie + + + + + de + Robert + + + + + Meije + + + 4-1996 + The FCTOOLS User Manual (Version 1.0) + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f798.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f798.rdf new file mode 100644 index 0000000000..c7bf39a3a2 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f798.rdf @@ -0,0 +1,18 @@ + + + + + + El + Rachid + + + + + Mistral + + + 2-2001 + Perturbation of Multivariable Linear Quadratic Systems with Jump Parameters and Hybrid Controls + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f799.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f799.rdf new file mode 100644 index 0000000000..55e936c383 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f799.rdf @@ -0,0 +1,24 @@ + + + + + + Boussinot + Frdric + + + + + Hazard + Laurent + + + + + Meije + + + 5-1996 + Reactive Scripts + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f8.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f8.rdf new file mode 100644 index 0000000000..638bbb9b2f --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f8.rdf @@ -0,0 +1,18 @@ + + + + + + Bertrand + Pierre + + + + + Omega + + + 9-1995 + On Estimating Stochastic Volatility of a Diffusion Process I. Comparison of Haar basis Estimator and some Kernel Estimators. + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f80.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f80.rdf new file mode 100644 index 0000000000..d5731212ba --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f80.rdf @@ -0,0 +1,18 @@ + + + + + + Altman + Eitan + + + + + Mistral + + + 5-1995 + Constrained Markov Decision Processes + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f800.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f800.rdf new file mode 100644 index 0000000000..32d3a8a1cc --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f800.rdf @@ -0,0 +1,30 @@ + + + + + + Liu + Zhen + + + + + Nain + Philippe + + + + + Towsley + Don + + + + + Mistral + + + 4-1996 + Exponential Bounds with Applications to Call Admission + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f801.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f801.rdf new file mode 100644 index 0000000000..f3a46bb192 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f801.rdf @@ -0,0 +1,24 @@ + + + + + + Leblond + Juliette + + + + + Olivi + Martine + + + + + Miaou + + + 4-1996 + Weighted H 2 approximation of transfer functions + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f802.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f802.rdf new file mode 100644 index 0000000000..6678136ea5 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f802.rdf @@ -0,0 +1,18 @@ + + + + + + Fraer + Ranan + + + + + Croap + + + 3-1996 + Tracing the Origins of Verification Conditions + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f803.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f803.rdf new file mode 100644 index 0000000000..a18a2272c7 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f803.rdf @@ -0,0 +1,18 @@ + + + + + + Pomet + Jean-Baptiste + + + + + Miaou + + + 12-1995 + On Dynamic Feedback Linearization of Four-dimensional Affine Control Systems with Two Inputs + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f804.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f804.rdf new file mode 100644 index 0000000000..2ba0ed461f --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f804.rdf @@ -0,0 +1,18 @@ + + + + + + Nielsen + Franck + + + + + Prisme + + + 4-1996 + Fast Stabbing of Boxes in High Dimensions + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f805.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f805.rdf new file mode 100644 index 0000000000..4def8bf624 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f805.rdf @@ -0,0 +1,18 @@ + + + + + + G. + Renzo + + + + + Omega + + + 3-1996 + Jumps and Diffusions in Volatility: It Takes Two to Tango. + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f806.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f806.rdf new file mode 100644 index 0000000000..a9aff671bf --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f806.rdf @@ -0,0 +1,18 @@ + + + + + + Debiez + Christophe + + + + + Sinus + + + 2-1996 + Upwind approximations with weak dissipation for hyperbolic problems + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f807.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f807.rdf new file mode 100644 index 0000000000..35a6301073 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f807.rdf @@ -0,0 +1,29 @@ + + + + + + Baccelli + Franois + + + + + Gaujal + Bruno + + + + + Sloop + + + + + Mistral + + + 3-1996 + Liveness in Free-Choice Petri Nets An Algebraic Approach + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f808.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f808.rdf new file mode 100644 index 0000000000..f5bf769eea --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f808.rdf @@ -0,0 +1,30 @@ + + + + + + Devillers + Olivier + + + + + Pion + Sylvain + + + + + Teillaud + Monique + + + + + Prisme + + + 2-2001 + Walking in a triangulation + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f809.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f809.rdf new file mode 100644 index 0000000000..9f41ff7f39 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f809.rdf @@ -0,0 +1,18 @@ + + + + + + de + Mark + + + + + Prisme + + + 3-1996 + Computing the Maximum Overlap of Two Convex Polygons Under Translations + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f81.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f81.rdf new file mode 100644 index 0000000000..9ff9337f33 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f81.rdf @@ -0,0 +1,42 @@ + + + + + + Faugeras + Olivier + + + + + Laveau + Stphane + + + + + Robert + Luc + + + + + Csurka + Gabriella + + + + + Zeller + Cyril + + + + + Robotvis + + + 6-1995 + 3-D Reconstruction of Urban Scenes from Sequences of Images + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f810.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f810.rdf new file mode 100644 index 0000000000..b68cc41128 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f810.rdf @@ -0,0 +1,18 @@ + + + + + + Carpentier + Romuald + + + + + Sinus + + + 2-1996 + Comparaison entre des schmas 2D de type Roe sur maillage rgulier triangle ou quadrangle. I: calcul au sommet - pentes centres + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f811.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f811.rdf new file mode 100644 index 0000000000..8a195a59d2 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f811.rdf @@ -0,0 +1,18 @@ + + + + + + Francescatto + Jrme + + + + + Sinus + + + 3-1996 + Modles bas-Reynolds appliqus une couche limite compressible + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f812.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f812.rdf new file mode 100644 index 0000000000..6da07e1eab --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f812.rdf @@ -0,0 +1,24 @@ + + + + + + Ciccoli + M.C. + + + + + Dsidri + J.A. + + + + + Sinus + + + 3-1996 + Spectral analysis of Defect-Correction algorithms for hyperbolic equations + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f813.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f813.rdf new file mode 100644 index 0000000000..9bc693ba20 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f813.rdf @@ -0,0 +1,18 @@ + + + + + + Viville + Thierry + + + + + Robotvis + + + 3-1996 + Mascotte : A few Maple Routines for Real-Time Code Generation + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f814.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f814.rdf new file mode 100644 index 0000000000..155f77ba51 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f814.rdf @@ -0,0 +1,24 @@ + + + + + + Koobus + Bruno + + + + + Farhat + Charbel + + + + + Sinus + + + 3-1996 + Time-Accurate Schemes for Computing Two- and Three-Dimensional Viscous Fluxes on Unstructured Dynamic Meshes + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f815.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f815.rdf new file mode 100644 index 0000000000..2f15e67770 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f815.rdf @@ -0,0 +1,18 @@ + + + + + + Torkhani + Nabil + + + + + Miaou + + + 1-1996 + Robust interpolation and approximation for disc algebra functions on subsets of the circle + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f816.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f816.rdf new file mode 100644 index 0000000000..b106b35293 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f816.rdf @@ -0,0 +1,12 @@ + + + + + + Prcovic + N. + + + Un algorithme distribu pour la rsolution des problmes de contraintes en domaines finis + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f817.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f817.rdf new file mode 100644 index 0000000000..84e03eb136 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f817.rdf @@ -0,0 +1,24 @@ + + + + + + Pennec + Xavier + + + + + Ayache + Nicholas + + + + + Epidaure + + + 3-1996 + Randomness and Geometric Features in Computer Vision + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f818.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f818.rdf new file mode 100644 index 0000000000..7863d92b09 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f818.rdf @@ -0,0 +1,30 @@ + + + + + + Tancredi + Luc + + + + + Teillaud + Monique + + + + + Devillers + Olivier + + + + + Prisme + + + 2-1996 + Symbolic Elimination for parallel manipulators + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f819.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f819.rdf new file mode 100644 index 0000000000..f825ee87d2 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f819.rdf @@ -0,0 +1,18 @@ + + + + + + Merlet + Jean-Pierre + + + + + Prisme + + + 3-1996 + Modlisation gomtrique de mcanismes de suspension automobile + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f82.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f82.rdf new file mode 100644 index 0000000000..b9b228f79b --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f82.rdf @@ -0,0 +1,30 @@ + + + + + + Gaujal + Bruno + + + + + Jean-Marie + Alain + + + + + Mairesse + Jean + + + + + Mistral + + + 6-1995 + Minimal Representation of Uniform Recurrence Equations + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f820.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f820.rdf new file mode 100644 index 0000000000..bb45179d3b --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f820.rdf @@ -0,0 +1,24 @@ + + + + + + Bardinet + Eric + + + + + D. + Laurent + + + + + Epidaure + + + 2-1996 + Analyzing the deformation of the left ventricle of the heart with a parametric deformable model + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f821.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f821.rdf new file mode 100644 index 0000000000..be1006015e --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f821.rdf @@ -0,0 +1,18 @@ + + + + + + Papadopoulo + Tho + + + + + Robotvis + + + 1-1996 + Motion Analysis of 3D Rigid Curves from Monocular Image Sequences + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f822.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f822.rdf new file mode 100644 index 0000000000..c33770b718 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f822.rdf @@ -0,0 +1,30 @@ + + + + + + Eyssette + Frdric + + + + + Faure + Christle + + + + + Charles + Jean + + + + + Safir + + + 2-1996 + Applicabilit de la diffrentiation automatique un systme d'quations aux drives partielles rgissant les phnomnes thermohydrauliques dans un tube chauffant. + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f823.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f823.rdf new file mode 100644 index 0000000000..309f381db2 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f823.rdf @@ -0,0 +1,48 @@ + + + + + + Devillers + Olivier + + + + + Estkowski + Regina + + + + + Gandoin + Pierre-Marie + + + + + Hurtado + Ferran + + + + + Ramos + Pedro + + + + + Vera + and + + + + + Prisme + + + 2-2001 + Minimal Set of Constraints for 2D Constrained Delaunay Reconstruction + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f824.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f824.rdf new file mode 100644 index 0000000000..070d3f5647 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f824.rdf @@ -0,0 +1,18 @@ + + + + + + Alpay + Laurence + + + + + Acacia + + + 2-1996 + Modelling of reasoning strategies, and representation through conceptual graphs: application to accidentology + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f825.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f825.rdf new file mode 100644 index 0000000000..5740b84824 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f825.rdf @@ -0,0 +1,24 @@ + + + + + + Felty + Amy + + + + + Thry + Laurent + + + + + Croap + + + 2-1996 + Interactive Theorem Proving with Temporal Logic + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f826.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f826.rdf new file mode 100644 index 0000000000..e8625832ae --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f826.rdf @@ -0,0 +1,13 @@ + + + + + + Depeyre + S. + + + 6-1995 + Stability analysis for finite volume schemes on rectangular and triangular meshes applied to the two-dimensionnal Maxwell system + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f827.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f827.rdf new file mode 100644 index 0000000000..a9b4ae1e4a --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f827.rdf @@ -0,0 +1,36 @@ + + + + + + Bermudez + A. + + + + + Dervieux + A. + + + + + Dsidri + J.A. + + + + + Vazquez + M.E. + + + + + Sinus + + + 12-1995 + Upwind schemes for the two-dimensional shallow water equations with variable depth using unstructured meshes + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f828.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f828.rdf new file mode 100644 index 0000000000..1a4885060f --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f828.rdf @@ -0,0 +1,24 @@ + + + + + + Morin + Pascal + + + + + Samson + Claude + + + + + Icare + + + 2-1996 + Application of Backstepping Techniques to the Time-varying Exponential Stabilization of Chained Form Systems + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f829.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f829.rdf new file mode 100644 index 0000000000..264c0d2618 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f829.rdf @@ -0,0 +1,48 @@ + + + + + + Braun + T. + + + + + Chrisment + I. + + + + + Diot + C. + + + + + Gagnon + F. + + + + + Gautier + L. + + + + + Hoschka + P. + + + + + Rodeo + + + 1-1996 + ALFred, an ALF/ILP Protocol Compiler forDistributed Application Automated Design. + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f83.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f83.rdf new file mode 100644 index 0000000000..d9f569fb41 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f83.rdf @@ -0,0 +1,30 @@ + + + + + + Campillo + Fabien + + + + + Crou + Frdric + + + + + Le + Franois + + + + + Mefisto + + + 6-1995 + Particle and cell approximationsfor nonlinear filtering + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f830.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f830.rdf new file mode 100644 index 0000000000..46992c69e3 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f830.rdf @@ -0,0 +1,24 @@ + + + + + + Zeller + Cyril + + + + + Faugeras + Olivier + + + + + Robotvis + + + 2-1996 + Camera Self-Calibration from Video Sequences: the Kruppa Equations Revisited + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f831.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f831.rdf new file mode 100644 index 0000000000..4c0230489e --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f831.rdf @@ -0,0 +1,35 @@ + + + + + + Zuyev + Sergei + + + + + Desnogues + Pascal + + + + + Rakotoarisoa + Hery + + + + + Prisme + + + + + Mistral + + + 1-1996 + Simulations of large telecommunication networks based on probabilistic modeling + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f84.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f84.rdf new file mode 100644 index 0000000000..d518211a76 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f84.rdf @@ -0,0 +1,30 @@ + + + + + + Despeyroux + Joelle + + + + + Felty + Amy + + + + + Hirschowitz + Andr + + + + + Croap + + + 5-1995 + Higher-order abstract syntax in Coq + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f85.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f85.rdf new file mode 100644 index 0000000000..896e8c4fc0 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f85.rdf @@ -0,0 +1,18 @@ + + + + + + Thirion + Jean-Philippe + + + + + Epidaure + + + 5-1995 + Fast Non-Rigid Matching of 3D Medical Images + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f86.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f86.rdf new file mode 100644 index 0000000000..289a807c1c --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f86.rdf @@ -0,0 +1,18 @@ + + + + + + Z. + Ioannis + + + + + Safir + + + 5-1995 + A Complete Implementation for Computing General Dimensional Convex Hulls + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f87.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f87.rdf new file mode 100644 index 0000000000..86d9f2d883 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f87.rdf @@ -0,0 +1,24 @@ + + + + + + Boudol + Grard + + + + + Laneve + Cosimo + + + + + Meije + + + 6-1995 + $\lambda$-Calculus, Multiplicities and the $\pi$-Calculus + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f88.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f88.rdf new file mode 100644 index 0000000000..c0f2444b4b --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f88.rdf @@ -0,0 +1,18 @@ + + + + + + Lapalut + Stphane + + + + + Acacia + + + 5-1995 + Intgration de Connaissance Qualitatives dans KATEMES + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f89.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f89.rdf new file mode 100644 index 0000000000..a10a5c98bc --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f89.rdf @@ -0,0 +1,30 @@ + + + + + + Shekarforoush + Hassan + + + + + Berthod + Marc + + + + + Zerubia + Josiane + + + + + Pastis + + + 4-1995 + Direct Search Generalized Simplex Algorithm for Optimizing Non- linear Functions + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f9.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f9.rdf new file mode 100644 index 0000000000..18219ad6be --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f9.rdf @@ -0,0 +1,30 @@ + + + + + + Declerck + Jrme + + + + + Feldmar + Jacques + + + + + L. + Michael + + + + + Epidaure + + + 1-1996 + Automatic Registration and Alignment on a Template of Cardiac Stress & Rest SPECT Images + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f90.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f90.rdf new file mode 100644 index 0000000000..79c19e2597 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f90.rdf @@ -0,0 +1,24 @@ + + + + + + Montagnat + Johan + + + + + Delingette + Herv + + + + + Epidaure + + + 11-2000 + Spatial and temporal shape constrained deformable surfaces for 3D and 4D medical image segmentation + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f91.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f91.rdf new file mode 100644 index 0000000000..f5edcabe13 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f91.rdf @@ -0,0 +1,18 @@ + + + + + + Crepey + Stephane + + + + + Mistral + + + 4-1995 + Mthode de gradients en optimisation combinatoire. Applications a un problme de sac dos et au modle d'Ising. + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f92.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f92.rdf new file mode 100644 index 0000000000..5f896e7d6b --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f92.rdf @@ -0,0 +1,18 @@ + + + + + + Crou + F. + + + + + Mefisto + + + 4-1995 + Long time asymptotics for some dynamical noise free non-linear filtering problems, new cases. + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f93.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f93.rdf new file mode 100644 index 0000000000..525414b149 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f93.rdf @@ -0,0 +1,30 @@ + + + + + + Rothwell + Charlie + + + + + Csurka + Gabriella + + + + + Faugeras + Olivier + + + + + Robotvis + + + 4-1995 + A Comparison of Projective Reconstruction Methods for Pairs of Views + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f94.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f94.rdf new file mode 100644 index 0000000000..13c6c2b51e --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f94.rdf @@ -0,0 +1,12 @@ + + + + + + Sangiorgi + Davide + + + $\pi$-Calculus, Internal Mobility, and Agent-Passing Calculi Sophia Antipolis, Projet Meije , Avril 1995 + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f95.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f95.rdf new file mode 100644 index 0000000000..467e429dbc --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f95.rdf @@ -0,0 +1,24 @@ + + + + + + Fulcheri + Pascale + + + + + Olivi + Martine + + + + + Miaou + + + 4-1995 + Identification and matrix rational $H^2$ approximation : a gradient algorithm based on Schur analysis. + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f96.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f96.rdf new file mode 100644 index 0000000000..ab165c3c7e --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f96.rdf @@ -0,0 +1,31 @@ + + + + + + Gimonet + G. + + + + + Cioni + J.P. + + + + + Fezoui + L. + + + + + Poupaud + F. + + + 4-1995 + Approximation numrique des quations de Maxell en milieu htrogne monodimensionnel par un solveur de Riemann exact + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f97.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f97.rdf new file mode 100644 index 0000000000..2f294c2b6e --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f97.rdf @@ -0,0 +1,18 @@ + + + + + + MERLET + Jean-Pierre + + + + + Prisme + + + 4-1995 + Designing a parallel manipulator for a specific workspace + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f98.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f98.rdf new file mode 100644 index 0000000000..3f21823fc2 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f98.rdf @@ -0,0 +1,18 @@ + + + + + + Sangiorgi + Davide + + + + + Meije + + + 4-1995 + Lazy functions and mobile processes + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/comma/data2/f99.rdf b/corese-unit-test/src/test/resources/data/comma/data2/f99.rdf new file mode 100644 index 0000000000..0735bf0765 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/comma/data2/f99.rdf @@ -0,0 +1,25 @@ + + + + + + de + A. + + + + + Bourdonnaye + la + + + + + Tolentino + M. + + + 2-1995 + Numerical simulation of scattering problems with Fourier Integral operators + + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/reports/alltests.ttl b/corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/reports/alltests.ttl new file mode 100644 index 0000000000..04387078c4 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/reports/alltests.ttl @@ -0,0 +1,607 @@ +# baseURI: http://shacl.org/alltests + + + "Test of personexample" ; + "core/complex/personexample.ttl" ; + ; +. + + "frozen eat your own ( eat your own frozen dogfood )" ; + "core/complex/shacl-shacl.ttl" ; + ; +. + + "Test of sh:deactivated 001" ; + "core/misc/deactivated-001.ttl" ; + ; +. + + "Test of sh:deactivated 002" ; + "core/misc/deactivated-002.ttl" ; + ; +. + + "Test of custom sh:message 001" ; + "core/misc/message-001.ttl" ; + ; +. + + "Test of sh:severity 001" ; + "core/misc/severity-001.ttl" ; + ; +. + + "Test of sh:severity 002" ; + "core/misc/severity-002.ttl" ; + ; +. + + "Test of sh:and at node shape 001" ; + "core/node/and-001.ttl" ; + ; +. + + "Test of sh:and at node shape 002" ; + "core/node/and-002.ttl" ; + ; +. + + "Test of sh:class at node shape 001" ; + "core/node/class-001.ttl" ; + ; +. + + "Test of sh:class at node shape 002" ; + "core/node/class-002.ttl" ; + ; +. + + "Test of sh:class at node shape 003 multiple classes, overlapping target sets" ; + "core/node/class-003.ttl" ; + ; +. + + "Test of sh:closed at node shape 001" ; + "core/node/closed-001.ttl" ; + ; +. + + "Test of sh:closed at node shape 002" ; + "core/node/closed-002.ttl" ; + ; +. + + "Test of sh:datatype at node shape 001" ; + "core/node/datatype-001.ttl" ; + ; +. + + "Test of sh:datatype at node shape 002" ; + "core/node/datatype-002.ttl" ; + ; +. + + "Test of sh:disjoint at node shape 001" ; + "core/node/disjoint-001.ttl" ; + ; +. + + "Test of sh:equals at node shape 001" ; + "core/node/equals-001.ttl" ; + ; +. + + "Test of sh:hasValue at node shape 001" ; + "core/node/hasValue-001.ttl" ; + ; +. + + "Test of sh:in at node shape 001" ; + "core/node/in-001.ttl" ; + ; +. + + "Test of sh:languageIn at node shape 001" ; + "core/node/languageIn-001.ttl" ; + ; +. + + "Test of sh:maxExclusive at node shape 001" ; + "core/node/maxExclusive-001.ttl" ; + ; +. + + "Test of sh:maxInclusive at node shape 001" ; + "core/node/maxInclusive-001.ttl" ; + ; +. + + "Test of sh:maxLength at node shape 001" ; + "core/node/maxLength-001.ttl" ; + ; +. + + "Test of sh:minExclusive at node shape 001" ; + "core/node/minExclusive-001.ttl" ; + ; +. + + "Test of sh:minInclusive at node shape 001" ; + "core/node/minInclusive-001.ttl" ; + ; +. + + "Test of sh:minInclusive at node shape 002 - dateTime with timezone" ; + "core/node/minInclusive-002.ttl" ; + ; +. + + "Test of sh:minInclusive at node shape 003 - dateTime without timezone" ; + "core/node/minInclusive-003.ttl" ; + ; +. + + "Test of sh:minLength at node shape 001" ; + "core/node/minLength-001.ttl" ; + ; +. + + "Test of sh:node at node shape 001" ; + "core/node/node-001.ttl" ; + ; +. + + "Test of sh:nodeKind at node shape 001" ; + "core/node/nodeKind-001.ttl" ; + ; +. + + "Test of sh:not at node shape 001" ; + "core/node/not-001.ttl" ; + ; +. + + "Test of sh:not at node shape 002" ; + "core/node/not-002.ttl" ; + ; +. + + "Test of sh:or at node shape 001" ; + "core/node/or-001.ttl" ; + ; +. + + "Test of sh:pattern at node shape 001" ; + "core/node/pattern-001.ttl" ; + ; +. + + "Test of sh:pattern at node shape 002" ; + "core/node/pattern-002.ttl" ; + ; +. + + "Test of qualified parameters allowed in node shapes" ; + "core/node/qualified-001.ttl" ; + ; +. + + "Test of sh:xone at node shape 001" ; + "core/node/xone-001.ttl" ; + ; +. + + "Test of validation report for shape xone-duplicate by property constraints" ; + "core/node/xone-duplicate.ttl" ; + ; +. + + "Test of path sh:alternativePath 001" ; + "core/path/path-alternative-001.ttl" ; + ; +. + + "Test of path complex (rdf:type/rdfs:subClassOf*) 001" ; + "core/path/path-complex-001.ttl" ; + ; +. + + "Test of complex path validation results" ; + "core/path/path-complex-002.ttl" ; + ; +. + + "Test of path sh:inversePath 001" ; + "core/path/path-inverse-001.ttl" ; + ; +. + + "Test of path sh:oneOrMorePath 001" ; + "core/path/path-oneOrMore-001.ttl" ; + ; +. + + "Test of path sequence 001" ; + "core/path/path-sequence-001.ttl" ; + ; +. + + "Test of path sequence 002" ; + "core/path/path-sequence-002.ttl" ; + ; +. + + "Test of path sequence with duplicate 001" ; + "core/path/path-sequence-duplicate-001.ttl" ; + ; +. + + "Test of strange path 001 two valid paths together" ; + "core/path/path-strange-001.ttl" ; + ; +. + + "Test of strange path 002 valid and invalid paths together" ; + "core/path/path-strange-002.ttl" ; + ; +. + + "Test with unused ill-formed path" ; + "core/path/path-unused-001.ttl" ; + ; +. + + "Test of path sh:zeroOrMorePath 001" ; + "core/path/path-zeroOrMore-001.ttl" ; + ; +. + + "Test of path sh:zeroOrOnePath 001" ; + "core/path/path-zeroOrOne-001.ttl" ; + ; +. + + "Test of sh:and at property shape 001" ; + "core/property/and-001.ttl" ; + ; +. + + "Test of sh:class at property shape 001" ; + "core/property/class-001.ttl" ; + ; +. + + "Test of sh:datatype at property shape 001" ; + "core/property/datatype-001.ttl" ; + ; +. + + "Test of sh:datatype at property shape 002" ; + "core/property/datatype-002.ttl" ; + ; +. + + "Test of sh:datatype at property shape 003" ; + "core/property/datatype-003.ttl" ; + ; +. + + "Test of validation report for ill-formed literals" ; + "core/property/datatype-ill-formed.ttl" ; + ; +. + + "Test of sh:disjoint at property shape 001" ; + "core/property/disjoint-001.ttl" ; + ; +. + + "Test of sh:equals at property shape 001" ; + "core/property/equals-001.ttl" ; + ; +. + + "Test of sh:hasValue at property shape 001" ; + "core/property/hasValue-001.ttl" ; + ; +. + + "Test of sh:in at property shape 001" ; + "core/property/in-001.ttl" ; + ; +. + + "Test of sh:languageIn at property shape 001" ; + "core/property/languageIn-001.ttl" ; + ; +. + + "Test of sh:lessThan at property shape 001" ; + "core/property/lessThan-001.ttl" ; + ; +. + + "Test of sh:lessThan at property shape 002" ; + "core/property/lessThan-002.ttl" ; + ; +. + + "Test of sh:lessThanOrEquals at property shape 001" ; + "core/property/lessThanOrEquals-001.ttl" ; + ; +. + + "Test of sh:maxCount at property shape 001" ; + "core/property/maxCount-001.ttl" ; + ; +. + + "Test of sh:maxCount at property shape 002" ; + "core/property/maxCount-002.ttl" ; + ; +. + + "Test of sh:maxExclusive at property shape 001" ; + "core/property/maxExclusive-001.ttl" ; + ; +. + + "Test of sh:maxInclusive at property shape 001" ; + "core/property/maxInclusive-001.ttl" ; + ; +. + + "Test of sh:maxLength at property shape 001" ; + "core/property/maxLength-001.ttl" ; + ; +. + + "Test of sh:minCount at property shape 001" ; + "core/property/minCount-001.ttl" ; + ; +. + + "Test of sh:minCount at property shape 001" ; + "core/property/minCount-002.ttl" ; + ; +. + + "Test of sh:minExclusive at property shape 001" ; + "core/property/minExclusive-001.ttl" ; + ; +. + + "Test of sh:minExclusive at property shape 002" ; + "core/property/minExclusive-002.ttl" ; + ; +. + + "Test of sh:minLength at property shape 001" ; + "core/property/minLength-001.ttl" ; + ; +. + + "Test of sh:node at property shape 001" ; + "core/property/node-001.ttl" ; + ; +. + + "Test of sh:node at property shape 002" ; + "core/property/node-002.ttl" ; + ; +. + + "Test of sh:nodeKind at property shape 001" ; + "core/property/nodeKind-001.ttl" ; + ; +. + + "Test of sh:not at property shape 001" ; + "core/property/not-001.ttl" ; + ; +. + + "Test of sh:or at property shape 001" ; + "core/property/or-001.ttl" ; + ; +. + + "Test of sh:or of sh:datatypes at property shape 001" ; + "core/property/or-datatypes-001.ttl" ; + ; +. + + "Test of sh:pattern at property shape 001" ; + "core/property/pattern-001.ttl" ; + ; +. + + "Test of sh:pattern at property shape 002" ; + "core/property/pattern-002.ttl" ; + ; +. + + "Test of sh:property at property shape 001" ; + "core/property/property-001.ttl" ; + ; +. + + "Test of sh:qualifiedMinCount with disjoint shapes at property shape 001" ; + "core/property/qualifiedMinCountDisjoint-001.ttl" ; + ; +. + + "Test of sh:qualifiedValueShape at property shape 001" ; + "core/property/qualifiedValueShape-001.ttl" ; + ; +. + + "Test of sh:qualifiedValueShapesDisjoint at property shape 001" ; + "core/property/qualifiedValueShapesDisjoint-001.ttl" ; + ; +. + + "Test of sh:uniqueLang at property shape 001" ; + "core/property/uniqueLang-001.ttl" ; + ; +. + + "Test uniqueLang with other boolean literal for true" ; + "core/property/uniqueLang-002.ttl" ; + ; +. + + "Test of multiple targets 001" ; + "core/targets/multipleTargets-001.ttl" ; + ; +. + + "Test of sh:targetClass 001" ; + "core/targets/targetClass-001.ttl" ; + ; +. + + "Test of implicit sh:targetClass 001" ; + "core/targets/targetClassImplicit-001.ttl" ; + ; +. + + "Test of sh:targetNode 001" ; + "core/targets/targetNode-001.ttl" ; + ; +. + + "Test of sh:targetObjectsOf 001" ; + "core/targets/targetObjectsOf-001.ttl" ; + ; +. + + "Test of sh:targetSubjectsOf 001" ; + "core/targets/targetSubjectsOf-001.ttl" ; + ; +. + + "Test of sh:targetSubjectsOf 002" ; + "core/targets/targetSubjectsOf-002.ttl" ; + ; +. + + "Test of validation report for shape shared by property constraints" ; + "core/validation-reports/shared.ttl" ; + ; +. + + "Test of sh:nodeValidator with ASK 001" ; + "sparql/component/nodeValidator-ask-001.ttl" ; + ; +. + + "Test of sh:optional 001" ; + "sparql/component/optional-001.ttl" ; + ; +. + + "Test of sh:propertyValidator with ASK 001" ; + "sparql/component/propertyValidator-ask-001.ttl" ; + ; +. + + "Test of sh:propertyValidator with SELECT 001" ; + "sparql/component/propertyValidator-select-001.ttl" ; + ; +. + + "Test of sh:validator 001" ; + "sparql/component/validator-001.ttl" ; + ; +. + + "Test of sh:prefixes 001" ; + "sparql/node/prefixes-001.ttl" ; + ; +. + + "Test of sh:sparql at node shape 001" ; + "sparql/node/sparql-001.ttl" ; + ; +. + + "Test of sh:sparql at node shape 002" ; + "sparql/node/sparql-002.ttl" ; + ; +. + + "Test of sh:sparql at node shape 003" ; + "sparql/node/sparql-003.ttl" ; + ; +. + + "Test of pre-binding in FILTER" ; + "sparql/pre-binding/pre-binding-001.ttl" ; + ; +. + + "Test of pre-binding in UNION" ; + "sparql/pre-binding/pre-binding-002.ttl" ; + ; +. + + "Test of pre-binding in inner {...} blocks" ; + "sparql/pre-binding/pre-binding-003.ttl" ; + ; +. + + "Test of pre-binding in BIND expressions" ; + "sparql/pre-binding/pre-binding-004.ttl" ; + ; +. + + "Test of pre-binding in BGP and FILTER" ; + "sparql/pre-binding/pre-binding-005.ttl" ; + ; +. + + "Test of pre-binding in nested SELECT" ; + "sparql/pre-binding/pre-binding-006.ttl" ; + ; +. + + "Test of $shapesGraph and $currentShape" ; + "sparql/pre-binding/shapesGraph-001.ttl" ; + ; +. + + "Test of unsupported MINUS" ; + "sparql/pre-binding/unsupported-sparql-001.ttl" ; + ; +. + + "Test of unsupported VALUES" ; + "sparql/pre-binding/unsupported-sparql-002.ttl" ; + ; +. + + "Test of unsupported SERVICE" ; + "sparql/pre-binding/unsupported-sparql-003.ttl" ; + ; +. + + "Test of unsupported SELECT" ; + "sparql/pre-binding/unsupported-sparql-004.ttl" ; + ; +. + + "Test of unsupported AS ?prebound" ; + "sparql/pre-binding/unsupported-sparql-005.ttl" ; + ; +. + + "Test of ASK trying to reassign ?value" ; + "sparql/pre-binding/unsupported-sparql-006.ttl" ; + ; +. + + "Test of sh:sparql at property shape 001" ; + "sparql/property/sparql-001.ttl" ; + ; +. diff --git a/corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/reports/corese-shacl-earl.ttl b/corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/reports/corese-shacl-earl.ttl new file mode 100644 index 0000000000..d33766d65d --- /dev/null +++ b/corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/reports/corese-shacl-earl.ttl @@ -0,0 +1,1094 @@ +@prefix doap: . +@prefix earl: . +@prefix owl: . +@prefix rdf: . +@prefix rdfs: . +@prefix xsd: . + + + rdf:type doap:Project ; + rdf:type earl:Software ; + rdf:type earl:TestSubject ; + doap:developer ; + doap:name "Corese SHACL" ; + doap:date "2017-05-04T08:18:15"^^xsd:dateTime +. + +[ + rdf:type earl:Assertion ; + earl:assertedBy ; + earl:result [ + rdf:type earl:TestResult ; + earl:mode earl:automatic ; + earl:outcome earl:passed ; + ] ; + earl:subject ; + earl:test ; +]. +[ + rdf:type earl:Assertion ; + earl:assertedBy ; + earl:result [ + rdf:type earl:TestResult ; + earl:mode earl:automatic ; + earl:outcome earl:passed ; + ] ; + earl:subject ; + earl:test ; +]. +[ + rdf:type earl:Assertion ; + earl:assertedBy ; + earl:result [ + rdf:type earl:TestResult ; + earl:mode earl:automatic ; + earl:outcome earl:passed ; + ] ; + earl:subject ; + earl:test ; +]. +[ + rdf:type earl:Assertion ; + earl:assertedBy ; + earl:result [ + rdf:type earl:TestResult ; + earl:mode earl:automatic ; + earl:outcome earl:passed ; + ] ; + earl:subject ; + earl:test ; +]. +[ + rdf:type earl:Assertion ; + earl:assertedBy ; + earl:result [ + rdf:type earl:TestResult ; + earl:mode earl:automatic ; + earl:outcome earl:passed ; + ] ; + earl:subject ; + earl:test ; +]. +[ + rdf:type earl:Assertion ; + earl:assertedBy ; + earl:result [ + rdf:type earl:TestResult ; + earl:mode earl:automatic ; + earl:outcome earl:passed ; + ] ; + earl:subject ; + earl:test ; +]. +[ + rdf:type earl:Assertion ; + earl:assertedBy ; + earl:result [ + rdf:type earl:TestResult ; + earl:mode earl:automatic ; + earl:outcome earl:passed ; + ] ; + earl:subject ; + earl:test ; +]. +[ + rdf:type earl:Assertion ; + earl:assertedBy ; + earl:result [ + rdf:type earl:TestResult ; + earl:mode earl:automatic ; + earl:outcome earl:passed ; + ] ; + earl:subject ; + earl:test ; +]. +[ + rdf:type earl:Assertion ; + earl:assertedBy ; + earl:result [ + rdf:type earl:TestResult ; + earl:mode earl:automatic ; + earl:outcome earl:passed ; + ] ; + earl:subject ; + earl:test ; +]. +[ + rdf:type earl:Assertion ; + earl:assertedBy ; + earl:result [ + rdf:type earl:TestResult ; + earl:mode earl:automatic ; + earl:outcome earl:passed ; + ] ; + earl:subject ; + earl:test ; +]. +[ + rdf:type earl:Assertion ; + earl:assertedBy ; + earl:result [ + rdf:type earl:TestResult ; + earl:mode earl:automatic ; + earl:outcome earl:passed ; + ] ; + earl:subject ; + earl:test ; +]. +[ + rdf:type earl:Assertion ; + earl:assertedBy ; + earl:result [ + rdf:type earl:TestResult ; + earl:mode earl:automatic ; + earl:outcome earl:passed ; + ] ; + earl:subject ; + earl:test ; +]. +[ + rdf:type earl:Assertion ; + earl:assertedBy ; + earl:result [ + rdf:type earl:TestResult ; + earl:mode earl:automatic ; + earl:outcome earl:passed ; + ] ; + earl:subject ; + earl:test ; +]. +[ + rdf:type earl:Assertion ; + earl:assertedBy ; + earl:result [ + rdf:type earl:TestResult ; + earl:mode earl:automatic ; + earl:outcome earl:passed ; + ] ; + earl:subject ; + earl:test ; +]. +[ + rdf:type earl:Assertion ; + earl:assertedBy ; + earl:result [ + rdf:type earl:TestResult ; + earl:mode earl:automatic ; + earl:outcome earl:passed ; + ] ; + earl:subject ; + earl:test ; +]. +[ + rdf:type earl:Assertion ; + earl:assertedBy ; + earl:result [ + rdf:type earl:TestResult ; + earl:mode earl:automatic ; + earl:outcome earl:passed ; + ] ; + earl:subject ; + earl:test ; +]. +[ + rdf:type earl:Assertion ; + earl:assertedBy ; + earl:result [ + rdf:type earl:TestResult ; + earl:mode earl:automatic ; + earl:outcome earl:passed ; + ] ; + earl:subject ; + earl:test ; +]. +[ + rdf:type earl:Assertion ; + earl:assertedBy ; + earl:result [ + rdf:type earl:TestResult ; + earl:mode earl:automatic ; + earl:outcome earl:passed ; + ] ; + earl:subject ; + earl:test ; +]. +[ + rdf:type earl:Assertion ; + earl:assertedBy ; + earl:result [ + rdf:type earl:TestResult ; + earl:mode earl:automatic ; + earl:outcome earl:passed ; + ] ; + earl:subject ; + earl:test ; +]. +[ + rdf:type earl:Assertion ; + earl:assertedBy ; + earl:result [ + rdf:type earl:TestResult ; + earl:mode earl:automatic ; + earl:outcome earl:passed ; + ] ; + earl:subject ; + earl:test ; +]. +[ + rdf:type earl:Assertion ; + earl:assertedBy ; + earl:result [ + rdf:type earl:TestResult ; + earl:mode earl:automatic ; + earl:outcome earl:passed ; + ] ; + earl:subject ; + earl:test ; +]. +[ + rdf:type earl:Assertion ; + earl:assertedBy ; + earl:result [ + rdf:type earl:TestResult ; + earl:mode earl:automatic ; + earl:outcome earl:passed ; + ] ; + earl:subject ; + earl:test ; +]. +[ + rdf:type earl:Assertion ; + earl:assertedBy ; + earl:result [ + rdf:type earl:TestResult ; + earl:mode earl:automatic ; + earl:outcome earl:passed ; + ] ; + earl:subject ; + earl:test ; +]. +[ + rdf:type earl:Assertion ; + earl:assertedBy ; + earl:result [ + rdf:type earl:TestResult ; + earl:mode earl:automatic ; + earl:outcome earl:passed ; + ] ; + earl:subject ; + earl:test ; +]. +[ + rdf:type earl:Assertion ; + earl:assertedBy ; + earl:result [ + rdf:type earl:TestResult ; + earl:mode earl:automatic ; + earl:outcome earl:passed ; + ] ; + earl:subject ; + earl:test ; +]. +[ + rdf:type earl:Assertion ; + earl:assertedBy ; + earl:result [ + rdf:type earl:TestResult ; + earl:mode earl:automatic ; + earl:outcome earl:passed ; + ] ; + earl:subject ; + earl:test ; +]. +[ + rdf:type earl:Assertion ; + earl:assertedBy ; + earl:result [ + rdf:type earl:TestResult ; + earl:mode earl:automatic ; + earl:outcome earl:passed ; + ] ; + earl:subject ; + earl:test ; +]. +[ + rdf:type earl:Assertion ; + earl:assertedBy ; + earl:result [ + rdf:type earl:TestResult ; + earl:mode earl:automatic ; + earl:outcome earl:passed ; + ] ; + earl:subject ; + earl:test ; +]. +[ + rdf:type earl:Assertion ; + earl:assertedBy ; + earl:result [ + rdf:type earl:TestResult ; + earl:mode earl:automatic ; + earl:outcome earl:passed ; + ] ; + earl:subject ; + earl:test ; +]. +[ + rdf:type earl:Assertion ; + earl:assertedBy ; + earl:result [ + rdf:type earl:TestResult ; + earl:mode earl:automatic ; + earl:outcome earl:passed ; + ] ; + earl:subject ; + earl:test ; +]. +[ + rdf:type earl:Assertion ; + earl:assertedBy ; + earl:result [ + rdf:type earl:TestResult ; + earl:mode earl:automatic ; + earl:outcome earl:passed ; + ] ; + earl:subject ; + earl:test ; +]. +[ + rdf:type earl:Assertion ; + earl:assertedBy ; + earl:result [ + rdf:type earl:TestResult ; + earl:mode earl:automatic ; + earl:outcome earl:passed ; + ] ; + earl:subject ; + earl:test ; +]. +[ + rdf:type earl:Assertion ; + earl:assertedBy ; + earl:result [ + rdf:type earl:TestResult ; + earl:mode earl:automatic ; + earl:outcome earl:passed ; + ] ; + earl:subject ; + earl:test ; +]. +[ + rdf:type earl:Assertion ; + earl:assertedBy ; + earl:result [ + rdf:type earl:TestResult ; + earl:mode earl:automatic ; + earl:outcome earl:passed ; + ] ; + earl:subject ; + earl:test ; +]. +[ + rdf:type earl:Assertion ; + earl:assertedBy ; + earl:result [ + rdf:type earl:TestResult ; + earl:mode earl:automatic ; + earl:outcome earl:passed ; + ] ; + earl:subject ; + earl:test ; +]. +[ + rdf:type earl:Assertion ; + earl:assertedBy ; + earl:result [ + rdf:type earl:TestResult ; + earl:mode earl:automatic ; + earl:outcome earl:passed ; + ] ; + earl:subject ; + earl:test ; +]. +[ + rdf:type earl:Assertion ; + earl:assertedBy ; + earl:result [ + rdf:type earl:TestResult ; + earl:mode earl:automatic ; + earl:outcome earl:passed ; + ] ; + earl:subject ; + earl:test ; +]. +[ + rdf:type earl:Assertion ; + earl:assertedBy ; + earl:result [ + rdf:type earl:TestResult ; + earl:mode earl:automatic ; + earl:outcome earl:passed ; + ] ; + earl:subject ; + earl:test ; +]. +[ + rdf:type earl:Assertion ; + earl:assertedBy ; + earl:result [ + rdf:type earl:TestResult ; + earl:mode earl:automatic ; + earl:outcome earl:passed ; + ] ; + earl:subject ; + earl:test ; +]. +[ + rdf:type earl:Assertion ; + earl:assertedBy ; + earl:result [ + rdf:type earl:TestResult ; + earl:mode earl:automatic ; + earl:outcome earl:passed ; + ] ; + earl:subject ; + earl:test ; +]. +[ + rdf:type earl:Assertion ; + earl:assertedBy ; + earl:result [ + rdf:type earl:TestResult ; + earl:mode earl:automatic ; + earl:outcome earl:passed ; + ] ; + earl:subject ; + earl:test ; +]. +[ + rdf:type earl:Assertion ; + earl:assertedBy ; + earl:result [ + rdf:type earl:TestResult ; + earl:mode earl:automatic ; + earl:outcome earl:passed ; + ] ; + earl:subject ; + earl:test ; +]. +[ + rdf:type earl:Assertion ; + earl:assertedBy ; + earl:result [ + rdf:type earl:TestResult ; + earl:mode earl:automatic ; + earl:outcome earl:passed ; + ] ; + earl:subject ; + earl:test ; +]. +[ + rdf:type earl:Assertion ; + earl:assertedBy ; + earl:result [ + rdf:type earl:TestResult ; + earl:mode earl:automatic ; + earl:outcome earl:passed ; + ] ; + earl:subject ; + earl:test ; +]. +[ + rdf:type earl:Assertion ; + earl:assertedBy ; + earl:result [ + rdf:type earl:TestResult ; + earl:mode earl:automatic ; + earl:outcome earl:passed ; + ] ; + earl:subject ; + earl:test ; +]. +[ + rdf:type earl:Assertion ; + earl:assertedBy ; + earl:result [ + rdf:type earl:TestResult ; + earl:mode earl:automatic ; + earl:outcome earl:passed ; + ] ; + earl:subject ; + earl:test ; +]. +[ + rdf:type earl:Assertion ; + earl:assertedBy ; + earl:result [ + rdf:type earl:TestResult ; + earl:mode earl:automatic ; + earl:outcome earl:passed ; + ] ; + earl:subject ; + earl:test ; +]. +[ + rdf:type earl:Assertion ; + earl:assertedBy ; + earl:result [ + rdf:type earl:TestResult ; + earl:mode earl:automatic ; + earl:outcome earl:passed ; + ] ; + earl:subject ; + earl:test ; +]. +[ + rdf:type earl:Assertion ; + earl:assertedBy ; + earl:result [ + rdf:type earl:TestResult ; + earl:mode earl:automatic ; + earl:outcome earl:passed ; + ] ; + earl:subject ; + earl:test ; +]. +[ + rdf:type earl:Assertion ; + earl:assertedBy ; + earl:result [ + rdf:type earl:TestResult ; + earl:mode earl:automatic ; + earl:outcome earl:passed ; + ] ; + earl:subject ; + earl:test ; +]. +[ + rdf:type earl:Assertion ; + earl:assertedBy ; + earl:result [ + rdf:type earl:TestResult ; + earl:mode earl:automatic ; + earl:outcome earl:passed ; + ] ; + earl:subject ; + earl:test ; +]. +[ + rdf:type earl:Assertion ; + earl:assertedBy ; + earl:result [ + rdf:type earl:TestResult ; + earl:mode earl:automatic ; + earl:outcome earl:passed ; + ] ; + earl:subject ; + earl:test ; +]. +[ + rdf:type earl:Assertion ; + earl:assertedBy ; + earl:result [ + rdf:type earl:TestResult ; + earl:mode earl:automatic ; + earl:outcome earl:passed ; + ] ; + earl:subject ; + earl:test ; +]. +[ + rdf:type earl:Assertion ; + earl:assertedBy ; + earl:result [ + rdf:type earl:TestResult ; + earl:mode earl:automatic ; + earl:outcome earl:passed ; + ] ; + earl:subject ; + earl:test ; +]. +[ + rdf:type earl:Assertion ; + earl:assertedBy ; + earl:result [ + rdf:type earl:TestResult ; + earl:mode earl:automatic ; + earl:outcome earl:passed ; + ] ; + earl:subject ; + earl:test ; +]. +[ + rdf:type earl:Assertion ; + earl:assertedBy ; + earl:result [ + rdf:type earl:TestResult ; + earl:mode earl:automatic ; + earl:outcome earl:passed ; + ] ; + earl:subject ; + earl:test ; +]. +[ + rdf:type earl:Assertion ; + earl:assertedBy ; + earl:result [ + rdf:type earl:TestResult ; + earl:mode earl:automatic ; + earl:outcome earl:passed ; + ] ; + earl:subject ; + earl:test ; +]. +[ + rdf:type earl:Assertion ; + earl:assertedBy ; + earl:result [ + rdf:type earl:TestResult ; + earl:mode earl:automatic ; + earl:outcome earl:passed ; + ] ; + earl:subject ; + earl:test ; +]. +[ + rdf:type earl:Assertion ; + earl:assertedBy ; + earl:result [ + rdf:type earl:TestResult ; + earl:mode earl:automatic ; + earl:outcome earl:passed ; + ] ; + earl:subject ; + earl:test ; +]. +[ + rdf:type earl:Assertion ; + earl:assertedBy ; + earl:result [ + rdf:type earl:TestResult ; + earl:mode earl:automatic ; + earl:outcome earl:passed ; + ] ; + earl:subject ; + earl:test ; +]. +[ + rdf:type earl:Assertion ; + earl:assertedBy ; + earl:result [ + rdf:type earl:TestResult ; + earl:mode earl:automatic ; + earl:outcome earl:passed ; + ] ; + earl:subject ; + earl:test ; +]. +[ + rdf:type earl:Assertion ; + earl:assertedBy ; + earl:result [ + rdf:type earl:TestResult ; + earl:mode earl:automatic ; + earl:outcome earl:passed ; + ] ; + earl:subject ; + earl:test ; +]. +[ + rdf:type earl:Assertion ; + earl:assertedBy ; + earl:result [ + rdf:type earl:TestResult ; + earl:mode earl:automatic ; + earl:outcome earl:passed ; + ] ; + earl:subject ; + earl:test ; +]. +[ + rdf:type earl:Assertion ; + earl:assertedBy ; + earl:result [ + rdf:type earl:TestResult ; + earl:mode earl:automatic ; + earl:outcome earl:passed ; + ] ; + earl:subject ; + earl:test ; +]. +[ + rdf:type earl:Assertion ; + earl:assertedBy ; + earl:result [ + rdf:type earl:TestResult ; + earl:mode earl:automatic ; + earl:outcome earl:passed ; + ] ; + earl:subject ; + earl:test ; +]. +[ + rdf:type earl:Assertion ; + earl:assertedBy ; + earl:result [ + rdf:type earl:TestResult ; + earl:mode earl:automatic ; + earl:outcome earl:passed ; + ] ; + earl:subject ; + earl:test ; +]. +[ + rdf:type earl:Assertion ; + earl:assertedBy ; + earl:result [ + rdf:type earl:TestResult ; + earl:mode earl:automatic ; + earl:outcome earl:passed ; + ] ; + earl:subject ; + earl:test ; +]. +[ + rdf:type earl:Assertion ; + earl:assertedBy ; + earl:result [ + rdf:type earl:TestResult ; + earl:mode earl:automatic ; + earl:outcome earl:passed ; + ] ; + earl:subject ; + earl:test ; +]. +[ + rdf:type earl:Assertion ; + earl:assertedBy ; + earl:result [ + rdf:type earl:TestResult ; + earl:mode earl:automatic ; + earl:outcome earl:passed ; + ] ; + earl:subject ; + earl:test ; +]. +[ + rdf:type earl:Assertion ; + earl:assertedBy ; + earl:result [ + rdf:type earl:TestResult ; + earl:mode earl:automatic ; + earl:outcome earl:passed ; + ] ; + earl:subject ; + earl:test ; +]. +[ + rdf:type earl:Assertion ; + earl:assertedBy ; + earl:result [ + rdf:type earl:TestResult ; + earl:mode earl:automatic ; + earl:outcome earl:passed ; + ] ; + earl:subject ; + earl:test ; +]. +[ + rdf:type earl:Assertion ; + earl:assertedBy ; + earl:result [ + rdf:type earl:TestResult ; + earl:mode earl:automatic ; + earl:outcome earl:passed ; + ] ; + earl:subject ; + earl:test ; +]. +[ + rdf:type earl:Assertion ; + earl:assertedBy ; + earl:result [ + rdf:type earl:TestResult ; + earl:mode earl:automatic ; + earl:outcome earl:passed ; + ] ; + earl:subject ; + earl:test ; +]. +[ + rdf:type earl:Assertion ; + earl:assertedBy ; + earl:result [ + rdf:type earl:TestResult ; + earl:mode earl:automatic ; + earl:outcome earl:passed ; + ] ; + earl:subject ; + earl:test ; +]. +[ + rdf:type earl:Assertion ; + earl:assertedBy ; + earl:result [ + rdf:type earl:TestResult ; + earl:mode earl:automatic ; + earl:outcome earl:passed ; + ] ; + earl:subject ; + earl:test ; +]. +[ + rdf:type earl:Assertion ; + earl:assertedBy ; + earl:result [ + rdf:type earl:TestResult ; + earl:mode earl:automatic ; + earl:outcome earl:passed ; + ] ; + earl:subject ; + earl:test ; +]. +[ + rdf:type earl:Assertion ; + earl:assertedBy ; + earl:result [ + rdf:type earl:TestResult ; + earl:mode earl:automatic ; + earl:outcome earl:passed ; + ] ; + earl:subject ; + earl:test ; +]. +[ + rdf:type earl:Assertion ; + earl:assertedBy ; + earl:result [ + rdf:type earl:TestResult ; + earl:mode earl:automatic ; + earl:outcome earl:passed ; + ] ; + earl:subject ; + earl:test ; +]. +[ + rdf:type earl:Assertion ; + earl:assertedBy ; + earl:result [ + rdf:type earl:TestResult ; + earl:mode earl:automatic ; + earl:outcome earl:passed ; + ] ; + earl:subject ; + earl:test ; +]. +[ + rdf:type earl:Assertion ; + earl:assertedBy ; + earl:result [ + rdf:type earl:TestResult ; + earl:mode earl:automatic ; + earl:outcome earl:passed ; + ] ; + earl:subject ; + earl:test ; +]. +[ + rdf:type earl:Assertion ; + earl:assertedBy ; + earl:result [ + rdf:type earl:TestResult ; + earl:mode earl:automatic ; + earl:outcome earl:passed ; + ] ; + earl:subject ; + earl:test ; +]. +[ + rdf:type earl:Assertion ; + earl:assertedBy ; + earl:result [ + rdf:type earl:TestResult ; + earl:mode earl:automatic ; + earl:outcome earl:passed ; + ] ; + earl:subject ; + earl:test ; +]. +[ + rdf:type earl:Assertion ; + earl:assertedBy ; + earl:result [ + rdf:type earl:TestResult ; + earl:mode earl:automatic ; + earl:outcome earl:passed ; + ] ; + earl:subject ; + earl:test ; +]. +[ + rdf:type earl:Assertion ; + earl:assertedBy ; + earl:result [ + rdf:type earl:TestResult ; + earl:mode earl:automatic ; + earl:outcome earl:passed ; + ] ; + earl:subject ; + earl:test ; +]. +[ + rdf:type earl:Assertion ; + earl:assertedBy ; + earl:result [ + rdf:type earl:TestResult ; + earl:mode earl:automatic ; + earl:outcome earl:passed ; + ] ; + earl:subject ; + earl:test ; +]. +[ + rdf:type earl:Assertion ; + earl:assertedBy ; + earl:result [ + rdf:type earl:TestResult ; + earl:mode earl:automatic ; + earl:outcome earl:passed ; + ] ; + earl:subject ; + earl:test ; +]. +[ + rdf:type earl:Assertion ; + earl:assertedBy ; + earl:result [ + rdf:type earl:TestResult ; + earl:mode earl:automatic ; + earl:outcome earl:passed ; + ] ; + earl:subject ; + earl:test ; +]. +[ + rdf:type earl:Assertion ; + earl:assertedBy ; + earl:result [ + rdf:type earl:TestResult ; + earl:mode earl:automatic ; + earl:outcome earl:passed ; + ] ; + earl:subject ; + earl:test ; +]. +[ + rdf:type earl:Assertion ; + earl:assertedBy ; + earl:result [ + rdf:type earl:TestResult ; + earl:mode earl:automatic ; + earl:outcome earl:passed ; + ] ; + earl:subject ; + earl:test ; +]. +[ + rdf:type earl:Assertion ; + earl:assertedBy ; + earl:result [ + rdf:type earl:TestResult ; + earl:mode earl:automatic ; + earl:outcome earl:passed ; + ] ; + earl:subject ; + earl:test ; +]. +[ + rdf:type earl:Assertion ; + earl:assertedBy ; + earl:result [ + rdf:type earl:TestResult ; + earl:mode earl:automatic ; + earl:outcome earl:passed ; + ] ; + earl:subject ; + earl:test ; +]. +[ + rdf:type earl:Assertion ; + earl:assertedBy ; + earl:result [ + rdf:type earl:TestResult ; + earl:mode earl:automatic ; + earl:outcome earl:passed ; + ] ; + earl:subject ; + earl:test ; +]. +[ + rdf:type earl:Assertion ; + earl:assertedBy ; + earl:result [ + rdf:type earl:TestResult ; + earl:mode earl:automatic ; + earl:outcome earl:passed ; + ] ; + earl:subject ; + earl:test ; +]. +[ + rdf:type earl:Assertion ; + earl:assertedBy ; + earl:result [ + rdf:type earl:TestResult ; + earl:mode earl:automatic ; + earl:outcome earl:passed ; + ] ; + earl:subject ; + earl:test ; +]. +[ + rdf:type earl:Assertion ; + earl:assertedBy ; + earl:result [ + rdf:type earl:TestResult ; + earl:mode earl:automatic ; + earl:outcome earl:passed ; + ] ; + earl:subject ; + earl:test ; +]. +[ + rdf:type earl:Assertion ; + earl:assertedBy ; + earl:result [ + rdf:type earl:TestResult ; + earl:mode earl:automatic ; + earl:outcome earl:passed ; + ] ; + earl:subject ; + earl:test ; +]. +[ + rdf:type earl:Assertion ; + earl:assertedBy ; + earl:result [ + rdf:type earl:TestResult ; + earl:mode earl:automatic ; + earl:outcome earl:passed ; + ] ; + earl:subject ; + earl:test ; +]. +[ + rdf:type earl:Assertion ; + earl:assertedBy ; + earl:result [ + rdf:type earl:TestResult ; + earl:mode earl:automatic ; + earl:outcome earl:passed ; + ] ; + earl:subject ; + earl:test ; +]. diff --git a/corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/reports/earl.ttl b/corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/reports/earl.ttl new file mode 100644 index 0000000000..dd678ff10c --- /dev/null +++ b/corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/reports/earl.ttl @@ -0,0 +1,242 @@ +# baseURI: http://www.w3.org/ns/earl +# prefix: earl + +@prefix dc: . +@prefix earl: . +@prefix owl: . +@prefix rdf: . +@prefix rdfs: . +@prefix xsd: . + + + rdf:type owl:Ontology ; + rdfs:comment "Formal schema of the Evaluation and Report Language (EARL) 1.0"@en ; + rdfs:isDefinedBy ; + rdfs:label "Evaluation and Report Language (EARL) 1.0 Schema"@en ; + rdfs:seeAlso ; + rdfs:seeAlso ; + rdfs:seeAlso ; + rdfs:seeAlso ; + "Editor's Working Draft 10 June 2009"@en ; +. +earl:Assertion + rdf:type rdfs:Class ; + rdf:type owl:Class ; + rdfs:comment "a statement that embodies the results of a test"@en ; + rdfs:label "Assertion"@en ; +. +earl:Assertor + rdf:type rdfs:Class ; + rdf:type owl:Class ; + rdfs:comment "an entity such as a person, a software tool, an organization, or any other grouping that carries out a test collectively"@en ; + rdfs:label "Assertor"@en ; +. +earl:CannotTell + rdf:type rdfs:Class ; + rdf:type owl:Class ; + rdfs:comment "the class of outcomes to denote an undetermined outcome"@en ; + rdfs:label "Undetermined"@en ; + rdfs:subClassOf earl:OutcomeValue ; +. +earl:Fail + rdf:type rdfs:Class ; + rdf:type owl:Class ; + rdfs:comment "the class of outcomes to denote failing a test"@en ; + rdfs:label "Fail"@en ; + rdfs:subClassOf earl:OutcomeValue ; +. +earl:NotApplicable + rdf:type rdfs:Class ; + rdf:type owl:Class ; + rdfs:comment "the class of outcomes to denote the test is not applicable"@en ; + rdfs:label "Not applicable"@en ; + rdfs:subClassOf earl:OutcomeValue ; +. +earl:NotTested + rdf:type rdfs:Class ; + rdf:type owl:Class ; + rdfs:comment "the class of outcomes to denote the test has not been carried out"@en ; + rdfs:label "Not tested"@en ; + rdfs:subClassOf earl:OutcomeValue ; +. +earl:OutcomeValue + rdf:type rdfs:Class ; + rdf:type owl:Class ; + rdfs:comment "a discrete value that describes a resulting condition from carrying out the test"@en ; + rdfs:label "Outcome Value"@en ; +. +earl:Pass + rdf:type rdfs:Class ; + rdf:type owl:Class ; + rdfs:comment "the class of outcomes to denote passing a test"@en ; + rdfs:label "Pass"@en ; + rdfs:subClassOf earl:OutcomeValue ; +. +earl:Software + rdf:type rdfs:Class ; + rdf:type owl:Class ; + rdfs:comment "any piece of software such as an authoring tool, browser, or evaluation tool"@en ; + rdfs:label "Software"@en ; + rdfs:subClassOf ; +. +earl:TestCase + rdf:type rdfs:Class ; + rdf:type owl:Class ; + rdfs:comment "an atomic test, usually one that is a partial test for a requirement"@en ; + rdfs:label "Test Case"@en ; + rdfs:subClassOf earl:TestCriterion ; +. +earl:TestCriterion + rdf:type rdfs:Class ; + rdf:type owl:Class ; + rdfs:comment "a testable statement, usually one that can be passed or failed"@en ; + rdfs:label "Test Criterion"@en ; +. +earl:TestMode + rdf:type rdfs:Class ; + rdf:type owl:Class ; + rdfs:comment "describes how a test was carried out"@en ; + rdfs:label "Test Mode"@en ; +. +earl:TestRequirement + rdf:type rdfs:Class ; + rdf:type owl:Class ; + rdfs:comment "a higher-level requirement that is tested by executing one or more sub-tests"@en ; + rdfs:label "Test Requirement"@en ; + rdfs:subClassOf earl:TestCriterion ; +. +earl:TestResult + rdf:type rdfs:Class ; + rdf:type owl:Class ; + rdfs:comment "the actual result of performing the test"@en ; + rdfs:label "Test Result"@en ; +. +earl:TestSubject + rdf:type rdfs:Class ; + rdf:type owl:Class ; + rdfs:comment "the class of things that have been tested against some test criterion"@en ; + rdfs:label "Test Subject"@en ; +. +earl:assertedBy + rdf:type rdf:Property ; + rdf:type owl:ObjectProperty ; + rdfs:comment "assertor of an assertion"@en ; + rdfs:domain earl:Assertion ; + rdfs:label "Asserted By"@en ; + rdfs:range earl:Assertor ; +. +earl:automatic + rdf:type earl:TestMode ; + dc:description "where the test was carried out automatically by the software tool and without any human intervention"@en ; + dc:title "Automatic"@en ; +. +earl:cantTell + rdf:type earl:CannotTell ; + dc:description "it is unclear if the subject passed or failed the test"@en ; + dc:title "Cannot tell"@en ; +. +earl:failed + rdf:type earl:Fail ; + dc:description "the subject failed the test"@en ; + dc:title "Failed"@en ; +. +earl:inapplicable + rdf:type earl:NotApplicable ; + dc:description "the test is not applicable to the subject"@en ; + dc:title "Inapplicable"@en ; +. +earl:info + rdf:type rdf:Property ; + rdf:type owl:DatatypeProperty ; + rdfs:comment "additional warnings or error messages in a human-readable form"@en ; + rdfs:domain earl:TestResult ; + rdfs:label "Info"@en ; + rdfs:range rdfs:Literal ; +. +earl:mainAssertor + rdf:type rdf:Property ; + rdf:type owl:ObjectProperty ; + rdfs:comment "assertor that is primarily responsible for performing the test"@en ; + rdfs:domain earl:Assertor ; + rdfs:label "Main Assertor"@en ; + rdfs:range earl:Assertor ; + rdfs:subPropertyOf ; +. +earl:manual + rdf:type earl:TestMode ; + dc:description "where the test was carried out by human evaluators"@en ; + dc:title "Manual"@en ; +. +earl:mode + rdf:type rdf:Property ; + rdf:type owl:ObjectProperty ; + rdfs:comment "mode in which the test was performed"@en ; + rdfs:domain earl:Assertion ; + rdfs:label "Mode"@en ; + rdfs:range earl:TestMode ; +. +earl:outcome + rdf:type rdf:Property ; + rdf:type owl:ObjectProperty ; + rdfs:comment "outcome of performing the test"@en ; + rdfs:domain earl:TestResult ; + rdfs:label "Outcome"@en ; + rdfs:range earl:OutcomeValue ; +. +earl:passed + rdf:type earl:Pass ; + dc:description "the subject passed the test"@en ; + dc:title "Passed"@en ; +. +earl:pointer + rdf:type rdf:Property ; + rdf:type owl:ObjectProperty ; + rdfs:comment "location within a test subject that are most relevant to a test result"@en ; + rdfs:domain ; + rdfs:label "Pointer"@en ; + rdfs:range ; +. +earl:result + rdf:type rdf:Property ; + rdf:type owl:ObjectProperty ; + rdfs:comment "result of an assertion"@en ; + rdfs:domain earl:Assertion ; + rdfs:label "Result"@en ; + rdfs:range earl:TestResult ; +. +earl:semiAuto + rdf:type earl:TestMode ; + dc:description "where the test was partially carried out by software tools, but where human input or judgment was still required to decide or help decide the outcome of the test"@en ; + dc:title "Semi-Automatic"@en ; +. +earl:subject + rdf:type rdf:Property ; + rdf:type owl:ObjectProperty ; + rdfs:comment "test subject of an assertion"@en ; + rdfs:domain earl:Assertion ; + rdfs:label "Subject"@en ; + rdfs:range earl:TestSubject ; +. +earl:test + rdf:type rdf:Property ; + rdf:type owl:ObjectProperty ; + rdfs:comment "test criterion of an assertion"@en ; + rdfs:domain earl:Assertion ; + rdfs:label "Test"@en ; + rdfs:range earl:TestCriterion ; +. +earl:undisclosed + rdf:type earl:TestMode ; + dc:description "where the exact testing process is undisclosed"@en ; + dc:title "Undisclosed"@en ; +. +earl:unknownMode + rdf:type earl:TestMode ; + dc:description "where the testing process is unknown or undetermined"@en ; + dc:title "Unknown"@en ; +. +earl:untested + rdf:type earl:NotTested ; + dc:description "the test has not been carried out"@en ; + dc:title "Untested"@en ; +. diff --git a/corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/reports/earlreport.ui.ttlx b/corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/reports/earlreport.ui.ttlx new file mode 100644 index 0000000000..68cab66da0 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/reports/earlreport.ui.ttlx @@ -0,0 +1,191 @@ +# baseURI: http://shacl.org/earlreport +# imports: file:/C:/Users/Holger/Documents/GitHub/data-shapes/data-shapes-test-suite/reports/corese-shacl-earl.ttl +# imports: http://netage.com/shacl/earl/api +# imports: http://topquadrant.com/shacl/api/earl +# imports: http://uispin.org/html +# imports: http://www.w3.org/ns/earl +# prefix: earlreport + +@prefix afn: . +@prefix arg: . +@prefix css: . +@prefix dc: . +@prefix default: . +@prefix doap: . +@prefix earl: . +@prefix earlreport: . +@prefix fn: . +@prefix html: . +@prefix let: . +@prefix letrs: . +@prefix owl: . +@prefix rdf: . +@prefix rdfs: . +@prefix smf: . +@prefix sp: . +@prefix spif: . +@prefix spin: . +@prefix spl: . +@prefix spr: . +@prefix spra: . +@prefix style: . +@prefix ui: . +@prefix xsd: . + + + rdf:type owl:Ontology ; + owl:imports ; + owl:imports ; + owl:imports ; + owl:imports ; + owl:imports ; + owl:versionInfo "Created with TopBraid Composer" ; +. +earlreport:ValidationTestsTable + rdf:type ui:ViewElement ; + ui:prototype """ + + + + + + + + + + + + + + + + + + + + + + + +
FileStatusTest Case + {= spl:object(?subject, doap:name) } +
+ + + + {= ?passed } / {= spr:rowCount(?tests) } ({= ceil(((?passed * 100) / spr:rowCount(?tests))) }%)
+ {= ?path } + {= afn:localname(?status) }{= ?label }
+"""^^ui:Literal ; + ui:responseType ui:HTML ; + rdfs:label "Validation tests table" ; + rdfs:subClassOf ui:ViewElements ; +. +earlreport:ValidationTestsTableCell + rdf:type ui:ViewElement ; + spin:constraint [ + rdf:type spl:Argument ; + spl:predicate arg:subject ; + spl:valueType earl:TestSubject ; + rdfs:comment "The test subject (product)." ; + ] ; + spin:constraint [ + rdf:type spl:Argument ; + spl:predicate arg:test ; + spl:valueType rdfs:Resource ; + rdfs:comment "The test case." ; + ] ; + ui:prototype """ + + + no data + + + {= afn:localname(?outcome) } + + +"""^^ui:Literal ; + rdfs:label "Validation tests table cell" ; + rdfs:subClassOf ui:ViewElements ; +. +earlreport:getPath + rdf:type spin:Function ; + spin:body [ + rdf:type sp:Select ; + sp:resultVariables ( + [ + sp:varName "result" ; + ] + ) ; + sp:where ( + [ + rdf:type sp:Bind ; + sp:expression [ + rdf:type sp:str ; + sp:arg1 [ + sp:varName "test" ; + ] ; + ] ; + sp:variable [ + sp:varName "str" ; + ] ; + ] + [ + rdf:type sp:Bind ; + sp:expression [ + rdf:type sp:substr ; + sp:arg1 [ + sp:varName "str" ; + ] ; + sp:arg2 19 ; + ] ; + sp:variable [ + sp:varName "result" ; + ] ; + ] + ) ; + ] ; + spin:constraint [ + rdf:type spl:Argument ; + spl:predicate arg:test ; + spl:valueType rdfs:Resource ; + rdfs:comment "The test resource" ; + ] ; + spin:returnType xsd:string ; + rdfs:label "get path" ; + rdfs:subClassOf spin:Functions ; +. +arg:subject + rdf:type rdf:Property ; + rdfs:subPropertyOf sp:arg ; +. +arg:test + rdf:type rdf:Property ; + rdfs:subPropertyOf sp:arg ; +. diff --git a/corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/reports/netage-shacl-earl.ttl b/corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/reports/netage-shacl-earl.ttl new file mode 100644 index 0000000000..a999c2c419 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/reports/netage-shacl-earl.ttl @@ -0,0 +1,1250 @@ +# baseURI: http://netage.com/shacl/earl/api + +@prefix doap: . +@prefix earl: . +@prefix owl: . +@prefix rdf: . +@prefix rdfs: . +@prefix xsd: . + + + rdf:type doap:Project ; + rdf:type earl:Software ; + rdf:type earl:TestSubject ; + doap:developer ; + doap:name "Netage SHACL Engine" ; +. +[ + rdf:type earl:Assertion ; + earl:assertedBy ; + earl:result [ + rdf:type earl:TestResult ; + earl:mode earl:manual ; + earl:outcome earl:passed ; + ] ; + earl:subject ; + earl:test ; +]. +[ + rdf:type earl:Assertion ; + earl:assertedBy ; + earl:result [ + rdf:type earl:TestResult ; + earl:mode earl:manual ; + earl:outcome earl:passed ; + ] ; + earl:subject ; + earl:test ; +]. +[ + rdf:type earl:Assertion ; + earl:assertedBy ; + earl:result [ + rdf:type earl:TestResult ; + earl:mode earl:manual ; + earl:outcome earl:passed ; + ] ; + earl:subject ; + earl:test ; +]. +[ + rdf:type earl:Assertion ; + earl:assertedBy ; + earl:result [ + rdf:type earl:TestResult ; + earl:mode earl:manual ; + earl:outcome earl:passed ; + ] ; + earl:subject ; + earl:test ; +]. +[ + rdf:type earl:Assertion ; + earl:assertedBy ; + earl:result [ + rdf:type earl:TestResult ; + earl:mode earl:manual ; + earl:outcome earl:passed ; + ] ; + earl:subject ; + earl:test ; +]. +[ + rdf:type earl:Assertion ; + earl:assertedBy ; + earl:result [ + rdf:type earl:TestResult ; + earl:mode earl:manual ; + earl:outcome earl:passed ; + ] ; + earl:subject ; + earl:test ; +]. +[ + rdf:type earl:Assertion ; + earl:assertedBy ; + earl:result [ + rdf:type earl:TestResult ; + earl:mode earl:manual ; + earl:outcome earl:passed ; + ] ; + earl:subject ; + earl:test ; +]. +[ + rdf:type earl:Assertion ; + earl:assertedBy ; + earl:result [ + rdf:type earl:TestResult ; + earl:mode earl:manual ; + earl:outcome earl:passed ; + ] ; + earl:subject ; + earl:test ; +]. +[ + rdf:type earl:Assertion ; + earl:assertedBy ; + earl:result [ + rdf:type earl:TestResult ; + earl:mode earl:manual ; + earl:outcome earl:passed ; + ] ; + earl:subject ; + earl:test ; +]. +[ + rdf:type earl:Assertion ; + earl:assertedBy ; + earl:result [ + rdf:type earl:TestResult ; + earl:mode earl:manual ; + earl:outcome earl:passed ; + ] ; + earl:subject ; + earl:test ; +]. +[ + rdf:type earl:Assertion ; + earl:assertedBy ; + earl:result [ + rdf:type earl:TestResult ; + earl:mode earl:manual ; + earl:outcome earl:passed ; + ] ; + earl:subject ; + earl:test ; +]. +[ + rdf:type earl:Assertion ; + earl:assertedBy ; + earl:result [ + rdf:type earl:TestResult ; + earl:mode earl:manual ; + earl:outcome earl:passed ; + ] ; + earl:subject ; + earl:test ; +]. +[ + rdf:type earl:Assertion ; + earl:assertedBy ; + earl:result [ + rdf:type earl:TestResult ; + earl:mode earl:manual ; + earl:outcome earl:passed ; + ] ; + earl:subject ; + earl:test ; +]. +[ + rdf:type earl:Assertion ; + earl:assertedBy ; + earl:result [ + rdf:type earl:TestResult ; + earl:mode earl:manual ; + earl:outcome earl:passed ; + ] ; + earl:subject ; + earl:test ; +]. +[ + rdf:type earl:Assertion ; + earl:assertedBy ; + earl:result [ + rdf:type earl:TestResult ; + earl:mode earl:manual ; + earl:outcome earl:passed ; + ] ; + earl:subject ; + earl:test ; +]. +[ + rdf:type earl:Assertion ; + earl:assertedBy ; + earl:result [ + rdf:type earl:TestResult ; + earl:mode earl:manual ; + earl:outcome earl:passed ; + ] ; + earl:subject ; + earl:test ; +]. +[ + rdf:type earl:Assertion ; + earl:assertedBy ; + earl:result [ + rdf:type earl:TestResult ; + earl:mode earl:manual ; + earl:outcome earl:passed ; + ] ; + earl:subject ; + earl:test ; +]. +[ + rdf:type earl:Assertion ; + earl:assertedBy ; + earl:result [ + rdf:type earl:TestResult ; + earl:mode earl:manual ; + earl:outcome earl:passed ; + ] ; + earl:subject ; + earl:test ; +]. +[ + rdf:type earl:Assertion ; + earl:assertedBy ; + earl:result [ + rdf:type earl:TestResult ; + earl:mode earl:manual ; + earl:outcome earl:passed ; + ] ; + earl:subject ; + earl:test ; +]. +[ + rdf:type earl:Assertion ; + earl:assertedBy ; + earl:result [ + rdf:type earl:TestResult ; + earl:mode earl:manual ; + earl:outcome earl:passed ; + ] ; + earl:subject ; + earl:test ; +]. +[ + rdf:type earl:Assertion ; + earl:assertedBy ; + earl:result [ + rdf:type earl:TestResult ; + earl:mode earl:manual ; + earl:outcome earl:passed ; + ] ; + earl:subject ; + earl:test ; +]. +[ + rdf:type earl:Assertion ; + earl:assertedBy ; + earl:result [ + rdf:type earl:TestResult ; + earl:mode earl:manual ; + earl:outcome earl:passed ; + ] ; + earl:subject ; + earl:test ; +]. +[ + rdf:type earl:Assertion ; + earl:assertedBy ; + earl:result [ + rdf:type earl:TestResult ; + earl:mode earl:manual ; + earl:outcome earl:passed ; + ] ; + earl:subject ; + earl:test ; +]. +[ + rdf:type earl:Assertion ; + earl:assertedBy ; + earl:result [ + rdf:type earl:TestResult ; + earl:mode earl:manual ; + earl:outcome earl:passed ; + ] ; + earl:subject ; + earl:test ; +]. +[ + rdf:type earl:Assertion ; + earl:assertedBy ; + earl:result [ + rdf:type earl:TestResult ; + earl:mode earl:manual ; + earl:outcome earl:passed ; + ] ; + earl:subject ; + earl:test ; +]. +[ + rdf:type earl:Assertion ; + earl:assertedBy ; + earl:result [ + rdf:type earl:TestResult ; + earl:mode earl:manual ; + earl:outcome earl:passed ; + ] ; + earl:subject ; + earl:test ; +]. +[ + rdf:type earl:Assertion ; + earl:assertedBy ; + earl:result [ + rdf:type earl:TestResult ; + earl:mode earl:manual ; + earl:outcome earl:passed ; + ] ; + earl:subject ; + earl:test ; +]. +[ + rdf:type earl:Assertion ; + earl:assertedBy ; + earl:result [ + rdf:type earl:TestResult ; + earl:mode earl:manual ; + earl:outcome earl:passed ; + ] ; + earl:subject ; + earl:test ; +]. +[ + rdf:type earl:Assertion ; + earl:assertedBy ; + earl:result [ + rdf:type earl:TestResult ; + earl:mode earl:manual ; + earl:outcome earl:passed ; + ] ; + earl:subject ; + earl:test ; +]. +[ + rdf:type earl:Assertion ; + earl:assertedBy ; + earl:result [ + rdf:type earl:TestResult ; + earl:mode earl:manual ; + earl:outcome earl:passed ; + ] ; + earl:subject ; + earl:test ; +]. +[ + rdf:type earl:Assertion ; + earl:assertedBy ; + earl:result [ + rdf:type earl:TestResult ; + earl:mode earl:manual ; + earl:outcome earl:passed ; + ] ; + earl:subject ; + earl:test ; +]. +[ + rdf:type earl:Assertion ; + earl:assertedBy ; + earl:result [ + rdf:type earl:TestResult ; + earl:mode earl:manual ; + earl:outcome earl:passed ; + ] ; + earl:subject ; + earl:test ; +]. +[ + rdf:type earl:Assertion ; + earl:assertedBy ; + earl:result [ + rdf:type earl:TestResult ; + earl:mode earl:manual ; + earl:outcome earl:passed ; + ] ; + earl:subject ; + earl:test ; +]. +[ + rdf:type earl:Assertion ; + earl:assertedBy ; + earl:result [ + rdf:type earl:TestResult ; + earl:mode earl:manual ; + earl:outcome earl:passed ; + ] ; + earl:subject ; + earl:test ; +]. +[ + rdf:type earl:Assertion ; + earl:assertedBy ; + earl:result [ + rdf:type earl:TestResult ; + earl:mode earl:manual ; + earl:outcome earl:passed ; + ] ; + earl:subject ; + earl:test ; +]. +[ + rdf:type earl:Assertion ; + earl:assertedBy ; + earl:result [ + rdf:type earl:TestResult ; + earl:mode earl:manual ; + earl:outcome earl:failed ; + ] ; + earl:subject ; + earl:test ; +]. +[ + rdf:type earl:Assertion ; + earl:assertedBy ; + earl:result [ + rdf:type earl:TestResult ; + earl:mode earl:manual ; + earl:outcome earl:failed ; + ] ; + earl:subject ; + earl:test ; +]. +[ + rdf:type earl:Assertion ; + earl:assertedBy ; + earl:result [ + rdf:type earl:TestResult ; + earl:mode earl:manual ; + earl:outcome earl:failed ; + ] ; + earl:subject ; + earl:test ; +]. +[ + rdf:type earl:Assertion ; + earl:assertedBy ; + earl:result [ + rdf:type earl:TestResult ; + earl:mode earl:manual ; + earl:outcome earl:failed ; + ] ; + earl:subject ; + earl:test ; +]. +[ + rdf:type earl:Assertion ; + earl:assertedBy ; + earl:result [ + rdf:type earl:TestResult ; + earl:mode earl:manual ; + earl:outcome earl:failed ; + ] ; + earl:subject ; + earl:test ; +]. +[ + rdf:type earl:Assertion ; + earl:assertedBy ; + earl:result [ + rdf:type earl:TestResult ; + earl:mode earl:manual ; + earl:outcome earl:failed ; + ] ; + earl:subject ; + earl:test ; +]. +[ + rdf:type earl:Assertion ; + earl:assertedBy ; + earl:result [ + rdf:type earl:TestResult ; + earl:mode earl:manual ; + earl:outcome earl:failed ; + ] ; + earl:subject ; + earl:test ; +]. +[ + rdf:type earl:Assertion ; + earl:assertedBy ; + earl:result [ + rdf:type earl:TestResult ; + earl:mode earl:manual ; + earl:outcome earl:failed ; + ] ; + earl:subject ; + earl:test ; +]. +[ + rdf:type earl:Assertion ; + earl:assertedBy ; + earl:result [ + rdf:type earl:TestResult ; + earl:mode earl:manual ; + earl:outcome earl:failed ; + ] ; + earl:subject ; + earl:test ; +]. +[ + rdf:type earl:Assertion ; + earl:assertedBy ; + earl:result [ + rdf:type earl:TestResult ; + earl:mode earl:manual ; + earl:outcome earl:passed ; + ] ; + earl:subject ; + earl:test ; +]. +[ + rdf:type earl:Assertion ; + earl:assertedBy ; + earl:result [ + rdf:type earl:TestResult ; + earl:mode earl:manual ; + earl:outcome earl:passed ; + ] ; + earl:subject ; + earl:test ; +]. +[ + rdf:type earl:Assertion ; + earl:assertedBy ; + earl:result [ + rdf:type earl:TestResult ; + earl:mode earl:manual ; + earl:outcome earl:passed ; + ] ; + earl:subject ; + earl:test ; +]. +[ + rdf:type earl:Assertion ; + earl:assertedBy ; + earl:result [ + rdf:type earl:TestResult ; + earl:mode earl:manual ; + earl:outcome earl:passed ; + ] ; + earl:subject ; + earl:test ; +]. +[ + rdf:type earl:Assertion ; + earl:assertedBy ; + earl:result [ + rdf:type earl:TestResult ; + earl:mode earl:manual ; + earl:outcome earl:passed ; + ] ; + earl:subject ; + earl:test ; +]. +[ + rdf:type earl:Assertion ; + earl:assertedBy ; + earl:result [ + rdf:type earl:TestResult ; + earl:mode earl:manual ; + earl:outcome earl:passed ; + ] ; + earl:subject ; + earl:test ; +]. +[ + rdf:type earl:Assertion ; + earl:assertedBy ; + earl:result [ + rdf:type earl:TestResult ; + earl:mode earl:manual ; + earl:outcome earl:passed ; + ] ; + earl:subject ; + earl:test ; +]. +[ + rdf:type earl:Assertion ; + earl:assertedBy ; + earl:result [ + rdf:type earl:TestResult ; + earl:mode earl:manual ; + earl:outcome earl:passed ; + ] ; + earl:subject ; + earl:test ; +]. +[ + rdf:type earl:Assertion ; + earl:assertedBy ; + earl:result [ + rdf:type earl:TestResult ; + earl:mode earl:manual ; + earl:outcome earl:passed ; + ] ; + earl:subject ; + earl:test ; +]. +[ + rdf:type earl:Assertion ; + earl:assertedBy ; + earl:result [ + rdf:type earl:TestResult ; + earl:mode earl:manual ; + earl:outcome earl:passed ; + ] ; + earl:subject ; + earl:test ; +]. +[ + rdf:type earl:Assertion ; + earl:assertedBy ; + earl:result [ + rdf:type earl:TestResult ; + earl:mode earl:manual ; + earl:outcome earl:passed ; + ] ; + earl:subject ; + earl:test ; +]. +[ + rdf:type earl:Assertion ; + earl:assertedBy ; + earl:result [ + rdf:type earl:TestResult ; + earl:mode earl:manual ; + earl:outcome earl:passed ; + ] ; + earl:subject ; + earl:test ; +]. +[ + rdf:type earl:Assertion ; + earl:assertedBy ; + earl:result [ + rdf:type earl:TestResult ; + earl:mode earl:manual ; + earl:outcome earl:passed ; + ] ; + earl:subject ; + earl:test ; +]. +[ + rdf:type earl:Assertion ; + earl:assertedBy ; + earl:result [ + rdf:type earl:TestResult ; + earl:mode earl:manual ; + earl:outcome earl:passed ; + ] ; + earl:subject ; + earl:test ; +]. +[ + rdf:type earl:Assertion ; + earl:assertedBy ; + earl:result [ + rdf:type earl:TestResult ; + earl:mode earl:manual ; + earl:outcome earl:passed ; + ] ; + earl:subject ; + earl:test ; +]. +[ + rdf:type earl:Assertion ; + earl:assertedBy ; + earl:result [ + rdf:type earl:TestResult ; + earl:mode earl:manual ; + earl:outcome earl:passed ; + ] ; + earl:subject ; + earl:test ; +]. +[ + rdf:type earl:Assertion ; + earl:assertedBy ; + earl:result [ + rdf:type earl:TestResult ; + earl:mode earl:manual ; + earl:outcome earl:passed ; + ] ; + earl:subject ; + earl:test ; +]. +[ + rdf:type earl:Assertion ; + earl:assertedBy ; + earl:result [ + rdf:type earl:TestResult ; + earl:mode earl:manual ; + earl:outcome earl:passed ; + ] ; + earl:subject ; + earl:test ; +]. +[ + rdf:type earl:Assertion ; + earl:assertedBy ; + earl:result [ + rdf:type earl:TestResult ; + earl:mode earl:manual ; + earl:outcome earl:passed ; + ] ; + earl:subject ; + earl:test ; +]. +[ + rdf:type earl:Assertion ; + earl:assertedBy ; + earl:result [ + rdf:type earl:TestResult ; + earl:mode earl:manual ; + earl:outcome earl:passed ; + ] ; + earl:subject ; + earl:test ; +]. +[ + rdf:type earl:Assertion ; + earl:assertedBy ; + earl:result [ + rdf:type earl:TestResult ; + earl:mode earl:manual ; + earl:outcome earl:passed ; + ] ; + earl:subject ; + earl:test ; +]. +[ + rdf:type earl:Assertion ; + earl:assertedBy ; + earl:result [ + rdf:type earl:TestResult ; + earl:mode earl:manual ; + earl:outcome earl:passed ; + ] ; + earl:subject ; + earl:test ; +]. +[ + rdf:type earl:Assertion ; + earl:assertedBy ; + earl:result [ + rdf:type earl:TestResult ; + earl:mode earl:manual ; + earl:outcome earl:passed ; + ] ; + earl:subject ; + earl:test ; +]. +[ + rdf:type earl:Assertion ; + earl:assertedBy ; + earl:result [ + rdf:type earl:TestResult ; + earl:mode earl:manual ; + earl:outcome earl:passed ; + ] ; + earl:subject ; + earl:test ; +]. +[ + rdf:type earl:Assertion ; + earl:assertedBy ; + earl:result [ + rdf:type earl:TestResult ; + earl:mode earl:manual ; + earl:outcome earl:passed ; + ] ; + earl:subject ; + earl:test ; +]. +[ + rdf:type earl:Assertion ; + earl:assertedBy ; + earl:result [ + rdf:type earl:TestResult ; + earl:mode earl:manual ; + earl:outcome earl:passed ; + ] ; + earl:subject ; + earl:test ; +]. +[ + rdf:type earl:Assertion ; + earl:assertedBy ; + earl:result [ + rdf:type earl:TestResult ; + earl:mode earl:manual ; + earl:outcome earl:passed ; + ] ; + earl:subject ; + earl:test ; +]. +[ + rdf:type earl:Assertion ; + earl:assertedBy ; + earl:result [ + rdf:type earl:TestResult ; + earl:mode earl:manual ; + earl:outcome earl:passed ; + ] ; + earl:subject ; + earl:test ; +]. +[ + rdf:type earl:Assertion ; + earl:assertedBy ; + earl:result [ + rdf:type earl:TestResult ; + earl:mode earl:manual ; + earl:outcome earl:passed ; + ] ; + earl:subject ; + earl:test ; +]. +[ + rdf:type earl:Assertion ; + earl:assertedBy ; + earl:result [ + rdf:type earl:TestResult ; + earl:mode earl:manual ; + earl:outcome earl:passed ; + ] ; + earl:subject ; + earl:test ; +]. +[ + rdf:type earl:Assertion ; + earl:assertedBy ; + earl:result [ + rdf:type earl:TestResult ; + earl:mode earl:manual ; + earl:outcome earl:passed ; + ] ; + earl:subject ; + earl:test ; +]. +[ + rdf:type earl:Assertion ; + earl:assertedBy ; + earl:result [ + rdf:type earl:TestResult ; + earl:mode earl:manual ; + earl:outcome earl:passed ; + ] ; + earl:subject ; + earl:test ; +]. +[ + rdf:type earl:Assertion ; + earl:assertedBy ; + earl:result [ + rdf:type earl:TestResult ; + earl:mode earl:manual ; + earl:outcome earl:failed ; + ] ; + earl:subject ; + earl:test ; +]. +[ + rdf:type earl:Assertion ; + earl:assertedBy ; + earl:result [ + rdf:type earl:TestResult ; + earl:mode earl:manual ; + earl:outcome earl:passed ; + ] ; + earl:subject ; + earl:test ; +]. +[ + rdf:type earl:Assertion ; + earl:assertedBy ; + earl:result [ + rdf:type earl:TestResult ; + earl:mode earl:manual ; + earl:outcome earl:failed ; + ] ; + earl:subject ; + earl:test ; +]. +[ + rdf:type earl:Assertion ; + earl:assertedBy ; + earl:result [ + rdf:type earl:TestResult ; + earl:mode earl:manual ; + earl:outcome earl:passed ; + ] ; + earl:subject ; + earl:test ; +]. +[ + rdf:type earl:Assertion ; + earl:assertedBy ; + earl:result [ + rdf:type earl:TestResult ; + earl:mode earl:manual ; + earl:outcome earl:passed ; + ] ; + earl:subject ; + earl:test ; +]. +[ + rdf:type earl:Assertion ; + earl:assertedBy ; + earl:result [ + rdf:type earl:TestResult ; + earl:mode earl:manual ; + earl:outcome earl:passed ; + ] ; + earl:subject ; + earl:test ; +]. +[ + rdf:type earl:Assertion ; + earl:assertedBy ; + earl:result [ + rdf:type earl:TestResult ; + earl:mode earl:manual ; + earl:outcome earl:passed ; + ] ; + earl:subject ; + earl:test ; +]. +[ + rdf:type earl:Assertion ; + earl:assertedBy ; + earl:result [ + rdf:type earl:TestResult ; + earl:mode earl:manual ; + earl:outcome earl:passed ; + ] ; + earl:subject ; + earl:test ; +]. +[ + rdf:type earl:Assertion ; + earl:assertedBy ; + earl:result [ + rdf:type earl:TestResult ; + earl:mode earl:manual ; + earl:outcome earl:passed ; + ] ; + earl:subject ; + earl:test ; +]. +[ + rdf:type earl:Assertion ; + earl:assertedBy ; + earl:result [ + rdf:type earl:TestResult ; + earl:mode earl:manual ; + earl:outcome earl:passed ; + ] ; + earl:subject ; + earl:test ; +]. +[ + rdf:type earl:Assertion ; + earl:assertedBy ; + earl:result [ + rdf:type earl:TestResult ; + earl:mode earl:manual ; + earl:outcome earl:passed ; + ] ; + earl:subject ; + earl:test ; +]. +[ + rdf:type earl:Assertion ; + earl:assertedBy ; + earl:result [ + rdf:type earl:TestResult ; + earl:mode earl:manual ; + earl:outcome earl:passed ; + ] ; + earl:subject ; + earl:test ; +]. +[ + rdf:type earl:Assertion ; + earl:assertedBy ; + earl:result [ + rdf:type earl:TestResult ; + earl:mode earl:manual ; + earl:outcome earl:passed ; + ] ; + earl:subject ; + earl:test ; +]. +[ + rdf:type earl:Assertion ; + earl:assertedBy ; + earl:result [ + rdf:type earl:TestResult ; + earl:mode earl:manual ; + earl:outcome earl:passed ; + ] ; + earl:subject ; + earl:test ; +]. +[ + rdf:type earl:Assertion ; + earl:assertedBy ; + earl:result [ + rdf:type earl:TestResult ; + earl:mode earl:manual ; + earl:outcome earl:passed ; + ] ; + earl:subject ; + earl:test ; +]. +[ + rdf:type earl:Assertion ; + earl:assertedBy ; + earl:result [ + rdf:type earl:TestResult ; + earl:mode earl:manual ; + earl:outcome earl:passed ; + ] ; + earl:subject ; + earl:test ; +]. +[ + rdf:type earl:Assertion ; + earl:assertedBy ; + earl:result [ + rdf:type earl:TestResult ; + earl:mode earl:manual ; + earl:outcome earl:passed ; + ] ; + earl:subject ; + earl:test ; +]. +[ + rdf:type earl:Assertion ; + earl:assertedBy ; + earl:result [ + rdf:type earl:TestResult ; + earl:mode earl:manual ; + earl:outcome earl:passed ; + ] ; + earl:subject ; + earl:test ; +]. +[ + rdf:type earl:Assertion ; + earl:assertedBy ; + earl:result [ + rdf:type earl:TestResult ; + earl:mode earl:manual ; + earl:outcome earl:passed ; + ] ; + earl:subject ; + earl:test ; +]. +[ + rdf:type earl:Assertion ; + earl:assertedBy ; + earl:result [ + rdf:type earl:TestResult ; + earl:mode earl:manual ; + earl:outcome earl:passed ; + ] ; + earl:subject ; + earl:test ; +]. +[ + rdf:type earl:Assertion ; + earl:assertedBy ; + earl:result [ + rdf:type earl:TestResult ; + earl:mode earl:manual ; + earl:outcome earl:passed ; + ] ; + earl:subject ; + earl:test ; +]. +[ + rdf:type earl:Assertion ; + earl:assertedBy ; + earl:result [ + rdf:type earl:TestResult ; + earl:mode earl:manual ; + earl:outcome earl:passed ; + ] ; + earl:subject ; + earl:test ; +]. +[ + rdf:type earl:Assertion ; + earl:assertedBy ; + earl:result [ + rdf:type earl:TestResult ; + earl:mode earl:manual ; + earl:outcome earl:passed ; + ] ; + earl:subject ; + earl:test ; +]. +[ + rdf:type earl:Assertion ; + earl:assertedBy ; + earl:result [ + rdf:type earl:TestResult ; + earl:mode earl:manual ; + earl:outcome earl:passed ; + ] ; + earl:subject ; + earl:test ; +]. +[ + rdf:type earl:Assertion ; + earl:assertedBy ; + earl:result [ + rdf:type earl:TestResult ; + earl:mode earl:manual ; + earl:outcome earl:passed ; + ] ; + earl:subject ; + earl:test ; +]. +[ + rdf:type earl:Assertion ; + earl:assertedBy ; + earl:result [ + rdf:type earl:TestResult ; + earl:mode earl:manual ; + earl:outcome earl:passed ; + ] ; + earl:subject ; + earl:test ; +]. +[ + rdf:type earl:Assertion ; + earl:assertedBy ; + earl:result [ + rdf:type earl:TestResult ; + earl:mode earl:manual ; + earl:outcome earl:passed ; + ] ; + earl:subject ; + earl:test ; +]. +[ + rdf:type earl:Assertion ; + earl:assertedBy ; + earl:result [ + rdf:type earl:TestResult ; + earl:mode earl:manual ; + earl:outcome earl:passed ; + ] ; + earl:subject ; + earl:test ; +]. +[ + rdf:type earl:Assertion ; + earl:assertedBy ; + earl:result [ + rdf:type earl:TestResult ; + earl:mode earl:manual ; + earl:outcome earl:passed ; + ] ; + earl:subject ; + earl:test ; +]. +[ + rdf:type earl:Assertion ; + earl:assertedBy ; + earl:result [ + rdf:type earl:TestResult ; + earl:mode earl:manual ; + earl:outcome earl:passed ; + ] ; + earl:subject ; + earl:test ; +]. +[ + rdf:type earl:Assertion ; + earl:assertedBy ; + earl:result [ + rdf:type earl:TestResult ; + earl:mode earl:manual ; + earl:outcome earl:passed ; + ] ; + earl:subject ; + earl:test ; +]. +[ + rdf:type earl:Assertion ; + earl:assertedBy ; + earl:result [ + rdf:type earl:TestResult ; + earl:mode earl:manual ; + earl:outcome earl:passed ; + ] ; + earl:subject ; + earl:test ; +]. +[ + rdf:type earl:Assertion ; + earl:assertedBy ; + earl:result [ + rdf:type earl:TestResult ; + earl:mode earl:manual ; + earl:outcome earl:passed ; + ] ; + earl:subject ; + earl:test ; +]. +[ + rdf:type earl:Assertion ; + earl:assertedBy ; + earl:result [ + rdf:type earl:TestResult ; + earl:mode earl:manual ; + earl:outcome earl:passed ; + ] ; + earl:subject ; + earl:test ; +]. +[ + rdf:type earl:Assertion ; + earl:assertedBy ; + earl:result [ + rdf:type earl:TestResult ; + earl:mode earl:manual ; + earl:outcome earl:passed ; + ] ; + earl:subject ; + earl:test ; +]. +[ + rdf:type earl:Assertion ; + earl:assertedBy ; + earl:result [ + rdf:type earl:TestResult ; + earl:mode earl:manual ; + earl:outcome earl:passed ; + ] ; + earl:subject ; + earl:test ; +]. + + diff --git a/corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/reports/topbraid-shacl-earl.ttl b/corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/reports/topbraid-shacl-earl.ttl new file mode 100644 index 0000000000..99fd360aef --- /dev/null +++ b/corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/reports/topbraid-shacl-earl.ttl @@ -0,0 +1,1347 @@ +# baseURI: http://topquadrant.com/shacl/api/earl + +@prefix doap: . +@prefix earl: . +@prefix owl: . +@prefix rdf: . +@prefix rdfs: . +@prefix xsd: . + + + rdf:type doap:Project ; + rdf:type earl:Software ; + rdf:type earl:TestSubject ; + doap:developer ; + doap:name "TopBraid SHACL API" ; +. +[ + rdf:type earl:Assertion ; + earl:assertedBy ; + earl:result [ + rdf:type earl:TestResult ; + earl:mode earl:automatic ; + earl:outcome earl:passed ; + ] ; + earl:subject ; + earl:test ; +]. +[ + rdf:type earl:Assertion ; + earl:assertedBy ; + earl:result [ + rdf:type earl:TestResult ; + earl:mode earl:automatic ; + earl:outcome earl:passed ; + ] ; + earl:subject ; + earl:test ; +]. +[ + rdf:type earl:Assertion ; + earl:assertedBy ; + earl:result [ + rdf:type earl:TestResult ; + earl:mode earl:automatic ; + earl:outcome earl:passed ; + ] ; + earl:subject ; + earl:test ; +]. +[ + rdf:type earl:Assertion ; + earl:assertedBy ; + earl:result [ + rdf:type earl:TestResult ; + earl:mode earl:automatic ; + earl:outcome earl:passed ; + ] ; + earl:subject ; + earl:test ; +]. +[ + rdf:type earl:Assertion ; + earl:assertedBy ; + earl:result [ + rdf:type earl:TestResult ; + earl:mode earl:automatic ; + earl:outcome earl:passed ; + ] ; + earl:subject ; + earl:test ; +]. +[ + rdf:type earl:Assertion ; + earl:assertedBy ; + earl:result [ + rdf:type earl:TestResult ; + earl:mode earl:automatic ; + earl:outcome earl:passed ; + ] ; + earl:subject ; + earl:test ; +]. +[ + rdf:type earl:Assertion ; + earl:assertedBy ; + earl:result [ + rdf:type earl:TestResult ; + earl:mode earl:automatic ; + earl:outcome earl:passed ; + ] ; + earl:subject ; + earl:test ; +]. +[ + rdf:type earl:Assertion ; + earl:assertedBy ; + earl:result [ + rdf:type earl:TestResult ; + earl:mode earl:automatic ; + earl:outcome earl:passed ; + ] ; + earl:subject ; + earl:test ; +]. +[ + rdf:type earl:Assertion ; + earl:assertedBy ; + earl:result [ + rdf:type earl:TestResult ; + earl:mode earl:automatic ; + earl:outcome earl:passed ; + ] ; + earl:subject ; + earl:test ; +]. +[ + rdf:type earl:Assertion ; + earl:assertedBy ; + earl:result [ + rdf:type earl:TestResult ; + earl:mode earl:automatic ; + earl:outcome earl:passed ; + ] ; + earl:subject ; + earl:test ; +]. +[ + rdf:type earl:Assertion ; + earl:assertedBy ; + earl:result [ + rdf:type earl:TestResult ; + earl:mode earl:automatic ; + earl:outcome earl:passed ; + ] ; + earl:subject ; + earl:test ; +]. +[ + rdf:type earl:Assertion ; + earl:assertedBy ; + earl:result [ + rdf:type earl:TestResult ; + earl:mode earl:automatic ; + earl:outcome earl:passed ; + ] ; + earl:subject ; + earl:test ; +]. +[ + rdf:type earl:Assertion ; + earl:assertedBy ; + earl:result [ + rdf:type earl:TestResult ; + earl:mode earl:automatic ; + earl:outcome earl:passed ; + ] ; + earl:subject ; + earl:test ; +]. +[ + rdf:type earl:Assertion ; + earl:assertedBy ; + earl:result [ + rdf:type earl:TestResult ; + earl:mode earl:automatic ; + earl:outcome earl:passed ; + ] ; + earl:subject ; + earl:test ; +]. +[ + rdf:type earl:Assertion ; + earl:assertedBy ; + earl:result [ + rdf:type earl:TestResult ; + earl:mode earl:automatic ; + earl:outcome earl:passed ; + ] ; + earl:subject ; + earl:test ; +]. +[ + rdf:type earl:Assertion ; + earl:assertedBy ; + earl:result [ + rdf:type earl:TestResult ; + earl:mode earl:automatic ; + earl:outcome earl:passed ; + ] ; + earl:subject ; + earl:test ; +]. +[ + rdf:type earl:Assertion ; + earl:assertedBy ; + earl:result [ + rdf:type earl:TestResult ; + earl:mode earl:automatic ; + earl:outcome earl:passed ; + ] ; + earl:subject ; + earl:test ; +]. +[ + rdf:type earl:Assertion ; + earl:assertedBy ; + earl:result [ + rdf:type earl:TestResult ; + earl:mode earl:automatic ; + earl:outcome earl:passed ; + ] ; + earl:subject ; + earl:test ; +]. +[ + rdf:type earl:Assertion ; + earl:assertedBy ; + earl:result [ + rdf:type earl:TestResult ; + earl:mode earl:automatic ; + earl:outcome earl:passed ; + ] ; + earl:subject ; + earl:test ; +]. +[ + rdf:type earl:Assertion ; + earl:assertedBy ; + earl:result [ + rdf:type earl:TestResult ; + earl:mode earl:automatic ; + earl:outcome earl:passed ; + ] ; + earl:subject ; + earl:test ; +]. +[ + rdf:type earl:Assertion ; + earl:assertedBy ; + earl:result [ + rdf:type earl:TestResult ; + earl:mode earl:automatic ; + earl:outcome earl:passed ; + ] ; + earl:subject ; + earl:test ; +]. +[ + rdf:type earl:Assertion ; + earl:assertedBy ; + earl:result [ + rdf:type earl:TestResult ; + earl:mode earl:automatic ; + earl:outcome earl:passed ; + ] ; + earl:subject ; + earl:test ; +]. +[ + rdf:type earl:Assertion ; + earl:assertedBy ; + earl:result [ + rdf:type earl:TestResult ; + earl:mode earl:automatic ; + earl:outcome earl:passed ; + ] ; + earl:subject ; + earl:test ; +]. +[ + rdf:type earl:Assertion ; + earl:assertedBy ; + earl:result [ + rdf:type earl:TestResult ; + earl:mode earl:automatic ; + earl:outcome earl:passed ; + ] ; + earl:subject ; + earl:test ; +]. +[ + rdf:type earl:Assertion ; + earl:assertedBy ; + earl:result [ + rdf:type earl:TestResult ; + earl:mode earl:automatic ; + earl:outcome earl:passed ; + ] ; + earl:subject ; + earl:test ; +]. +[ + rdf:type earl:Assertion ; + earl:assertedBy ; + earl:result [ + rdf:type earl:TestResult ; + earl:mode earl:automatic ; + earl:outcome earl:passed ; + ] ; + earl:subject ; + earl:test ; +]. +[ + rdf:type earl:Assertion ; + earl:assertedBy ; + earl:result [ + rdf:type earl:TestResult ; + earl:mode earl:automatic ; + earl:outcome earl:passed ; + ] ; + earl:subject ; + earl:test ; +]. +[ + rdf:type earl:Assertion ; + earl:assertedBy ; + earl:result [ + rdf:type earl:TestResult ; + earl:mode earl:automatic ; + earl:outcome earl:passed ; + ] ; + earl:subject ; + earl:test ; +]. +[ + rdf:type earl:Assertion ; + earl:assertedBy ; + earl:result [ + rdf:type earl:TestResult ; + earl:mode earl:automatic ; + earl:outcome earl:passed ; + ] ; + earl:subject ; + earl:test ; +]. +[ + rdf:type earl:Assertion ; + earl:assertedBy ; + earl:result [ + rdf:type earl:TestResult ; + earl:mode earl:automatic ; + earl:outcome earl:passed ; + ] ; + earl:subject ; + earl:test ; +]. +[ + rdf:type earl:Assertion ; + earl:assertedBy ; + earl:result [ + rdf:type earl:TestResult ; + earl:mode earl:automatic ; + earl:outcome earl:passed ; + ] ; + earl:subject ; + earl:test ; +]. +[ + rdf:type earl:Assertion ; + earl:assertedBy ; + earl:result [ + rdf:type earl:TestResult ; + earl:mode earl:automatic ; + earl:outcome earl:passed ; + ] ; + earl:subject ; + earl:test ; +]. +[ + rdf:type earl:Assertion ; + earl:assertedBy ; + earl:result [ + rdf:type earl:TestResult ; + earl:mode earl:automatic ; + earl:outcome earl:passed ; + ] ; + earl:subject ; + earl:test ; +]. +[ + rdf:type earl:Assertion ; + earl:assertedBy ; + earl:result [ + rdf:type earl:TestResult ; + earl:mode earl:automatic ; + earl:outcome earl:passed ; + ] ; + earl:subject ; + earl:test ; +]. +[ + rdf:type earl:Assertion ; + earl:assertedBy ; + earl:result [ + rdf:type earl:TestResult ; + earl:mode earl:automatic ; + earl:outcome earl:passed ; + ] ; + earl:subject ; + earl:test ; +]. +[ + rdf:type earl:Assertion ; + earl:assertedBy ; + earl:result [ + rdf:type earl:TestResult ; + earl:mode earl:automatic ; + earl:outcome earl:passed ; + ] ; + earl:subject ; + earl:test ; +]. +[ + rdf:type earl:Assertion ; + earl:assertedBy ; + earl:result [ + rdf:type earl:TestResult ; + earl:mode earl:automatic ; + earl:outcome earl:passed ; + ] ; + earl:subject ; + earl:test ; +]. +[ + rdf:type earl:Assertion ; + earl:assertedBy ; + earl:result [ + rdf:type earl:TestResult ; + earl:mode earl:automatic ; + earl:outcome earl:passed ; + ] ; + earl:subject ; + earl:test ; +]. +[ + rdf:type earl:Assertion ; + earl:assertedBy ; + earl:result [ + rdf:type earl:TestResult ; + earl:mode earl:automatic ; + earl:outcome earl:passed ; + ] ; + earl:subject ; + earl:test ; +]. +[ + rdf:type earl:Assertion ; + earl:assertedBy ; + earl:result [ + rdf:type earl:TestResult ; + earl:mode earl:automatic ; + earl:outcome earl:passed ; + ] ; + earl:subject ; + earl:test ; +]. +[ + rdf:type earl:Assertion ; + earl:assertedBy ; + earl:result [ + rdf:type earl:TestResult ; + earl:mode earl:automatic ; + earl:outcome earl:passed ; + ] ; + earl:subject ; + earl:test ; +]. +[ + rdf:type earl:Assertion ; + earl:assertedBy ; + earl:result [ + rdf:type earl:TestResult ; + earl:mode earl:automatic ; + earl:outcome earl:passed ; + ] ; + earl:subject ; + earl:test ; +]. +[ + rdf:type earl:Assertion ; + earl:assertedBy ; + earl:result [ + rdf:type earl:TestResult ; + earl:mode earl:automatic ; + earl:outcome earl:passed ; + ] ; + earl:subject ; + earl:test ; +]. +[ + rdf:type earl:Assertion ; + earl:assertedBy ; + earl:result [ + rdf:type earl:TestResult ; + earl:mode earl:automatic ; + earl:outcome earl:passed ; + ] ; + earl:subject ; + earl:test ; +]. +[ + rdf:type earl:Assertion ; + earl:assertedBy ; + earl:result [ + rdf:type earl:TestResult ; + earl:mode earl:automatic ; + earl:outcome earl:passed ; + ] ; + earl:subject ; + earl:test ; +]. +[ + rdf:type earl:Assertion ; + earl:assertedBy ; + earl:result [ + rdf:type earl:TestResult ; + earl:mode earl:automatic ; + earl:outcome earl:passed ; + ] ; + earl:subject ; + earl:test ; +]. +[ + rdf:type earl:Assertion ; + earl:assertedBy ; + earl:result [ + rdf:type earl:TestResult ; + earl:mode earl:automatic ; + earl:outcome earl:passed ; + ] ; + earl:subject ; + earl:test ; +]. +[ + rdf:type earl:Assertion ; + earl:assertedBy ; + earl:result [ + rdf:type earl:TestResult ; + earl:mode earl:automatic ; + earl:outcome earl:passed ; + ] ; + earl:subject ; + earl:test ; +]. +[ + rdf:type earl:Assertion ; + earl:assertedBy ; + earl:result [ + rdf:type earl:TestResult ; + earl:mode earl:automatic ; + earl:outcome earl:passed ; + ] ; + earl:subject ; + earl:test ; +]. +[ + rdf:type earl:Assertion ; + earl:assertedBy ; + earl:result [ + rdf:type earl:TestResult ; + earl:mode earl:automatic ; + earl:outcome earl:passed ; + ] ; + earl:subject ; + earl:test ; +]. +[ + rdf:type earl:Assertion ; + earl:assertedBy ; + earl:result [ + rdf:type earl:TestResult ; + earl:mode earl:automatic ; + earl:outcome earl:passed ; + ] ; + earl:subject ; + earl:test ; +]. +[ + rdf:type earl:Assertion ; + earl:assertedBy ; + earl:result [ + rdf:type earl:TestResult ; + earl:mode earl:automatic ; + earl:outcome earl:passed ; + ] ; + earl:subject ; + earl:test ; +]. +[ + rdf:type earl:Assertion ; + earl:assertedBy ; + earl:result [ + rdf:type earl:TestResult ; + earl:mode earl:automatic ; + earl:outcome earl:passed ; + ] ; + earl:subject ; + earl:test ; +]. +[ + rdf:type earl:Assertion ; + earl:assertedBy ; + earl:result [ + rdf:type earl:TestResult ; + earl:mode earl:automatic ; + earl:outcome earl:passed ; + ] ; + earl:subject ; + earl:test ; +]. +[ + rdf:type earl:Assertion ; + earl:assertedBy ; + earl:result [ + rdf:type earl:TestResult ; + earl:mode earl:automatic ; + earl:outcome earl:passed ; + ] ; + earl:subject ; + earl:test ; +]. +[ + rdf:type earl:Assertion ; + earl:assertedBy ; + earl:result [ + rdf:type earl:TestResult ; + earl:mode earl:automatic ; + earl:outcome earl:passed ; + ] ; + earl:subject ; + earl:test ; +]. +[ + rdf:type earl:Assertion ; + earl:assertedBy ; + earl:result [ + rdf:type earl:TestResult ; + earl:mode earl:automatic ; + earl:outcome earl:passed ; + ] ; + earl:subject ; + earl:test ; +]. +[ + rdf:type earl:Assertion ; + earl:assertedBy ; + earl:result [ + rdf:type earl:TestResult ; + earl:mode earl:automatic ; + earl:outcome earl:passed ; + ] ; + earl:subject ; + earl:test ; +]. +[ + rdf:type earl:Assertion ; + earl:assertedBy ; + earl:result [ + rdf:type earl:TestResult ; + earl:mode earl:automatic ; + earl:outcome earl:passed ; + ] ; + earl:subject ; + earl:test ; +]. +[ + rdf:type earl:Assertion ; + earl:assertedBy ; + earl:result [ + rdf:type earl:TestResult ; + earl:mode earl:automatic ; + earl:outcome earl:passed ; + ] ; + earl:subject ; + earl:test ; +]. +[ + rdf:type earl:Assertion ; + earl:assertedBy ; + earl:result [ + rdf:type earl:TestResult ; + earl:mode earl:automatic ; + earl:outcome earl:passed ; + ] ; + earl:subject ; + earl:test ; +]. +[ + rdf:type earl:Assertion ; + earl:assertedBy ; + earl:result [ + rdf:type earl:TestResult ; + earl:mode earl:automatic ; + earl:outcome earl:passed ; + ] ; + earl:subject ; + earl:test ; +]. +[ + rdf:type earl:Assertion ; + earl:assertedBy ; + earl:result [ + rdf:type earl:TestResult ; + earl:mode earl:automatic ; + earl:outcome earl:passed ; + ] ; + earl:subject ; + earl:test ; +]. +[ + rdf:type earl:Assertion ; + earl:assertedBy ; + earl:result [ + rdf:type earl:TestResult ; + earl:mode earl:automatic ; + earl:outcome earl:passed ; + ] ; + earl:subject ; + earl:test ; +]. +[ + rdf:type earl:Assertion ; + earl:assertedBy ; + earl:result [ + rdf:type earl:TestResult ; + earl:mode earl:automatic ; + earl:outcome earl:passed ; + ] ; + earl:subject ; + earl:test ; +]. +[ + rdf:type earl:Assertion ; + earl:assertedBy ; + earl:result [ + rdf:type earl:TestResult ; + earl:mode earl:automatic ; + earl:outcome earl:passed ; + ] ; + earl:subject ; + earl:test ; +]. +[ + rdf:type earl:Assertion ; + earl:assertedBy ; + earl:result [ + rdf:type earl:TestResult ; + earl:mode earl:automatic ; + earl:outcome earl:passed ; + ] ; + earl:subject ; + earl:test ; +]. +[ + rdf:type earl:Assertion ; + earl:assertedBy ; + earl:result [ + rdf:type earl:TestResult ; + earl:mode earl:automatic ; + earl:outcome earl:passed ; + ] ; + earl:subject ; + earl:test ; +]. +[ + rdf:type earl:Assertion ; + earl:assertedBy ; + earl:result [ + rdf:type earl:TestResult ; + earl:mode earl:automatic ; + earl:outcome earl:passed ; + ] ; + earl:subject ; + earl:test ; +]. +[ + rdf:type earl:Assertion ; + earl:assertedBy ; + earl:result [ + rdf:type earl:TestResult ; + earl:mode earl:automatic ; + earl:outcome earl:passed ; + ] ; + earl:subject ; + earl:test ; +]. +[ + rdf:type earl:Assertion ; + earl:assertedBy ; + earl:result [ + rdf:type earl:TestResult ; + earl:mode earl:automatic ; + earl:outcome earl:passed ; + ] ; + earl:subject ; + earl:test ; +]. +[ + rdf:type earl:Assertion ; + earl:assertedBy ; + earl:result [ + rdf:type earl:TestResult ; + earl:mode earl:automatic ; + earl:outcome earl:passed ; + ] ; + earl:subject ; + earl:test ; +]. +[ + rdf:type earl:Assertion ; + earl:assertedBy ; + earl:result [ + rdf:type earl:TestResult ; + earl:mode earl:automatic ; + earl:outcome earl:passed ; + ] ; + earl:subject ; + earl:test ; +]. +[ + rdf:type earl:Assertion ; + earl:assertedBy ; + earl:result [ + rdf:type earl:TestResult ; + earl:mode earl:automatic ; + earl:outcome earl:passed ; + ] ; + earl:subject ; + earl:test ; +]. +[ + rdf:type earl:Assertion ; + earl:assertedBy ; + earl:result [ + rdf:type earl:TestResult ; + earl:mode earl:automatic ; + earl:outcome earl:passed ; + ] ; + earl:subject ; + earl:test ; +]. +[ + rdf:type earl:Assertion ; + earl:assertedBy ; + earl:result [ + rdf:type earl:TestResult ; + earl:mode earl:automatic ; + earl:outcome earl:passed ; + ] ; + earl:subject ; + earl:test ; +]. +[ + rdf:type earl:Assertion ; + earl:assertedBy ; + earl:result [ + rdf:type earl:TestResult ; + earl:mode earl:automatic ; + earl:outcome earl:passed ; + ] ; + earl:subject ; + earl:test ; +]. +[ + rdf:type earl:Assertion ; + earl:assertedBy ; + earl:result [ + rdf:type earl:TestResult ; + earl:mode earl:automatic ; + earl:outcome earl:passed ; + ] ; + earl:subject ; + earl:test ; +]. +[ + rdf:type earl:Assertion ; + earl:assertedBy ; + earl:result [ + rdf:type earl:TestResult ; + earl:mode earl:automatic ; + earl:outcome earl:passed ; + ] ; + earl:subject ; + earl:test ; +]. +[ + rdf:type earl:Assertion ; + earl:assertedBy ; + earl:result [ + rdf:type earl:TestResult ; + earl:mode earl:automatic ; + earl:outcome earl:passed ; + ] ; + earl:subject ; + earl:test ; +]. +[ + rdf:type earl:Assertion ; + earl:assertedBy ; + earl:result [ + rdf:type earl:TestResult ; + earl:mode earl:automatic ; + earl:outcome earl:passed ; + ] ; + earl:subject ; + earl:test ; +]. +[ + rdf:type earl:Assertion ; + earl:assertedBy ; + earl:result [ + rdf:type earl:TestResult ; + earl:mode earl:automatic ; + earl:outcome earl:passed ; + ] ; + earl:subject ; + earl:test ; +]. +[ + rdf:type earl:Assertion ; + earl:assertedBy ; + earl:result [ + rdf:type earl:TestResult ; + earl:mode earl:automatic ; + earl:outcome earl:passed ; + ] ; + earl:subject ; + earl:test ; +]. +[ + rdf:type earl:Assertion ; + earl:assertedBy ; + earl:result [ + rdf:type earl:TestResult ; + earl:mode earl:automatic ; + earl:outcome earl:passed ; + ] ; + earl:subject ; + earl:test ; +]. +[ + rdf:type earl:Assertion ; + earl:assertedBy ; + earl:result [ + rdf:type earl:TestResult ; + earl:mode earl:automatic ; + earl:outcome earl:passed ; + ] ; + earl:subject ; + earl:test ; +]. +[ + rdf:type earl:Assertion ; + earl:assertedBy ; + earl:result [ + rdf:type earl:TestResult ; + earl:mode earl:automatic ; + earl:outcome earl:passed ; + ] ; + earl:subject ; + earl:test ; +]. +[ + rdf:type earl:Assertion ; + earl:assertedBy ; + earl:result [ + rdf:type earl:TestResult ; + earl:mode earl:automatic ; + earl:outcome earl:passed ; + ] ; + earl:subject ; + earl:test ; +]. +[ + rdf:type earl:Assertion ; + earl:assertedBy ; + earl:result [ + rdf:type earl:TestResult ; + earl:mode earl:automatic ; + earl:outcome earl:passed ; + ] ; + earl:subject ; + earl:test ; +]. +[ + rdf:type earl:Assertion ; + earl:assertedBy ; + earl:result [ + rdf:type earl:TestResult ; + earl:mode earl:automatic ; + earl:outcome earl:passed ; + ] ; + earl:subject ; + earl:test ; +]. +[ + rdf:type earl:Assertion ; + earl:assertedBy ; + earl:result [ + rdf:type earl:TestResult ; + earl:mode earl:automatic ; + earl:outcome earl:passed ; + ] ; + earl:subject ; + earl:test ; +]. +[ + rdf:type earl:Assertion ; + earl:assertedBy ; + earl:result [ + rdf:type earl:TestResult ; + earl:mode earl:automatic ; + earl:outcome earl:passed ; + ] ; + earl:subject ; + earl:test ; +]. +[ + rdf:type earl:Assertion ; + earl:assertedBy ; + earl:result [ + rdf:type earl:TestResult ; + earl:mode earl:automatic ; + earl:outcome earl:passed ; + ] ; + earl:subject ; + earl:test ; +]. +[ + rdf:type earl:Assertion ; + earl:assertedBy ; + earl:result [ + rdf:type earl:TestResult ; + earl:mode earl:automatic ; + earl:outcome earl:passed ; + ] ; + earl:subject ; + earl:test ; +]. +[ + rdf:type earl:Assertion ; + earl:assertedBy ; + earl:result [ + rdf:type earl:TestResult ; + earl:mode earl:automatic ; + earl:outcome earl:passed ; + ] ; + earl:subject ; + earl:test ; +]. +[ + rdf:type earl:Assertion ; + earl:assertedBy ; + earl:result [ + rdf:type earl:TestResult ; + earl:mode earl:automatic ; + earl:outcome earl:passed ; + ] ; + earl:subject ; + earl:test ; +]. +[ + rdf:type earl:Assertion ; + earl:assertedBy ; + earl:result [ + rdf:type earl:TestResult ; + earl:mode earl:automatic ; + earl:outcome earl:passed ; + ] ; + earl:subject ; + earl:test ; +]. +[ + rdf:type earl:Assertion ; + earl:assertedBy ; + earl:result [ + rdf:type earl:TestResult ; + earl:mode earl:automatic ; + earl:outcome earl:passed ; + ] ; + earl:subject ; + earl:test ; +]. +[ + rdf:type earl:Assertion ; + earl:assertedBy ; + earl:result [ + rdf:type earl:TestResult ; + earl:mode earl:automatic ; + earl:outcome earl:passed ; + ] ; + earl:subject ; + earl:test ; +]. +[ + rdf:type earl:Assertion ; + earl:assertedBy ; + earl:result [ + rdf:type earl:TestResult ; + earl:mode earl:automatic ; + earl:outcome earl:passed ; + ] ; + earl:subject ; + earl:test ; +]. +[ + rdf:type earl:Assertion ; + earl:assertedBy ; + earl:result [ + rdf:type earl:TestResult ; + earl:mode earl:automatic ; + earl:outcome earl:passed ; + ] ; + earl:subject ; + earl:test ; +]. +[ + rdf:type earl:Assertion ; + earl:assertedBy ; + earl:result [ + rdf:type earl:TestResult ; + earl:mode earl:automatic ; + earl:outcome earl:passed ; + ] ; + earl:subject ; + earl:test ; +]. +[ + rdf:type earl:Assertion ; + earl:assertedBy ; + earl:result [ + rdf:type earl:TestResult ; + earl:mode earl:automatic ; + earl:outcome earl:passed ; + ] ; + earl:subject ; + earl:test ; +]. +[ + rdf:type earl:Assertion ; + earl:assertedBy ; + earl:result [ + rdf:type earl:TestResult ; + earl:mode earl:automatic ; + earl:outcome earl:passed ; + ] ; + earl:subject ; + earl:test ; +]. +[ + rdf:type earl:Assertion ; + earl:assertedBy ; + earl:result [ + rdf:type earl:TestResult ; + earl:mode earl:automatic ; + earl:outcome earl:passed ; + ] ; + earl:subject ; + earl:test ; +]. +[ + rdf:type earl:Assertion ; + earl:assertedBy ; + earl:result [ + rdf:type earl:TestResult ; + earl:mode earl:automatic ; + earl:outcome earl:passed ; + ] ; + earl:subject ; + earl:test ; +]. +[ + rdf:type earl:Assertion ; + earl:assertedBy ; + earl:result [ + rdf:type earl:TestResult ; + earl:mode earl:automatic ; + earl:outcome earl:passed ; + ] ; + earl:subject ; + earl:test ; +]. +[ + rdf:type earl:Assertion ; + earl:assertedBy ; + earl:result [ + rdf:type earl:TestResult ; + earl:mode earl:automatic ; + earl:outcome earl:passed ; + ] ; + earl:subject ; + earl:test ; +]. +[ + rdf:type earl:Assertion ; + earl:assertedBy ; + earl:result [ + rdf:type earl:TestResult ; + earl:mode earl:automatic ; + earl:outcome earl:passed ; + ] ; + earl:subject ; + earl:test ; +]. +[ + rdf:type earl:Assertion ; + earl:assertedBy ; + earl:result [ + rdf:type earl:TestResult ; + earl:mode earl:automatic ; + earl:outcome earl:passed ; + ] ; + earl:subject ; + earl:test ; +]. +[ + rdf:type earl:Assertion ; + earl:assertedBy ; + earl:result [ + rdf:type earl:TestResult ; + earl:mode earl:automatic ; + earl:outcome earl:passed ; + ] ; + earl:subject ; + earl:test ; +]. +[ + rdf:type earl:Assertion ; + earl:assertedBy ; + earl:result [ + rdf:type earl:TestResult ; + earl:mode earl:automatic ; + earl:outcome earl:passed ; + ] ; + earl:subject ; + earl:test ; +]. +[ + rdf:type earl:Assertion ; + earl:assertedBy ; + earl:result [ + rdf:type earl:TestResult ; + earl:mode earl:automatic ; + earl:outcome earl:passed ; + ] ; + earl:subject ; + earl:test ; +]. +[ + rdf:type earl:Assertion ; + earl:assertedBy ; + earl:result [ + rdf:type earl:TestResult ; + earl:mode earl:automatic ; + earl:outcome earl:passed ; + ] ; + earl:subject ; + earl:test ; +]. +[ + rdf:type earl:Assertion ; + earl:assertedBy ; + earl:result [ + rdf:type earl:TestResult ; + earl:mode earl:automatic ; + earl:outcome earl:passed ; + ] ; + earl:subject ; + earl:test ; +]. +[ + rdf:type earl:Assertion ; + earl:assertedBy ; + earl:result [ + rdf:type earl:TestResult ; + earl:mode earl:automatic ; + earl:outcome earl:passed ; + ] ; + earl:subject ; + earl:test ; +]. +[ + rdf:type earl:Assertion ; + earl:assertedBy ; + earl:result [ + rdf:type earl:TestResult ; + earl:mode earl:automatic ; + earl:outcome earl:passed ; + ] ; + earl:subject ; + earl:test ; +]. +[ + rdf:type earl:Assertion ; + earl:assertedBy ; + earl:result [ + rdf:type earl:TestResult ; + earl:mode earl:automatic ; + earl:outcome earl:passed ; + ] ; + earl:subject ; + earl:test ; +]. +[ + rdf:type earl:Assertion ; + earl:assertedBy ; + earl:result [ + rdf:type earl:TestResult ; + earl:mode earl:automatic ; + earl:outcome earl:passed ; + ] ; + earl:subject ; + earl:test ; +]. +[ + rdf:type earl:Assertion ; + earl:assertedBy ; + earl:result [ + rdf:type earl:TestResult ; + earl:mode earl:automatic ; + earl:outcome earl:passed ; + ] ; + earl:subject ; + earl:test ; +]. +[ + rdf:type earl:Assertion ; + earl:assertedBy ; + earl:result [ + rdf:type earl:TestResult ; + earl:mode earl:automatic ; + earl:outcome earl:passed ; + ] ; + earl:subject ; + earl:test ; +]. +[ + rdf:type earl:Assertion ; + earl:assertedBy ; + earl:result [ + rdf:type earl:TestResult ; + earl:mode earl:automatic ; + earl:outcome earl:passed ; + ] ; + earl:subject ; + earl:test ; +]. diff --git a/corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/core/complex/manifest.ttl b/corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/core/complex/manifest.ttl new file mode 100644 index 0000000000..6e921e5658 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/core/complex/manifest.ttl @@ -0,0 +1,10 @@ +@prefix mf: . +@prefix rdfs: . +@prefix sht: . + +<> + a mf:Manifest ; + rdfs:label "Tests converted from http://datashapes.org/sh/tests/tests/core/complex" ; + mf:include ; + mf:include ; + . \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/core/complex/personexample.ttl b/corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/core/complex/personexample.ttl new file mode 100644 index 0000000000..0a249cf897 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/core/complex/personexample.ttl @@ -0,0 +1,103 @@ +@prefix dash: . +@prefix ex: . +@prefix mf: . +@prefix owl: . +@prefix rdf: . +@prefix rdfs: . +@prefix sh: . +@prefix sht: . +@prefix xsd: . + +ex:Alice + rdf:type ex:Person ; + ex:ssn "987-65-432A" ; +. +ex:Bob + rdf:type ex:Person ; + ex:ssn "123-45-6789" ; + ex:ssn "124-35-6789" ; +. +ex:Calvin + rdf:type ex:Person ; + ex:birthDate "1999-09-09"^^xsd:date ; + ex:worksFor ex:UntypedCompany ; +. +ex:PersonShape + rdf:type sh:NodeShape ; + sh:closed "true"^^xsd:boolean ; + sh:ignoredProperties ( + rdf:type + ) ; + sh:property [ + sh:path ex:ssn ; + sh:datatype xsd:string ; + sh:maxCount 1 ; + sh:pattern "^\\d{3}-\\d{2}-\\d{4}$" ; + ] ; + sh:property [ + sh:path ex:worksFor ; + sh:class ex:Company ; + sh:nodeKind sh:IRI ; + ] ; + sh:property [ + sh:path [ + sh:inversePath ex:worksFor ; + ] ; + sh:name "employee" ; + ] ; + sh:targetClass ex:Person ; +. +<> + rdf:type mf:Manifest ; + mf:entries ( + + ) ; +. + + rdf:type sht:Validate ; + rdfs:label "Test of personexample" ; + mf:action [ + sht:dataGraph <> ; + sht:shapesGraph <> ; + ] ; + mf:result [ + rdf:type sh:ValidationReport ; + sh:conforms "false"^^xsd:boolean ; + sh:result [ + rdf:type sh:ValidationResult ; + sh:focusNode ex:Alice ; + sh:resultPath ex:ssn ; + sh:resultSeverity sh:Violation ; + sh:sourceConstraintComponent sh:PatternConstraintComponent ; + sh:sourceShape _:b61064 ; + sh:value "987-65-432A" ; + ] ; + sh:result [ + rdf:type sh:ValidationResult ; + sh:focusNode ex:Bob ; + sh:resultPath ex:ssn ; + sh:resultSeverity sh:Violation ; + sh:sourceConstraintComponent sh:MaxCountConstraintComponent ; + sh:sourceShape _:b61064 ; + ] ; + sh:result [ + rdf:type sh:ValidationResult ; + sh:focusNode ex:Calvin ; + sh:resultPath ex:birthDate ; + sh:resultSeverity sh:Violation ; + sh:sourceConstraintComponent sh:ClosedConstraintComponent ; + sh:sourceShape ex:PersonShape ; + sh:value "1999-09-09"^^xsd:date ; + ] ; + sh:result [ + rdf:type sh:ValidationResult ; + sh:focusNode ex:Calvin ; + sh:resultPath ex:worksFor ; + sh:resultSeverity sh:Violation ; + sh:sourceConstraintComponent sh:ClassConstraintComponent ; + sh:sourceShape [] ; + sh:value ex:UntypedCompany ; + ] ; + ] ; + mf:status sht:approved ; +. diff --git a/corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/core/complex/shacl-shacl-data-shapes.ttl b/corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/core/complex/shacl-shacl-data-shapes.ttl new file mode 100644 index 0000000000..c6b751a771 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/core/complex/shacl-shacl-data-shapes.ttl @@ -0,0 +1,410 @@ +# baseURI: http://www.w3.org/ns/shacl-shacl# + +# A SHACL shapes graph to validate SHACL shapes graphs +# Draft last edited 2017-04-04 + +@prefix rdf: . +@prefix rdfs: . +@prefix sh: . +@prefix xsd: . + +@prefix shsh: . + +shsh: + rdfs:label "SHACL for SHACL"@en ; + rdfs:comment "This shapes graph can be used to validate SHACL shapes graphs against a subset of the syntax rules."@en ; + sh:declare [ + sh:prefix "shsh" ; + sh:namespace "http://www.w3.org/ns/shacl-shacl#" ; + ] . + + +shsh:ListShape + a sh:NodeShape ; + rdfs:label "List shape"@en ; + rdfs:comment "A shape describing well-formed RDF lists. Currently does not check for non-recursion. This could be expressed using SHACL-SPARQL."@en ; + rdfs:seeAlso ; + sh:property [ + sh:path [ sh:zeroOrMorePath rdf:rest ] ; + rdfs:comment "Each list member (including this node) must be have the shape shsh:ListNodeShape."@en ; + sh:hasValue rdf:nil ; + sh:node shsh:ListNodeShape ; + ] . + +shsh:ListNodeShape + a sh:NodeShape ; + rdfs:label "List node shape"@en ; + rdfs:comment "Defines constraints on what it means for a node to be a node within a well-formed RDF list. Note that this does not check whether the rdf:rest items are also well-formed lists as this would lead to unsupported recursion."@en ; + sh:or ( [ + sh:hasValue rdf:nil ; + sh:property [ + sh:path rdf:first ; + sh:maxCount 0 ; + ] ; + sh:property [ + sh:path rdf:rest ; + sh:maxCount 0 ; + ] ; + ] + [ + sh:not [ sh:hasValue rdf:nil ] ; + sh:property [ + sh:path rdf:first ; + sh:maxCount 1 ; + sh:minCount 1 ; + ] ; + sh:property [ + sh:path rdf:rest ; + sh:maxCount 1 ; + sh:minCount 1 ; + ] ; + ] ) . + +shsh:ShapeShape + a sh:NodeShape ; + rdfs:label "Shape shape"@en ; + rdfs:comment "A shape that can be used to validate syntax rules for other shapes."@en ; + + # See https://www.w3.org/TR/shacl/#shapes for what counts as a shape + sh:targetClass sh:NodeShape ; + sh:targetClass sh:PropertyShape ; + sh:targetSubjectsOf sh:targetClass, sh:targetNode, sh:targetObjectsOf, sh:targetSubjectsOf ; + sh:targetSubjectsOf sh:and, sh:class, sh:closed, sh:datatype, sh:disjoint, sh:equals, sh:flags, sh:hasValue, + sh:ignoredProperties, sh:in, sh:languageIn, sh:lessThan, sh:lessThanOrEquals, sh:maxCount, sh:maxExclusive, + sh:maxInclusive, sh:maxLength, sh:minCount, sh:minExclusive, sh:minInclusive, sh:minLength, sh:node, sh:nodeKind, + sh:not, sh:or, sh:pattern, sh:property, sh:qualifiedMaxCount, sh:qualifiedMinCount, sh:qualifiedValueShape, + sh:qualifiedValueShape, sh:qualifiedValueShapesDisjoint, sh:qualifiedValueShapesDisjoint, sh:sparql, sh:uniqueLang, sh:xone ; + + sh:targetObjectsOf sh:node ; # node-node + sh:targetObjectsOf sh:not ; # not-node + sh:targetObjectsOf sh:property ; # property-node + sh:targetObjectsOf sh:qualifiedValueShape ; # qualifiedValueShape-node + + # Shapes are either node shapes or property shapes + sh:xone ( shsh:NodeShapeShape shsh:PropertyShapeShape ) ; + + sh:property [ + sh:path sh:targetNode ; + sh:nodeKind sh:IRIOrLiteral ; # targetNode-nodeKind + ] ; + sh:property [ + sh:path sh:targetClass ; + sh:nodeKind sh:IRI ; # targetClass-nodeKind + ] ; + sh:property [ + sh:path sh:targetSubjectsOf ; + sh:nodeKind sh:IRI ; # targetSubjectsOf-nodeKind + ] ; + sh:property [ + sh:path sh:targetObjectsOf ; + sh:nodeKind sh:IRI ; # targetObjectsOf-nodeKind + ] ; + sh:or ( [ sh:not [ + sh:class rdfs:Class ; + sh:or ( [ sh:class sh:NodeShape ] [ sh:class sh:PropertyShape ] ) + ] ] + [ sh:nodeKind sh:IRI ] + ) ; # implicit-targetClass-nodeKind + + sh:property [ + sh:path sh:severity ; + sh:maxCount 1 ; # severity-maxCount + sh:nodeKind sh:IRI ; # severity-nodeKind + ] ; + sh:property [ + sh:path sh:message ; + sh:or ( [ sh:datatype xsd:string ] [ sh:datatype rdf:langString ] ) ; # message-datatype + ] ; + sh:property [ + sh:path sh:deactivated ; + sh:maxCount 1 ; # deactivated-maxCount + sh:in ( true false ) ; # deactivated-datatype + ] ; + + sh:property [ + sh:path sh:and ; + sh:node shsh:ListShape ; # and-node + ] ; + sh:property [ + sh:path sh:class ; + sh:nodeKind sh:IRI ; # class-nodeKind + ] ; + sh:property [ + sh:path sh:closed ; + sh:datatype xsd:boolean ; # closed-datatype + sh:maxCount 1 ; # multiple-parameters + ] ; + sh:property [ + sh:path sh:ignoredProperties ; + sh:node shsh:ListShape ; # ignoredProperties-node + sh:maxCount 1 ; # multiple-parameters + ] ; + sh:property [ + sh:path ( sh:ignoredProperties [ sh:zeroOrMorePath rdf:rest ] rdf:first ) ; + sh:nodeKind sh:IRI ; # ignoredProperties-members-nodeKind + ] ; + sh:property [ + sh:path sh:datatype ; + sh:nodeKind sh:IRI ; # datatype-nodeKind + sh:maxCount 1 ; # datatype-maxCount + ] ; + sh:property [ + sh:path sh:disjoint ; + sh:nodeKind sh:IRI ; # disjoint-nodeKind + ] ; + sh:property [ + sh:path sh:equals ; + sh:nodeKind sh:IRI ; # equals-nodeKind + ] ; + sh:property [ + sh:path sh:in ; + sh:maxCount 1 ; # in-maxCount + sh:node shsh:ListShape ; # in-node + ] ; + sh:property [ + sh:path sh:languageIn ; + sh:maxCount 1 ; # languageIn-maxCount + sh:node shsh:ListShape ; # languageIn-node + ] ; + sh:property [ + sh:path ( sh:languageIn [ sh:zeroOrMorePath rdf:rest ] rdf:first ) ; + sh:datatype xsd:string ; # languageIn-members-datatype + ] ; + sh:property [ + sh:path sh:lessThan ; + sh:nodeKind sh:IRI ; # lessThan-nodeKind + ] ; + sh:property [ + sh:path sh:lessThanOrEquals ; + sh:nodeKind sh:IRI ; # lessThanOrEquals-nodeKind + ] ; + sh:property [ + sh:path sh:maxCount ; + sh:datatype xsd:integer ; # maxCount-datatype + sh:maxCount 1 ; # maxCount-maxCount + ] ; + sh:property [ + sh:path sh:maxExclusive ; + sh:maxCount 1 ; # maxExclusive-maxCount + sh:nodeKind sh:Literal ; # maxExclusive-nodeKind + ] ; + sh:property [ + sh:path sh:maxInclusive ; + sh:maxCount 1 ; # maxInclusive-maxCount + sh:nodeKind sh:Literal ; # maxInclusive-nodeKind + ] ; + sh:property [ + sh:path sh:maxLength ; + sh:datatype xsd:integer ; # maxLength-datatype + sh:maxCount 1 ; # maxLength-maxCount + ] ; + sh:property [ + sh:path sh:minCount ; + sh:datatype xsd:integer ; # minCount-datatype + sh:maxCount 1 ; # minCount-maxCount + ] ; + sh:property [ + sh:path sh:minExclusive ; + sh:maxCount 1 ; # minExclusive-maxCount + sh:nodeKind sh:Literal ; # minExclusive-nodeKind + ] ; + sh:property [ + sh:path sh:minInclusive ; + sh:maxCount 1 ; # minInclusive-maxCount + sh:nodeKind sh:Literal ; # minInclusive-nodeKind + ] ; + sh:property [ + sh:path sh:minLength ; + sh:datatype xsd:integer ; # minLength-datatype + sh:maxCount 1 ; # minLength-maxCount + ] ; + sh:property [ + sh:path sh:nodeKind ; + sh:in ( sh:BlankNode sh:IRI sh:Literal sh:BlankNodeOrIRI sh:BlankNodeOrLiteral sh:IRIOrLiteral ) ; # nodeKind-in + sh:maxCount 1 ; # nodeKind-maxCount + ] ; + sh:property [ + sh:path sh:or ; + sh:node shsh:ListShape ; # or-node + ] ; + sh:property [ + sh:path sh:pattern ; + sh:datatype xsd:string ; # pattern-datatype + sh:maxCount 1 ; # multiple-parameters + # Not implemented: syntax rule pattern-regex + ] ; + sh:property [ + sh:path sh:flags ; + sh:datatype xsd:string ; # flags-datatype + sh:maxCount 1 ; # multiple-parameters + ] ; + sh:property [ + sh:path sh:qualifiedMaxCount ; + sh:datatype xsd:integer ; # qualifiedMaxCount-datatype + sh:maxCount 1 ; # multiple-parameters + ] ; + sh:property [ + sh:path sh:qualifiedMinCount ; + sh:datatype xsd:integer ; # qualifiedMinCount-datatype + sh:maxCount 1 ; # multiple-parameters + ] ; + sh:property [ + sh:path sh:qualifiedValueShape ; + sh:maxCount 1 ; # multiple-parameters + ] ; + sh:property [ + sh:path sh:qualifiedValueShapesDisjoint ; + sh:datatype xsd:boolean ; # qualifiedValueShapesDisjoint-datatype + sh:maxCount 1 ; # multiple-parameters + ] ; + sh:property [ + sh:path sh:uniqueLang ; + sh:datatype xsd:boolean ; # uniqueLang-datatype + sh:maxCount 1 ; # uniqueLang-maxCount + ] ; + sh:property [ + sh:path sh:xone ; + sh:node shsh:ListShape ; # xone-node + ] . + +shsh:NodeShapeShape + a sh:NodeShape ; + sh:targetObjectsOf sh:node ; # node-node + sh:property [ + sh:path sh:path ; + sh:maxCount 0 ; # NodeShape-path-maxCount + ] ; + sh:property [ + sh:path sh:lessThan ; + sh:maxCount 0 ; # lessThan-scope + ] ; + sh:property [ + sh:path sh:lessThanOrEquals ; + sh:maxCount 0 ; # lessThanOrEquals-scope + ] ; + sh:property [ + sh:path sh:maxCount ; + sh:maxCount 0 ; # maxCount-scope + ] ; + sh:property [ + sh:path sh:minCount ; + sh:maxCount 0 ; # minCount-scope + ] ; + sh:property [ + sh:path sh:qualifiedValueShape ; + sh:maxCount 0 ; # qualifiedValueShape-scope + ] ; + sh:property [ + sh:path sh:uniqueLang ; + sh:maxCount 0 ; # uniqueLang-scope + ] . + +shsh:PropertyShapeShape + a sh:NodeShape ; + sh:targetObjectsOf sh:property ; # property-node + sh:property [ + sh:path sh:path ; + sh:maxCount 1 ; # path-maxCount + sh:minCount 1 ; # PropertyShape-path-minCount + sh:node shsh:PathShape ; # path-node + ] . + +# Values of sh:and, sh:or and sh:xone must be lists of shapes +shsh:ShapesListShape + a sh:NodeShape ; + sh:targetObjectsOf sh:and ; # and-members-node + sh:targetObjectsOf sh:or ; # or-members-node + sh:targetObjectsOf sh:xone ; # xone-members-node + sh:property [ + sh:path ( [ sh:zeroOrMorePath rdf:rest ] rdf:first ) ; + sh:node shsh:ShapeShape ; + ] . + + +# A path of blank node path syntax, used to simulate recursion +_:PathPath + sh:alternativePath ( + ( [ sh:zeroOrMorePath rdf:rest ] rdf:first ) + ( sh:alternativePath [ sh:zeroOrMorePath rdf:rest ] rdf:first ) + sh:inversePath + sh:zeroOrMorePath + sh:oneOrMorePath + sh:zeroOrOnePath + ) . + +shsh:PathShape + a sh:NodeShape ; + rdfs:label "Path shape"@en ; + rdfs:comment "A shape that can be used to validate the syntax rules of well-formed SHACL paths."@en ; + rdfs:seeAlso ; + sh:property [ + sh:path [ sh:zeroOrMorePath _:PathPath ] ; + sh:node shsh:PathNodeShape ; + ] . + +shsh:PathNodeShape + sh:xone ( # path-metarule + [ sh:nodeKind sh:IRI ] # 2.3.1.1: Predicate path + [ sh:nodeKind sh:BlankNode ; # 2.3.1.2: Sequence path + sh:node shsh:PathListWithAtLeast2Members ; + ] + [ sh:nodeKind sh:BlankNode ; # 2.3.1.3: Alternative path + sh:closed true ; + sh:property [ + sh:path sh:alternativePath ; + sh:node shsh:PathListWithAtLeast2Members ; + sh:minCount 1 ; + sh:maxCount 1 ; + ] + ] + [ sh:nodeKind sh:BlankNode ; # 2.3.1.4: Inverse path + sh:closed true ; + sh:property [ + sh:path sh:inversePath ; + sh:minCount 1 ; + sh:maxCount 1 ; + ] + ] + [ sh:nodeKind sh:BlankNode ; # 2.3.1.5: Zero-or-more path + sh:closed true ; + sh:property [ + sh:path sh:zeroOrMorePath ; + sh:minCount 1 ; + sh:maxCount 1 ; + ] + ] + [ sh:nodeKind sh:BlankNode ; # 2.3.1.6: One-or-more path + sh:closed true ; + sh:property [ + sh:path sh:oneOrMorePath ; + sh:minCount 1 ; + sh:maxCount 1 ; + ] + ] + [ sh:nodeKind sh:BlankNode ; # 2.3.1.7: Zero-or-one path + sh:closed true ; + sh:property [ + sh:path sh:zeroOrOnePath ; + sh:minCount 1 ; + sh:maxCount 1 ; + ] + ] + ) . + +shsh:PathListWithAtLeast2Members + a sh:NodeShape ; + sh:node shsh:ListShape ; + sh:property [ + sh:path [ sh:oneOrMorePath rdf:rest ] ; + sh:minCount 2 ; # 1 other list node plus rdf:nil + ] . + +shsh:ShapesGraphShape + a sh:NodeShape ; + sh:targetObjectsOf sh:shapesGraph ; + sh:nodeKind sh:IRI . # shapesGraph-nodeKind + +shsh:EntailmentShape + a sh:NodeShape ; + sh:targetObjectsOf sh:entailment ; + sh:nodeKind sh:IRI . # entailment-nodeKind diff --git a/corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/core/complex/shacl-shacl.ttl b/corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/core/complex/shacl-shacl.ttl new file mode 100644 index 0000000000..889071471a --- /dev/null +++ b/corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/core/complex/shacl-shacl.ttl @@ -0,0 +1,19 @@ +@prefix mf: . +@prefix rdfs: . +@prefix xsd: . +@prefix sh: . +@prefix sht: . + +<> a mf:Manifest ; + mf:entries ( + + ) . + + a sht:Validate ; + rdfs:label "frozen eat your own ( eat your own frozen dogfood )" ; + mf:action [ + sht:dataGraph ; + sht:shapesGraph ] ; + mf:result [a sh:ValidationReport ; + sh:conforms "true"^^xsd:boolean ] ; + mf:status sht:approved . diff --git a/corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/core/manifest.ttl b/corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/core/manifest.ttl new file mode 100644 index 0000000000..ffd61b6402 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/core/manifest.ttl @@ -0,0 +1,14 @@ +@prefix mf: . +@prefix rdfs: . +@prefix sht: . + +<> + a mf:Manifest ; + mf:include ; + mf:include ; + mf:include ; + mf:include ; + mf:include ; + mf:include ; + mf:include ; + . \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/core/misc/deactivated-001.ttl b/corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/core/misc/deactivated-001.ttl new file mode 100644 index 0000000000..809acde926 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/core/misc/deactivated-001.ttl @@ -0,0 +1,44 @@ +@prefix dash: . +@prefix ex: . +@prefix mf: . +@prefix owl: . +@prefix rdf: . +@prefix rdfs: . +@prefix sh: . +@prefix sht: . +@prefix xsd: . + +ex:InvalidResource + rdf:type rdfs:Resource ; +. +ex:TestShape + rdf:type sh:NodeShape ; + sh:datatype xsd:boolean ; + sh:deactivated "true"^^xsd:boolean ; + sh:property ex:TestShape2 ; + sh:targetNode ex:InvalidResource ; +. +ex:TestShape2 + rdf:type sh:PropertyShape ; + sh:path ex:property ; + sh:minCount 1 ; +. +<> + rdf:type mf:Manifest ; + mf:entries ( + + ) ; +. + + rdf:type sht:Validate ; + rdfs:label "Test of sh:deactivated 001" ; + mf:action [ + sht:dataGraph <> ; + sht:shapesGraph <> ; + ] ; + mf:result [ + rdf:type sh:ValidationReport ; + sh:conforms "true"^^xsd:boolean ; + ] ; + mf:status sht:approved ; +. diff --git a/corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/core/misc/deactivated-002.ttl b/corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/core/misc/deactivated-002.ttl new file mode 100644 index 0000000000..0498150f2a --- /dev/null +++ b/corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/core/misc/deactivated-002.ttl @@ -0,0 +1,43 @@ +@prefix dash: . +@prefix ex: . +@prefix mf: . +@prefix owl: . +@prefix rdf: . +@prefix rdfs: . +@prefix sh: . +@prefix sht: . +@prefix xsd: . + +ex:TestShape + rdf:type sh:NodeShape ; + sh:datatype xsd:boolean ; + sh:deactivated "false"^^xsd:boolean ; + sh:targetNode 32 ; +. +<> + rdf:type mf:Manifest ; + mf:entries ( + + ) ; +. + + rdf:type sht:Validate ; + rdfs:label "Test of sh:deactivated 002" ; + mf:action [ + sht:dataGraph <> ; + sht:shapesGraph <> ; + ] ; + mf:result [ + rdf:type sh:ValidationReport ; + sh:conforms "false"^^xsd:boolean ; + sh:result [ + rdf:type sh:ValidationResult ; + sh:focusNode 32 ; + sh:resultSeverity sh:Violation ; + sh:sourceConstraintComponent sh:DatatypeConstraintComponent ; + sh:sourceShape ex:TestShape ; + sh:value 32 ; + ] ; + ] ; + mf:status sht:approved ; +. diff --git a/corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/core/misc/manifest.ttl b/corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/core/misc/manifest.ttl new file mode 100644 index 0000000000..fffc439ce7 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/core/misc/manifest.ttl @@ -0,0 +1,13 @@ +@prefix mf: . +@prefix rdfs: . +@prefix sht: . + +<> + a mf:Manifest ; + rdfs:label "Tests converted from http://datashapes.org/sh/tests/tests/core/misc" ; + mf:include ; + mf:include ; + mf:include ; + mf:include ; + mf:include ; + . \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/core/misc/message-001.ttl b/corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/core/misc/message-001.ttl new file mode 100644 index 0000000000..2d3fb135dd --- /dev/null +++ b/corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/core/misc/message-001.ttl @@ -0,0 +1,48 @@ +@prefix dash: . +@prefix ex: . +@prefix mf: . +@prefix owl: . +@prefix rdf: . +@prefix rdfs: . +@prefix sh: . +@prefix sht: . +@prefix xsd: . + +ex:TestShape + rdf:type sh:NodeShape ; + sh:datatype xsd:integer ; + sh:message "Test message"@en ; + sh:targetNode ex:InvalidNode ; +. +<> + rdf:type mf:Manifest ; + mf:entries ( + + ) ; +. + + rdf:type sht:Validate ; + rdfs:label "Test of custom sh:message 001" ; + rdfs:comment """ + Note: This test verifies that the sh:message is copied into sh:resultMessage. + To pass this test, the test harness needs to preserve all sh:resultMessage triples + that are mentioned in the 'expected' results graph.""" ; + mf:action [ + sht:dataGraph <> ; + sht:shapesGraph <> ; + ] ; + mf:result [ + rdf:type sh:ValidationReport ; + sh:conforms "false"^^xsd:boolean ; + sh:result [ + rdf:type sh:ValidationResult ; + sh:focusNode ex:InvalidNode ; + sh:resultMessage "Test message"@en ; + sh:resultSeverity sh:Violation ; + sh:sourceConstraintComponent sh:DatatypeConstraintComponent ; + sh:sourceShape ex:TestShape ; + sh:value ex:InvalidNode ; + ] ; + ] ; + mf:status sht:approved ; +. diff --git a/corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/core/misc/severity-001.ttl b/corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/core/misc/severity-001.ttl new file mode 100644 index 0000000000..5b3e6b8c9c --- /dev/null +++ b/corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/core/misc/severity-001.ttl @@ -0,0 +1,43 @@ +@prefix dash: . +@prefix ex: . +@prefix mf: . +@prefix owl: . +@prefix rdf: . +@prefix rdfs: . +@prefix sh: . +@prefix sht: . +@prefix xsd: . + +ex:TestShape + rdf:type sh:NodeShape ; + sh:datatype xsd:integer ; + sh:severity sh:Warning ; + sh:targetNode "Hello" ; +. +<> + rdf:type mf:Manifest ; + mf:entries ( + + ) ; +. + + rdf:type sht:Validate ; + rdfs:label "Test of sh:severity 001" ; + mf:action [ + sht:dataGraph <> ; + sht:shapesGraph <> ; + ] ; + mf:result [ + rdf:type sh:ValidationReport ; + sh:conforms "false"^^xsd:boolean ; + sh:result [ + rdf:type sh:ValidationResult ; + sh:focusNode "Hello" ; + sh:resultSeverity sh:Warning ; + sh:sourceConstraintComponent sh:DatatypeConstraintComponent ; + sh:sourceShape ex:TestShape ; + sh:value "Hello" ; + ] ; + ] ; + mf:status sht:approved ; +. diff --git a/corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/core/misc/severity-002.ttl b/corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/core/misc/severity-002.ttl new file mode 100644 index 0000000000..87b2aed772 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/core/misc/severity-002.ttl @@ -0,0 +1,60 @@ +@prefix dash: . +@prefix ex: . +@prefix mf: . +@prefix owl: . +@prefix rdf: . +@prefix rdfs: . +@prefix sh: . +@prefix sht: . +@prefix xsd: . + +ex:InvalidResource1 + ex:property "true"^^xsd:boolean ; +. +ex:TestShape1 + sh:nodeKind sh:BlankNode ; + sh:property ex:TestShape2 ; + sh:severity ex:MySeverity ; + sh:targetNode ex:InvalidResource1 ; +. +ex:TestShape2 + sh:path ex:property ; + sh:datatype xsd:integer ; + sh:severity sh:Info ; +. +<> + rdf:type mf:Manifest ; + mf:entries ( + + ) ; +. + + rdf:type sht:Validate ; + rdfs:label "Test of sh:severity 002" ; + mf:action [ + sht:dataGraph <> ; + sht:shapesGraph <> ; + ] ; + mf:result [ + rdf:type sh:ValidationReport ; + sh:conforms "false"^^xsd:boolean ; + sh:result [ + rdf:type sh:ValidationResult ; + sh:focusNode ex:InvalidResource1 ; + sh:resultPath ex:property ; + sh:resultSeverity sh:Info ; + sh:sourceConstraintComponent sh:DatatypeConstraintComponent ; + sh:sourceShape ex:TestShape2 ; + sh:value "true"^^xsd:boolean ; + ] ; + sh:result [ + rdf:type sh:ValidationResult ; + sh:focusNode ex:InvalidResource1 ; + sh:resultSeverity ex:MySeverity ; + sh:sourceConstraintComponent sh:NodeKindConstraintComponent ; + sh:sourceShape ex:TestShape1 ; + sh:value ex:InvalidResource1 ; + ] ; + ] ; + mf:status sht:approved ; +. diff --git a/corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/core/node/and-001.ttl b/corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/core/node/and-001.ttl new file mode 100644 index 0000000000..d0d8676806 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/core/node/and-001.ttl @@ -0,0 +1,77 @@ +@prefix dash: . +@prefix ex: . +@prefix mf: . +@prefix owl: . +@prefix rdf: . +@prefix rdfs: . +@prefix sh: . +@prefix sht: . +@prefix xsd: . + +ex:InvalidRectangle1 + rdf:type ex:Rectangle ; + ex:height 3 ; +. +ex:InvalidRectangle2 + rdf:type ex:Rectangle ; + ex:width 2 ; +. +ex:Rectangle + rdf:type rdfs:Class ; + rdf:type sh:NodeShape ; + rdfs:subClassOf rdfs:Resource ; + sh:and ( + [ + sh:property [ + sh:path ex:width ; + sh:minCount 1 ; + ] ; + ] + [ + sh:property [ + sh:path ex:height ; + sh:minCount 1 ; + ] ; + ] + ) ; +. +ex:ValidRectangle1 + rdf:type ex:Rectangle ; + ex:height 3 ; + ex:width 2 ; +. +<> + rdf:type mf:Manifest ; + mf:entries ( + + ) ; +. + + rdf:type sht:Validate ; + rdfs:label "Test of sh:and at node shape 001" ; + mf:action [ + sht:dataGraph <> ; + sht:shapesGraph <> ; + ] ; + mf:result [ + rdf:type sh:ValidationReport ; + sh:conforms "false"^^xsd:boolean ; + sh:result [ + rdf:type sh:ValidationResult ; + sh:focusNode ex:InvalidRectangle1 ; + sh:resultSeverity sh:Violation ; + sh:sourceConstraintComponent sh:AndConstraintComponent ; + sh:sourceShape ex:Rectangle ; + sh:value ex:InvalidRectangle1 ; + ] ; + sh:result [ + rdf:type sh:ValidationResult ; + sh:focusNode ex:InvalidRectangle2 ; + sh:resultSeverity sh:Violation ; + sh:sourceConstraintComponent sh:AndConstraintComponent ; + sh:sourceShape ex:Rectangle ; + sh:value ex:InvalidRectangle2 ; + ] ; + ] ; + mf:status sht:approved ; +. diff --git a/corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/core/node/and-002.ttl b/corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/core/node/and-002.ttl new file mode 100644 index 0000000000..f4b018db19 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/core/node/and-002.ttl @@ -0,0 +1,74 @@ +@prefix dash: . +@prefix ex: . +@prefix mf: . +@prefix owl: . +@prefix rdf: . +@prefix rdfs: . +@prefix sh: . +@prefix sht: . +@prefix xsd: . + +ex:AndShape + rdf:type sh:NodeShape ; + sh:and ( + ex:SuperShape + [ + sh:property [ + sh:path ex:property ; + sh:maxCount 1 ; + ] ; + ] + ) ; + sh:targetNode ex:InvalidInstance1 ; + sh:targetNode ex:InvalidInstance2 ; + sh:targetNode ex:ValidInstance1 ; +. +ex:InvalidInstance2 + ex:property "One" ; + ex:property "Two" ; +. +ex:SuperShape + rdf:type sh:NodeShape ; + sh:property [ + sh:path ex:property ; + sh:minCount 1 ; + ] ; +. +ex:ValidInstance1 + ex:property "One" ; +. +<> + rdf:type mf:Manifest ; + mf:entries ( + + ) ; +. + + rdf:type sht:Validate ; + rdfs:label "Test of sh:and at node shape 002" ; + mf:action [ + sht:dataGraph <> ; + sht:shapesGraph <> ; + ] ; + mf:result [ + rdf:type sh:ValidationReport ; + sh:conforms "false"^^xsd:boolean ; + sh:result [ + rdf:type sh:ValidationResult ; + sh:focusNode ex:InvalidInstance1 ; + sh:resultSeverity sh:Violation ; + sh:sourceConstraintComponent sh:AndConstraintComponent ; + sh:sourceShape ex:AndShape ; + sh:value ex:InvalidInstance1 ; + ] ; + sh:result [ + rdf:type sh:ValidationResult ; + sh:focusNode ex:InvalidInstance2 ; + sh:resultSeverity sh:Violation ; + sh:sourceConstraintComponent sh:AndConstraintComponent ; + sh:sourceShape ex:AndShape ; + sh:value ex:InvalidInstance2 ; + ] ; + ] ; + mf:status sht:approved ; +. diff --git a/corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/core/node/class-001.ttl b/corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/core/node/class-001.ttl new file mode 100644 index 0000000000..ab97977449 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/core/node/class-001.ttl @@ -0,0 +1,70 @@ +@prefix dash: . +@prefix ex: . +@prefix mf: . +@prefix owl: . +@prefix rdf: . +@prefix rdfs: . +@prefix sh: . +@prefix sht: . +@prefix xsd: . + +ex:John + rdf:type ex:MalePerson ; +. +ex:MalePerson + rdf:type rdfs:Class ; + rdfs:subClassOf ex:Person ; +. +ex:Person + rdf:type rdfs:Class ; + rdfs:subClassOf rdfs:Resource ; +. +ex:Quokki + rdf:type ex:Animal ; +. +ex:Someone + rdf:type ex:Person ; +. +ex:TestShape + rdf:type sh:NodeShape ; + sh:class ex:Person ; + sh:targetNode ex:John ; + sh:targetNode ex:Quokki ; + sh:targetNode ex:Someone ; + sh:targetNode ex:Typeless ; +. +<> + rdf:type mf:Manifest ; + mf:entries ( + + ) ; +. + + rdf:type sht:Validate ; + rdfs:label "Test of sh:class at node shape 001" ; + mf:action [ + sht:dataGraph <> ; + sht:shapesGraph <> ; + ] ; + mf:result [ + rdf:type sh:ValidationReport ; + sh:conforms "false"^^xsd:boolean ; + sh:result [ + rdf:type sh:ValidationResult ; + sh:focusNode ex:Quokki ; + sh:resultSeverity sh:Violation ; + sh:sourceConstraintComponent sh:ClassConstraintComponent ; + sh:sourceShape ex:TestShape ; + sh:value ex:Quokki ; + ] ; + sh:result [ + rdf:type sh:ValidationResult ; + sh:focusNode ex:Typeless ; + sh:resultSeverity sh:Violation ; + sh:sourceConstraintComponent sh:ClassConstraintComponent ; + sh:sourceShape ex:TestShape ; + sh:value ex:Typeless ; + ] ; + ] ; + mf:status sht:approved ; +. diff --git a/corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/core/node/class-002.ttl b/corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/core/node/class-002.ttl new file mode 100644 index 0000000000..71ed5e0d54 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/core/node/class-002.ttl @@ -0,0 +1,62 @@ +@prefix dash: . +@prefix ex: . +@prefix mf: . +@prefix owl: . +@prefix rdf: . +@prefix rdfs: . +@prefix sh: . +@prefix sht: . +@prefix xsd: . + +ex:NamedInstance + rdf:type ex:TestClass ; +. +ex:TestShape + rdf:type sh:NodeShape ; + sh:class ex:TestClass ; + sh:targetClass ex:BNodeClass ; + sh:targetNode ex:NamedInstance ; + sh:targetNode "String" ; +. +<> + rdf:type mf:Manifest ; + mf:entries ( + + ) ; +. + + rdf:type sht:Validate ; + rdfs:label "Test of sh:class at node shape 002" ; + mf:action [ + sht:dataGraph <> ; + sht:shapesGraph <> ; + ] ; + mf:result [ + rdf:type sh:ValidationReport ; + sh:conforms "false"^^xsd:boolean ; + sh:result [ + rdf:type sh:ValidationResult ; + sh:focusNode "String" ; + sh:resultSeverity sh:Violation ; + sh:sourceConstraintComponent sh:ClassConstraintComponent ; + sh:sourceShape ex:TestShape ; + sh:value "String" ; + ] ; + sh:result [ + rdf:type sh:ValidationResult ; + sh:focusNode _:b9751 ; + sh:resultSeverity sh:Violation ; + sh:sourceConstraintComponent sh:ClassConstraintComponent ; + sh:sourceShape ex:TestShape ; + sh:value _:b9751 ; + ] ; + ] ; + mf:status sht:approved ; +. +_:b9751 + rdf:type ex:BNodeClass ; +. +[ + rdf:type ex:BNodeClass ; + rdf:type ex:TestClass ; +]. diff --git a/corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/core/node/class-003.ttl b/corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/core/node/class-003.ttl new file mode 100644 index 0000000000..16b37be4d2 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/core/node/class-003.ttl @@ -0,0 +1,105 @@ +@prefix dash: . +@prefix ex: . +@prefix mf: . +@prefix owl: . +@prefix rdf: . +@prefix rdfs: . +@prefix sh: . +@prefix sht: . +@prefix xsd: . + +ex:John # not Animal + rdf:type ex:MalePerson ; +. +ex:Joe # OK + rdf:type ex:MalePerson ; + rdf:type ex:Animal ; +. +ex:MalePerson + rdf:type rdfs:Class ; + rdfs:subClassOf ex:Person ; +. +ex:Person + rdf:type rdfs:Class ; + rdfs:subClassOf rdfs:Resource ; +. +ex:Quokki # not Person + rdf:type ex:Animal ; +. +ex:Quokkip # not Animal + rdf:type ex:Person ; +. +ex:Someone # OK + rdf:type ex:Person ; + rdf:type ex:Animal ; +. +ex:TestShape + rdf:type sh:NodeShape ; + sh:class ex:Person ; + sh:class ex:Animal ; + sh:targetClass ex:MalePerson ; + sh:targetNode ex:John ; + sh:targetNode ex:Quokki ; + sh:targetNode ex:Quokkip ; + sh:targetNode ex:Someone ; + sh:targetNode ex:Typeless ; # not Animal, not Person +. +<> + rdf:type mf:Manifest ; + mf:entries ( + + ) ; +. + + rdf:type sht:Validate ; + rdfs:label "Test of sh:class at node shape 003 multiple classes, overlapping target sets" ; + mf:action [ + sht:dataGraph <> ; + sht:shapesGraph <> ; + ] ; + mf:result [ + rdf:type sh:ValidationReport ; + sh:conforms "false"^^xsd:boolean ; + sh:result [ + rdf:type sh:ValidationResult ; + sh:focusNode ex:Typeless ; + sh:resultSeverity sh:Violation ; + sh:sourceConstraintComponent sh:ClassConstraintComponent ; + sh:sourceShape ex:TestShape ; + sh:value ex:Typeless ; + ] ; + sh:result [ + rdf:type sh:ValidationResult ; + sh:focusNode ex:Typeless ; + sh:resultSeverity sh:Violation ; + sh:sourceConstraintComponent sh:ClassConstraintComponent ; + sh:sourceShape ex:TestShape ; + sh:value ex:Typeless ; + ] ; + sh:result [ + rdf:type sh:ValidationResult ; + sh:focusNode ex:Quokki ; + sh:resultSeverity sh:Violation ; + sh:sourceConstraintComponent sh:ClassConstraintComponent ; + sh:sourceShape ex:TestShape ; + sh:value ex:Quokki ; + ] ; + sh:result [ + rdf:type sh:ValidationResult ; + sh:focusNode ex:John ; + sh:resultSeverity sh:Violation ; + sh:sourceConstraintComponent sh:ClassConstraintComponent ; + sh:sourceShape ex:TestShape ; + sh:value ex:John ; + ] ; + sh:result [ + rdf:type sh:ValidationResult ; + sh:focusNode ex:Quokkip ; + sh:resultSeverity sh:Violation ; + sh:sourceConstraintComponent sh:ClassConstraintComponent ; + sh:sourceShape ex:TestShape ; + sh:value ex:Quokkip ; + ] ; + ] ; + mf:status sht:approved ; +. diff --git a/corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/core/node/closed-001.ttl b/corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/core/node/closed-001.ttl new file mode 100644 index 0000000000..6bae9de8c9 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/core/node/closed-001.ttl @@ -0,0 +1,64 @@ +@prefix dash: . +@prefix ex: . +@prefix mf: . +@prefix owl: . +@prefix rdf: . +@prefix rdfs: . +@prefix sh: . +@prefix sht: . +@prefix xsd: . + +ex:InvalidInstance1 + rdf:type ex:SomeClass ; + ex:otherProperty 4 ; + ex:someProperty 3 ; +. +ex:MyShape + rdf:type sh:NodeShape ; + sh:closed "true"^^xsd:boolean ; + sh:property [ + sh:path ex:someProperty ; + ] ; + sh:targetNode ex:InvalidInstance1 ; + sh:targetNode ex:ValidInstance1 ; +. +ex:ValidInstance1 + ex:someProperty 3 ; +. +<> + rdf:type mf:Manifest ; + mf:entries ( + + ) ; +. + + rdf:type sht:Validate ; + rdfs:label "Test of sh:closed at node shape 001" ; + mf:action [ + sht:dataGraph <> ; + sht:shapesGraph <> ; + ] ; + mf:result [ + rdf:type sh:ValidationReport ; + sh:conforms "false"^^xsd:boolean ; + sh:result [ + rdf:type sh:ValidationResult ; + sh:focusNode ex:InvalidInstance1 ; + sh:resultPath rdf:type ; + sh:resultSeverity sh:Violation ; + sh:sourceConstraintComponent sh:ClosedConstraintComponent ; + sh:sourceShape ex:MyShape ; + sh:value ex:SomeClass ; + ] ; + sh:result [ + rdf:type sh:ValidationResult ; + sh:focusNode ex:InvalidInstance1 ; + sh:resultPath ex:otherProperty ; + sh:resultSeverity sh:Violation ; + sh:sourceConstraintComponent sh:ClosedConstraintComponent ; + sh:sourceShape ex:MyShape ; + sh:value 4 ; + ] ; + ] ; + mf:status sht:approved ; +. diff --git a/corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/core/node/closed-002.ttl b/corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/core/node/closed-002.ttl new file mode 100644 index 0000000000..d72eebb49c --- /dev/null +++ b/corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/core/node/closed-002.ttl @@ -0,0 +1,58 @@ +@prefix dash: . +@prefix ex: . +@prefix mf: . +@prefix owl: . +@prefix rdf: . +@prefix rdfs: . +@prefix sh: . +@prefix sht: . +@prefix xsd: . + +ex:InvalidInstance1 + ex:otherProperty 4 ; + ex:someProperty 3 ; +. +ex:MyShape + rdf:type sh:NodeShape ; + sh:closed "true"^^xsd:boolean ; + sh:ignoredProperties ( + rdf:type + ) ; + sh:property [ + sh:path ex:someProperty ; + ] ; + sh:targetNode ex:InvalidInstance1 ; + sh:targetNode ex:ValidInstance1 ; +. +ex:ValidInstance1 + rdf:type ex:SomeClass ; + ex:someProperty 3 ; +. +<> + rdf:type mf:Manifest ; + mf:entries ( + + ) ; +. + + rdf:type sht:Validate ; + rdfs:label "Test of sh:closed at node shape 002" ; + mf:action [ + sht:dataGraph <> ; + sht:shapesGraph <> ; + ] ; + mf:result [ + rdf:type sh:ValidationReport ; + sh:conforms "false"^^xsd:boolean ; + sh:result [ + rdf:type sh:ValidationResult ; + sh:focusNode ex:InvalidInstance1 ; + sh:resultPath ex:otherProperty ; + sh:resultSeverity sh:Violation ; + sh:sourceConstraintComponent sh:ClosedConstraintComponent ; + sh:sourceShape ex:MyShape ; + sh:value 4 ; + ] ; + ] ; + mf:status sht:approved ; +. diff --git a/corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/core/node/datatype-001.ttl b/corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/core/node/datatype-001.ttl new file mode 100644 index 0000000000..427572d45f --- /dev/null +++ b/corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/core/node/datatype-001.ttl @@ -0,0 +1,64 @@ +@prefix dash: . +@prefix ex: . +@prefix mf: . +@prefix owl: . +@prefix rdf: . +@prefix rdfs: . +@prefix sh: . +@prefix sht: . +@prefix xsd: . + +ex:TestShape + rdf:type sh:NodeShape ; + sh:datatype xsd:integer ; + sh:targetClass ex:TestClass ; + sh:targetNode xsd:integer ; + sh:targetNode 42 ; + sh:targetNode "aldi"^^xsd:integer ; +. +<> + rdf:type mf:Manifest ; + mf:entries ( + + ) ; +. + + rdf:type sht:Validate ; + rdfs:label "Test of sh:datatype at node shape 001" ; + mf:action [ + sht:dataGraph <> ; + sht:shapesGraph <> ; + ] ; + mf:result [ + rdf:type sh:ValidationReport ; + sh:conforms "false"^^xsd:boolean ; + sh:result [ + rdf:type sh:ValidationResult ; + sh:focusNode xsd:integer ; + sh:resultSeverity sh:Violation ; + sh:sourceConstraintComponent sh:DatatypeConstraintComponent ; + sh:sourceShape ex:TestShape ; + sh:value xsd:integer ; + ] ; + sh:result [ + rdf:type sh:ValidationResult ; + sh:focusNode "aldi"^^xsd:integer ; + sh:resultSeverity sh:Violation ; + sh:sourceConstraintComponent sh:DatatypeConstraintComponent ; + sh:sourceShape ex:TestShape ; + sh:value "aldi"^^xsd:integer ; + ] ; + sh:result [ + rdf:type sh:ValidationResult ; + sh:focusNode _:b30507 ; + sh:resultSeverity sh:Violation ; + sh:sourceConstraintComponent sh:DatatypeConstraintComponent ; + sh:sourceShape ex:TestShape ; + sh:value _:b30507 ; + ] ; + ] ; + mf:status sht:approved ; +. +_:b30507 + rdf:type ex:TestClass ; +. diff --git a/corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/core/node/datatype-002.ttl b/corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/core/node/datatype-002.ttl new file mode 100644 index 0000000000..6e9e0121fc --- /dev/null +++ b/corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/core/node/datatype-002.ttl @@ -0,0 +1,53 @@ +@prefix dash: . +@prefix ex: . +@prefix mf: . +@prefix owl: . +@prefix rdf: . +@prefix rdfs: . +@prefix sh: . +@prefix sht: . +@prefix xsd: . + +ex:TestShape + rdf:type sh:NodeShape ; + sh:datatype rdf:langString ; + sh:targetNode "Hello"^^rdf:HTML ; + sh:targetNode "G'day"@en-AU ; + sh:targetNode "Hallo"@de ; + sh:targetNode "Hello" ; +. +<> + rdf:type mf:Manifest ; + mf:entries ( + + ) ; +. + + rdf:type sht:Validate ; + rdfs:label "Test of sh:datatype at node shape 002" ; + mf:action [ + sht:dataGraph <> ; + sht:shapesGraph <> ; + ] ; + mf:result [ + rdf:type sh:ValidationReport ; + sh:conforms "false"^^xsd:boolean ; + sh:result [ + rdf:type sh:ValidationResult ; + sh:focusNode "Hello"^^rdf:HTML ; + sh:resultSeverity sh:Violation ; + sh:sourceConstraintComponent sh:DatatypeConstraintComponent ; + sh:sourceShape ex:TestShape ; + sh:value "Hello"^^rdf:HTML ; + ] ; + sh:result [ + rdf:type sh:ValidationResult ; + sh:focusNode "Hello" ; + sh:resultSeverity sh:Violation ; + sh:sourceConstraintComponent sh:DatatypeConstraintComponent ; + sh:sourceShape ex:TestShape ; + sh:value "Hello" ; + ] ; + ] ; + mf:status sht:approved ; +. diff --git a/corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/core/node/disjoint-001.ttl b/corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/core/node/disjoint-001.ttl new file mode 100644 index 0000000000..d98158ad9e --- /dev/null +++ b/corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/core/node/disjoint-001.ttl @@ -0,0 +1,51 @@ +@prefix dash: . +@prefix ex: . +@prefix mf: . +@prefix owl: . +@prefix rdf: . +@prefix rdfs: . +@prefix sh: . +@prefix sht: . +@prefix xsd: . + +ex:InvalidResource1 + ex:property ex:InvalidResource1 ; + ex:property ex:ValidResource1 ; +. +ex:TestShape + rdf:type sh:NodeShape ; + rdfs:label "Test shape" ; + sh:disjoint ex:property ; + sh:targetNode ex:InvalidResource1 ; + sh:targetNode ex:ValidResource1 ; +. +ex:ValidResource1 + ex:property ex:InvalidResource1 ; +. +<> + rdf:type mf:Manifest ; + mf:entries ( + + ) ; +. + + rdf:type sht:Validate ; + rdfs:label "Test of sh:disjoint at node shape 001" ; + mf:action [ + sht:dataGraph <> ; + sht:shapesGraph <> ; + ] ; + mf:result [ + rdf:type sh:ValidationReport ; + sh:conforms "false"^^xsd:boolean ; + sh:result [ + rdf:type sh:ValidationResult ; + sh:focusNode ex:InvalidResource1 ; + sh:resultSeverity sh:Violation ; + sh:sourceConstraintComponent sh:DisjointConstraintComponent ; + sh:sourceShape ex:TestShape ; + sh:value ex:InvalidResource1 ; + ] ; + ] ; + mf:status sht:approved ; +. diff --git a/corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/core/node/equals-001.ttl b/corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/core/node/equals-001.ttl new file mode 100644 index 0000000000..8f23966b8d --- /dev/null +++ b/corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/core/node/equals-001.ttl @@ -0,0 +1,59 @@ +@prefix dash: . +@prefix ex: . +@prefix mf: . +@prefix owl: . +@prefix rdf: . +@prefix rdfs: . +@prefix sh: . +@prefix sht: . +@prefix xsd: . + +ex:InvalidResource1 + ex:property ex:InvalidResource1 ; + ex:property ex:SomeValue ; +. +ex:TestShape + rdf:type sh:NodeShape ; + sh:equals ex:property ; + sh:targetNode ex:InvalidResource1 ; + sh:targetNode ex:InvalidResource2 ; + sh:targetNode ex:ValidResource1 ; +. +ex:ValidResource1 + ex:property ex:ValidResource1 ; +. +<> + rdf:type mf:Manifest ; + mf:entries ( + + ) ; +. + + rdf:type sht:Validate ; + rdfs:label "Test of sh:equals at node shape 001" ; + mf:action [ + sht:dataGraph <> ; + sht:shapesGraph <> ; + ] ; + mf:result [ + rdf:type sh:ValidationReport ; + sh:conforms "false"^^xsd:boolean ; + sh:result [ + rdf:type sh:ValidationResult ; + sh:focusNode ex:InvalidResource1 ; + sh:resultSeverity sh:Violation ; + sh:sourceConstraintComponent sh:EqualsConstraintComponent ; + sh:sourceShape ex:TestShape ; + sh:value ex:SomeValue ; + ] ; + sh:result [ + rdf:type sh:ValidationResult ; + sh:focusNode ex:InvalidResource2 ; + sh:resultSeverity sh:Violation ; + sh:sourceConstraintComponent sh:EqualsConstraintComponent ; + sh:sourceShape ex:TestShape ; + sh:value ex:InvalidResource2 ; + ] ; + ] ; + mf:status sht:approved ; +. diff --git a/corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/core/node/hasValue-001.ttl b/corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/core/node/hasValue-001.ttl new file mode 100644 index 0000000000..139b4ddd9f --- /dev/null +++ b/corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/core/node/hasValue-001.ttl @@ -0,0 +1,44 @@ +@prefix dash: . +@prefix ex: . +@prefix mf: . +@prefix owl: . +@prefix rdf: . +@prefix rdfs: . +@prefix sh: . +@prefix sht: . +@prefix xsd: . + +ex:TestShape + rdf:type sh:NodeShape ; + rdfs:label "Test shape" ; + sh:hasValue "Test" ; + sh:targetNode "Invalid String" ; + sh:targetNode "Test" ; +. +<> + rdf:type mf:Manifest ; + mf:entries ( + + ) ; +. + + rdf:type sht:Validate ; + rdfs:label "Test of sh:hasValue at node shape 001" ; + mf:action [ + sht:dataGraph <> ; + sht:shapesGraph <> ; + ] ; + mf:result [ + rdf:type sh:ValidationReport ; + sh:conforms "false"^^xsd:boolean ; + sh:result [ + rdf:type sh:ValidationResult ; + sh:focusNode "Invalid String" ; + sh:resultSeverity sh:Violation ; + sh:sourceConstraintComponent sh:HasValueConstraintComponent ; + sh:sourceShape ex:TestShape ; + sh:value "Invalid String" ; + ] ; + ] ; + mf:status sht:approved ; +. diff --git a/corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/core/node/in-001.ttl b/corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/core/node/in-001.ttl new file mode 100644 index 0000000000..8fb4c08525 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/core/node/in-001.ttl @@ -0,0 +1,63 @@ +@prefix dash: . +@prefix ex: . +@prefix mf: . +@prefix owl: . +@prefix rdf: . +@prefix rdfs: . +@prefix sh: . +@prefix sht: . +@prefix xsd: . + +ex:Green + rdf:type ex:TestShape ; + rdfs:label "Green" ; +. +ex:InvalidInstance + rdf:type ex:TestShape ; + rdfs:label "Invalid instance" ; +. +ex:Red + rdf:type ex:TestShape ; + rdfs:label "Red" ; +. +ex:TestShape + rdf:type rdfs:Class ; + rdf:type sh:NodeShape ; + rdfs:label "Test shape" ; + sh:in ( + ex:Green + ex:Red + ex:Yellow + ) ; +. +ex:Yellow + rdf:type ex:TestShape ; + rdfs:label "Yellow" ; +. +<> + rdf:type mf:Manifest ; + mf:entries ( + + ) ; +. + + rdf:type sht:Validate ; + rdfs:label "Test of sh:in at node shape 001" ; + mf:action [ + sht:dataGraph <> ; + sht:shapesGraph <> ; + ] ; + mf:result [ + rdf:type sh:ValidationReport ; + sh:conforms "false"^^xsd:boolean ; + sh:result [ + rdf:type sh:ValidationResult ; + sh:focusNode ex:InvalidInstance ; + sh:resultSeverity sh:Violation ; + sh:sourceConstraintComponent sh:InConstraintComponent ; + sh:sourceShape ex:TestShape ; + sh:value ex:InvalidInstance ; + ] ; + ] ; + mf:status sht:approved ; +. diff --git a/corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/core/node/languageIn-001.ttl b/corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/core/node/languageIn-001.ttl new file mode 100644 index 0000000000..b8365d2586 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/core/node/languageIn-001.ttl @@ -0,0 +1,66 @@ +@prefix dash: . +@prefix ex: . +@prefix mf: . +@prefix owl: . +@prefix rdf: . +@prefix rdfs: . +@prefix sh: . +@prefix sht: . +@prefix xsd: . + +ex:TestShape + rdf:type sh:NodeShape ; + rdfs:label "Test shape" ; + sh:languageIn ( + "en" + "fr" + ) ; + sh:targetNode rdfs:Resource ; + sh:targetNode "Deutsch"@de ; + sh:targetNode "English"@en ; + sh:targetNode "Francais"@fr ; + sh:targetNode "Plain String" ; +. +<> + rdf:type mf:Manifest ; + mf:entries ( + + ) ; +. + + rdf:type sht:Validate ; + rdfs:label "Test of sh:languageIn at node shape 001" ; + mf:action [ + sht:dataGraph <> ; + sht:shapesGraph <> ; + ] ; + mf:result [ + rdf:type sh:ValidationReport ; + sh:conforms "false"^^xsd:boolean ; + sh:result [ + rdf:type sh:ValidationResult ; + sh:focusNode rdfs:Resource ; + sh:resultSeverity sh:Violation ; + sh:sourceConstraintComponent sh:LanguageInConstraintComponent ; + sh:sourceShape ex:TestShape ; + sh:value rdfs:Resource ; + ] ; + sh:result [ + rdf:type sh:ValidationResult ; + sh:focusNode "Deutsch"@de ; + sh:resultSeverity sh:Violation ; + sh:sourceConstraintComponent sh:LanguageInConstraintComponent ; + sh:sourceShape ex:TestShape ; + sh:value "Deutsch"@de ; + ] ; + sh:result [ + rdf:type sh:ValidationResult ; + sh:focusNode "Plain String" ; + sh:resultSeverity sh:Violation ; + sh:sourceConstraintComponent sh:LanguageInConstraintComponent ; + sh:sourceShape ex:TestShape ; + sh:value "Plain String" ; + ] ; + ] ; + mf:status sht:approved ; +. diff --git a/corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/core/node/manifest.ttl b/corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/core/node/manifest.ttl new file mode 100644 index 0000000000..50fd316777 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/core/node/manifest.ttl @@ -0,0 +1,40 @@ +@prefix mf: . +@prefix rdfs: . +@prefix sht: . + +<> + a mf:Manifest ; + rdfs:label "Tests converted from http://datashapes.org/sh/tests/tests/core/node" ; + mf:include ; + mf:include ; + mf:include ; + mf:include ; + mf:include ; + mf:include ; + mf:include ; + mf:include ; + mf:include ; + mf:include ; + mf:include ; + mf:include ; + mf:include ; + mf:include ; + mf:include ; + mf:include ; + mf:include ; + mf:include ; + mf:include ; + mf:include ; + mf:include ; + mf:include ; + mf:include ; + mf:include ; + mf:include ; + mf:include ; + mf:include ; + mf:include ; + mf:include ; + mf:include ; + mf:include ; + mf:include ; + . \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/core/node/maxExclusive-001.ttl b/corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/core/node/maxExclusive-001.ttl new file mode 100644 index 0000000000..7c2b17718b --- /dev/null +++ b/corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/core/node/maxExclusive-001.ttl @@ -0,0 +1,91 @@ +@prefix dash: . +@prefix ex: . +@prefix mf: . +@prefix owl: . +@prefix rdf: . +@prefix rdfs: . +@prefix sh: . +@prefix sht: . +@prefix xsd: . + +ex:TestShape + rdf:type sh:NodeShape ; + sh:maxExclusive 4 ; + sh:targetClass ex:TestClass ; + sh:targetNode ex:John ; + sh:targetNode 3.9 ; + sh:targetNode 4 ; + sh:targetNode 4.0 ; + sh:targetNode 4.1 ; + sh:targetNode "Hello" ; +. +<> + rdf:type mf:Manifest ; + mf:entries ( + + ) ; +. + + rdf:type sht:Validate ; + rdfs:label "Test of sh:maxExclusive at node shape 001" ; + mf:action [ + sht:dataGraph <> ; + sht:shapesGraph <> ; + ] ; + mf:result [ + rdf:type sh:ValidationReport ; + sh:conforms "false"^^xsd:boolean ; + sh:result [ + rdf:type sh:ValidationResult ; + sh:focusNode ex:John ; + sh:resultSeverity sh:Violation ; + sh:sourceConstraintComponent sh:MaxExclusiveConstraintComponent ; + sh:sourceShape ex:TestShape ; + sh:value ex:John ; + ] ; + sh:result [ + rdf:type sh:ValidationResult ; + sh:focusNode 4 ; + sh:resultSeverity sh:Violation ; + sh:sourceConstraintComponent sh:MaxExclusiveConstraintComponent ; + sh:sourceShape ex:TestShape ; + sh:value 4 ; + ] ; + sh:result [ + rdf:type sh:ValidationResult ; + sh:focusNode 4.0 ; + sh:resultSeverity sh:Violation ; + sh:sourceConstraintComponent sh:MaxExclusiveConstraintComponent ; + sh:sourceShape ex:TestShape ; + sh:value 4.0 ; + ] ; + sh:result [ + rdf:type sh:ValidationResult ; + sh:focusNode 4.1 ; + sh:resultSeverity sh:Violation ; + sh:sourceConstraintComponent sh:MaxExclusiveConstraintComponent ; + sh:sourceShape ex:TestShape ; + sh:value 4.1 ; + ] ; + sh:result [ + rdf:type sh:ValidationResult ; + sh:focusNode "Hello" ; + sh:resultSeverity sh:Violation ; + sh:sourceConstraintComponent sh:MaxExclusiveConstraintComponent ; + sh:sourceShape ex:TestShape ; + sh:value "Hello" ; + ] ; + sh:result [ + rdf:type sh:ValidationResult ; + sh:focusNode _:b11982 ; + sh:resultSeverity sh:Violation ; + sh:sourceConstraintComponent sh:MaxExclusiveConstraintComponent ; + sh:sourceShape ex:TestShape ; + sh:value _:b11982 ; + ] ; + ] ; + mf:status sht:approved ; +. +_:b11982 + rdf:type ex:TestClass ; +. diff --git a/corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/core/node/maxInclusive-001.ttl b/corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/core/node/maxInclusive-001.ttl new file mode 100644 index 0000000000..f30c9425d6 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/core/node/maxInclusive-001.ttl @@ -0,0 +1,75 @@ +@prefix dash: . +@prefix ex: . +@prefix mf: . +@prefix owl: . +@prefix rdf: . +@prefix rdfs: . +@prefix sh: . +@prefix sht: . +@prefix xsd: . + +ex:TestShape + rdf:type sh:NodeShape ; + sh:maxInclusive 4 ; + sh:targetClass ex:TestClass ; + sh:targetNode ex:John ; + sh:targetNode 3.9 ; + sh:targetNode 4 ; + sh:targetNode 4.0 ; + sh:targetNode 4.1 ; + sh:targetNode "Hello" ; +. +<> + rdf:type mf:Manifest ; + mf:entries ( + + ) ; +. + + rdf:type sht:Validate ; + rdfs:label "Test of sh:maxInclusive at node shape 001" ; + mf:action [ + sht:dataGraph <> ; + sht:shapesGraph <> ; + ] ; + mf:result [ + rdf:type sh:ValidationReport ; + sh:conforms "false"^^xsd:boolean ; + sh:result [ + rdf:type sh:ValidationResult ; + sh:focusNode ex:John ; + sh:resultSeverity sh:Violation ; + sh:sourceConstraintComponent sh:MaxInclusiveConstraintComponent ; + sh:sourceShape ex:TestShape ; + sh:value ex:John ; + ] ; + sh:result [ + rdf:type sh:ValidationResult ; + sh:focusNode 4.1 ; + sh:resultSeverity sh:Violation ; + sh:sourceConstraintComponent sh:MaxInclusiveConstraintComponent ; + sh:sourceShape ex:TestShape ; + sh:value 4.1 ; + ] ; + sh:result [ + rdf:type sh:ValidationResult ; + sh:focusNode "Hello" ; + sh:resultSeverity sh:Violation ; + sh:sourceConstraintComponent sh:MaxInclusiveConstraintComponent ; + sh:sourceShape ex:TestShape ; + sh:value "Hello" ; + ] ; + sh:result [ + rdf:type sh:ValidationResult ; + sh:focusNode _:b22005 ; + sh:resultSeverity sh:Violation ; + sh:sourceConstraintComponent sh:MaxInclusiveConstraintComponent ; + sh:sourceShape ex:TestShape ; + sh:value _:b22005 ; + ] ; + ] ; + mf:status sht:approved ; +. +_:b22005 + rdf:type ex:TestClass ; +. diff --git a/corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/core/node/maxLength-001.ttl b/corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/core/node/maxLength-001.ttl new file mode 100644 index 0000000000..bd197e2574 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/core/node/maxLength-001.ttl @@ -0,0 +1,87 @@ +@prefix dash: . +@prefix ex: . +@prefix mf: . +@prefix owl: . +@prefix rdf: . +@prefix rdfs: . +@prefix sh: . +@prefix sht: . +@prefix xsd: . + +ex:TestShape + rdf:type sh:NodeShape ; + sh:maxLength 4 ; + sh:targetClass ex:TestClass ; + sh:targetNode ; + sh:targetNode ex:John ; + sh:targetNode 123 ; + sh:targetNode 1234 ; + sh:targetNode 12345 ; + sh:targetNode "2017-03-29"^^xsd:date ; + sh:targetNode "Hel" ; + sh:targetNode "Hell" ; + sh:targetNode "Hell"@en ; + sh:targetNode "Hello" ; +. +<> + rdf:type mf:Manifest ; + mf:entries ( + + ) ; +. + + rdf:type sht:Validate ; + rdfs:label "Test of sh:maxLength at node shape 001" ; + mf:action [ + sht:dataGraph <> ; + sht:shapesGraph <> ; + ] ; + mf:result [ + rdf:type sh:ValidationReport ; + sh:conforms "false"^^xsd:boolean ; + sh:result [ + rdf:type sh:ValidationResult ; + sh:focusNode ex:John ; + sh:resultSeverity sh:Violation ; + sh:sourceConstraintComponent sh:MaxLengthConstraintComponent ; + sh:sourceShape ex:TestShape ; + sh:value ex:John ; + ] ; + sh:result [ + rdf:type sh:ValidationResult ; + sh:focusNode 12345 ; + sh:resultSeverity sh:Violation ; + sh:sourceConstraintComponent sh:MaxLengthConstraintComponent ; + sh:sourceShape ex:TestShape ; + sh:value 12345 ; + ] ; + sh:result [ + rdf:type sh:ValidationResult ; + sh:focusNode "2017-03-29"^^xsd:date ; + sh:resultSeverity sh:Violation ; + sh:sourceConstraintComponent sh:MaxLengthConstraintComponent ; + sh:sourceShape ex:TestShape ; + sh:value "2017-03-29"^^xsd:date ; + ] ; + sh:result [ + rdf:type sh:ValidationResult ; + sh:focusNode "Hello" ; + sh:resultSeverity sh:Violation ; + sh:sourceConstraintComponent sh:MaxLengthConstraintComponent ; + sh:sourceShape ex:TestShape ; + sh:value "Hello" ; + ] ; + sh:result [ + rdf:type sh:ValidationResult ; + sh:focusNode _:b34236 ; + sh:resultSeverity sh:Violation ; + sh:sourceConstraintComponent sh:MaxLengthConstraintComponent ; + sh:sourceShape ex:TestShape ; + sh:value _:b34236 ; + ] ; + ] ; + mf:status sht:approved ; +. +_:b34236 + rdf:type ex:TestClass ; +. diff --git a/corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/core/node/minExclusive-001.ttl b/corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/core/node/minExclusive-001.ttl new file mode 100644 index 0000000000..7219150430 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/core/node/minExclusive-001.ttl @@ -0,0 +1,91 @@ +@prefix dash: . +@prefix ex: . +@prefix mf: . +@prefix owl: . +@prefix rdf: . +@prefix rdfs: . +@prefix sh: . +@prefix sht: . +@prefix xsd: . + +ex:TestShape + rdf:type sh:NodeShape ; + sh:minExclusive 4 ; + sh:targetClass ex:TestClass ; + sh:targetNode ex:John ; + sh:targetNode 3.9 ; + sh:targetNode 4 ; + sh:targetNode 4.0 ; + sh:targetNode 4.1 ; + sh:targetNode "Hello" ; +. +<> + rdf:type mf:Manifest ; + mf:entries ( + + ) ; +. + + rdf:type sht:Validate ; + rdfs:label "Test of sh:minExclusive at node shape 001" ; + mf:action [ + sht:dataGraph <> ; + sht:shapesGraph <> ; + ] ; + mf:result [ + rdf:type sh:ValidationReport ; + sh:conforms "false"^^xsd:boolean ; + sh:result [ + rdf:type sh:ValidationResult ; + sh:focusNode ex:John ; + sh:resultSeverity sh:Violation ; + sh:sourceConstraintComponent sh:MinExclusiveConstraintComponent ; + sh:sourceShape ex:TestShape ; + sh:value ex:John ; + ] ; + sh:result [ + rdf:type sh:ValidationResult ; + sh:focusNode 3.9 ; + sh:resultSeverity sh:Violation ; + sh:sourceConstraintComponent sh:MinExclusiveConstraintComponent ; + sh:sourceShape ex:TestShape ; + sh:value 3.9 ; + ] ; + sh:result [ + rdf:type sh:ValidationResult ; + sh:focusNode 4 ; + sh:resultSeverity sh:Violation ; + sh:sourceConstraintComponent sh:MinExclusiveConstraintComponent ; + sh:sourceShape ex:TestShape ; + sh:value 4 ; + ] ; + sh:result [ + rdf:type sh:ValidationResult ; + sh:focusNode 4.0 ; + sh:resultSeverity sh:Violation ; + sh:sourceConstraintComponent sh:MinExclusiveConstraintComponent ; + sh:sourceShape ex:TestShape ; + sh:value 4.0 ; + ] ; + sh:result [ + rdf:type sh:ValidationResult ; + sh:focusNode "Hello" ; + sh:resultSeverity sh:Violation ; + sh:sourceConstraintComponent sh:MinExclusiveConstraintComponent ; + sh:sourceShape ex:TestShape ; + sh:value "Hello" ; + ] ; + sh:result [ + rdf:type sh:ValidationResult ; + sh:focusNode _:b33079 ; + sh:resultSeverity sh:Violation ; + sh:sourceConstraintComponent sh:MinExclusiveConstraintComponent ; + sh:sourceShape ex:TestShape ; + sh:value _:b33079 ; + ] ; + ] ; + mf:status sht:approved ; +. +_:b33079 + rdf:type ex:TestClass ; +. diff --git a/corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/core/node/minInclusive-001.ttl b/corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/core/node/minInclusive-001.ttl new file mode 100644 index 0000000000..e2113bf042 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/core/node/minInclusive-001.ttl @@ -0,0 +1,44 @@ +@prefix dash: . +@prefix ex: . +@prefix mf: . +@prefix owl: . +@prefix rdf: . +@prefix rdfs: . +@prefix sh: . +@prefix sht: . +@prefix xsd: . + +ex:TestShape + rdf:type sh:NodeShape ; + sh:minInclusive 8 ; + sh:targetNode 7 ; + sh:targetNode 8 ; + sh:targetNode 9 ; +. +<> + rdf:type mf:Manifest ; + mf:entries ( + + ) ; +. + + rdf:type sht:Validate ; + rdfs:label "Test of sh:minInclusive at node shape 001" ; + mf:action [ + sht:dataGraph <> ; + sht:shapesGraph <> ; + ] ; + mf:result [ + rdf:type sh:ValidationReport ; + sh:conforms "false"^^xsd:boolean ; + sh:result [ + rdf:type sh:ValidationResult ; + sh:focusNode 7 ; + sh:resultSeverity sh:Violation ; + sh:sourceConstraintComponent sh:MinInclusiveConstraintComponent ; + sh:sourceShape ex:TestShape ; + sh:value 7 ; + ] ; + ] ; + mf:status sht:approved ; +. diff --git a/corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/core/node/minInclusive-002.ttl b/corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/core/node/minInclusive-002.ttl new file mode 100644 index 0000000000..e9a8d5ee0c --- /dev/null +++ b/corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/core/node/minInclusive-002.ttl @@ -0,0 +1,61 @@ +@prefix dash: . +@prefix ex: . +@prefix mf: . +@prefix owl: . +@prefix rdf: . +@prefix rdfs: . +@prefix sh: . +@prefix sht: . +@prefix xsd: . + +ex:TestShape a sh:NodeShape ; + sh:minInclusive "2002-10-10T12:00:00-05:00"^^xsd:dateTime ; + sh:targetNode "2002-10-10T12:00:00-05:00"^^xsd:dateTime ; + sh:targetNode "2002-10-10T12:00:01-05:00"^^xsd:dateTime ; + sh:targetNode "2002-10-09T12:00:00-05:00"^^xsd:dateTime ; + sh:targetNode "2002-10-10T12:00:00"^^xsd:dateTime ; + sh:targetNode ex:TestShape ; +. +<> + rdf:type mf:Manifest ; + mf:entries ( + + ) ; +. + + rdf:type sht:Validate ; + rdfs:label "Test of sh:minInclusive at node shape 002 - dateTime with timezone" ; + mf:action [ + sht:dataGraph <> ; + sht:shapesGraph <> ; + ] ; + mf:result [ + rdf:type sh:ValidationReport ; + sh:conforms "false"^^xsd:boolean ; + sh:result [ + rdf:type sh:ValidationResult ; + sh:focusNode "2002-10-10T12:00:00"^^xsd:dateTime ; + sh:value "2002-10-10T12:00:00"^^xsd:dateTime ; + sh:resultSeverity sh:Violation ; + sh:sourceConstraintComponent sh:MinInclusiveConstraintComponent ; + sh:sourceShape ex:TestShape ; + ] ; + sh:result [ + rdf:type sh:ValidationResult ; + sh:focusNode "2002-10-09T12:00:00-05:00"^^xsd:dateTime ; + sh:value "2002-10-09T12:00:00-05:00"^^xsd:dateTime ; + sh:resultSeverity sh:Violation ; + sh:sourceConstraintComponent sh:MinInclusiveConstraintComponent ; + sh:sourceShape ex:TestShape ; + ] ; + sh:result [ + rdf:type sh:ValidationResult ; + sh:focusNode ex:TestShape ; + sh:value ex:TestShape ; + sh:resultSeverity sh:Violation ; + sh:sourceConstraintComponent sh:MinInclusiveConstraintComponent ; + sh:sourceShape ex:TestShape ; + ] ; + ] ; + mf:status sht:approved ; +. diff --git a/corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/core/node/minInclusive-003.ttl b/corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/core/node/minInclusive-003.ttl new file mode 100644 index 0000000000..306ca78be9 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/core/node/minInclusive-003.ttl @@ -0,0 +1,70 @@ +@prefix dash: . +@prefix ex: . +@prefix mf: . +@prefix owl: . +@prefix rdf: . +@prefix rdfs: . +@prefix sh: . +@prefix sht: . +@prefix xsd: . + +ex:TestShape + rdf:type sh:NodeShape ; + sh:minInclusive "2002-10-10T12:00:00"^^xsd:dateTime ; + sh:targetNode "2002-10-10T12:00:00-05:00"^^xsd:dateTime ; + sh:targetNode "2002-10-10T12:00:01-05:00"^^xsd:dateTime ; + sh:targetNode "2002-10-09T12:00:00-05:00"^^xsd:dateTime ; + sh:targetNode "2002-10-10T12:00:00"^^xsd:dateTime ; + sh:targetNode ex:TestShape ; +. +<> + rdf:type mf:Manifest ; + mf:entries ( + + ) ; +. + + rdf:type sht:Validate ; + rdfs:label "Test of sh:minInclusive at node shape 003 - dateTime without timezone" ; + mf:action [ + sht:dataGraph <> ; + sht:shapesGraph <> ; + ] ; + mf:result [ + rdf:type sh:ValidationReport ; + sh:conforms "false"^^xsd:boolean ; + sh:result [ + rdf:type sh:ValidationResult ; + sh:focusNode "2002-10-10T12:00:00-05:00"^^xsd:dateTime ; + sh:resultSeverity sh:Violation ; + sh:sourceConstraintComponent sh:MinInclusiveConstraintComponent ; + sh:sourceShape ex:TestShape ; + sh:value "2002-10-10T12:00:00-05:00"^^xsd:dateTime ; + ] ; + sh:result [ + rdf:type sh:ValidationResult ; + sh:focusNode "2002-10-10T12:00:01-05:00"^^xsd:dateTime ; + sh:resultSeverity sh:Violation ; + sh:sourceConstraintComponent sh:MinInclusiveConstraintComponent ; + sh:sourceShape ex:TestShape ; + sh:value "2002-10-10T12:00:01-05:00"^^xsd:dateTime ; + ] ; + sh:result [ + rdf:type sh:ValidationResult ; + sh:focusNode "2002-10-09T12:00:00-05:00"^^xsd:dateTime ; + sh:resultSeverity sh:Violation ; + sh:sourceConstraintComponent sh:MinInclusiveConstraintComponent ; + sh:sourceShape ex:TestShape ; + sh:value "2002-10-09T12:00:00-05:00"^^xsd:dateTime ; + ] ; + sh:result [ + rdf:type sh:ValidationResult ; + sh:focusNode ex:TestShape ; + sh:resultSeverity sh:Violation ; + sh:sourceConstraintComponent sh:MinInclusiveConstraintComponent ; + sh:sourceShape ex:TestShape ; + sh:value ex:TestShape ; + ] ; + ] ; + mf:status sht:approved ; +. diff --git a/corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/core/node/minLength-001.ttl b/corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/core/node/minLength-001.ttl new file mode 100644 index 0000000000..75151fe7fb --- /dev/null +++ b/corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/core/node/minLength-001.ttl @@ -0,0 +1,79 @@ +@prefix dash: . +@prefix ex: . +@prefix mf: . +@prefix owl: . +@prefix rdf: . +@prefix rdfs: . +@prefix sh: . +@prefix sht: . +@prefix xsd: . + +ex:TestShape + rdf:type sh:NodeShape ; + sh:minLength 4 ; + sh:targetClass ex:TestClass ; + sh:targetNode ; + sh:targetNode ex:John ; + sh:targetNode 123 ; + sh:targetNode 1234 ; + sh:targetNode 12345 ; + sh:targetNode "2017-03-29"^^xsd:date ; + sh:targetNode "Hel" ; + sh:targetNode "Hell" ; + sh:targetNode "Hell"@en ; + sh:targetNode "Hello" ; +. +<> + rdf:type mf:Manifest ; + mf:entries ( + + ) ; +. + + rdf:type sht:Validate ; + rdfs:label "Test of sh:minLength at node shape 001" ; + mf:action [ + sht:dataGraph <> ; + sht:shapesGraph <> ; + ] ; + mf:result [ + rdf:type sh:ValidationReport ; + sh:conforms "false"^^xsd:boolean ; + sh:result [ + rdf:type sh:ValidationResult ; + sh:focusNode ; + sh:resultSeverity sh:Violation ; + sh:sourceConstraintComponent sh:MinLengthConstraintComponent ; + sh:sourceShape ex:TestShape ; + sh:value ; + ] ; + sh:result [ + rdf:type sh:ValidationResult ; + sh:focusNode 123 ; + sh:resultSeverity sh:Violation ; + sh:sourceConstraintComponent sh:MinLengthConstraintComponent ; + sh:sourceShape ex:TestShape ; + sh:value 123 ; + ] ; + sh:result [ + rdf:type sh:ValidationResult ; + sh:focusNode "Hel" ; + sh:resultSeverity sh:Violation ; + sh:sourceConstraintComponent sh:MinLengthConstraintComponent ; + sh:sourceShape ex:TestShape ; + sh:value "Hel" ; + ] ; + sh:result [ + rdf:type sh:ValidationResult ; + sh:focusNode _:b19019 ; + sh:resultSeverity sh:Violation ; + sh:sourceConstraintComponent sh:MinLengthConstraintComponent ; + sh:sourceShape ex:TestShape ; + sh:value _:b19019 ; + ] ; + ] ; + mf:status sht:approved ; +. +_:b19019 + rdf:type ex:TestClass ; +. diff --git a/corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/core/node/node-001.ttl b/corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/core/node/node-001.ttl new file mode 100644 index 0000000000..b6d717085a --- /dev/null +++ b/corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/core/node/node-001.ttl @@ -0,0 +1,55 @@ +@prefix dash: . +@prefix ex: . +@prefix mf: . +@prefix owl: . +@prefix rdf: . +@prefix rdfs: . +@prefix sh: . +@prefix sht: . +@prefix xsd: . + +ex:InvalidInstance + rdf:type ex:TestClass ; + rdfs:label "Invalid instance" ; +. +ex:TestClass + rdf:type rdfs:Class ; + rdf:type sh:NodeShape ; + rdfs:label "Test class" ; + rdfs:subClassOf rdfs:Resource ; + sh:node [ + sh:class ex:OtherClass ; + ] ; +. +ex:ValidInstance + rdf:type ex:OtherClass ; + rdf:type ex:TestClass ; + rdfs:label "Valid instance" ; +. +<> + rdf:type mf:Manifest ; + mf:entries ( + + ) ; +. + + rdf:type sht:Validate ; + rdfs:label "Test of sh:node at node shape 001" ; + mf:action [ + sht:dataGraph <> ; + sht:shapesGraph <> ; + ] ; + mf:result [ + rdf:type sh:ValidationReport ; + sh:conforms "false"^^xsd:boolean ; + sh:result [ + rdf:type sh:ValidationResult ; + sh:focusNode ex:InvalidInstance ; + sh:resultSeverity sh:Violation ; + sh:sourceConstraintComponent sh:NodeConstraintComponent ; + sh:sourceShape ex:TestClass ; + sh:value ex:InvalidInstance ; + ] ; + ] ; + mf:status sht:approved ; +. diff --git a/corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/core/node/nodeKind-001.ttl b/corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/core/node/nodeKind-001.ttl new file mode 100644 index 0000000000..004f8fa25c --- /dev/null +++ b/corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/core/node/nodeKind-001.ttl @@ -0,0 +1,43 @@ +@prefix dash: . +@prefix ex: . +@prefix mf: . +@prefix owl: . +@prefix rdf: . +@prefix rdfs: . +@prefix sh: . +@prefix sht: . +@prefix xsd: . + +ex:IRITestShape + rdf:type sh:NodeShape ; + sh:nodeKind sh:IRI ; + sh:targetNode ex:John ; + sh:targetNode "true"^^xsd:boolean ; +. +<> + rdf:type mf:Manifest ; + mf:entries ( + + ) ; +. + + rdf:type sht:Validate ; + rdfs:label "Test of sh:nodeKind at node shape 001" ; + mf:action [ + sht:dataGraph <> ; + sht:shapesGraph <> ; + ] ; + mf:result [ + rdf:type sh:ValidationReport ; + sh:conforms "false"^^xsd:boolean ; + sh:result [ + rdf:type sh:ValidationResult ; + sh:focusNode "true"^^xsd:boolean ; + sh:resultSeverity sh:Violation ; + sh:sourceConstraintComponent sh:NodeKindConstraintComponent ; + sh:sourceShape ex:IRITestShape ; + sh:value "true"^^xsd:boolean ; + ] ; + ] ; + mf:status sht:approved ; +. diff --git a/corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/core/node/not-001.ttl b/corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/core/node/not-001.ttl new file mode 100644 index 0000000000..588436cf0e --- /dev/null +++ b/corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/core/node/not-001.ttl @@ -0,0 +1,59 @@ +@prefix dash: . +@prefix ex: . +@prefix mf: . +@prefix owl: . +@prefix rdf: . +@prefix rdfs: . +@prefix sh: . +@prefix sht: . +@prefix xsd: . + +ex:InvalidResource1 + rdf:type rdfs:Resource ; + ex:property "some value" ; +. +ex:TestShape + rdf:type rdfs:Class ; + rdf:type sh:NodeShape ; + rdfs:label "Test shape" ; + rdfs:subClassOf rdfs:Resource ; + sh:not [ + rdf:type sh:NodeShape ; + sh:property [ + sh:path ex:property ; + sh:minCount 1 ; + ] ; + ] ; + sh:targetNode ex:InvalidResource1 ; + sh:targetNode ex:ValidResource1 ; +. +ex:ValidResource1 + rdf:type rdfs:Resource ; +. +<> + rdf:type mf:Manifest ; + mf:entries ( + + ) ; +. + + rdf:type sht:Validate ; + rdfs:label "Test of sh:not at node shape 001" ; + mf:action [ + sht:dataGraph <> ; + sht:shapesGraph <> ; + ] ; + mf:result [ + rdf:type sh:ValidationReport ; + sh:conforms "false"^^xsd:boolean ; + sh:result [ + rdf:type sh:ValidationResult ; + sh:focusNode ex:InvalidResource1 ; + sh:resultSeverity sh:Violation ; + sh:sourceConstraintComponent sh:NotConstraintComponent ; + sh:sourceShape ex:TestShape ; + sh:value ex:InvalidResource1 ; + ] ; + ] ; + mf:status sht:approved ; +. diff --git a/corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/core/node/not-002.ttl b/corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/core/node/not-002.ttl new file mode 100644 index 0000000000..cf43632dec --- /dev/null +++ b/corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/core/node/not-002.ttl @@ -0,0 +1,52 @@ +@prefix dash: . +@prefix ex: . +@prefix mf: . +@prefix owl: . +@prefix rdf: . +@prefix rdfs: . +@prefix sh: . +@prefix sht: . +@prefix xsd: . + +ex:InvalidInstance1 + ex:property "Some value" ; +. +ex:NotExampleShape + rdf:type sh:NodeShape ; + sh:not [ + rdf:type sh:NodeShape ; + sh:property [ + sh:path ex:property ; + sh:minCount 1 ; + ] ; + ] ; + sh:targetNode ex:InvalidInstance1 ; + sh:targetNode ex:ValidInstance1 ; +. +<> + rdf:type mf:Manifest ; + mf:entries ( + + ) ; +. + + rdf:type sht:Validate ; + rdfs:label "Test of sh:not at node shape 002" ; + mf:action [ + sht:dataGraph <> ; + sht:shapesGraph <> ; + ] ; + mf:result [ + rdf:type sh:ValidationReport ; + sh:conforms "false"^^xsd:boolean ; + sh:result [ + rdf:type sh:ValidationResult ; + sh:focusNode ex:InvalidInstance1 ; + sh:resultSeverity sh:Violation ; + sh:sourceConstraintComponent sh:NotConstraintComponent ; + sh:sourceShape ex:NotExampleShape ; + sh:value ex:InvalidInstance1 ; + ] ; + ] ; + mf:status sht:approved ; +. diff --git a/corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/core/node/or-001.ttl b/corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/core/node/or-001.ttl new file mode 100644 index 0000000000..455c8c6410 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/core/node/or-001.ttl @@ -0,0 +1,91 @@ +@prefix dash: . +@prefix ex: . +@prefix mf: . +@prefix owl: . +@prefix rdf: . +@prefix rdfs: . +@prefix sh: . +@prefix sht: . +@prefix xsd: . + +ex:InvalidRectangle1 + rdf:type ex:RectangleWithArea ; + ex:height 3 ; +. +ex:InvalidRectangle2 + rdf:type ex:RectangleWithArea ; +. +ex:RectangleWithArea + rdf:type rdfs:Class ; + rdf:type sh:NodeShape ; + rdfs:subClassOf rdfs:Resource ; + sh:or ( + [ + sh:property [ + sh:path ex:height ; + sh:minCount 1 ; + ] ; + sh:property [ + sh:path ex:width ; + sh:minCount 1 ; + ] ; + ] + [ + sh:property [ + sh:path ex:area ; + sh:minCount 1 ; + ] ; + ] + ) ; +. +ex:ValidRectangle1 + rdf:type ex:RectangleWithArea ; + ex:height 3 ; + ex:width 2 ; +. +ex:ValidRectangle2 + rdf:type ex:RectangleWithArea ; + ex:area 6 ; + ex:height 3 ; + ex:width 2 ; +. +ex:ValidRectangle3 + rdf:type ex:RectangleWithArea ; + ex:area 6 ; + ex:height 3 ; +. +<> + rdf:type mf:Manifest ; + mf:entries ( + + ) ; +. + + rdf:type sht:Validate ; + rdfs:label "Test of sh:or at node shape 001" ; + mf:action [ + sht:dataGraph <> ; + sht:shapesGraph <> ; + ] ; + mf:result [ + rdf:type sh:ValidationReport ; + sh:conforms "false"^^xsd:boolean ; + sh:result [ + rdf:type sh:ValidationResult ; + sh:focusNode ex:InvalidRectangle1 ; + sh:resultSeverity sh:Violation ; + sh:sourceConstraintComponent sh:OrConstraintComponent ; + sh:sourceShape ex:RectangleWithArea ; + sh:value ex:InvalidRectangle1 ; + ] ; + sh:result [ + rdf:type sh:ValidationResult ; + sh:focusNode ex:InvalidRectangle2 ; + sh:resultSeverity sh:Violation ; + sh:sourceConstraintComponent sh:OrConstraintComponent ; + sh:sourceShape ex:RectangleWithArea ; + sh:value ex:InvalidRectangle2 ; + ] ; + ] ; + mf:status sht:approved ; +. diff --git a/corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/core/node/pattern-001.ttl b/corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/core/node/pattern-001.ttl new file mode 100644 index 0000000000..31d77efc6f --- /dev/null +++ b/corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/core/node/pattern-001.ttl @@ -0,0 +1,76 @@ +@prefix dash: . +@prefix ex: . +@prefix mf: . +@prefix owl: . +@prefix rdf: . +@prefix rdfs: . +@prefix sh: . +@prefix sht: . +@prefix xsd: . + +ex:TestShape + rdf:type sh:NodeShape ; + sh:pattern "^[2-8][0-9]*$" ; + sh:targetClass ex:TestClass ; + sh:targetNode ex:Test ; + sh:targetNode 20000123 ; + sh:targetNode "3456" ; + sh:targetNode 39 ; + sh:targetNode "777777"@mi ; + sh:targetNode 9 ; + sh:targetNode "John" ; +. +<> + rdf:type mf:Manifest ; + mf:entries ( + + ) ; +. + + rdf:type sht:Validate ; + rdfs:label "Test of sh:pattern at node shape 001" ; + mf:action [ + sht:dataGraph <> ; + sht:shapesGraph <> ; + ] ; + mf:result [ + rdf:type sh:ValidationReport ; + sh:conforms "false"^^xsd:boolean ; + sh:result [ + rdf:type sh:ValidationResult ; + sh:focusNode ex:Test ; + sh:resultSeverity sh:Violation ; + sh:sourceConstraintComponent sh:PatternConstraintComponent ; + sh:sourceShape ex:TestShape ; + sh:value ex:Test ; + ] ; + sh:result [ + rdf:type sh:ValidationResult ; + sh:focusNode 9 ; + sh:resultSeverity sh:Violation ; + sh:sourceConstraintComponent sh:PatternConstraintComponent ; + sh:sourceShape ex:TestShape ; + sh:value 9 ; + ] ; + sh:result [ + rdf:type sh:ValidationResult ; + sh:focusNode "John" ; + sh:resultSeverity sh:Violation ; + sh:sourceConstraintComponent sh:PatternConstraintComponent ; + sh:sourceShape ex:TestShape ; + sh:value "John" ; + ] ; + sh:result [ + rdf:type sh:ValidationResult ; + sh:focusNode _:b22415 ; + sh:resultSeverity sh:Violation ; + sh:sourceConstraintComponent sh:PatternConstraintComponent ; + sh:sourceShape ex:TestShape ; + sh:value _:b22415 ; + ] ; + ] ; + mf:status sht:approved ; +. +_:b22415 + rdf:type ex:TestClass ; +. diff --git a/corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/core/node/pattern-002.ttl b/corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/core/node/pattern-002.ttl new file mode 100644 index 0000000000..fadc4d9a55 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/core/node/pattern-002.ttl @@ -0,0 +1,45 @@ +@prefix dash: . +@prefix ex: . +@prefix mf: . +@prefix owl: . +@prefix rdf: . +@prefix rdfs: . +@prefix sh: . +@prefix sht: . +@prefix xsd: . + +ex:TestShape + rdf:type sh:NodeShape ; + sh:flags "i" ; + sh:pattern "Aldi" ; + sh:targetNode "Aldi" ; + sh:targetNode "Alti" ; + sh:targetNode "aLdI" ; +. +<> + rdf:type mf:Manifest ; + mf:entries ( + + ) ; +. + + rdf:type sht:Validate ; + rdfs:label "Test of sh:pattern at node shape 002" ; + mf:action [ + sht:dataGraph <> ; + sht:shapesGraph <> ; + ] ; + mf:result [ + rdf:type sh:ValidationReport ; + sh:conforms "false"^^xsd:boolean ; + sh:result [ + rdf:type sh:ValidationResult ; + sh:focusNode "Alti" ; + sh:resultSeverity sh:Violation ; + sh:sourceConstraintComponent sh:PatternConstraintComponent ; + sh:sourceShape ex:TestShape ; + sh:value "Alti" ; + ] ; + ] ; + mf:status sht:approved ; +. diff --git a/corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/core/node/qualified-001-data.ttl b/corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/core/node/qualified-001-data.ttl new file mode 100644 index 0000000000..e495305daa --- /dev/null +++ b/corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/core/node/qualified-001-data.ttl @@ -0,0 +1,4 @@ +@prefix ex: . + +ex:i a ex:C1 . +ex:j a ex:C1 , ex:C2 . diff --git a/corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/core/node/qualified-001-shapes.ttl b/corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/core/node/qualified-001-shapes.ttl new file mode 100644 index 0000000000..f430a7e020 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/core/node/qualified-001-shapes.ttl @@ -0,0 +1,10 @@ +@prefix xsd: . +@prefix sh: . +@prefix ex: . + +ex:s1 a sh:NodeShape ; + sh:targetClass ex:C1 ; + sh:class ex:C2 ; + sh:qualifiedValueShapesDisjoint "1"^^xsd:boolean ; + sh:qualifiedMinCount 5 ; + sh:qualifiedMaxCount 2 . diff --git a/corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/core/node/qualified-001.ttl b/corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/core/node/qualified-001.ttl new file mode 100644 index 0000000000..6a89c0999d --- /dev/null +++ b/corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/core/node/qualified-001.ttl @@ -0,0 +1,28 @@ +@prefix mf: . +@prefix owl: . +@prefix rdf: . +@prefix rdfs: . +@prefix sh: . +@prefix sht: . +@prefix xsd: . + +@prefix ex: . + +<> a mf:Manifest ; + mf:entries ( + + ) . + + a sht:Validate; + rdfs:label "Test of qualified parameters allowed in node shapes" ; + mf:action [ sht:dataGraph ; + sht:shapesGraph ] ; + mf:result [ rdf:type sh:ValidationReport ; + sh:conforms "false"^^xsd:boolean ; + sh:result [ rdf:type sh:ValidationResult ; + sh:resultSeverity sh:Violation ; + sh:focusNode ex:i ; + sh:value ex:i ; + sh:sourceShape ex:s1 ; + sh:sourceConstraintComponent sh:ClassConstraintComponent ] ] ; + mf:status sht:approved . diff --git a/corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/core/node/xone-001.ttl b/corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/core/node/xone-001.ttl new file mode 100644 index 0000000000..79011d8bfa --- /dev/null +++ b/corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/core/node/xone-001.ttl @@ -0,0 +1,74 @@ +@prefix dash: . +@prefix ex: . +@prefix mf: . +@prefix owl: . +@prefix rdf: . +@prefix rdfs: . +@prefix sh: . +@prefix sht: . +@prefix xsd: . + +ex:Bob + rdf:type ex:Person ; + ex:firstName "Robert" ; + ex:lastName "Coin" ; +. +ex:Carla + rdf:type ex:Person ; + ex:fullName "Carla Miller" ; +. +ex:Dory + rdf:type ex:Person ; + ex:firstName "Dory" ; + ex:fullName "Dory Dunce" ; + ex:lastName "Dunce" ; +. +ex:XoneConstraintExampleShape + rdf:type sh:NodeShape ; + sh:targetClass ex:Person ; + sh:xone ( + [ + sh:property [ + sh:path ex:fullName ; + sh:minCount 1 ; + ] ; + ] + [ + sh:property [ + sh:path ex:firstName ; + sh:minCount 1 ; + ] ; + sh:property [ + sh:path ex:lastName ; + sh:minCount 1 ; + ] ; + ] + ) ; +. +<> + rdf:type mf:Manifest ; + mf:entries ( + + ) ; +. + + rdf:type sht:Validate ; + rdfs:label "Test of sh:xone at node shape 001" ; + mf:action [ + sht:dataGraph <> ; + sht:shapesGraph <> ; + ] ; + mf:result [ + rdf:type sh:ValidationReport ; + sh:conforms "false"^^xsd:boolean ; + sh:result [ + rdf:type sh:ValidationResult ; + sh:focusNode ex:Dory ; + sh:resultSeverity sh:Violation ; + sh:sourceConstraintComponent sh:XoneConstraintComponent ; + sh:sourceShape ex:XoneConstraintExampleShape ; + sh:value ex:Dory ; + ] ; + ] ; + mf:status sht:approved ; +. diff --git a/corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/core/node/xone-duplicate-data.ttl b/corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/core/node/xone-duplicate-data.ttl new file mode 100644 index 0000000000..e495305daa --- /dev/null +++ b/corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/core/node/xone-duplicate-data.ttl @@ -0,0 +1,4 @@ +@prefix ex: . + +ex:i a ex:C1 . +ex:j a ex:C1 , ex:C2 . diff --git a/corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/core/node/xone-duplicate-shapes.ttl b/corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/core/node/xone-duplicate-shapes.ttl new file mode 100644 index 0000000000..eecb657d65 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/core/node/xone-duplicate-shapes.ttl @@ -0,0 +1,7 @@ +@prefix sh: . +@prefix ex: . + +ex:s1 a sh:NodeShape ; + sh:targetClass ex:C1 ; + sh:xone ( ex:s2 ex:s2 ) . +ex:s2 sh:class ex:C2 . diff --git a/corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/core/node/xone-duplicate.ttl b/corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/core/node/xone-duplicate.ttl new file mode 100644 index 0000000000..0999905f10 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/core/node/xone-duplicate.ttl @@ -0,0 +1,34 @@ +@prefix mf: . +@prefix owl: . +@prefix rdf: . +@prefix rdfs: . +@prefix sh: . +@prefix sht: . +@prefix xsd: . + +@prefix ex: . + +<> a mf:Manifest ; + mf:entries ( + + ) . + + a sht:Validate; + rdfs:label "Test of validation report for shape xone-duplicate by property constraints" ; + mf:action [ sht:dataGraph ; + sht:shapesGraph ] ; + mf:result [ rdf:type sh:ValidationReport ; + sh:conforms "false"^^xsd:boolean ; + sh:result [ rdf:type sh:ValidationResult ; + sh:resultSeverity sh:Violation ; + sh:focusNode ex:i ; + sh:value ex:i ; + sh:sourceShape ex:s1 ; + sh:sourceConstraintComponent sh:XoneConstraintComponent ] ; + sh:result [ rdf:type sh:ValidationResult ; + sh:resultSeverity sh:Violation ; + sh:focusNode ex:j ; + sh:value ex:j ; + sh:sourceShape ex:s1 ; + sh:sourceConstraintComponent sh:XoneConstraintComponent ] ] ; + mf:status sht:approved . diff --git a/corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/core/path/manifest.ttl b/corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/core/path/manifest.ttl new file mode 100644 index 0000000000..3c355e87ed --- /dev/null +++ b/corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/core/path/manifest.ttl @@ -0,0 +1,21 @@ +@prefix mf: . +@prefix rdfs: . +@prefix sht: . + +<> + a mf:Manifest ; + rdfs:label "Tests converted from http://datashapes.org/sh/tests/tests/core/path" ; + mf:include ; + mf:include ; + mf:include ; + mf:include ; + mf:include ; + mf:include ; + mf:include ; + mf:include ; + mf:include ; + mf:include ; + mf:include ; + mf:include ; + mf:include ; + . \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/core/path/path-alternative-001.ttl b/corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/core/path/path-alternative-001.ttl new file mode 100644 index 0000000000..ea2676478e --- /dev/null +++ b/corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/core/path/path-alternative-001.ttl @@ -0,0 +1,86 @@ +@prefix dash: . +@prefix ex: . +@prefix mf: . +@prefix owl: . +@prefix rdf: . +@prefix rdfs: . +@prefix sh: . +@prefix sht: . +@prefix xsd: . + +ex:InvalidResource1 + ex:property1 "One" ; + ex:property3 "Three" ; +. +ex:TestShape + rdf:type sh:PropertyShape ; + sh:path [ + sh:alternativePath ( + ex:property1 + ex:property2 + ) ; + ] ; + sh:minCount 2 ; + sh:targetNode ex:InvalidResource1 ; + sh:targetNode ex:InvalidResource2 ; + sh:targetNode ex:ValidResource1 ; + sh:targetNode ex:ValidResource2 ; + sh:targetNode ex:ValidResource3 ; +. +ex:ValidResource1 + ex:property1 "One" ; + ex:property1 "Two" ; +. +ex:ValidResource2 + ex:property1 "One" ; + ex:property2 "Two" ; +. +ex:ValidResource3 + ex:property2 "One" ; + ex:property2 "Two" ; +. +<> + rdf:type mf:Manifest ; + mf:entries ( + + ) ; +. + + rdf:type sht:Validate ; + rdfs:label "Test of path sh:alternativePath 001" ; + mf:action [ + sht:dataGraph <> ; + sht:shapesGraph <> ; + ] ; + mf:result [ + rdf:type sh:ValidationReport ; + sh:conforms "false"^^xsd:boolean ; + sh:result [ + rdf:type sh:ValidationResult ; + sh:focusNode ex:InvalidResource1 ; + sh:resultPath [ + sh:alternativePath ( + ex:property1 + ex:property2 + ) ; + ] ; + sh:resultSeverity sh:Violation ; + sh:sourceConstraintComponent sh:MinCountConstraintComponent ; + sh:sourceShape ex:TestShape ; + ] ; + sh:result [ + rdf:type sh:ValidationResult ; + sh:focusNode ex:InvalidResource2 ; + sh:resultPath [ + sh:alternativePath ( + ex:property1 + ex:property2 + ) ; + ] ; + sh:resultSeverity sh:Violation ; + sh:sourceConstraintComponent sh:MinCountConstraintComponent ; + sh:sourceShape ex:TestShape ; + ] ; + ] ; + mf:status sht:approved ; +. diff --git a/corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/core/path/path-complex-001.ttl b/corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/core/path/path-complex-001.ttl new file mode 100644 index 0000000000..c5e20737bc --- /dev/null +++ b/corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/core/path/path-complex-001.ttl @@ -0,0 +1,91 @@ +@prefix dash: . +@prefix ex: . +@prefix mf: . +@prefix owl: . +@prefix rdf: . +@prefix rdfs: . +@prefix sh: . +@prefix sht: . +@prefix xsd: . + +ex:InvalidResource + rdf:type ex:Animal ; + rdfs:label "Invalid" ; +. +ex:MalePerson + rdf:type rdfs:Class ; + rdfs:subClassOf ex:Person ; +. +ex:Person + rdf:type rdfs:Class ; +. +ex:TestShape + rdf:type sh:PropertyShape ; + sh:path ( + rdf:type + [ + sh:zeroOrMorePath rdfs:subClassOf ; + ] + ) ; + sh:hasValue ex:Person ; + sh:targetNode ex:InvalidResource1 ; + sh:targetNode ex:InvalidResource2 ; + sh:targetNode ex:ValidResource1 ; + sh:targetNode ex:ValidResource2 ; + sh:targetNode ex:ValidResource3 ; +. +ex:ValidResource1 + rdf:type ex:Person ; +. +ex:ValidResource2 + rdf:type ex:MalePerson ; +. +ex:ValidResource3 + rdf:type ex:Animal ; + rdf:type ex:MalePerson ; +. +<> + rdf:type mf:Manifest ; + mf:entries ( + + ) ; +. + + rdf:type sht:Validate ; + rdfs:label "Test of path complex (rdf:type/rdfs:subClassOf*) 001" ; + mf:action [ + sht:dataGraph <> ; + sht:shapesGraph <> ; + ] ; + mf:result [ + rdf:type sh:ValidationReport ; + sh:conforms "false"^^xsd:boolean ; + sh:result [ + rdf:type sh:ValidationResult ; + sh:focusNode ex:InvalidResource1 ; + sh:resultPath ( + rdf:type + [ + sh:zeroOrMorePath rdfs:subClassOf ; + ] + ) ; + sh:resultSeverity sh:Violation ; + sh:sourceConstraintComponent sh:HasValueConstraintComponent ; + sh:sourceShape ex:TestShape ; + ] ; + sh:result [ + rdf:type sh:ValidationResult ; + sh:focusNode ex:InvalidResource2 ; + sh:resultPath ( + rdf:type + [ + sh:zeroOrMorePath rdfs:subClassOf ; + ] + ) ; + sh:resultSeverity sh:Violation ; + sh:sourceConstraintComponent sh:HasValueConstraintComponent ; + sh:sourceShape ex:TestShape ; + ] ; + ] ; + mf:status sht:approved ; +. diff --git a/corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/core/path/path-complex-002-data.ttl b/corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/core/path/path-complex-002-data.ttl new file mode 100644 index 0000000000..fdec8c78e1 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/core/path/path-complex-002-data.ttl @@ -0,0 +1,7 @@ +@prefix ex: . + +ex:j ex:p ex:i . + +ex:k ex:p ex:j . + +ex:l ex:p ex:j . diff --git a/corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/core/path/path-complex-002-shapes.ttl b/corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/core/path/path-complex-002-shapes.ttl new file mode 100644 index 0000000000..f9e8a73bd9 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/core/path/path-complex-002-shapes.ttl @@ -0,0 +1,14 @@ +@prefix sh: . +@prefix ex: . + +ex:s1 a sh:PropertyShape ; + sh:targetNode ex:i ; + sh:path ( _:pinv _:pinv ) ; + sh:class ex:C . + +_:pinv sh:inversePath ex:p . + +ex:s2 a sh:PropertyShape ; + sh:targetNode ex:i ; + sh:path ( [ sh:inversePath ex:p ] [ sh:inversePath ex:p ] ) ; + sh:class ex:C . diff --git a/corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/core/path/path-complex-002.ttl b/corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/core/path/path-complex-002.ttl new file mode 100644 index 0000000000..fdfcfe5c0e --- /dev/null +++ b/corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/core/path/path-complex-002.ttl @@ -0,0 +1,51 @@ +@prefix dash: . +@prefix ex: . +@prefix mf: . +@prefix owl: . +@prefix rdf: . +@prefix rdfs: . +@prefix sh: . +@prefix sht: . +@prefix xsd: . + +<> a mf:Manifest ; + mf:entries ( + + ) . + + a sht:Validate ; + rdfs:label "Test of complex path validation results" ; + mf:action [ + sht:dataGraph ; + sht:shapesGraph ] ; + mf:result [ a sh:ValidationReport ; + sh:conforms "false"^^xsd:boolean ; + sh:result [ a sh:ValidationResult ; + sh:focusNode ex:i ; + sh:value ex:k ; + sh:resultPath ( [ sh:inversePath ex:p ] [ sh:inversePath ex:p ] ) ; + sh:resultSeverity sh:Violation ; + sh:sourceConstraintComponent sh:ClassConstraintComponent ; + sh:sourceShape ex:s1 ] ; + sh:result [ a sh:ValidationResult ; + sh:focusNode ex:i ; + sh:value ex:l ; + sh:resultPath ( [ sh:inversePath ex:p ] [ sh:inversePath ex:p ] ) ; + sh:resultSeverity sh:Violation ; + sh:sourceConstraintComponent sh:ClassConstraintComponent ; + sh:sourceShape ex:s1 ] ; + sh:result [ a sh:ValidationResult ; + sh:focusNode ex:i ; + sh:value ex:l ; + sh:resultPath ( [ sh:inversePath ex:p ] [ sh:inversePath ex:p ] ) ; + sh:resultSeverity sh:Violation ; + sh:sourceConstraintComponent sh:ClassConstraintComponent ; + sh:sourceShape ex:s2 ] ; + sh:result [ a sh:ValidationResult ; + sh:focusNode ex:i ; + sh:value ex:k ; + sh:resultPath( [ sh:inversePath ex:p ] [ sh:inversePath ex:p ] ) ; + sh:resultSeverity sh:Violation ; + sh:sourceConstraintComponent sh:ClassConstraintComponent ; + sh:sourceShape ex:s2 ] ] ; + mf:status sht:approved . diff --git a/corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/core/path/path-inverse-001.ttl b/corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/core/path/path-inverse-001.ttl new file mode 100644 index 0000000000..a4c4ac4d14 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/core/path/path-inverse-001.ttl @@ -0,0 +1,90 @@ +@prefix dash: . +@prefix ex: . +@prefix mf: . +@prefix owl: . +@prefix rdf: . +@prefix rdfs: . +@prefix sh: . +@prefix sht: . +@prefix xsd: . + +ex:InvalidResource1 + rdf:type ex:Person ; +. +ex:InvalidResource2 + rdf:type ex:Person ; +. +ex:Parent1 + ex:child ex:InvalidResource1 ; + ex:child ex:InvalidResource2 ; + ex:child ex:ValidResource1 ; +. +ex:Parent2 + ex:child ex:InvalidResource2 ; + ex:child ex:ValidResource1 ; +. +ex:Parent3 + ex:child ex:InvalidResource2 ; +. +ex:Person + rdf:type rdfs:Class ; + rdf:type sh:NodeShape ; + rdfs:label "Person" ; + rdfs:subClassOf rdfs:Resource ; +. +ex:TestShape + rdf:type sh:NodeShape ; + rdfs:label "Test shape" ; + sh:property ex:TestShape-P ; + sh:targetClass ex:Person ; +. +ex:TestShape-P + rdf:type sh:PropertyShape ; + sh:path [ + sh:inversePath ex:child ; + ] ; + sh:maxCount 2 ; + sh:minCount 2 ; +. +ex:ValidResource1 + rdf:type ex:Person ; +. +<> + rdf:type mf:Manifest ; + mf:entries ( + + ) ; +. + + rdf:type sht:Validate ; + rdfs:label "Test of path sh:inversePath 001" ; + mf:action [ + sht:dataGraph <> ; + sht:shapesGraph <> ; + ] ; + mf:result [ + rdf:type sh:ValidationReport ; + sh:conforms "false"^^xsd:boolean ; + sh:result [ + rdf:type sh:ValidationResult ; + sh:focusNode ex:InvalidResource1 ; + sh:resultPath [ + sh:inversePath ex:child ; + ] ; + sh:resultSeverity sh:Violation ; + sh:sourceConstraintComponent sh:MinCountConstraintComponent ; + sh:sourceShape ex:TestShape-P ; + ] ; + sh:result [ + rdf:type sh:ValidationResult ; + sh:focusNode ex:InvalidResource2 ; + sh:resultPath [ + sh:inversePath ex:child ; + ] ; + sh:resultSeverity sh:Violation ; + sh:sourceConstraintComponent sh:MaxCountConstraintComponent ; + sh:sourceShape ex:TestShape-P ; + ] ; + ] ; + mf:status sht:approved ; +. diff --git a/corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/core/path/path-oneOrMore-001.ttl b/corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/core/path/path-oneOrMore-001.ttl new file mode 100644 index 0000000000..97d4e03014 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/core/path/path-oneOrMore-001.ttl @@ -0,0 +1,71 @@ +@prefix dash: . +@prefix ex: . +@prefix mf: . +@prefix owl: . +@prefix rdf: . +@prefix rdfs: . +@prefix sh: . +@prefix sht: . +@prefix xsd: . + +ex:InvalidResource1 + rdf:type rdfs:Resource ; +. +ex:InvalidResource2 + ex:child ex:Person2 ; +. +ex:Person1 + ex:child ex:Person2 ; +. +ex:TestShape + rdf:type sh:PropertyShape ; + sh:path [ + sh:oneOrMorePath ex:child ; + ] ; + sh:minCount 2 ; + sh:targetNode ex:InvalidResource1 ; + sh:targetNode ex:InvalidResource2 ; + sh:targetNode ex:ValidResource1 ; +. +ex:ValidResource1 + ex:child ex:Person1 ; +. +<> + rdf:type mf:Manifest ; + mf:entries ( + + ) ; +. + + rdf:type sht:Validate ; + rdfs:label "Test of path sh:oneOrMorePath 001" ; + mf:action [ + sht:dataGraph <> ; + sht:shapesGraph <> ; + ] ; + mf:result [ + rdf:type sh:ValidationReport ; + sh:conforms "false"^^xsd:boolean ; + sh:result [ + rdf:type sh:ValidationResult ; + sh:focusNode ex:InvalidResource1 ; + sh:resultPath [ + sh:oneOrMorePath ex:child ; + ] ; + sh:resultSeverity sh:Violation ; + sh:sourceConstraintComponent sh:MinCountConstraintComponent ; + sh:sourceShape ex:TestShape ; + ] ; + sh:result [ + rdf:type sh:ValidationResult ; + sh:focusNode ex:InvalidResource2 ; + sh:resultPath [ + sh:oneOrMorePath ex:child ; + ] ; + sh:resultSeverity sh:Violation ; + sh:sourceConstraintComponent sh:MinCountConstraintComponent ; + sh:sourceShape ex:TestShape ; + ] ; + ] ; + mf:status sht:approved ; +. diff --git a/corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/core/path/path-sequence-001.ttl b/corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/core/path/path-sequence-001.ttl new file mode 100644 index 0000000000..65ec529220 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/core/path/path-sequence-001.ttl @@ -0,0 +1,80 @@ +@prefix dash: . +@prefix ex: . +@prefix mf: . +@prefix owl: . +@prefix rdf: . +@prefix rdfs: . +@prefix sh: . +@prefix sht: . +@prefix xsd: . + +ex:InvalidResource1 + ex:property1 ex:Node3 ; + ex:property2 ex:Node4 ; +. +ex:Node1 + ex:property2 "One" ; +. +ex:Node2 + ex:property2 "Two" ; +. +ex:TestShape + rdf:type sh:PropertyShape ; + sh:path ( + ex:property1 + ex:property2 + ) ; + sh:minCount 1 ; + sh:targetNode ex:InvalidResource1 ; + sh:targetNode ex:InvalidResource2 ; + sh:targetNode ex:ValidResource1 ; + sh:targetNode ex:ValidResource2 ; +. +ex:ValidResource1 + ex:property1 ex:Node1 ; +. +ex:ValidResource2 + ex:property1 ex:Node1 ; + ex:property1 ex:Node2 ; +. +<> + rdf:type mf:Manifest ; + mf:entries ( + + ) ; +. + + rdf:type sht:Validate ; + rdfs:label "Test of path sequence 001" ; + mf:action [ + sht:dataGraph <> ; + sht:shapesGraph <> ; + ] ; + mf:result [ + rdf:type sh:ValidationReport ; + sh:conforms "false"^^xsd:boolean ; + sh:result [ + rdf:type sh:ValidationResult ; + sh:focusNode ex:InvalidResource1 ; + sh:resultPath ( + ex:property1 + ex:property2 + ) ; + sh:resultSeverity sh:Violation ; + sh:sourceConstraintComponent sh:MinCountConstraintComponent ; + sh:sourceShape ex:TestShape ; + ] ; + sh:result [ + rdf:type sh:ValidationResult ; + sh:focusNode ex:InvalidResource2 ; + sh:resultPath ( + ex:property1 + ex:property2 + ) ; + sh:resultSeverity sh:Violation ; + sh:sourceConstraintComponent sh:MinCountConstraintComponent ; + sh:sourceShape ex:TestShape ; + ] ; + ] ; + mf:status sht:approved ; +. diff --git a/corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/core/path/path-sequence-002.ttl b/corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/core/path/path-sequence-002.ttl new file mode 100644 index 0000000000..4ae6698bdc --- /dev/null +++ b/corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/core/path/path-sequence-002.ttl @@ -0,0 +1,83 @@ +@prefix dash: . +@prefix ex: . +@prefix mf: . +@prefix owl: . +@prefix rdf: . +@prefix rdfs: . +@prefix sh: . +@prefix sht: . +@prefix xsd: . + +ex:InvalidResource1 + ex:property1 ex:Node3 ; + ex:property2 ex:Node4 ; +. +ex:Node1 + ex:property2 ex:Node2 ; +. +ex:Node2 + ex:property3 "Value" ; +. +ex:TestShape + rdf:type sh:PropertyShape ; + sh:path ( + ex:property1 + ex:property2 + ex:property3 + ) ; + sh:minCount 1 ; + sh:targetNode ex:InvalidResource1 ; + sh:targetNode ex:InvalidResource2 ; + sh:targetNode ex:ValidResource1 ; + sh:targetNode ex:ValidResource2 ; +. +ex:ValidResource1 + ex:property1 ex:Node1 ; +. +ex:ValidResource2 + ex:property1 ex:Node1 ; + ex:property1 ex:Node2 ; +. +<> + rdf:type mf:Manifest ; + mf:entries ( + + ) ; +. + + rdf:type sht:Validate ; + rdfs:label "Test of path sequence 002" ; + mf:action [ + sht:dataGraph <> ; + sht:shapesGraph <> ; + ] ; + mf:result [ + rdf:type sh:ValidationReport ; + sh:conforms "false"^^xsd:boolean ; + sh:result [ + rdf:type sh:ValidationResult ; + sh:focusNode ex:InvalidResource1 ; + sh:resultPath ( + ex:property1 + ex:property2 + ex:property3 + ) ; + sh:resultSeverity sh:Violation ; + sh:sourceConstraintComponent sh:MinCountConstraintComponent ; + sh:sourceShape ex:TestShape ; + ] ; + sh:result [ + rdf:type sh:ValidationResult ; + sh:focusNode ex:InvalidResource2 ; + sh:resultPath ( + ex:property1 + ex:property2 + ex:property3 + ) ; + sh:resultSeverity sh:Violation ; + sh:sourceConstraintComponent sh:MinCountConstraintComponent ; + sh:sourceShape ex:TestShape ; + ] ; + ] ; + mf:status sht:approved ; +. diff --git a/corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/core/path/path-sequence-duplicate-001.ttl b/corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/core/path/path-sequence-duplicate-001.ttl new file mode 100644 index 0000000000..81264c57cf --- /dev/null +++ b/corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/core/path/path-sequence-duplicate-001.ttl @@ -0,0 +1,63 @@ +@prefix dash: . +@prefix ex: . +@prefix mf: . +@prefix owl: . +@prefix rdf: . +@prefix rdfs: . +@prefix sh: . +@prefix sht: . +@prefix xsd: . + +ex:A + ex:p1 [ + ex:p2 "value" ; + ] ; + ex:p1 [ + ex:p2 "value" ; + ] ; +. +ex:S + rdf:type sh:NodeShape ; + sh:property ex:SP ; + sh:targetNode ex:A ; +. +ex:SP + rdf:type sh:PropertyShape ; + sh:path ( + ex:p1 + ex:p2 + ) ; + sh:maxCount 1 ; + sh:nodeKind sh:IRI ; +. +<> + rdf:type mf:Manifest ; + mf:entries ( + + ) ; +. + + rdf:type sht:Validate ; + rdfs:label "Test of path sequence with duplicate 001" ; + mf:action [ + sht:dataGraph <> ; + sht:shapesGraph <> ; + ] ; + mf:result [ + rdf:type sh:ValidationReport ; + sh:conforms "false"^^xsd:boolean ; + sh:result [ + rdf:type sh:ValidationResult ; + sh:focusNode ex:A ; + sh:resultPath ( + ex:p1 + ex:p2 + ) ; + sh:resultSeverity sh:Violation ; + sh:sourceConstraintComponent sh:NodeKindConstraintComponent ; + sh:sourceShape ex:SP ; + sh:value "value" ; + ] ; + ] ; + mf:status sht:approved ; +. diff --git a/corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/core/path/path-strange-001.ttl b/corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/core/path/path-strange-001.ttl new file mode 100644 index 0000000000..2409cb407b --- /dev/null +++ b/corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/core/path/path-strange-001.ttl @@ -0,0 +1,52 @@ +@prefix ex: . +@prefix mf: . +@prefix rdf: . +@prefix rdfs: . +@prefix sh: . +@prefix sht: . +@prefix xsd: . + +ex:i a ex:C ; + ex:p ex:ip . +ex:ip ex:q ex:ipq . +ex:ipq a ex:C . +ex:pi ex:p ex:i . + +ex:j a ex:C ; + ex:p ex:jp . +ex:jp ex:q ex:jpq . + +ex:s1 a sh:PropertyShape ; + sh:targetClass ex:C ; + sh:path [ rdf:first ex:p ; rdf:rest [ rdf:first ex:q ; rdf:rest rdf:nil ] ; + sh:inversePath ex:p ] ; + sh:class ex:C . + +<> + rdf:type mf:Manifest ; + mf:entries ( + + ) ; +. + + + rdf:type sht:Validate ; + rdfs:label "Test of strange path 001 two valid paths together" ; + mf:action [ + sht:dataGraph <> ; + sht:shapesGraph <> ; + ] ; + mf:result [ + rdf:type sh:ValidationReport ; + sh:conforms "false"^^xsd:boolean ; + sh:result [ a sh:ValidationResult ; + sh:focusNode ex:j ; + sh:value ex:jpq ; + sh:resultPath ( ex:p ex:q ) ; + sh:resultSeverity sh:Violation ; + sh:sourceConstraintComponent sh:ClassConstraintComponent ; + sh:sourceShape ex:s1 ; + ] ; + ] ; + mf:status sht:approved ; +. diff --git a/corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/core/path/path-strange-002.ttl b/corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/core/path/path-strange-002.ttl new file mode 100644 index 0000000000..4290f9f1a7 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/core/path/path-strange-002.ttl @@ -0,0 +1,52 @@ +@prefix ex: . +@prefix mf: . +@prefix rdf: . +@prefix rdfs: . +@prefix sh: . +@prefix sht: . +@prefix xsd: . + +ex:i a ex:C ; + ex:p ex:ip . +ex:ip ex:q ex:ipq . +ex:ipq a ex:C . +ex:pi ex:p ex:i . + +ex:j a ex:C ; + ex:p ex:jp . +ex:jp ex:q ex:jpq . + +ex:s1 a sh:PropertyShape ; + sh:targetClass ex:C ; + sh:path [ rdf:first ex:p ; rdf:rest [ rdf:first ex:q ; rdf:rest rdf:nil ] ; + sh:inversePath ( ex:p ) ] ; + sh:class ex:C . + +<> + rdf:type mf:Manifest ; + mf:entries ( + + ) ; +. + + + rdf:type sht:Validate ; + rdfs:label "Test of strange path 002 valid and invalid paths together" ; + mf:action [ + sht:dataGraph <> ; + sht:shapesGraph <> ; + ] ; + mf:result [ + rdf:type sh:ValidationReport ; + sh:conforms "false"^^xsd:boolean ; + sh:result [ a sh:ValidationResult ; + sh:focusNode ex:j ; + sh:value ex:jpq ; + sh:resultPath ( ex:p ex:q ) ; + sh:resultSeverity sh:Violation ; + sh:sourceConstraintComponent sh:ClassConstraintComponent ; + sh:sourceShape ex:s1 ; + ] ; + ] ; + mf:status sht:approved ; +. diff --git a/corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/core/path/path-unused-001-data.ttl b/corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/core/path/path-unused-001-data.ttl new file mode 100644 index 0000000000..ea38c1bbde --- /dev/null +++ b/corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/core/path/path-unused-001-data.ttl @@ -0,0 +1,5 @@ +@prefix ex: . + +ex:i a ex:C . + +ex:j a ex:D . diff --git a/corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/core/path/path-unused-001-shapes.ttl b/corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/core/path/path-unused-001-shapes.ttl new file mode 100644 index 0000000000..06838876f3 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/core/path/path-unused-001-shapes.ttl @@ -0,0 +1,18 @@ +@prefix sh: . +@prefix ex: . +@prefix rdf: . +@prefix rdfs: . + +ex:s1 a sh:NodeShape ; + sh:targetNode ex:j, ex:i ; + sh:class ex:C . + +_:p1 sh:inversePath _:p2 . + +_:p2 sh:zeroOrMorePath ( _:p2 ) . + +_:p2 sh:zeroOrOnePath [ rdf:rest rdf:nil ] . + +_:p3 sh:alternativePath ( ex:p ) ; + rdfs:comment "invalid path" . + diff --git a/corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/core/path/path-unused-001.ttl b/corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/core/path/path-unused-001.ttl new file mode 100644 index 0000000000..4ae2909139 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/core/path/path-unused-001.ttl @@ -0,0 +1,29 @@ +@prefix dash: . +@prefix ex: . +@prefix mf: . +@prefix owl: . +@prefix rdf: . +@prefix rdfs: . +@prefix sh: . +@prefix sht: . +@prefix xsd: . + +<> a mf:Manifest ; + mf:entries ( + + ) . + + a sht:Validate ; + rdfs:label "Test with unused ill-formed path" ; + mf:action [ + sht:dataGraph ; + sht:shapesGraph ] ; + mf:result [ a sh:ValidationReport ; + sh:conforms "false"^^xsd:boolean ; + sh:result [ a sh:ValidationResult ; + sh:focusNode ex:j ; + sh:value ex:j ; + sh:resultSeverity sh:Violation ; + sh:sourceShape ex:s1 ; + sh:sourceConstraintComponent sh:ClassConstraintComponent ] ] ; + mf:status sht:approved . diff --git a/corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/core/path/path-zeroOrMore-001.ttl b/corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/core/path/path-zeroOrMore-001.ttl new file mode 100644 index 0000000000..834ab9f13d --- /dev/null +++ b/corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/core/path/path-zeroOrMore-001.ttl @@ -0,0 +1,61 @@ +@prefix dash: . +@prefix ex: . +@prefix mf: . +@prefix owl: . +@prefix rdf: . +@prefix rdfs: . +@prefix sh: . +@prefix sht: . +@prefix xsd: . + +ex:InvalidResource1 + rdf:type rdfs:Resource ; +. +ex:Person2 + ex:child ex:Person3 ; +. +ex:TestShape + rdf:type sh:PropertyShape ; + sh:path [ + sh:zeroOrMorePath ex:child ; + ] ; + sh:minCount 2 ; + sh:targetNode ex:InvalidResource1 ; + sh:targetNode ex:ValidResource1 ; + sh:targetNode ex:ValidResource2 ; +. +ex:ValidResource1 + ex:child ex:Person1 ; +. +ex:ValidResource2 + ex:child ex:Person2 ; +. +<> + rdf:type mf:Manifest ; + mf:entries ( + + ) ; +. + + rdf:type sht:Validate ; + rdfs:label "Test of path sh:zeroOrMorePath 001" ; + mf:action [ + sht:dataGraph <> ; + sht:shapesGraph <> ; + ] ; + mf:result [ + rdf:type sh:ValidationReport ; + sh:conforms "false"^^xsd:boolean ; + sh:result [ + rdf:type sh:ValidationResult ; + sh:focusNode ex:InvalidResource1 ; + sh:resultPath [ + sh:zeroOrMorePath ex:child ; + ] ; + sh:resultSeverity sh:Violation ; + sh:sourceConstraintComponent sh:MinCountConstraintComponent ; + sh:sourceShape ex:TestShape ; + ] ; + ] ; + mf:status sht:approved ; +. diff --git a/corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/core/path/path-zeroOrOne-001.ttl b/corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/core/path/path-zeroOrOne-001.ttl new file mode 100644 index 0000000000..2e4e34f51a --- /dev/null +++ b/corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/core/path/path-zeroOrOne-001.ttl @@ -0,0 +1,61 @@ +@prefix dash: . +@prefix ex: . +@prefix mf: . +@prefix owl: . +@prefix rdf: . +@prefix rdfs: . +@prefix sh: . +@prefix sht: . +@prefix xsd: . + +ex:InvalidResource1 + rdf:type rdfs:Resource ; +. +ex:Person2 + ex:child ex:Person3 ; +. +ex:TestShape + rdf:type sh:PropertyShape ; + sh:path [ + sh:zeroOrOnePath ex:child ; + ] ; + sh:minCount 2 ; + sh:targetNode ex:InvalidResource1 ; + sh:targetNode ex:ValidResource1 ; + sh:targetNode ex:ValidResource2 ; +. +ex:ValidResource1 + ex:child ex:Person1 ; +. +ex:ValidResource2 + ex:child ex:Person2 ; +. +<> + rdf:type mf:Manifest ; + mf:entries ( + + ) ; +. + + rdf:type sht:Validate ; + rdfs:label "Test of path sh:zeroOrOnePath 001" ; + mf:action [ + sht:dataGraph <> ; + sht:shapesGraph <> ; + ] ; + mf:result [ + rdf:type sh:ValidationReport ; + sh:conforms "false"^^xsd:boolean ; + sh:result [ + rdf:type sh:ValidationResult ; + sh:focusNode ex:InvalidResource1 ; + sh:resultPath [ + sh:zeroOrOnePath ex:child ; + ] ; + sh:resultSeverity sh:Violation ; + sh:sourceConstraintComponent sh:MinCountConstraintComponent ; + sh:sourceShape ex:TestShape ; + ] ; + ] ; + mf:status sht:approved ; +. diff --git a/corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/core/property/and-001.ttl b/corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/core/property/and-001.ttl new file mode 100644 index 0000000000..57eeaf456c --- /dev/null +++ b/corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/core/property/and-001.ttl @@ -0,0 +1,107 @@ +@prefix dash: . +@prefix ex: . +@prefix mf: . +@prefix owl: . +@prefix rdf: . +@prefix rdfs: . +@prefix sh: . +@prefix sht: . +@prefix xsd: . + +ex:AddressShape + rdf:type sh:NodeShape ; + rdfs:label "Address shape" ; + sh:property ex:AddressShape-address ; + sh:targetNode ex:InvalidResource1 ; + sh:targetNode ex:InvalidResource2 ; + sh:targetNode ex:InvalidResource3 ; + sh:targetNode ex:ValidResource1 ; +. +ex:AddressShape-address + sh:path ex:address ; + sh:and ( + [ + sh:property [ + sh:path ex:suburb ; + sh:minCount 1 ; + ] ; + ] + [ + sh:property [ + sh:path ex:postalCode ; + sh:minCount 1 ; + ] ; + ] + ) ; +. +ex:InvalidResource1 + rdf:type rdfs:Resource ; + ex:address _:b61065 ; +. +ex:InvalidResource2 + rdf:type rdfs:Resource ; + ex:address _:b31477 ; +. +ex:InvalidResource3 + rdf:type rdfs:Resource ; + ex:address _:b94057 ; +. +ex:ValidResource1 + rdf:type rdfs:Resource ; + ex:address [ + ex:postalCode 4879 ; + ex:suburb ex:KewarraBeach ; + ] ; +. +<> + rdf:type mf:Manifest ; + mf:entries ( + + ) ; +. + + rdf:type sht:Validate ; + rdfs:label "Test of sh:and at property shape 001" ; + mf:action [ + sht:dataGraph <> ; + sht:shapesGraph <> ; + ] ; + mf:result [ + rdf:type sh:ValidationReport ; + sh:conforms "false"^^xsd:boolean ; + sh:result [ + rdf:type sh:ValidationResult ; + sh:focusNode ex:InvalidResource1 ; + sh:resultPath ex:address ; + sh:resultSeverity sh:Violation ; + sh:sourceConstraintComponent sh:AndConstraintComponent ; + sh:sourceShape ex:AddressShape-address ; + sh:value _:b61065 ; + ] ; + sh:result [ + rdf:type sh:ValidationResult ; + sh:focusNode ex:InvalidResource2 ; + sh:resultPath ex:address ; + sh:resultSeverity sh:Violation ; + sh:sourceConstraintComponent sh:AndConstraintComponent ; + sh:sourceShape ex:AddressShape-address ; + sh:value _:b31477 ; + ] ; + sh:result [ + rdf:type sh:ValidationResult ; + sh:focusNode ex:InvalidResource3 ; + sh:resultPath ex:address ; + sh:resultSeverity sh:Violation ; + sh:sourceConstraintComponent sh:AndConstraintComponent ; + sh:sourceShape ex:AddressShape-address ; + sh:value _:b94057 ; + ] ; + ] ; + mf:status sht:approved ; +. +_:b31477 + ex:suburb ex:KewarraBeach ; +. +_:b61065 + ex:postalCode 4879 ; +. diff --git a/corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/core/property/class-001.ttl b/corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/core/property/class-001.ttl new file mode 100644 index 0000000000..2b97bf823d --- /dev/null +++ b/corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/core/property/class-001.ttl @@ -0,0 +1,91 @@ +@prefix dash: . +@prefix ex: . +@prefix mf: . +@prefix owl: . +@prefix rdf: . +@prefix rdfs: . +@prefix sh: . +@prefix sht: . +@prefix xsd: . + +ex:InvalidResource1 + rdf:type rdfs:Resource ; + ex:testProperty ex:InvalidResource1 ; + ex:testProperty "A string" ; +. +ex:SubClass + rdf:type rdfs:Class ; + rdfs:subClassOf ex:SuperClass ; +. +ex:SubClassInstance + rdf:type ex:SubClass ; +. +ex:SuperClass + rdf:type rdfs:Class ; +. +ex:SuperClassInstance + rdf:type ex:SuperClass ; +. +ex:TestShape + rdf:type sh:NodeShape ; + sh:property ex:TestShape-testProperty ; + sh:targetNode ex:InvalidResource1 ; + sh:targetNode ex:ValidResource1 ; + sh:targetNode ex:ValidResource2 ; +. +ex:TestShape-testProperty + sh:path ex:testProperty ; + rdfs:label "test property" ; + sh:class ex:SuperClass ; +. +ex:ValidResource1 + rdf:type rdfs:Resource ; + ex:testProperty ex:SubClassInstance ; + ex:testProperty ex:SuperClassInstance ; +. +ex:ValidResource2 + rdf:type rdfs:Resource ; + ex:testProperty [ + rdf:type ex:SubClass ; + ] ; + ex:testProperty [ + rdf:type ex:SuperClass ; + ] ; +. +<> + rdf:type mf:Manifest ; + mf:entries ( + + ) ; +. + + rdf:type sht:Validate ; + rdfs:label "Test of sh:class at property shape 001" ; + mf:action [ + sht:dataGraph <> ; + sht:shapesGraph <> ; + ] ; + mf:result [ + rdf:type sh:ValidationReport ; + sh:conforms "false"^^xsd:boolean ; + sh:result [ + rdf:type sh:ValidationResult ; + sh:focusNode ex:InvalidResource1 ; + sh:resultPath ex:testProperty ; + sh:resultSeverity sh:Violation ; + sh:sourceConstraintComponent sh:ClassConstraintComponent ; + sh:sourceShape ex:TestShape-testProperty ; + sh:value ex:InvalidResource1 ; + ] ; + sh:result [ + rdf:type sh:ValidationResult ; + sh:focusNode ex:InvalidResource1 ; + sh:resultPath ex:testProperty ; + sh:resultSeverity sh:Violation ; + sh:sourceConstraintComponent sh:ClassConstraintComponent ; + sh:sourceShape ex:TestShape-testProperty ; + sh:value "A string" ; + ] ; + ] ; + mf:status sht:approved ; +. diff --git a/corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/core/property/datatype-001.ttl b/corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/core/property/datatype-001.ttl new file mode 100644 index 0000000000..f1b1b814f2 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/core/property/datatype-001.ttl @@ -0,0 +1,76 @@ +@prefix dash: . +@prefix ex: . +@prefix mf: . +@prefix owl: . +@prefix rdf: . +@prefix rdfs: . +@prefix sh: . +@prefix sht: . +@prefix xsd: . + +ex:InvalidResource1 + rdf:type ex:TestShape ; + ex:dateProperty "2011-01-01"^^xsd:dateTime ; + ex:integerProperty 11.1 ; +. +ex:TestShape + rdf:type rdfs:Class ; + rdf:type sh:NodeShape ; + rdfs:label "Test shape" ; + sh:property ex:TestShape-dateProperty ; + sh:property ex:TestShape-integerProperty ; +. +ex:TestShape-dateProperty + sh:path ex:dateProperty ; + rdfs:label "date property" ; + sh:datatype xsd:date ; +. +ex:TestShape-integerProperty + sh:path ex:integerProperty ; + rdfs:label "integer property" ; + sh:datatype xsd:integer ; +. +ex:ValidResource + rdf:type ex:TestShape ; + ex:dateProperty "2014-09-01"^^xsd:date ; + ex:integerProperty 0 ; + ex:integerProperty 1234 ; + rdfs:label "Valid resource" ; +. +<> + rdf:type mf:Manifest ; + mf:entries ( + + ) ; +. + + rdf:type sht:Validate ; + rdfs:label "Test of sh:datatype at property shape 001" ; + mf:action [ + sht:dataGraph <> ; + sht:shapesGraph <> ; + ] ; + mf:result [ + rdf:type sh:ValidationReport ; + sh:conforms "false"^^xsd:boolean ; + sh:result [ + rdf:type sh:ValidationResult ; + sh:focusNode ex:InvalidResource1 ; + sh:resultPath ex:dateProperty ; + sh:resultSeverity sh:Violation ; + sh:sourceConstraintComponent sh:DatatypeConstraintComponent ; + sh:sourceShape ex:TestShape-dateProperty ; + sh:value "2011-01-01"^^xsd:dateTime ; + ] ; + sh:result [ + rdf:type sh:ValidationResult ; + sh:focusNode ex:InvalidResource1 ; + sh:resultPath ex:integerProperty ; + sh:resultSeverity sh:Violation ; + sh:sourceConstraintComponent sh:DatatypeConstraintComponent ; + sh:sourceShape ex:TestShape-integerProperty ; + sh:value 11.1 ; + ] ; + ] ; + mf:status sht:approved ; +. diff --git a/corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/core/property/datatype-002.ttl b/corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/core/property/datatype-002.ttl new file mode 100644 index 0000000000..fc563774cf --- /dev/null +++ b/corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/core/property/datatype-002.ttl @@ -0,0 +1,71 @@ +@prefix dash: . +@prefix ex: . +@prefix mf: . +@prefix owl: . +@prefix rdf: . +@prefix rdfs: . +@prefix sh: . +@prefix sht: . +@prefix xsd: . + +ex:InvalidInstance1 + ex:value "A"@en ; +. +ex:InvalidInstance2 + ex:value 42 ; +. +ex:TestShape + rdf:type sh:NodeShape ; + sh:property ex:TestShape-value ; + sh:targetNode ex:InvalidInstance1 ; + sh:targetNode ex:InvalidInstance2 ; + sh:targetNode ex:ValidInstance1 ; + sh:targetNode ex:ValidInstance2 ; +. +ex:TestShape-value + sh:path ex:value ; + sh:datatype xsd:string ; +. +ex:ValidInstance1 + ex:value "A" ; +. +ex:ValidInstance2 + ex:value "A" ; +. +<> + rdf:type mf:Manifest ; + mf:entries ( + + ) ; +. + + rdf:type sht:Validate ; + rdfs:label "Test of sh:datatype at property shape 002" ; + mf:action [ + sht:dataGraph <> ; + sht:shapesGraph <> ; + ] ; + mf:result [ + rdf:type sh:ValidationReport ; + sh:conforms "false"^^xsd:boolean ; + sh:result [ + rdf:type sh:ValidationResult ; + sh:focusNode ex:InvalidInstance1 ; + sh:resultPath ex:value ; + sh:resultSeverity sh:Violation ; + sh:sourceConstraintComponent sh:DatatypeConstraintComponent ; + sh:sourceShape ex:TestShape-value ; + sh:value "A"@en ; + ] ; + sh:result [ + rdf:type sh:ValidationResult ; + sh:focusNode ex:InvalidInstance2 ; + sh:resultPath ex:value ; + sh:resultSeverity sh:Violation ; + sh:sourceConstraintComponent sh:DatatypeConstraintComponent ; + sh:sourceShape ex:TestShape-value ; + sh:value 42 ; + ] ; + ] ; + mf:status sht:approved ; +. diff --git a/corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/core/property/datatype-003.ttl b/corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/core/property/datatype-003.ttl new file mode 100644 index 0000000000..529685073a --- /dev/null +++ b/corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/core/property/datatype-003.ttl @@ -0,0 +1,69 @@ +@prefix dash: . +@prefix ex: . +@prefix mf: . +@prefix owl: . +@prefix rdf: . +@prefix rdfs: . +@prefix sh: . +@prefix sht: . +@prefix xsd: . + +ex:InvalidInstance1 + ex:value 42 ; +. +ex:TestShape + rdf:type sh:NodeShape ; + sh:property ex:TestShape-value ; + sh:targetNode ex:InvalidInstance1 ; + sh:targetNode ex:ValidInstance1 ; + sh:targetNode ex:ValidInstance2 ; + sh:targetNode ex:ValidInstance3 ; +. +ex:TestShape-value + sh:path ex:value ; + sh:or ( + [ + sh:datatype xsd:string ; + ] + [ + sh:datatype rdf:langString ; + ] + ) ; +. +ex:ValidInstance1 + ex:value "A" ; +. +ex:ValidInstance2 + ex:value "A" ; +. +ex:ValidInstance3 + ex:value "A"@en ; +. +<> + rdf:type mf:Manifest ; + mf:entries ( + + ) ; +. + + rdf:type sht:Validate ; + rdfs:label "Test of sh:datatype at property shape 003" ; + mf:action [ + sht:dataGraph <> ; + sht:shapesGraph <> ; + ] ; + mf:result [ + rdf:type sh:ValidationReport ; + sh:conforms "false"^^xsd:boolean ; + sh:result [ + rdf:type sh:ValidationResult ; + sh:focusNode ex:InvalidInstance1 ; + sh:resultPath ex:value ; + sh:resultSeverity sh:Violation ; + sh:sourceConstraintComponent sh:OrConstraintComponent ; + sh:sourceShape ex:TestShape-value ; + sh:value 42 ; + ] ; + ] ; + mf:status sht:approved ; +. diff --git a/corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/core/property/datatype-ill-formed-data.ttl b/corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/core/property/datatype-ill-formed-data.ttl new file mode 100644 index 0000000000..e5338afa8b --- /dev/null +++ b/corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/core/property/datatype-ill-formed-data.ttl @@ -0,0 +1,6 @@ +@prefix xsd: . +@prefix ex: . + +ex:i ex:p "300"^^xsd:byte . +ex:i ex:p "55"^^xsd:integer . +ex:i ex:p "c"^^xsd:byte . diff --git a/corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/core/property/datatype-ill-formed-shapes.ttl b/corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/core/property/datatype-ill-formed-shapes.ttl new file mode 100644 index 0000000000..2036632646 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/core/property/datatype-ill-formed-shapes.ttl @@ -0,0 +1,8 @@ +@prefix sh: . +@prefix xsd: . +@prefix ex: . + +ex:s a sh:PropertyShape ; + sh:targetNode ex:i ; + sh:path ex:p ; + sh:datatype xsd:byte . diff --git a/corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/core/property/datatype-ill-formed.ttl b/corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/core/property/datatype-ill-formed.ttl new file mode 100644 index 0000000000..08611e4989 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/core/property/datatype-ill-formed.ttl @@ -0,0 +1,43 @@ +@prefix mf: . +@prefix owl: . +@prefix rdf: . +@prefix rdfs: . +@prefix sh: . +@prefix sht: . +@prefix xsd: . + +@prefix ex: . + +<> rdf:type mf:Manifest ; + mf:entries ( + + ) . + + rdf:type sht:Validate; + rdfs:label "Test of validation report for ill-formed literals" ; + mf:action [ sht:dataGraph ; + sht:shapesGraph ] ; + mf:result [ rdf:type sh:ValidationReport ; + sh:conforms "false"^^xsd:boolean ; + sh:result [ rdf:type sh:ValidationResult ; + sh:resultSeverity sh:Violation ; + sh:focusNode ex:i ; + sh:value "300"^^xsd:byte ; + sh:resultPath ex:p ; + sh:sourceShape ex:s ; + sh:sourceConstraintComponent sh:DatatypeConstraintComponent ] ; + sh:result [ rdf:type sh:ValidationResult ; + sh:resultSeverity sh:Violation ; + sh:focusNode ex:i ; + sh:value "c"^^xsd:byte ; + sh:resultPath ex:p ; + sh:sourceShape ex:s ; + sh:sourceConstraintComponent sh:DatatypeConstraintComponent ] ; + sh:result [ rdf:type sh:ValidationResult ; + sh:resultSeverity sh:Violation ; + sh:focusNode ex:i ; + sh:value "55"^^xsd:integer ; + sh:resultPath ex:p ; + sh:sourceShape ex:s ; + sh:sourceConstraintComponent sh:DatatypeConstraintComponent ] ] ; + mf:status sht:approved . diff --git a/corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/core/property/disjoint-001.ttl b/corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/core/property/disjoint-001.ttl new file mode 100644 index 0000000000..8bfc6852d2 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/core/property/disjoint-001.ttl @@ -0,0 +1,84 @@ +@prefix dash: . +@prefix ex: . +@prefix mf: . +@prefix owl: . +@prefix rdf: . +@prefix rdfs: . +@prefix sh: . +@prefix sht: . +@prefix xsd: . + +ex:InvalidResource1 + ex:property1 "A" ; + ex:property2 "A" ; +. +ex:InvalidResource2 + ex:property1 "A" ; + ex:property1 "B" ; + ex:property2 "A" ; +. +ex:TestShape + rdf:type sh:NodeShape ; + sh:property ex:TestShape-property1 ; + sh:targetNode ex:InvalidResource1 ; + sh:targetNode ex:InvalidResource2 ; + sh:targetNode ex:ValidResource1 ; + sh:targetNode ex:ValidResource2 ; +. +ex:TestShape-property1 + sh:path ex:property1 ; + sh:disjoint ex:property2 ; +. +ex:ValidResource1 + ex:property1 "A" ; + ex:property2 "B" ; +. +ex:ValidResource2 + ex:property1 "A" ; + ex:property1 "B" ; + ex:property2 "C" ; + ex:property2 "D" ; +. +ex:property1 + rdf:type rdf:Property ; +. +ex:property2 + rdf:type rdf:Property ; +. +<> + rdf:type mf:Manifest ; + mf:entries ( + + ) ; +. + + rdf:type sht:Validate ; + rdfs:label "Test of sh:disjoint at property shape 001" ; + mf:action [ + sht:dataGraph <> ; + sht:shapesGraph <> ; + ] ; + mf:result [ + rdf:type sh:ValidationReport ; + sh:conforms "false"^^xsd:boolean ; + sh:result [ + rdf:type sh:ValidationResult ; + sh:focusNode ex:InvalidResource1 ; + sh:resultPath ex:property1 ; + sh:resultSeverity sh:Violation ; + sh:sourceConstraintComponent sh:DisjointConstraintComponent ; + sh:sourceShape ex:TestShape-property1 ; + sh:value "A" ; + ] ; + sh:result [ + rdf:type sh:ValidationResult ; + sh:focusNode ex:InvalidResource2 ; + sh:resultPath ex:property1 ; + sh:resultSeverity sh:Violation ; + sh:sourceConstraintComponent sh:DisjointConstraintComponent ; + sh:sourceShape ex:TestShape-property1 ; + sh:value "A" ; + ] ; + ] ; + mf:status sht:approved ; +. diff --git a/corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/core/property/equals-001.ttl b/corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/core/property/equals-001.ttl new file mode 100644 index 0000000000..64024cd40d --- /dev/null +++ b/corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/core/property/equals-001.ttl @@ -0,0 +1,119 @@ +@prefix dash: . +@prefix ex: . +@prefix mf: . +@prefix owl: . +@prefix rdf: . +@prefix rdfs: . +@prefix sh: . +@prefix sht: . +@prefix xsd: . + +ex:InvalidResource1 + ex:property1 "A" ; + ex:property2 "B" ; +. +ex:InvalidResource2 + ex:property1 "A" ; +. +ex:InvalidResource3 + ex:property2 "A" ; +. +ex:InvalidResource4 + ex:property1 "A" ; + ex:property1 "B" ; + ex:property2 "A" ; +. +ex:TestShape + rdf:type sh:NodeShape ; + sh:property ex:TestShape-property1 ; + sh:targetNode ex:InvalidResource1 ; + sh:targetNode ex:InvalidResource2 ; + sh:targetNode ex:InvalidResource3 ; + sh:targetNode ex:InvalidResource4 ; + sh:targetNode ex:ValidResource1 ; + sh:targetNode ex:ValidResource2 ; +. +ex:TestShape-property1 + sh:path ex:property1 ; + sh:equals ex:property2 ; +. +ex:ValidResource1 + ex:property1 "A" ; + ex:property2 "A" ; +. +ex:ValidResource2 + ex:property1 "A" ; + ex:property1 "B" ; + ex:property2 "A" ; + ex:property2 "B" ; +. +ex:property1 + rdf:type rdf:Property ; +. +ex:property2 + rdf:type rdf:Property ; +. +<> + rdf:type mf:Manifest ; + mf:entries ( + + ) ; +. + + rdf:type sht:Validate ; + rdfs:label "Test of sh:equals at property shape 001" ; + mf:action [ + sht:dataGraph <> ; + sht:shapesGraph <> ; + ] ; + mf:result [ + rdf:type sh:ValidationReport ; + sh:conforms "false"^^xsd:boolean ; + sh:result [ + rdf:type sh:ValidationResult ; + sh:focusNode ex:InvalidResource1 ; + sh:resultPath ex:property1 ; + sh:resultSeverity sh:Violation ; + sh:sourceConstraintComponent sh:EqualsConstraintComponent ; + sh:sourceShape ex:TestShape-property1 ; + sh:value "A" ; + ] ; + sh:result [ + rdf:type sh:ValidationResult ; + sh:focusNode ex:InvalidResource1 ; + sh:resultPath ex:property1 ; + sh:resultSeverity sh:Violation ; + sh:sourceConstraintComponent sh:EqualsConstraintComponent ; + sh:sourceShape ex:TestShape-property1 ; + sh:value "B" ; + ] ; + sh:result [ + rdf:type sh:ValidationResult ; + sh:focusNode ex:InvalidResource2 ; + sh:resultPath ex:property1 ; + sh:resultSeverity sh:Violation ; + sh:sourceConstraintComponent sh:EqualsConstraintComponent ; + sh:sourceShape ex:TestShape-property1 ; + sh:value "A" ; + ] ; + sh:result [ + rdf:type sh:ValidationResult ; + sh:focusNode ex:InvalidResource3 ; + sh:resultPath ex:property1 ; + sh:resultSeverity sh:Violation ; + sh:sourceConstraintComponent sh:EqualsConstraintComponent ; + sh:sourceShape ex:TestShape-property1 ; + sh:value "A" ; + ] ; + sh:result [ + rdf:type sh:ValidationResult ; + sh:focusNode ex:InvalidResource4 ; + sh:resultPath ex:property1 ; + sh:resultSeverity sh:Violation ; + sh:sourceConstraintComponent sh:EqualsConstraintComponent ; + sh:sourceShape ex:TestShape-property1 ; + sh:value "B" ; + ] ; + ] ; + mf:status sht:approved ; +. diff --git a/corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/core/property/hasValue-001.ttl b/corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/core/property/hasValue-001.ttl new file mode 100644 index 0000000000..ffaa0ebbf2 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/core/property/hasValue-001.ttl @@ -0,0 +1,68 @@ +@prefix dash: . +@prefix ex: . +@prefix mf: . +@prefix owl: . +@prefix rdf: . +@prefix rdfs: . +@prefix sh: . +@prefix sht: . +@prefix xsd: . + +ex:InvalidMalePerson + rdf:type ex:MalePerson ; + ex:gender "female" ; + rdfs:label "Invalid male person" ; +. +ex:MalePerson + rdf:type rdfs:Class ; + rdfs:label "Male person" ; + rdfs:subClassOf rdfs:Resource ; +. +ex:PersonShape + rdf:type sh:NodeShape ; + rdfs:label "Person shape" ; + sh:property ex:PersonShape-gender ; + sh:targetClass ex:MalePerson ; +. +ex:PersonShape-gender + sh:path ex:gender ; + rdfs:label "gender" ; + sh:datatype xsd:string ; + sh:hasValue "male" ; +. +ex:ValidMalePerson1 + rdf:type ex:MalePerson ; + ex:gender "male" ; +. +ex:ValidMalePerson2 + rdf:type ex:MalePerson ; + ex:gender "female" ; + ex:gender "male" ; +. +<> + rdf:type mf:Manifest ; + mf:entries ( + + ) ; +. + + rdf:type sht:Validate ; + rdfs:label "Test of sh:hasValue at property shape 001" ; + mf:action [ + sht:dataGraph <> ; + sht:shapesGraph <> ; + ] ; + mf:result [ + rdf:type sh:ValidationReport ; + sh:conforms "false"^^xsd:boolean ; + sh:result [ + rdf:type sh:ValidationResult ; + sh:focusNode ex:InvalidMalePerson ; + sh:resultPath ex:gender ; + sh:resultSeverity sh:Violation ; + sh:sourceConstraintComponent sh:HasValueConstraintComponent ; + sh:sourceShape ex:PersonShape-gender ; + ] ; + ] ; + mf:status sht:approved ; +. diff --git a/corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/core/property/in-001.ttl b/corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/core/property/in-001.ttl new file mode 100644 index 0000000000..cfd37cfb7e --- /dev/null +++ b/corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/core/property/in-001.ttl @@ -0,0 +1,69 @@ +@prefix dash: . +@prefix ex: . +@prefix mf: . +@prefix owl: . +@prefix rdf: . +@prefix rdfs: . +@prefix sh: . +@prefix sht: . +@prefix xsd: . + +ex:InvalidInstance1 + rdf:type ex:ShapeClass ; + ex:property "D" ; + rdfs:label "Invalid instance1" ; +. +ex:ShapeClass + rdf:type rdfs:Class ; + rdf:type sh:NodeShape ; + sh:property ex:ShapeClass-property ; +. +ex:ShapeClass-property + sh:path ex:property ; + sh:datatype xsd:string ; + sh:in ( + "A" + "B" + "C" + ) ; +. +ex:ValidInstance1 + rdf:type ex:ShapeClass ; + ex:property "A" ; + rdfs:label "Valid instance1" ; +. +ex:ValidInstance2 + rdf:type ex:ShapeClass ; + ex:property "A" ; + ex:property "B" ; + ex:property "C" ; + rdfs:label "Valid instance2" ; +. +<> + rdf:type mf:Manifest ; + mf:entries ( + + ) ; +. + + rdf:type sht:Validate ; + rdfs:label "Test of sh:in at property shape 001" ; + mf:action [ + sht:dataGraph <> ; + sht:shapesGraph <> ; + ] ; + mf:result [ + rdf:type sh:ValidationReport ; + sh:conforms "false"^^xsd:boolean ; + sh:result [ + rdf:type sh:ValidationResult ; + sh:focusNode ex:InvalidInstance1 ; + sh:resultPath ex:property ; + sh:resultSeverity sh:Violation ; + sh:sourceConstraintComponent sh:InConstraintComponent ; + sh:sourceShape ex:ShapeClass-property ; + sh:value "D" ; + ] ; + ] ; + mf:status sht:approved ; +. diff --git a/corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/core/property/languageIn-001.ttl b/corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/core/property/languageIn-001.ttl new file mode 100644 index 0000000000..00e9d98b8d --- /dev/null +++ b/corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/core/property/languageIn-001.ttl @@ -0,0 +1,79 @@ +@prefix dash: . +@prefix ex: . +@prefix mf: . +@prefix owl: . +@prefix rdf: . +@prefix rdfs: . +@prefix sh: . +@prefix sht: . +@prefix xsd: . + +ex:Berg + ex:prefLabel ex:BergLabel ; + ex:prefLabel "Berg" ; + ex:prefLabel "Berg"@de ; +. +ex:Mountain + ex:prefLabel "Hill"@en-NZ ; + ex:prefLabel "Maunga"@mi ; + ex:prefLabel "Mountain"@en ; +. +ex:NewZealandLanguagesShape + rdf:type sh:NodeShape ; + sh:property ex:NewZealandLanguagesShape-prefLabel ; + sh:targetNode ex:Berg ; + sh:targetNode ex:Mountain ; +. +ex:NewZealandLanguagesShape-prefLabel + sh:path ex:prefLabel ; + sh:languageIn ( + "en" + "mi" + ) ; +. +<> + rdf:type mf:Manifest ; + mf:entries ( + + ) ; +. + + rdf:type sht:Validate ; + rdfs:label "Test of sh:languageIn at property shape 001" ; + mf:action [ + sht:dataGraph <> ; + sht:shapesGraph <> ; + ] ; + mf:result [ + rdf:type sh:ValidationReport ; + sh:conforms "false"^^xsd:boolean ; + sh:result [ + rdf:type sh:ValidationResult ; + sh:focusNode ex:Berg ; + sh:resultPath ex:prefLabel ; + sh:resultSeverity sh:Violation ; + sh:sourceConstraintComponent sh:LanguageInConstraintComponent ; + sh:sourceShape ex:NewZealandLanguagesShape-prefLabel ; + sh:value ex:BergLabel ; + ] ; + sh:result [ + rdf:type sh:ValidationResult ; + sh:focusNode ex:Berg ; + sh:resultPath ex:prefLabel ; + sh:resultSeverity sh:Violation ; + sh:sourceConstraintComponent sh:LanguageInConstraintComponent ; + sh:sourceShape ex:NewZealandLanguagesShape-prefLabel ; + sh:value "Berg" ; + ] ; + sh:result [ + rdf:type sh:ValidationResult ; + sh:focusNode ex:Berg ; + sh:resultPath ex:prefLabel ; + sh:resultSeverity sh:Violation ; + sh:sourceConstraintComponent sh:LanguageInConstraintComponent ; + sh:sourceShape ex:NewZealandLanguagesShape-prefLabel ; + sh:value "Berg"@de ; + ] ; + ] ; + mf:status sht:approved ; +. diff --git a/corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/core/property/lessThan-001.ttl b/corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/core/property/lessThan-001.ttl new file mode 100644 index 0000000000..d76b37dab4 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/core/property/lessThan-001.ttl @@ -0,0 +1,96 @@ +@prefix dash: . +@prefix ex: . +@prefix mf: . +@prefix owl: . +@prefix rdf: . +@prefix rdfs: . +@prefix sh: . +@prefix sht: . +@prefix xsd: . + +ex:InvalidResource1 + ex:property1 4 ; + ex:property2 4 ; +. +ex:InvalidResource2 + ex:property1 4 ; + ex:property1 6 ; + ex:property2 5 ; +. +ex:InvalidResource3 + ex:property1 5 ; + ex:property2 4 ; +. +ex:TestShape + rdf:type sh:NodeShape ; + sh:property ex:TestShape-property1 ; + sh:targetNode ex:InvalidResource1 ; + sh:targetNode ex:InvalidResource2 ; + sh:targetNode ex:InvalidResource3 ; + sh:targetNode ex:ValidResource1 ; + sh:targetNode ex:ValidResource2 ; +. +ex:TestShape-property1 + sh:path ex:property1 ; + sh:lessThan ex:property2 ; +. +ex:ValidResource1 + ex:property1 4 ; + ex:property2 6 ; +. +ex:ValidResource2 + ex:property1 3.1 ; + ex:property1 3.2 ; +. +ex:property1 + rdf:type rdf:Property ; +. +ex:property2 + rdf:type rdf:Property ; +. +<> + rdf:type mf:Manifest ; + mf:entries ( + + ) ; +. + + rdf:type sht:Validate ; + rdfs:label "Test of sh:lessThan at property shape 001" ; + mf:action [ + sht:dataGraph <> ; + sht:shapesGraph <> ; + ] ; + mf:result [ + rdf:type sh:ValidationReport ; + sh:conforms "false"^^xsd:boolean ; + sh:result [ + rdf:type sh:ValidationResult ; + sh:focusNode ex:InvalidResource1 ; + sh:resultPath ex:property1 ; + sh:resultSeverity sh:Violation ; + sh:sourceConstraintComponent sh:LessThanConstraintComponent ; + sh:sourceShape ex:TestShape-property1 ; + sh:value 4 ; + ] ; + sh:result [ + rdf:type sh:ValidationResult ; + sh:focusNode ex:InvalidResource2 ; + sh:resultPath ex:property1 ; + sh:resultSeverity sh:Violation ; + sh:sourceConstraintComponent sh:LessThanConstraintComponent ; + sh:sourceShape ex:TestShape-property1 ; + sh:value 6 ; + ] ; + sh:result [ + rdf:type sh:ValidationResult ; + sh:focusNode ex:InvalidResource3 ; + sh:resultPath ex:property1 ; + sh:resultSeverity sh:Violation ; + sh:sourceConstraintComponent sh:LessThanConstraintComponent ; + sh:sourceShape ex:TestShape-property1 ; + sh:value 5 ; + ] ; + ] ; + mf:status sht:approved ; +. diff --git a/corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/core/property/lessThan-002.ttl b/corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/core/property/lessThan-002.ttl new file mode 100644 index 0000000000..9f352ef38b --- /dev/null +++ b/corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/core/property/lessThan-002.ttl @@ -0,0 +1,81 @@ +@prefix dash: . +@prefix ex: . +@prefix mf: . +@prefix owl: . +@prefix rdf: . +@prefix rdfs: . +@prefix sh: . +@prefix sht: . +@prefix xsd: . + +ex:InvalidInstance1 + ex:first 1 ; + ex:first 2 ; + ex:second "a" ; + ex:second "b" ; +. +ex:TestShape + rdf:type sh:NodeShape ; + rdfs:label "Test shape" ; + sh:property ex:TestShape-first ; + sh:targetNode ex:InvalidInstance1 ; +. +ex:TestShape-first + sh:path ex:first ; + sh:lessThan ex:second ; +. +<> + rdf:type mf:Manifest ; + mf:entries ( + + ) ; +. + + rdf:type sht:Validate ; + rdfs:label "Test of sh:lessThan at property shape 002" ; + mf:action [ + sht:dataGraph <> ; + sht:shapesGraph <> ; + ] ; + mf:result [ + rdf:type sh:ValidationReport ; + sh:conforms "false"^^xsd:boolean ; + sh:result [ + rdf:type sh:ValidationResult ; + sh:focusNode ex:InvalidInstance1 ; + sh:resultPath ex:first ; + sh:resultSeverity sh:Violation ; + sh:sourceConstraintComponent sh:LessThanConstraintComponent ; + sh:sourceShape ex:TestShape-first ; + sh:value 1 ; + ] ; + sh:result [ + rdf:type sh:ValidationResult ; + sh:focusNode ex:InvalidInstance1 ; + sh:resultPath ex:first ; + sh:resultSeverity sh:Violation ; + sh:sourceConstraintComponent sh:LessThanConstraintComponent ; + sh:sourceShape ex:TestShape-first ; + sh:value 1 ; + ] ; + sh:result [ + rdf:type sh:ValidationResult ; + sh:focusNode ex:InvalidInstance1 ; + sh:resultPath ex:first ; + sh:resultSeverity sh:Violation ; + sh:sourceConstraintComponent sh:LessThanConstraintComponent ; + sh:sourceShape ex:TestShape-first ; + sh:value 2 ; + ] ; + sh:result [ + rdf:type sh:ValidationResult ; + sh:focusNode ex:InvalidInstance1 ; + sh:resultPath ex:first ; + sh:resultSeverity sh:Violation ; + sh:sourceConstraintComponent sh:LessThanConstraintComponent ; + sh:sourceShape ex:TestShape-first ; + sh:value 2 ; + ] ; + ] ; + mf:status sht:approved ; +. diff --git a/corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/core/property/lessThanOrEquals-001.ttl b/corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/core/property/lessThanOrEquals-001.ttl new file mode 100644 index 0000000000..c1ac111cc1 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/core/property/lessThanOrEquals-001.ttl @@ -0,0 +1,87 @@ +@prefix dash: . +@prefix ex: . +@prefix mf: . +@prefix owl: . +@prefix rdf: . +@prefix rdfs: . +@prefix sh: . +@prefix sht: . +@prefix xsd: . + +ex:InvalidResource1 + ex:property1 5 ; + ex:property2 4 ; +. +ex:InvalidResource2 + ex:property1 4 ; + ex:property1 6 ; + ex:property2 5 ; +. +ex:TestShape + rdf:type sh:NodeShape ; + sh:property ex:TestShape-property1 ; + sh:targetNode ex:InvalidResource1 ; + sh:targetNode ex:InvalidResource2 ; + sh:targetNode ex:ValidResource1 ; + sh:targetNode ex:ValidResource2 ; + sh:targetNode ex:ValidResource3 ; +. +ex:TestShape-property1 + sh:path ex:property1 ; + sh:lessThanOrEquals ex:property2 ; +. +ex:ValidResource1 + ex:property1 4 ; + ex:property2 6 ; +. +ex:ValidResource2 + ex:property1 3.1 ; + ex:property1 3.2 ; +. +ex:ValidResource3 + ex:property1 5 ; + ex:property2 5 ; +. +ex:property1 + rdf:type rdf:Property ; +. +ex:property2 + rdf:type rdf:Property ; +. +<> + rdf:type mf:Manifest ; + mf:entries ( + + ) ; +. + + rdf:type sht:Validate ; + rdfs:label "Test of sh:lessThanOrEquals at property shape 001" ; + mf:action [ + sht:dataGraph <> ; + sht:shapesGraph <> ; + ] ; + mf:result [ + rdf:type sh:ValidationReport ; + sh:conforms "false"^^xsd:boolean ; + sh:result [ + rdf:type sh:ValidationResult ; + sh:focusNode ex:InvalidResource1 ; + sh:resultPath ex:property1 ; + sh:resultSeverity sh:Violation ; + sh:sourceConstraintComponent sh:LessThanOrEqualsConstraintComponent ; + sh:sourceShape ex:TestShape-property1 ; + sh:value 5 ; + ] ; + sh:result [ + rdf:type sh:ValidationResult ; + sh:focusNode ex:InvalidResource2 ; + sh:resultPath ex:property1 ; + sh:resultSeverity sh:Violation ; + sh:sourceConstraintComponent sh:LessThanOrEqualsConstraintComponent ; + sh:sourceShape ex:TestShape-property1 ; + sh:value 6 ; + ] ; + ] ; + mf:status sht:approved ; +. diff --git a/corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/core/property/manifest.ttl b/corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/core/property/manifest.ttl new file mode 100644 index 0000000000..034d253791 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/core/property/manifest.ttl @@ -0,0 +1,46 @@ +@prefix mf: . +@prefix rdfs: . +@prefix sht: . + +<> + a mf:Manifest ; + rdfs:label "Tests converted from http://datashapes.org/sh/tests/tests/core/property" ; + mf:include ; + mf:include ; + mf:include ; + mf:include ; + mf:include ; + mf:include ; + mf:include ; + mf:include ; + mf:include ; + mf:include ; + mf:include ; + mf:include ; + mf:include ; + mf:include ; + mf:include ; + mf:include ; + mf:include ; + mf:include ; + mf:include ; + mf:include ; + mf:include ; + mf:include ; + mf:include ; + mf:include ; + mf:include ; + mf:include ; + mf:include ; + mf:include ; + mf:include ; + mf:include ; + mf:include ; + mf:include ; + mf:include ; + mf:include ; + mf:include ; + mf:include ; + mf:include ; + mf:include ; + . \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/core/property/maxCount-001.ttl b/corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/core/property/maxCount-001.ttl new file mode 100644 index 0000000000..52653dec96 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/core/property/maxCount-001.ttl @@ -0,0 +1,64 @@ +@prefix dash: . +@prefix ex: . +@prefix mf: . +@prefix owl: . +@prefix rdf: . +@prefix rdfs: . +@prefix sh: . +@prefix sht: . +@prefix xsd: . + +ex:InvalidPerson + rdf:type ex:Person ; + ex:firstName "George" ; + ex:firstName "John" ; + rdfs:label "Invalid person" ; +. +ex:Person + rdf:type rdfs:Class ; + rdfs:label "Person" ; + rdfs:subClassOf rdfs:Resource ; +. +ex:PersonShape + rdf:type sh:NodeShape ; + sh:property ex:PersonShape-firstName ; + sh:targetClass ex:Person ; + sh:targetNode ex:ValidResource ; +. +ex:PersonShape-firstName + sh:path ex:firstName ; + sh:datatype xsd:string ; + sh:maxCount 1 ; +. +ex:ValidResource + rdf:type ex:Person ; + ex:firstName "John" ; + rdfs:label "Valid resource" ; +. +<> + rdf:type mf:Manifest ; + mf:entries ( + + ) ; +. + + rdf:type sht:Validate ; + rdfs:label "Test of sh:maxCount at property shape 001" ; + mf:action [ + sht:dataGraph <> ; + sht:shapesGraph <> ; + ] ; + mf:result [ + rdf:type sh:ValidationReport ; + sh:conforms "false"^^xsd:boolean ; + sh:result [ + rdf:type sh:ValidationResult ; + sh:focusNode ex:InvalidPerson ; + sh:resultPath ex:firstName ; + sh:resultSeverity sh:Violation ; + sh:sourceConstraintComponent sh:MaxCountConstraintComponent ; + sh:sourceShape ex:PersonShape-firstName ; + ] ; + ] ; + mf:status sht:approved ; +. diff --git a/corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/core/property/maxCount-002.ttl b/corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/core/property/maxCount-002.ttl new file mode 100644 index 0000000000..23d82a07a7 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/core/property/maxCount-002.ttl @@ -0,0 +1,57 @@ +@prefix dash: . +@prefix ex: . +@prefix mf: . +@prefix owl: . +@prefix rdf: . +@prefix rdfs: . +@prefix sh: . +@prefix sht: . +@prefix xsd: . + +ex:InvalidResource + rdf:type rdfs:Resource ; + rdfs:label "Invalid resource" ; + owl:versionInfo "1.0" ; +. +ex:TestShape + rdf:type sh:NodeShape ; + rdfs:label "Test shape" ; + sh:property ex:TestShape-versionInfo ; + sh:targetNode ex:InvalidResource ; + sh:targetNode ex:ValidResource ; +. +ex:TestShape-versionInfo + sh:path owl:versionInfo ; + sh:maxCount 0 ; +. +ex:ValidResource + rdf:type rdfs:Resource ; + rdfs:label "Valid resource" ; +. +<> + rdf:type mf:Manifest ; + mf:entries ( + + ) ; +. + + rdf:type sht:Validate ; + rdfs:label "Test of sh:maxCount at property shape 002" ; + mf:action [ + sht:dataGraph <> ; + sht:shapesGraph <> ; + ] ; + mf:result [ + rdf:type sh:ValidationReport ; + sh:conforms "false"^^xsd:boolean ; + sh:result [ + rdf:type sh:ValidationResult ; + sh:focusNode ex:InvalidResource ; + sh:resultPath owl:versionInfo ; + sh:resultSeverity sh:Violation ; + sh:sourceConstraintComponent sh:MaxCountConstraintComponent ; + sh:sourceShape ex:TestShape-versionInfo ; + ] ; + ] ; + mf:status sht:approved ; +. diff --git a/corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/core/property/maxExclusive-001.ttl b/corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/core/property/maxExclusive-001.ttl new file mode 100644 index 0000000000..47566a8fa1 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/core/property/maxExclusive-001.ttl @@ -0,0 +1,84 @@ +@prefix dash: . +@prefix ex: . +@prefix mf: . +@prefix owl: . +@prefix rdf: . +@prefix rdfs: . +@prefix sh: . +@prefix sht: . +@prefix xsd: . + +ex:InvalidResource1 + ex:property 1 ; +. +ex:InvalidResource2 + ex:property 2 ; +. +ex:InvalidResource3 + ex:property "a" ; +. +ex:TestShape + rdf:type sh:NodeShape ; + sh:property ex:TestShape-property ; + sh:targetNode ex:InvalidResource1 ; + sh:targetNode ex:InvalidResource2 ; + sh:targetNode ex:InvalidResource3 ; + sh:targetNode ex:ValidResource1 ; + sh:targetNode ex:ValidResource2 ; +. +ex:TestShape-property + sh:path ex:property ; + sh:maxExclusive 1 ; +. +ex:ValidResource1 + ex:property 0 ; +. +ex:ValidResource2 + ex:property -1 ; +. +<> + rdf:type mf:Manifest ; + mf:entries ( + + ) ; +. + + rdf:type sht:Validate ; + rdfs:label "Test of sh:maxExclusive at property shape 001" ; + mf:action [ + sht:dataGraph <> ; + sht:shapesGraph <> ; + ] ; + mf:result [ + rdf:type sh:ValidationReport ; + sh:conforms "false"^^xsd:boolean ; + sh:result [ + rdf:type sh:ValidationResult ; + sh:focusNode ex:InvalidResource1 ; + sh:resultPath ex:property ; + sh:resultSeverity sh:Violation ; + sh:sourceConstraintComponent sh:MaxExclusiveConstraintComponent ; + sh:sourceShape ex:TestShape-property ; + sh:value 1 ; + ] ; + sh:result [ + rdf:type sh:ValidationResult ; + sh:focusNode ex:InvalidResource2 ; + sh:resultPath ex:property ; + sh:resultSeverity sh:Violation ; + sh:sourceConstraintComponent sh:MaxExclusiveConstraintComponent ; + sh:sourceShape ex:TestShape-property ; + sh:value 2 ; + ] ; + sh:result [ + rdf:type sh:ValidationResult ; + sh:focusNode ex:InvalidResource3 ; + sh:resultPath ex:property ; + sh:resultSeverity sh:Violation ; + sh:sourceConstraintComponent sh:MaxExclusiveConstraintComponent ; + sh:sourceShape ex:TestShape-property ; + sh:value "a" ; + ] ; + ] ; + mf:status sht:approved ; +. diff --git a/corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/core/property/maxInclusive-001.ttl b/corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/core/property/maxInclusive-001.ttl new file mode 100644 index 0000000000..2c5077f074 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/core/property/maxInclusive-001.ttl @@ -0,0 +1,71 @@ +@prefix dash: . +@prefix ex: . +@prefix mf: . +@prefix owl: . +@prefix rdf: . +@prefix rdfs: . +@prefix sh: . +@prefix sht: . +@prefix xsd: . + +ex:InvalidResource1 + ex:property 2 ; +. +ex:InvalidResource2 + ex:property "a" ; +. +ex:TestShape + rdf:type sh:NodeShape ; + sh:property ex:TestShape-property ; + sh:targetNode ex:InvalidResource1 ; + sh:targetNode ex:InvalidResource2 ; + sh:targetNode ex:ValidResource1 ; + sh:targetNode ex:ValidResource2 ; +. +ex:TestShape-property + sh:path ex:property ; + sh:maxInclusive 1 ; +. +ex:ValidResource1 + ex:property 0 ; +. +ex:ValidResource2 + ex:property 1 ; +. +<> + rdf:type mf:Manifest ; + mf:entries ( + + ) ; +. + + rdf:type sht:Validate ; + rdfs:label "Test of sh:maxInclusive at property shape 001" ; + mf:action [ + sht:dataGraph <> ; + sht:shapesGraph <> ; + ] ; + mf:result [ + rdf:type sh:ValidationReport ; + sh:conforms "false"^^xsd:boolean ; + sh:result [ + rdf:type sh:ValidationResult ; + sh:focusNode ex:InvalidResource1 ; + sh:resultPath ex:property ; + sh:resultSeverity sh:Violation ; + sh:sourceConstraintComponent sh:MaxInclusiveConstraintComponent ; + sh:sourceShape ex:TestShape-property ; + sh:value 2 ; + ] ; + sh:result [ + rdf:type sh:ValidationResult ; + sh:focusNode ex:InvalidResource2 ; + sh:resultPath ex:property ; + sh:resultSeverity sh:Violation ; + sh:sourceConstraintComponent sh:MaxInclusiveConstraintComponent ; + sh:sourceShape ex:TestShape-property ; + sh:value "a" ; + ] ; + ] ; + mf:status sht:approved ; +. diff --git a/corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/core/property/maxLength-001.ttl b/corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/core/property/maxLength-001.ttl new file mode 100644 index 0000000000..b6d4b48ff4 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/core/property/maxLength-001.ttl @@ -0,0 +1,61 @@ +@prefix dash: . +@prefix ex: . +@prefix mf: . +@prefix owl: . +@prefix rdf: . +@prefix rdfs: . +@prefix sh: . +@prefix sht: . +@prefix xsd: . + +ex:InvalidInstance1 + rdf:type ex:TestShape ; + ex:testProperty "ABC" ; +. +ex:TestShape + rdf:type rdfs:Class ; + rdf:type sh:NodeShape ; + rdfs:label "Test shape" ; + sh:property ex:TestShape-testProperty ; +. +ex:TestShape-testProperty + sh:path ex:testProperty ; + sh:datatype xsd:string ; + sh:maxLength 2 ; +. +ex:ValidInstance1 + rdf:type ex:TestShape ; + ex:testProperty "A" ; + ex:testProperty "AB" ; +. +ex:ValidInstance2 + rdf:type ex:TestShape ; +. +<> + rdf:type mf:Manifest ; + mf:entries ( + + ) ; +. + + rdf:type sht:Validate ; + rdfs:label "Test of sh:maxLength at property shape 001" ; + mf:action [ + sht:dataGraph <> ; + sht:shapesGraph <> ; + ] ; + mf:result [ + rdf:type sh:ValidationReport ; + sh:conforms "false"^^xsd:boolean ; + sh:result [ + rdf:type sh:ValidationResult ; + sh:focusNode ex:InvalidInstance1 ; + sh:resultPath ex:testProperty ; + sh:resultSeverity sh:Violation ; + sh:sourceConstraintComponent sh:MaxLengthConstraintComponent ; + sh:sourceShape ex:TestShape-testProperty ; + sh:value "ABC" ; + ] ; + ] ; + mf:status sht:approved ; +. diff --git a/corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/core/property/minCount-001.ttl b/corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/core/property/minCount-001.ttl new file mode 100644 index 0000000000..680f9c4b87 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/core/property/minCount-001.ttl @@ -0,0 +1,62 @@ +@prefix dash: . +@prefix ex: . +@prefix mf: . +@prefix owl: . +@prefix rdf: . +@prefix rdfs: . +@prefix sh: . +@prefix sht: . +@prefix xsd: . + +ex:InvalidPerson + rdf:type ex:Person ; + rdfs:label "Invalid person" ; +. +ex:Person + rdf:type rdfs:Class ; + rdfs:label "Person" ; + rdfs:subClassOf rdfs:Resource ; +. +ex:PersonShape + rdf:type sh:NodeShape ; + sh:property ex:PersonShape-firstName ; + sh:targetClass ex:Person ; + sh:targetNode ex:ValidResource ; +. +ex:PersonShape-firstName + sh:path ex:firstName ; + sh:datatype xsd:string ; + sh:minCount 1 ; +. +ex:ValidResource + rdf:type ex:Person ; + ex:firstName "John" ; + rdfs:label "Valid resource" ; +. +<> + rdf:type mf:Manifest ; + mf:entries ( + + ) ; +. + + rdf:type sht:Validate ; + rdfs:label "Test of sh:minCount at property shape 001" ; + mf:action [ + sht:dataGraph <> ; + sht:shapesGraph <> ; + ] ; + mf:result [ + rdf:type sh:ValidationReport ; + sh:conforms "false"^^xsd:boolean ; + sh:result [ + rdf:type sh:ValidationResult ; + sh:focusNode ex:InvalidPerson ; + sh:resultPath ex:firstName ; + sh:resultSeverity sh:Violation ; + sh:sourceConstraintComponent sh:MinCountConstraintComponent ; + sh:sourceShape ex:PersonShape-firstName ; + ] ; + ] ; + mf:status sht:approved ; +. diff --git a/corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/core/property/minCount-002.ttl b/corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/core/property/minCount-002.ttl new file mode 100644 index 0000000000..d4b4f13b2c --- /dev/null +++ b/corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/core/property/minCount-002.ttl @@ -0,0 +1,41 @@ +@prefix dash: . +@prefix ex: . +@prefix mf: . +@prefix owl: . +@prefix rdf: . +@prefix rdfs: . +@prefix sh: . +@prefix sht: . +@prefix xsd: . + +ex:TestShape + rdf:type sh:NodeShape ; + sh:property [ + sh:path ex:property ; + sh:minCount 0 ; + sh:name "property" ; + ] ; + sh:targetNode ex:ValidResource1 ; +. +ex:ValidResource1 + rdf:type rdfs:Resource ; +. +<> + rdf:type mf:Manifest ; + mf:entries ( + + ) ; +. + + rdf:type sht:Validate ; + rdfs:label "Test of sh:minCount at property shape 001" ; + mf:action [ + sht:dataGraph <> ; + sht:shapesGraph <> ; + ] ; + mf:result [ + rdf:type sh:ValidationReport ; + sh:conforms "true"^^xsd:boolean ; + ] ; + mf:status sht:approved ; +. diff --git a/corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/core/property/minExclusive-001.ttl b/corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/core/property/minExclusive-001.ttl new file mode 100644 index 0000000000..8c99b43b63 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/core/property/minExclusive-001.ttl @@ -0,0 +1,69 @@ +@prefix dash: . +@prefix ex: . +@prefix mf: . +@prefix owl: . +@prefix rdf: . +@prefix rdfs: . +@prefix sh: . +@prefix sht: . +@prefix xsd: . + +ex:InvalidInstance1 + rdf:type ex:TestShape ; + ex:testProperty 40 ; +. +ex:InvalidInstance2 + rdf:type ex:TestShape ; + ex:testProperty 39 ; +. +ex:TestShape + rdf:type rdfs:Class ; + rdf:type sh:NodeShape ; + rdfs:label "Test shape" ; + sh:property ex:TestShape-testProperty ; +. +ex:TestShape-testProperty + sh:path ex:testProperty ; + sh:minExclusive 40 ; +. +ex:ValidInstance1 + rdf:type ex:TestShape ; + ex:testProperty 42 ; +. +<> + rdf:type mf:Manifest ; + mf:entries ( + + ) ; +. + + rdf:type sht:Validate ; + rdfs:label "Test of sh:minExclusive at property shape 001" ; + mf:action [ + sht:dataGraph <> ; + sht:shapesGraph <> ; + ] ; + mf:result [ + rdf:type sh:ValidationReport ; + sh:conforms "false"^^xsd:boolean ; + sh:result [ + rdf:type sh:ValidationResult ; + sh:focusNode ex:InvalidInstance1 ; + sh:resultPath ex:testProperty ; + sh:resultSeverity sh:Violation ; + sh:sourceConstraintComponent sh:MinExclusiveConstraintComponent ; + sh:sourceShape ex:TestShape-testProperty ; + sh:value 40 ; + ] ; + sh:result [ + rdf:type sh:ValidationResult ; + sh:focusNode ex:InvalidInstance2 ; + sh:resultPath ex:testProperty ; + sh:resultSeverity sh:Violation ; + sh:sourceConstraintComponent sh:MinExclusiveConstraintComponent ; + sh:sourceShape ex:TestShape-testProperty ; + sh:value 39 ; + ] ; + ] ; + mf:status sht:approved ; +. diff --git a/corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/core/property/minExclusive-002.ttl b/corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/core/property/minExclusive-002.ttl new file mode 100644 index 0000000000..2612e16615 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/core/property/minExclusive-002.ttl @@ -0,0 +1,65 @@ +@prefix dash: . +@prefix ex: . +@prefix mf: . +@prefix owl: . +@prefix rdf: . +@prefix rdfs: . +@prefix sh: . +@prefix sht: . +@prefix xsd: . + +ex:InvalidInstance1 + rdf:type ex:TestShape ; + ex:testProperty "A string" ; +. +ex:InvalidInstance2 + rdf:type ex:TestShape ; + ex:testProperty rdfs:Resource ; +. +ex:TestShape + rdf:type rdfs:Class ; + rdf:type sh:NodeShape ; + rdfs:label "Test shape" ; + sh:property ex:TestShape-testProperty ; +. +ex:TestShape-testProperty + sh:path ex:testProperty ; + sh:minExclusive 40 ; +. +<> + rdf:type mf:Manifest ; + mf:entries ( + + ) ; +. + + rdf:type sht:Validate ; + rdfs:label "Test of sh:minExclusive at property shape 002" ; + mf:action [ + sht:dataGraph <> ; + sht:shapesGraph <> ; + ] ; + mf:result [ + rdf:type sh:ValidationReport ; + sh:conforms "false"^^xsd:boolean ; + sh:result [ + rdf:type sh:ValidationResult ; + sh:focusNode ex:InvalidInstance1 ; + sh:resultPath ex:testProperty ; + sh:resultSeverity sh:Violation ; + sh:sourceConstraintComponent sh:MinExclusiveConstraintComponent ; + sh:sourceShape ex:TestShape-testProperty ; + sh:value "A string" ; + ] ; + sh:result [ + rdf:type sh:ValidationResult ; + sh:focusNode ex:InvalidInstance2 ; + sh:resultPath ex:testProperty ; + sh:resultSeverity sh:Violation ; + sh:sourceConstraintComponent sh:MinExclusiveConstraintComponent ; + sh:sourceShape ex:TestShape-testProperty ; + sh:value rdfs:Resource ; + ] ; + ] ; + mf:status sht:approved ; +. diff --git a/corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/core/property/minLength-001.ttl b/corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/core/property/minLength-001.ttl new file mode 100644 index 0000000000..06f286e2ee --- /dev/null +++ b/corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/core/property/minLength-001.ttl @@ -0,0 +1,61 @@ +@prefix dash: . +@prefix ex: . +@prefix mf: . +@prefix owl: . +@prefix rdf: . +@prefix rdfs: . +@prefix sh: . +@prefix sht: . +@prefix xsd: . + +ex:InvalidInstance1 + rdf:type ex:TestShape ; + ex:testProperty "A" ; +. +ex:TestShape + rdf:type rdfs:Class ; + rdf:type sh:NodeShape ; + rdfs:label "Test shape" ; + sh:property ex:TestShape-testProperty ; +. +ex:TestShape-testProperty + sh:path ex:testProperty ; + sh:datatype xsd:string ; + sh:minLength 2 ; +. +ex:ValidInstance1 + rdf:type ex:TestShape ; + ex:testProperty "AB" ; + ex:testProperty "ABC" ; +. +ex:ValidInstance2 + rdf:type ex:TestShape ; +. +<> + rdf:type mf:Manifest ; + mf:entries ( + + ) ; +. + + rdf:type sht:Validate ; + rdfs:label "Test of sh:minLength at property shape 001" ; + mf:action [ + sht:dataGraph <> ; + sht:shapesGraph <> ; + ] ; + mf:result [ + rdf:type sh:ValidationReport ; + sh:conforms "false"^^xsd:boolean ; + sh:result [ + rdf:type sh:ValidationResult ; + sh:focusNode ex:InvalidInstance1 ; + sh:resultPath ex:testProperty ; + sh:resultSeverity sh:Violation ; + sh:sourceConstraintComponent sh:MinLengthConstraintComponent ; + sh:sourceShape ex:TestShape-testProperty ; + sh:value "A" ; + ] ; + ] ; + mf:status sht:approved ; +. diff --git a/corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/core/property/node-001.ttl b/corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/core/property/node-001.ttl new file mode 100644 index 0000000000..2245930bac --- /dev/null +++ b/corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/core/property/node-001.ttl @@ -0,0 +1,113 @@ +@prefix dash: . +@prefix ex: . +@prefix mf: . +@prefix owl: . +@prefix rdf: . +@prefix rdfs: . +@prefix sh: . +@prefix sht: . +@prefix xsd: . + +ex:Anon + rdf:type ex:Person ; + ex:firstName "Anon" ; +. +ex:Issue + rdf:type rdfs:Class ; + rdf:type sh:NodeShape ; + rdfs:label "Issue" ; + rdfs:subClassOf rdfs:Resource ; + sh:property ex:Issue-assignedTo ; + sh:property ex:Issue-submittedBy ; +. +ex:Issue-assignedTo + sh:path ex:assignedTo ; + sh:class ex:Person ; + sh:node [ + rdfs:comment "All assignees must have an email and a last name." ; + sh:property [ + sh:path ex:email ; + sh:maxCount 1 ; + sh:minCount 1 ; + ] ; + sh:property [ + sh:path ex:lastName ; + sh:maxCount 1 ; + sh:minCount 1 ; + ] ; + ] ; +. +ex:Issue-submittedBy + sh:path ex:submittedBy ; + sh:class ex:Person ; + sh:minCount 1 ; +. +ex:Issue_1 + rdf:type ex:Issue ; + ex:assignedTo ex:Anon ; + ex:submittedBy ex:Anon ; + rdfs:label "Issue 1" ; +. +ex:Issue_2 + rdf:type ex:Issue ; + ex:assignedTo ex:JohnDoeWithEmail ; + ex:submittedBy ex:Anon ; + rdfs:label "Issue 2" ; +. +ex:JohnDoeWithEmail + rdf:type ex:Person ; + ex:email "john@doe.com" ; + ex:firstName "John" ; + ex:lastName "Doe" ; +. +ex:Person + rdf:type rdfs:Class ; + rdf:type sh:NodeShape ; + rdfs:label "Person" ; + rdfs:subClassOf rdfs:Resource ; + sh:property [ + sh:path ex:email ; + ex:datatype xsd:string ; + rdfs:label "email" ; + ] ; + sh:property [ + sh:path ex:firstName ; + rdfs:label "first name" ; + sh:datatype xsd:string ; + sh:maxCount 1 ; + sh:minCount 1 ; + ] ; + sh:property [ + sh:path ex:lastName ; + rdfs:label "last name" ; + sh:datatype xsd:string ; + ] ; +. +<> + rdf:type mf:Manifest ; + mf:entries ( + + ) ; +. + + rdf:type sht:Validate ; + rdfs:label "Test of sh:node at property shape 001" ; + mf:action [ + sht:dataGraph <> ; + sht:shapesGraph <> ; + ] ; + mf:result [ + rdf:type sh:ValidationReport ; + sh:conforms "false"^^xsd:boolean ; + sh:result [ + rdf:type sh:ValidationResult ; + sh:focusNode ex:Issue_1 ; + sh:resultPath ex:assignedTo ; + sh:resultSeverity sh:Violation ; + sh:sourceConstraintComponent sh:NodeConstraintComponent ; + sh:sourceShape ex:Issue-assignedTo ; + sh:value ex:Anon ; + ] ; + ] ; + mf:status sht:approved ; +. diff --git a/corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/core/property/node-002.ttl b/corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/core/property/node-002.ttl new file mode 100644 index 0000000000..f028f57fd4 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/core/property/node-002.ttl @@ -0,0 +1,75 @@ +@prefix dash: . +@prefix ex: . +@prefix mf: . +@prefix owl: . +@prefix rdf: . +@prefix rdfs: . +@prefix sh: . +@prefix sht: . +@prefix xsd: . + +ex:AddressShape + rdf:type sh:NodeShape ; + sh:property ex:AddressShape-postalCode ; +. +ex:AddressShape-postalCode + sh:path ex:postalCode ; + sh:datatype xsd:string ; + sh:maxCount 1 ; +. +ex:Bob + rdf:type ex:Person ; + ex:address ex:BobsAddress ; +. +ex:BobsAddress + ex:postalCode "1234" ; +. +ex:Person + rdf:type rdfs:Class ; + rdfs:label "Person" ; +. +ex:PersonShape + rdf:type sh:NodeShape ; + sh:property ex:PersonShape-address ; + sh:targetClass ex:Person ; +. +ex:PersonShape-address + sh:path ex:address ; + sh:minCount 1 ; + sh:node ex:AddressShape ; +. +ex:Reto + rdf:type ex:Person ; + ex:address ex:RetosAddress ; +. +ex:RetosAddress + ex:postalCode 5678 ; +. +<> + rdf:type mf:Manifest ; + mf:entries ( + + ) ; +. + + rdf:type sht:Validate ; + rdfs:label "Test of sh:node at property shape 002" ; + mf:action [ + sht:dataGraph <> ; + sht:shapesGraph <> ; + ] ; + mf:result [ + rdf:type sh:ValidationReport ; + sh:conforms "false"^^xsd:boolean ; + sh:result [ + rdf:type sh:ValidationResult ; + sh:focusNode ex:Reto ; + sh:resultPath ex:address ; + sh:resultSeverity sh:Violation ; + sh:sourceConstraintComponent sh:NodeConstraintComponent ; + sh:sourceShape ex:PersonShape-address ; + sh:value ex:RetosAddress ; + ] ; + ] ; + mf:status sht:approved ; +. diff --git a/corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/core/property/nodeKind-001.ttl b/corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/core/property/nodeKind-001.ttl new file mode 100644 index 0000000000..d40515d0ee --- /dev/null +++ b/corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/core/property/nodeKind-001.ttl @@ -0,0 +1,371 @@ +@prefix dash: . +@prefix ex: . +@prefix mf: . +@prefix owl: . +@prefix rdf: . +@prefix rdfs: . +@prefix sh: . +@prefix sht: . +@prefix xsd: . + +ex:InstanceWithBlankNode + rdf:type ex:MyClass ; + ex:myProperty _:b55454 ; +. +ex:InstanceWithBlankNodeAndIRI + rdf:type ex:MyClass ; + ex:myProperty rdfs:Class ; + ex:myProperty _:b67098 ; +. +ex:InstanceWithBlankNodeAndLiteral + rdf:type ex:MyClass ; + ex:myProperty "Literal" ; + ex:myProperty _:b99026 ; +. +ex:InstanceWithIRI + rdf:type ex:MyClass ; + ex:myProperty rdfs:Class ; +. +ex:InstanceWithIRIAndLiteral + rdf:type ex:MyClass ; + ex:myProperty rdfs:Class ; + ex:myProperty "Literal" ; +. +ex:InstanceWithLiteral + rdf:type ex:MyClass ; + ex:myProperty "Literal" ; +. +ex:MyClass + rdf:type rdfs:Class ; + rdfs:label "My class" ; +. +ex:ShapeWithBlankNode + rdf:type sh:NodeShape ; + sh:property _:b38619 ; + sh:targetClass ex:MyClass ; +. +ex:ShapeWithBlankNodeOrIRI + rdf:type sh:NodeShape ; + sh:property _:b3078 ; + sh:targetClass ex:MyClass ; +. +ex:ShapeWithBlankNodeOrLiteral + rdf:type sh:NodeShape ; + sh:property _:b14975 ; + sh:targetClass ex:MyClass ; +. +ex:ShapeWithIRI + rdf:type sh:NodeShape ; + sh:property _:b97614 ; + sh:targetClass ex:MyClass ; +. +ex:ShapeWithIRIOrLiteral + rdf:type sh:NodeShape ; + sh:property _:b97860 ; + sh:targetClass ex:MyClass ; +. +ex:ShapeWithLiteral + rdf:type sh:NodeShape ; + sh:property _:b79526 ; + sh:targetClass ex:MyClass ; +. +ex:myProperty + rdf:type rdf:Property ; + rdfs:domain ex:MyClass ; + rdfs:label "my property" ; +. +<> + rdf:type mf:Manifest ; + mf:entries ( + + ) ; +. + + rdf:type sht:Validate ; + rdfs:label "Test of sh:nodeKind at property shape 001" ; + mf:action [ + sht:dataGraph <> ; + sht:shapesGraph <> ; + ] ; + mf:result [ + rdf:type sh:ValidationReport ; + sh:conforms "false"^^xsd:boolean ; + sh:result [ + rdf:type sh:ValidationResult ; + sh:focusNode ex:InstanceWithBlankNode ; + sh:resultPath ex:myProperty ; + sh:resultSeverity sh:Violation ; + sh:sourceConstraintComponent sh:NodeKindConstraintComponent ; + sh:sourceShape _:b79526 ; + sh:value _:b55454 ; + ] ; + sh:result [ + rdf:type sh:ValidationResult ; + sh:focusNode ex:InstanceWithBlankNode ; + sh:resultPath ex:myProperty ; + sh:resultSeverity sh:Violation ; + sh:sourceConstraintComponent sh:NodeKindConstraintComponent ; + sh:sourceShape _:b97614 ; + sh:value _:b55454 ; + ] ; + sh:result [ + rdf:type sh:ValidationResult ; + sh:focusNode ex:InstanceWithBlankNode ; + sh:resultPath ex:myProperty ; + sh:resultSeverity sh:Violation ; + sh:sourceConstraintComponent sh:NodeKindConstraintComponent ; + sh:sourceShape _:b97860 ; + sh:value _:b55454 ; + ] ; + sh:result [ + rdf:type sh:ValidationResult ; + sh:focusNode ex:InstanceWithBlankNodeAndIRI ; + sh:resultPath ex:myProperty ; + sh:resultSeverity sh:Violation ; + sh:sourceConstraintComponent sh:NodeKindConstraintComponent ; + sh:sourceShape _:b14975 ; + sh:value rdfs:Class ; + ] ; + sh:result [ + rdf:type sh:ValidationResult ; + sh:focusNode ex:InstanceWithBlankNodeAndIRI ; + sh:resultPath ex:myProperty ; + sh:resultSeverity sh:Violation ; + sh:sourceConstraintComponent sh:NodeKindConstraintComponent ; + sh:sourceShape _:b38619 ; + sh:value rdfs:Class ; + ] ; + sh:result [ + rdf:type sh:ValidationResult ; + sh:focusNode ex:InstanceWithBlankNodeAndIRI ; + sh:resultPath ex:myProperty ; + sh:resultSeverity sh:Violation ; + sh:sourceConstraintComponent sh:NodeKindConstraintComponent ; + sh:sourceShape _:b79526 ; + sh:value rdfs:Class ; + ] ; + sh:result [ + rdf:type sh:ValidationResult ; + sh:focusNode ex:InstanceWithBlankNodeAndIRI ; + sh:resultPath ex:myProperty ; + sh:resultSeverity sh:Violation ; + sh:sourceConstraintComponent sh:NodeKindConstraintComponent ; + sh:sourceShape _:b79526 ; + sh:value _:b67098 ; + ] ; + sh:result [ + rdf:type sh:ValidationResult ; + sh:focusNode ex:InstanceWithBlankNodeAndIRI ; + sh:resultPath ex:myProperty ; + sh:resultSeverity sh:Violation ; + sh:sourceConstraintComponent sh:NodeKindConstraintComponent ; + sh:sourceShape _:b97614 ; + sh:value _:b67098 ; + ] ; + sh:result [ + rdf:type sh:ValidationResult ; + sh:focusNode ex:InstanceWithBlankNodeAndIRI ; + sh:resultPath ex:myProperty ; + sh:resultSeverity sh:Violation ; + sh:sourceConstraintComponent sh:NodeKindConstraintComponent ; + sh:sourceShape _:b97860 ; + sh:value _:b67098 ; + ] ; + sh:result [ + rdf:type sh:ValidationResult ; + sh:focusNode ex:InstanceWithBlankNodeAndLiteral ; + sh:resultPath ex:myProperty ; + sh:resultSeverity sh:Violation ; + sh:sourceConstraintComponent sh:NodeKindConstraintComponent ; + sh:sourceShape _:b3078 ; + sh:value "Literal" ; + ] ; + sh:result [ + rdf:type sh:ValidationResult ; + sh:focusNode ex:InstanceWithBlankNodeAndLiteral ; + sh:resultPath ex:myProperty ; + sh:resultSeverity sh:Violation ; + sh:sourceConstraintComponent sh:NodeKindConstraintComponent ; + sh:sourceShape _:b38619 ; + sh:value "Literal" ; + ] ; + sh:result [ + rdf:type sh:ValidationResult ; + sh:focusNode ex:InstanceWithBlankNodeAndLiteral ; + sh:resultPath ex:myProperty ; + sh:resultSeverity sh:Violation ; + sh:sourceConstraintComponent sh:NodeKindConstraintComponent ; + sh:sourceShape _:b79526 ; + sh:value _:b99026 ; + ] ; + sh:result [ + rdf:type sh:ValidationResult ; + sh:focusNode ex:InstanceWithBlankNodeAndLiteral ; + sh:resultPath ex:myProperty ; + sh:resultSeverity sh:Violation ; + sh:sourceConstraintComponent sh:NodeKindConstraintComponent ; + sh:sourceShape _:b97614 ; + sh:value "Literal" ; + ] ; + sh:result [ + rdf:type sh:ValidationResult ; + sh:focusNode ex:InstanceWithBlankNodeAndLiteral ; + sh:resultPath ex:myProperty ; + sh:resultSeverity sh:Violation ; + sh:sourceConstraintComponent sh:NodeKindConstraintComponent ; + sh:sourceShape _:b97614 ; + sh:value _:b99026 ; + ] ; + sh:result [ + rdf:type sh:ValidationResult ; + sh:focusNode ex:InstanceWithBlankNodeAndLiteral ; + sh:resultPath ex:myProperty ; + sh:resultSeverity sh:Violation ; + sh:sourceConstraintComponent sh:NodeKindConstraintComponent ; + sh:sourceShape _:b97860 ; + sh:value _:b99026 ; + ] ; + sh:result [ + rdf:type sh:ValidationResult ; + sh:focusNode ex:InstanceWithIRI ; + sh:resultPath ex:myProperty ; + sh:resultSeverity sh:Violation ; + sh:sourceConstraintComponent sh:NodeKindConstraintComponent ; + sh:sourceShape _:b14975 ; + sh:value rdfs:Class ; + ] ; + sh:result [ + rdf:type sh:ValidationResult ; + sh:focusNode ex:InstanceWithIRI ; + sh:resultPath ex:myProperty ; + sh:resultSeverity sh:Violation ; + sh:sourceConstraintComponent sh:NodeKindConstraintComponent ; + sh:sourceShape _:b38619 ; + sh:value rdfs:Class ; + ] ; + sh:result [ + rdf:type sh:ValidationResult ; + sh:focusNode ex:InstanceWithIRI ; + sh:resultPath ex:myProperty ; + sh:resultSeverity sh:Violation ; + sh:sourceConstraintComponent sh:NodeKindConstraintComponent ; + sh:sourceShape _:b79526 ; + sh:value rdfs:Class ; + ] ; + sh:result [ + rdf:type sh:ValidationResult ; + sh:focusNode ex:InstanceWithIRIAndLiteral ; + sh:resultPath ex:myProperty ; + sh:resultSeverity sh:Violation ; + sh:sourceConstraintComponent sh:NodeKindConstraintComponent ; + sh:sourceShape _:b3078 ; + sh:value "Literal" ; + ] ; + sh:result [ + rdf:type sh:ValidationResult ; + sh:focusNode ex:InstanceWithIRIAndLiteral ; + sh:resultPath ex:myProperty ; + sh:resultSeverity sh:Violation ; + sh:sourceConstraintComponent sh:NodeKindConstraintComponent ; + sh:sourceShape _:b14975 ; + sh:value rdfs:Class ; + ] ; + sh:result [ + rdf:type sh:ValidationResult ; + sh:focusNode ex:InstanceWithIRIAndLiteral ; + sh:resultPath ex:myProperty ; + sh:resultSeverity sh:Violation ; + sh:sourceConstraintComponent sh:NodeKindConstraintComponent ; + sh:sourceShape _:b38619 ; + sh:value rdfs:Class ; + ] ; + sh:result [ + rdf:type sh:ValidationResult ; + sh:focusNode ex:InstanceWithIRIAndLiteral ; + sh:resultPath ex:myProperty ; + sh:resultSeverity sh:Violation ; + sh:sourceConstraintComponent sh:NodeKindConstraintComponent ; + sh:sourceShape _:b38619 ; + sh:value "Literal" ; + ] ; + sh:result [ + rdf:type sh:ValidationResult ; + sh:focusNode ex:InstanceWithIRIAndLiteral ; + sh:resultPath ex:myProperty ; + sh:resultSeverity sh:Violation ; + sh:sourceConstraintComponent sh:NodeKindConstraintComponent ; + sh:sourceShape _:b79526 ; + sh:value rdfs:Class ; + ] ; + sh:result [ + rdf:type sh:ValidationResult ; + sh:focusNode ex:InstanceWithIRIAndLiteral ; + sh:resultPath ex:myProperty ; + sh:resultSeverity sh:Violation ; + sh:sourceConstraintComponent sh:NodeKindConstraintComponent ; + sh:sourceShape _:b97614 ; + sh:value "Literal" ; + ] ; + sh:result [ + rdf:type sh:ValidationResult ; + sh:focusNode ex:InstanceWithLiteral ; + sh:resultPath ex:myProperty ; + sh:resultSeverity sh:Violation ; + sh:sourceConstraintComponent sh:NodeKindConstraintComponent ; + sh:sourceShape _:b3078 ; + sh:value "Literal" ; + ] ; + sh:result [ + rdf:type sh:ValidationResult ; + sh:focusNode ex:InstanceWithLiteral ; + sh:resultPath ex:myProperty ; + sh:resultSeverity sh:Violation ; + sh:sourceConstraintComponent sh:NodeKindConstraintComponent ; + sh:sourceShape _:b38619 ; + sh:value "Literal" ; + ] ; + sh:result [ + rdf:type sh:ValidationResult ; + sh:focusNode ex:InstanceWithLiteral ; + sh:resultPath ex:myProperty ; + sh:resultSeverity sh:Violation ; + sh:sourceConstraintComponent sh:NodeKindConstraintComponent ; + sh:sourceShape _:b97614 ; + sh:value "Literal" ; + ] ; + ] ; + mf:status sht:approved ; +. +_:b3078 + sh:path ex:myProperty ; + sh:nodeKind sh:BlankNodeOrIRI ; +. +_:b14975 + sh:path ex:myProperty ; + sh:nodeKind sh:BlankNodeOrLiteral ; +. +_:b38619 + sh:path ex:myProperty ; + sh:nodeKind sh:BlankNode ; +. +_:b55454 + rdf:type rdfs:Resource ; +. +_:b67098 + rdf:type rdfs:Resource ; +. +_:b79526 + sh:path ex:myProperty ; + sh:nodeKind sh:Literal ; +. +_:b97614 + sh:path ex:myProperty ; + sh:nodeKind sh:IRI ; +. +_:b97860 + sh:path ex:myProperty ; + sh:nodeKind sh:IRIOrLiteral ; +. +_:b99026 + rdf:type rdfs:Resource ; +. diff --git a/corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/core/property/not-001.ttl b/corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/core/property/not-001.ttl new file mode 100644 index 0000000000..bad0e6fb1e --- /dev/null +++ b/corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/core/property/not-001.ttl @@ -0,0 +1,68 @@ +@prefix dash: . +@prefix ex: . +@prefix mf: . +@prefix owl: . +@prefix rdf: . +@prefix rdfs: . +@prefix sh: . +@prefix sht: . +@prefix xsd: . + +ex:InvalidResource1 + rdf:type rdfs:Resource ; + ex:property 42 ; + ex:property "Test Valid" ; + rdfs:label "Invalid resource1" ; +. +ex:TestShape + rdf:type sh:NodeShape ; + rdfs:label "Test shape" ; + sh:property ex:TestShape-property ; + sh:targetNode ex:InvalidResource1 ; + sh:targetNode ex:ValidResource1 ; + sh:targetNode ex:ValidResource2 ; +. +ex:TestShape-property + sh:path ex:property ; + sh:not [ + sh:datatype xsd:integer ; + ] ; +. +ex:ValidResource1 + rdf:type rdfs:Resource ; + rdfs:label "Valid resource1" ; +. +ex:ValidResource2 + rdf:type rdfs:Resource ; + ex:property 1.5 ; + ex:property "String" ; + rdfs:label "Valid resource2" ; +. +<> + rdf:type mf:Manifest ; + mf:entries ( + + ) ; +. + + rdf:type sht:Validate ; + rdfs:label "Test of sh:not at property shape 001" ; + mf:action [ + sht:dataGraph <> ; + sht:shapesGraph <> ; + ] ; + mf:result [ + rdf:type sh:ValidationReport ; + sh:conforms "false"^^xsd:boolean ; + sh:result [ + rdf:type sh:ValidationResult ; + sh:focusNode ex:InvalidResource1 ; + sh:resultPath ex:property ; + sh:resultSeverity sh:Violation ; + sh:sourceConstraintComponent sh:NotConstraintComponent ; + sh:sourceShape ex:TestShape-property ; + sh:value 42 ; + ] ; + ] ; + mf:status sht:approved ; +. diff --git a/corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/core/property/or-001.ttl b/corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/core/property/or-001.ttl new file mode 100644 index 0000000000..323ed0f578 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/core/property/or-001.ttl @@ -0,0 +1,76 @@ +@prefix dash: . +@prefix ex: . +@prefix mf: . +@prefix owl: . +@prefix rdf: . +@prefix rdfs: . +@prefix sh: . +@prefix sht: . +@prefix xsd: . + +ex:Address + rdf:type rdfs:Class ; + rdfs:label "Address" ; + rdfs:subClassOf rdfs:Resource ; +. +ex:AddressShape + rdf:type sh:NodeShape ; + rdfs:label "Address shape" ; + sh:property ex:AddressShape-address ; + sh:targetNode ex:InvalidResource1 ; + sh:targetNode ex:ValidResource1 ; + sh:targetNode ex:ValidResource2 ; +. +ex:AddressShape-address + sh:path ex:address ; + sh:or ( + [ + sh:datatype xsd:string ; + ] + [ + sh:class ex:Address ; + ] + ) ; +. +ex:InvalidResource1 + rdf:type rdfs:Resource ; + ex:address "true"^^xsd:boolean ; +. +ex:ValidResource1 + rdf:type rdfs:Resource ; + ex:address "Home" ; +. +ex:ValidResource2 + rdf:type rdfs:Resource ; + ex:address [ + rdf:type ex:Address ; + ] ; +. +<> + rdf:type mf:Manifest ; + mf:entries ( + + ) ; +. + + rdf:type sht:Validate ; + rdfs:label "Test of sh:or at property shape 001" ; + mf:action [ + sht:dataGraph <> ; + sht:shapesGraph <> ; + ] ; + mf:result [ + rdf:type sh:ValidationReport ; + sh:conforms "false"^^xsd:boolean ; + sh:result [ + rdf:type sh:ValidationResult ; + sh:focusNode ex:InvalidResource1 ; + sh:resultPath ex:address ; + sh:resultSeverity sh:Violation ; + sh:sourceConstraintComponent sh:OrConstraintComponent ; + sh:sourceShape ex:AddressShape-address ; + sh:value "true"^^xsd:boolean ; + ] ; + ] ; + mf:status sht:approved ; +. diff --git a/corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/core/property/or-datatypes-001.ttl b/corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/core/property/or-datatypes-001.ttl new file mode 100644 index 0000000000..dc59b42051 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/core/property/or-datatypes-001.ttl @@ -0,0 +1,95 @@ +@prefix dash: . +@prefix ex: . +@prefix mf: . +@prefix owl: . +@prefix rdf: . +@prefix rdfs: . +@prefix sh: . +@prefix sht: . +@prefix xsd: . + +ex:InvalidResource1 + rdf:type rdfs:Resource ; + rdfs:comment owl:Thing ; + rdfs:comment 42 ; + rdfs:comment "A string" ; + rdfs:comment "none"^^xsd:boolean ; + rdfs:label "Invalid resource1" ; +. +ex:TestShape + rdf:type sh:NodeShape ; + rdfs:label "Test shape" ; + sh:property ex:TestShape-comment ; + sh:targetNode ex:InvalidResource1 ; + sh:targetNode ex:ValidResource1 ; +. +ex:TestShape-comment + sh:path rdfs:comment ; + sh:or ( + [ + sh:datatype xsd:string ; + ] + [ + sh:datatype rdf:HTML ; + ] + [ + sh:datatype rdf:langString ; + ] + [ + sh:datatype xsd:boolean ; + ] + ) ; +. +ex:ValidResource1 + rdf:type rdfs:Resource ; + rdfs:comment "
HTML
"^^rdf:HTML ; + rdfs:comment "A language string"@en ; + rdfs:comment "A string" ; + rdfs:label "Valid resource1" ; +. +<> + rdf:type mf:Manifest ; + mf:entries ( + + ) ; +. + + rdf:type sht:Validate ; + rdfs:label "Test of sh:or of sh:datatypes at property shape 001" ; + mf:action [ + sht:dataGraph <> ; + sht:shapesGraph <> ; + ] ; + mf:result [ + rdf:type sh:ValidationReport ; + sh:conforms "false"^^xsd:boolean ; + sh:result [ + rdf:type sh:ValidationResult ; + sh:focusNode ex:InvalidResource1 ; + sh:resultPath rdfs:comment ; + sh:resultSeverity sh:Violation ; + sh:sourceConstraintComponent sh:OrConstraintComponent ; + sh:sourceShape ex:TestShape-comment ; + sh:value owl:Thing ; + ] ; + sh:result [ + rdf:type sh:ValidationResult ; + sh:focusNode ex:InvalidResource1 ; + sh:resultPath rdfs:comment ; + sh:resultSeverity sh:Violation ; + sh:sourceConstraintComponent sh:OrConstraintComponent ; + sh:sourceShape ex:TestShape-comment ; + sh:value 42 ; + ] ; + sh:result [ + rdf:type sh:ValidationResult ; + sh:focusNode ex:InvalidResource1 ; + sh:resultPath rdfs:comment ; + sh:resultSeverity sh:Violation ; + sh:sourceConstraintComponent sh:OrConstraintComponent ; + sh:sourceShape ex:TestShape-comment ; + sh:value "none"^^xsd:boolean ; + ] ; + ] ; + mf:status sht:approved ; +. diff --git a/corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/core/property/pattern-001.ttl b/corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/core/property/pattern-001.ttl new file mode 100644 index 0000000000..2c63ad8010 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/core/property/pattern-001.ttl @@ -0,0 +1,74 @@ +@prefix dash: . +@prefix ex: . +@prefix mf: . +@prefix owl: . +@prefix rdf: . +@prefix rdfs: . +@prefix sh: . +@prefix sht: . +@prefix xsd: . + +ex:InvalidInstance1 + rdf:type ex:TestShape ; + ex:property "Maria" ; + rdfs:label "Invalid instance1" ; +. +ex:InvalidInstance2 + rdf:type ex:TestShape ; + ex:property "john" ; + rdfs:label "Invalid instance2" ; +. +ex:TestShape + rdf:type rdfs:Class ; + rdf:type sh:NodeShape ; + rdfs:label "Test shape" ; + sh:property ex:TestShape-property ; +. +ex:TestShape-property + sh:path ex:property ; + sh:datatype xsd:string ; + sh:pattern "Joh" ; +. +ex:ValidInstance1 + rdf:type ex:TestShape ; + ex:property "Hi Joh" ; + ex:property "John" ; + rdfs:label "Valid instance1" ; +. +<> + rdf:type mf:Manifest ; + mf:entries ( + + ) ; +. + + rdf:type sht:Validate ; + rdfs:label "Test of sh:pattern at property shape 001" ; + mf:action [ + sht:dataGraph <> ; + sht:shapesGraph <> ; + ] ; + mf:result [ + rdf:type sh:ValidationReport ; + sh:conforms "false"^^xsd:boolean ; + sh:result [ + rdf:type sh:ValidationResult ; + sh:focusNode ex:InvalidInstance1 ; + sh:resultPath ex:property ; + sh:resultSeverity sh:Violation ; + sh:sourceConstraintComponent sh:PatternConstraintComponent ; + sh:sourceShape ex:TestShape-property ; + sh:value "Maria" ; + ] ; + sh:result [ + rdf:type sh:ValidationResult ; + sh:focusNode ex:InvalidInstance2 ; + sh:resultPath ex:property ; + sh:resultSeverity sh:Violation ; + sh:sourceConstraintComponent sh:PatternConstraintComponent ; + sh:sourceShape ex:TestShape-property ; + sh:value "john" ; + ] ; + ] ; + mf:status sht:approved ; +. diff --git a/corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/core/property/pattern-002.ttl b/corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/core/property/pattern-002.ttl new file mode 100644 index 0000000000..498c2a3a14 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/core/property/pattern-002.ttl @@ -0,0 +1,66 @@ +@prefix dash: . +@prefix ex: . +@prefix mf: . +@prefix owl: . +@prefix rdf: . +@prefix rdfs: . +@prefix sh: . +@prefix sht: . +@prefix xsd: . + +ex:InvalidInstance1 + rdf:type ex:TestShape ; + ex:property "Maria" ; + rdfs:label "Invalid instance1" ; +. +ex:TestShape + rdf:type rdfs:Class ; + rdf:type sh:NodeShape ; + rdfs:label "Test shape" ; + sh:property ex:TestShape-property ; +. +ex:TestShape-property + sh:path ex:property ; + rdfs:label "property" ; + sh:datatype xsd:string ; + sh:flags "i" ; + sh:pattern "joh" ; +. +ex:ValidInstance1 + rdf:type ex:TestShape ; + ex:property "Hi Joh" ; + ex:property "John" ; + rdfs:label "Valid instance1" ; +. +ex:ValidInstance2 + rdf:type ex:TestShape ; + ex:property "john" ; +. +<> + rdf:type mf:Manifest ; + mf:entries ( + + ) ; +. + + rdf:type sht:Validate ; + rdfs:label "Test of sh:pattern at property shape 002" ; + mf:action [ + sht:dataGraph <> ; + sht:shapesGraph <> ; + ] ; + mf:result [ + rdf:type sh:ValidationReport ; + sh:conforms "false"^^xsd:boolean ; + sh:result [ + rdf:type sh:ValidationResult ; + sh:focusNode ex:InvalidInstance1 ; + sh:resultPath ex:property ; + sh:resultSeverity sh:Violation ; + sh:sourceConstraintComponent sh:PatternConstraintComponent ; + sh:sourceShape ex:TestShape-property ; + sh:value "Maria" ; + ] ; + ] ; + mf:status sht:approved ; +. diff --git a/corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/core/property/property-001.ttl b/corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/core/property/property-001.ttl new file mode 100644 index 0000000000..cd7bfd42fe --- /dev/null +++ b/corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/core/property/property-001.ttl @@ -0,0 +1,100 @@ +@prefix dash: . +@prefix ex: . +@prefix mf: . +@prefix owl: . +@prefix rdf: . +@prefix rdfs: . +@prefix sh: . +@prefix sht: . +@prefix xsd: . + +ex:Address + rdf:type rdfs:Class ; + rdfs:label "Address" ; + rdfs:subClassOf rdfs:Resource ; +. +ex:City + rdf:type rdfs:Class ; + rdfs:label "City" ; + rdfs:subClassOf rdfs:Resource ; +. +ex:InvalidAddress + rdf:type ex:Address ; + ex:city ex:InvalidCity ; +. +ex:InvalidPerson1 + rdf:type ex:Person ; + ex:address ex:InvalidAddress ; +. +ex:InvalidPerson2 + rdf:type ex:Person ; + ex:address ex:InvalidAddress ; + ex:address ex:ValidAddress ; +. +ex:Person + rdf:type rdfs:Class ; + rdfs:label "Person" ; + rdfs:subClassOf rdfs:Resource ; +. +ex:PersonShape + rdf:type sh:NodeShape ; + rdfs:label "Person shape" ; + sh:property [ + sh:path ex:address ; + sh:property ex:PersonShape-address-city ; + ] ; + sh:targetClass ex:Person ; +. +ex:PersonShape-address-city + sh:path ex:city ; + sh:class ex:City ; +. +ex:ProperCity + rdf:type ex:City ; + rdfs:label "Proper city" ; +. +ex:ValidAddress + rdf:type ex:Address ; + ex:city ex:ProperCity ; +. +ex:ValidPerson1 + rdf:type ex:Person ; + ex:address ex:ValidAddress ; +. +<> + rdf:type mf:Manifest ; + mf:entries ( + + ) ; +. + + rdf:type sht:Validate ; + rdfs:label "Test of sh:property at property shape 001" ; + mf:action [ + sht:dataGraph <> ; + sht:shapesGraph <> ; + ] ; + mf:result [ + rdf:type sh:ValidationReport ; + sh:conforms "false"^^xsd:boolean ; + sh:result [ + rdf:type sh:ValidationResult ; + sh:focusNode ex:InvalidAddress ; + sh:resultPath ex:city ; + sh:resultSeverity sh:Violation ; + sh:sourceConstraintComponent sh:ClassConstraintComponent ; + sh:sourceShape ex:PersonShape-address-city ; + sh:value ex:InvalidCity ; + ] ; + sh:result [ + rdf:type sh:ValidationResult ; + sh:focusNode ex:InvalidAddress ; + sh:resultPath ex:city ; + sh:resultSeverity sh:Violation ; + sh:sourceConstraintComponent sh:ClassConstraintComponent ; + sh:sourceShape ex:PersonShape-address-city ; + sh:value ex:InvalidCity ; + ] ; + ] ; + mf:status sht:approved ; +. diff --git a/corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/core/property/qualifiedMinCountDisjoint-001.ttl b/corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/core/property/qualifiedMinCountDisjoint-001.ttl new file mode 100644 index 0000000000..00d91c248a --- /dev/null +++ b/corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/core/property/qualifiedMinCountDisjoint-001.ttl @@ -0,0 +1,116 @@ +@prefix dash: . +@prefix ex: . +@prefix mf: . +@prefix owl: . +@prefix rdf: . +@prefix rdfs: . +@prefix sh: . +@prefix sht: . +@prefix xsd: . + +ex:Digit + rdf:type rdfs:Class ; + rdfs:label "Digit" ; +. +ex:Finger + rdf:type rdfs:Class ; + rdfs:label "Finger" ; + rdfs:subClassOf ex:Digit ; +. +ex:FingerAndThumb + rdf:type ex:Finger ; + rdf:type ex:Thumb ; + rdfs:label "Finger and thumb" ; +. +ex:FingerShape + rdf:type sh:NodeShape ; + rdfs:label "Finger shape" ; + sh:class ex:Finger ; +. +ex:Finger_1 + rdf:type ex:Finger ; + rdfs:label "Finger 1" ; +. +ex:Hand + rdf:type rdfs:Class ; + rdfs:label "Hand" ; +. +ex:HandShape + rdf:type sh:NodeShape ; + rdfs:label "Hand shape" ; + sh:property ex:HandShape-digit-maxCount4 ; + sh:property ex:HandShape-digit-minCount1 ; + sh:targetClass ex:Hand ; +. +ex:HandShape-digit-maxCount4 + rdf:type sh:PropertyShape ; + sh:path ex:digit ; + sh:qualifiedMaxCount 4 ; + sh:qualifiedValueShape ex:FingerShape ; + sh:qualifiedValueShapesDisjoint "true"^^xsd:boolean ; +. +ex:HandShape-digit-minCount1 + rdf:type sh:PropertyShape ; + sh:path ex:digit ; + sh:qualifiedMinCount 1 ; + sh:qualifiedValueShape ex:ThumbShape ; + sh:qualifiedValueShapesDisjoint "true"^^xsd:boolean ; +. +ex:InvalidHand1 + rdf:type ex:Hand ; + ex:digit ex:FingerAndThumb ; + rdfs:label "Invalid hand1" ; +. +ex:Thumb + rdf:type rdfs:Class ; + rdfs:label "Thumb" ; + rdfs:subClassOf ex:Digit ; +. +ex:ThumbShape + rdf:type sh:NodeShape ; + rdfs:label "Thumb shape" ; + sh:class ex:Thumb ; +. +ex:Thumb_1 + rdf:type ex:Thumb ; + rdfs:label "Thumb 1" ; +. +ex:ValidHand1 + rdf:type ex:Hand ; + ex:digit ex:Finger_1 ; + ex:digit ex:Thumb_1 ; + rdfs:label "Valid hand1" ; +. +ex:digit + rdf:type rdf:Property ; + rdfs:domain ex:Hand ; + rdfs:label "digit" ; + rdfs:range ex:Digit ; +. +<> + rdf:type mf:Manifest ; + mf:entries ( + + ) ; +. + + rdf:type sht:Validate ; + rdfs:label "Test of sh:qualifiedMinCount with disjoint shapes at property shape 001" ; + mf:action [ + sht:dataGraph <> ; + sht:shapesGraph <> ; + ] ; + mf:result [ + rdf:type sh:ValidationReport ; + sh:conforms "false"^^xsd:boolean ; + sh:result [ + rdf:type sh:ValidationResult ; + sh:focusNode ex:InvalidHand1 ; + sh:resultPath ex:digit ; + sh:resultSeverity sh:Violation ; + sh:sourceConstraintComponent sh:QualifiedMinCountConstraintComponent ; + sh:sourceShape ex:HandShape-digit-minCount1 ; + ] ; + ] ; + mf:status sht:approved ; +. diff --git a/corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/core/property/qualifiedValueShape-001.ttl b/corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/core/property/qualifiedValueShape-001.ttl new file mode 100644 index 0000000000..ead8f719c3 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/core/property/qualifiedValueShape-001.ttl @@ -0,0 +1,80 @@ +@prefix dash: . +@prefix ex: . +@prefix mf: . +@prefix owl: . +@prefix rdf: . +@prefix rdfs: . +@prefix sh: . +@prefix sht: . +@prefix xsd: . + +ex:APGARObservationShape + rdf:type sh:NodeShape ; + sh:property ex:APGARObservationShape-related ; + sh:targetNode ex:Observation1 ; +. +ex:APGARObservationShape-related + sh:path ex:related ; + sh:qualifiedMaxCount 3 ; + sh:qualifiedMinCount 3 ; + sh:qualifiedValueShape [ + sh:property [ + sh:path ex:related_target ; + sh:node [ + sh:property [ + sh:path ex:reference ; + sh:hasValue ex:something ; + ] ; + ] ; + ] ; + ] ; +. +ex:Observation1 + rdf:type ex:Observation ; + ex:related [ + ex:related_target [ + ex:reference ex:something ; + ] ; + ex:related_type "has-component"^^ex:code ; + ] ; + ex:related [ + ex:related_target [ + ex:reference ex:something ; + ] ; + ex:related_type "has-component"^^ex:code ; + ] ; + ex:related [ + ex:related_target [ + ex:reference ex:unrelated ; + ] ; + ex:related_type "has-component"^^ex:code ; + ] ; + sh:nodeShape ex:APGARObservationShape ; +. +<> + rdf:type mf:Manifest ; + mf:entries ( + + ) ; +. + + rdf:type sht:Validate ; + rdfs:label "Test of sh:qualifiedValueShape at property shape 001" ; + mf:action [ + sht:dataGraph <> ; + sht:shapesGraph <> ; + ] ; + mf:result [ + rdf:type sh:ValidationReport ; + sh:conforms "false"^^xsd:boolean ; + sh:result [ + rdf:type sh:ValidationResult ; + sh:focusNode ex:Observation1 ; + sh:resultPath ex:related ; + sh:resultSeverity sh:Violation ; + sh:sourceConstraintComponent sh:QualifiedMinCountConstraintComponent ; + sh:sourceShape ex:APGARObservationShape-related ; + ] ; + ] ; + mf:status sht:approved ; +. diff --git a/corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/core/property/qualifiedValueShapesDisjoint-001.ttl b/corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/core/property/qualifiedValueShapesDisjoint-001.ttl new file mode 100644 index 0000000000..1cc8cbc1c6 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/core/property/qualifiedValueShapesDisjoint-001.ttl @@ -0,0 +1,128 @@ +@prefix dash: . +@prefix ex: . +@prefix mf: . +@prefix owl: . +@prefix rdf: . +@prefix rdfs: . +@prefix sh: . +@prefix sht: . +@prefix xsd: . + +ex:Finger + rdf:type rdfs:Class ; + rdf:type sh:NodeShape ; + rdfs:label "Finger" ; + rdfs:subClassOf rdfs:Resource ; +. +ex:Finger1 + rdf:type ex:Finger ; + rdfs:label "Finger1" ; +. +ex:Finger2 + rdf:type ex:Finger ; + rdfs:label "Finger2" ; +. +ex:Finger3 + rdf:type ex:Finger ; + rdfs:label "Finger3" ; +. +ex:Finger4 + rdf:type ex:Finger ; + rdfs:label "Finger4" ; +. +ex:FingerAndThumb + rdf:type ex:Finger ; + rdf:type ex:Thumb ; + rdfs:label "Finger and thumb" ; +. +ex:Hand + rdf:type rdfs:Class ; + rdf:type sh:NodeShape ; + rdfs:label "Hand" ; + rdfs:subClassOf rdfs:Resource ; +. +ex:HandShape + rdf:type sh:NodeShape ; + sh:property ex:HandShape-digit1 ; + sh:property ex:HandShape-digit4 ; + sh:targetClass ex:Hand ; +. +ex:HandShape-digit1 + sh:path ex:digit ; + sh:qualifiedMaxCount 1 ; + sh:qualifiedMinCount 1 ; + sh:qualifiedValueShape [ + sh:class ex:Thumb ; + ] ; + sh:qualifiedValueShapesDisjoint "true"^^xsd:boolean ; +. +ex:HandShape-digit4 + sh:path ex:digit ; + sh:qualifiedMaxCount 4 ; + sh:qualifiedMinCount 4 ; + sh:qualifiedValueShape [ + sh:class ex:Finger ; + ] ; + sh:qualifiedValueShapesDisjoint "true"^^xsd:boolean ; +. +ex:InvalidHand1 + rdf:type ex:Hand ; + ex:digit ex:Finger1 ; + ex:digit ex:Finger2 ; + ex:digit ex:Finger3 ; + ex:digit ex:FingerAndThumb ; +. +ex:Thumb + rdf:type rdfs:Class ; + rdf:type sh:NodeShape ; + rdfs:label "Thumb" ; + rdfs:subClassOf rdfs:Resource ; +. +ex:Thumb1 + rdf:type ex:Thumb ; + rdfs:label "Thumb1" ; +. +ex:ValidHand + rdf:type ex:Hand ; + ex:digit ex:Finger1 ; + ex:digit ex:Finger2 ; + ex:digit ex:Finger3 ; + ex:digit ex:Finger4 ; + ex:digit ex:Thumb1 ; + rdfs:label "Valid hand" ; +. +<> + rdf:type mf:Manifest ; + mf:entries ( + + ) ; +. + + rdf:type sht:Validate ; + rdfs:label "Test of sh:qualifiedValueShapesDisjoint at property shape 001" ; + mf:action [ + sht:dataGraph <> ; + sht:shapesGraph <> ; + ] ; + mf:result [ + rdf:type sh:ValidationReport ; + sh:conforms "false"^^xsd:boolean ; + sh:result [ + rdf:type sh:ValidationResult ; + sh:focusNode ex:InvalidHand1 ; + sh:resultPath ex:digit ; + sh:resultSeverity sh:Violation ; + sh:sourceConstraintComponent sh:QualifiedMinCountConstraintComponent ; + sh:sourceShape ex:HandShape-digit1 ; + ] ; + sh:result [ + rdf:type sh:ValidationResult ; + sh:focusNode ex:InvalidHand1 ; + sh:resultPath ex:digit ; + sh:resultSeverity sh:Violation ; + sh:sourceConstraintComponent sh:QualifiedMinCountConstraintComponent ; + sh:sourceShape ex:HandShape-digit4 ; + ] ; + ] ; + mf:status sht:approved ; +. diff --git a/corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/core/property/uniqueLang-001.ttl b/corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/core/property/uniqueLang-001.ttl new file mode 100644 index 0000000000..ffec0ff0f0 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/core/property/uniqueLang-001.ttl @@ -0,0 +1,86 @@ +@prefix dash: . +@prefix ex: . +@prefix mf: . +@prefix owl: . +@prefix rdf: . +@prefix rdfs: . +@prefix sh: . +@prefix sht: . +@prefix xsd: . + +ex:InvalidInstance1 + rdf:type ex:TestShape ; + ex:testProperty "Me" ; + ex:testProperty "Me"@en ; + ex:testProperty "Moi"@fr ; + ex:testProperty "Myself"@en ; +. +ex:InvalidInstance2 + rdf:type ex:TestShape ; + ex:testProperty "I"@en ; + ex:testProperty "Ich"@de ; + ex:testProperty "Me"@en ; + ex:testProperty "Mich"@de ; + ex:testProperty "Myself"@en ; +. +ex:TestShape + rdf:type rdfs:Class ; + rdf:type sh:NodeShape ; + rdfs:label "Test shape" ; + sh:property ex:TestShape-testProperty ; +. +ex:TestShape-testProperty + sh:path ex:testProperty ; + rdfs:label "test property" ; + sh:uniqueLang "true"^^xsd:boolean ; +. +ex:ValidInstance1 + rdf:type ex:TestShape ; + ex:testProperty "Me" ; + ex:testProperty "Me"@en ; + ex:testProperty "Moi"@fr ; + ex:testProperty "Myself" ; +. +<> + rdf:type mf:Manifest ; + mf:entries ( + + ) ; +. + + rdf:type sht:Validate ; + rdfs:label "Test of sh:uniqueLang at property shape 001" ; + mf:action [ + sht:dataGraph <> ; + sht:shapesGraph <> ; + ] ; + mf:result [ + rdf:type sh:ValidationReport ; + sh:conforms "false"^^xsd:boolean ; + sh:result [ + rdf:type sh:ValidationResult ; + sh:focusNode ex:InvalidInstance1 ; + sh:resultPath ex:testProperty ; + sh:resultSeverity sh:Violation ; + sh:sourceConstraintComponent sh:UniqueLangConstraintComponent ; + sh:sourceShape ex:TestShape-testProperty ; + ] ; + sh:result [ + rdf:type sh:ValidationResult ; + sh:focusNode ex:InvalidInstance2 ; + sh:resultPath ex:testProperty ; + sh:resultSeverity sh:Violation ; + sh:sourceConstraintComponent sh:UniqueLangConstraintComponent ; + sh:sourceShape ex:TestShape-testProperty ; + ] ; + sh:result [ + rdf:type sh:ValidationResult ; + sh:focusNode ex:InvalidInstance2 ; + sh:resultPath ex:testProperty ; + sh:resultSeverity sh:Violation ; + sh:sourceConstraintComponent sh:UniqueLangConstraintComponent ; + sh:sourceShape ex:TestShape-testProperty ; + ] ; + ] ; + mf:status sht:approved ; +. diff --git a/corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/core/property/uniqueLang-002-data.ttl b/corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/core/property/uniqueLang-002-data.ttl new file mode 100644 index 0000000000..4db2738ec5 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/core/property/uniqueLang-002-data.ttl @@ -0,0 +1,3 @@ +@prefix ex: . + +ex:i ex:message "HI"@en, "Hi"@en . diff --git a/corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/core/property/uniqueLang-002-shapes.ttl b/corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/core/property/uniqueLang-002-shapes.ttl new file mode 100644 index 0000000000..08526271d5 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/core/property/uniqueLang-002-shapes.ttl @@ -0,0 +1,8 @@ +@prefix sh: . +@prefix ex: . +@prefix xsd: . + +ex:s1 a sh:PropertyShape ; + sh:targetNode ex:i ; + sh:path ex:message ; + sh:uniqueLang "1"^^xsd:boolean . diff --git a/corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/core/property/uniqueLang-002.ttl b/corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/core/property/uniqueLang-002.ttl new file mode 100644 index 0000000000..c1b1f3bb2e --- /dev/null +++ b/corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/core/property/uniqueLang-002.ttl @@ -0,0 +1,23 @@ +@prefix dash: . +@prefix ex: . +@prefix mf: . +@prefix owl: . +@prefix rdf: . +@prefix rdfs: . +@prefix sh: . +@prefix sht: . +@prefix xsd: . + +<> a mf:Manifest ; + mf:entries ( + + ) . + + a sht:Validate ; + rdfs:label "Test uniqueLang with other boolean literal for true" ; + mf:action [ + sht:dataGraph ; + sht:shapesGraph ] ; + mf:result [ a sh:ValidationReport ; + sh:conforms "true"^^xsd:boolean ] ; + mf:status sht:approved . diff --git a/corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/core/targets/manifest.ttl b/corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/core/targets/manifest.ttl new file mode 100644 index 0000000000..ee7699b779 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/core/targets/manifest.ttl @@ -0,0 +1,15 @@ +@prefix mf: . +@prefix rdfs: . +@prefix sht: . + +<> + a mf:Manifest ; + rdfs:label "Tests converted from http://datashapes.org/sh/tests/tests/core/targets" ; + mf:include ; + mf:include ; + mf:include ; + mf:include ; + mf:include ; + mf:include ; + mf:include ; + . \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/core/targets/multipleTargets-001.ttl b/corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/core/targets/multipleTargets-001.ttl new file mode 100644 index 0000000000..81a99e8103 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/core/targets/multipleTargets-001.ttl @@ -0,0 +1,56 @@ +@prefix dash: . +@prefix ex: . +@prefix mf: . +@prefix owl: . +@prefix rdf: . +@prefix rdfs: . +@prefix sh: . +@prefix sht: . +@prefix xsd: . + +ex:InvalidResource1 + ex:property1 "Also a value" ; +. +ex:TestShape + rdf:type sh:NodeShape ; + rdfs:label "Test shape" ; + sh:in ( + ex:ValidResource1 + ex:ValidResource2 + ) ; + sh:targetSubjectsOf ex:property1 ; + sh:targetSubjectsOf ex:property2 ; +. +ex:ValidResource1 + ex:property1 "Some value" ; +. +ex:ValidResource2 + ex:property2 "Other value" ; +. +<> + rdf:type mf:Manifest ; + mf:entries ( + + ) ; +. + + rdf:type sht:Validate ; + rdfs:label "Test of multiple targets 001" ; + mf:action [ + sht:dataGraph <> ; + sht:shapesGraph <> ; + ] ; + mf:result [ + rdf:type sh:ValidationReport ; + sh:conforms "false"^^xsd:boolean ; + sh:result [ + rdf:type sh:ValidationResult ; + sh:focusNode ex:InvalidResource1 ; + sh:resultSeverity sh:Violation ; + sh:sourceConstraintComponent sh:InConstraintComponent ; + sh:sourceShape ex:TestShape ; + sh:value ex:InvalidResource1 ; + ] ; + ] ; + mf:status sht:approved ; +. diff --git a/corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/core/targets/targetClass-001.ttl b/corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/core/targets/targetClass-001.ttl new file mode 100644 index 0000000000..e1d5a55cb4 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/core/targets/targetClass-001.ttl @@ -0,0 +1,62 @@ +@prefix dash: . +@prefix ex: . +@prefix mf: . +@prefix owl: . +@prefix rdf: . +@prefix rdfs: . +@prefix sh: . +@prefix sht: . +@prefix xsd: . + +ex:InvalidInstance1 + rdf:type ex:MyClass ; + ex:myProperty "A" ; + ex:myProperty "B" ; +. +ex:MyClass + rdf:type rdfs:Class ; +. +ex:MyShape + rdf:type sh:NodeShape ; + sh:property ex:MyShape-myProperty ; + sh:targetClass ex:MyClass ; +. +ex:MyShape-myProperty + sh:path ex:myProperty ; + sh:maxCount 1 ; +. +ex:ValidInstance1 + rdf:type ex:MyClass ; + ex:myProperty "A" ; +. +ex:ValidInstance2 + ex:myProperty "A" ; + ex:myProperty "B" ; +. +<> + rdf:type mf:Manifest ; + mf:entries ( + + ) ; +. + + rdf:type sht:Validate ; + rdfs:label "Test of sh:targetClass 001" ; + mf:action [ + sht:dataGraph <> ; + sht:shapesGraph <> ; + ] ; + mf:result [ + rdf:type sh:ValidationReport ; + sh:conforms "false"^^xsd:boolean ; + sh:result [ + rdf:type sh:ValidationResult ; + sh:focusNode ex:InvalidInstance1 ; + sh:resultPath ex:myProperty ; + sh:resultSeverity sh:Violation ; + sh:sourceConstraintComponent sh:MaxCountConstraintComponent ; + sh:sourceShape ex:MyShape-myProperty ; + ] ; + ] ; + mf:status sht:approved ; +. diff --git a/corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/core/targets/targetClassImplicit-001.ttl b/corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/core/targets/targetClassImplicit-001.ttl new file mode 100644 index 0000000000..05cafccbb8 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/core/targets/targetClassImplicit-001.ttl @@ -0,0 +1,58 @@ +@prefix dash: . +@prefix ex: . +@prefix mf: . +@prefix owl: . +@prefix rdf: . +@prefix rdfs: . +@prefix sh: . +@prefix sht: . +@prefix xsd: . + +ex:InvalidInstance + rdf:type ex:SubClass ; + rdfs:label "Invalid instance" ; +. +ex:SubClass + rdf:type rdfs:Class ; + rdfs:label "Sub class" ; + rdfs:subClassOf ex:SuperClass ; +. +ex:SuperClass + rdf:type rdfs:Class ; + rdf:type sh:NodeShape ; + rdfs:label "Super class" ; + sh:in ( + ex:ValidInstance + ) ; +. +ex:ValidInstance + rdf:type ex:SubClass ; + rdfs:label "Valid instance" ; +. +<> + rdf:type mf:Manifest ; + mf:entries ( + + ) ; +. + + rdf:type sht:Validate ; + rdfs:label "Test of implicit sh:targetClass 001" ; + mf:action [ + sht:dataGraph <> ; + sht:shapesGraph <> ; + ] ; + mf:result [ + rdf:type sh:ValidationReport ; + sh:conforms "false"^^xsd:boolean ; + sh:result [ + rdf:type sh:ValidationResult ; + sh:focusNode ex:InvalidInstance ; + sh:resultSeverity sh:Violation ; + sh:sourceConstraintComponent sh:InConstraintComponent ; + sh:sourceShape ex:SuperClass ; + sh:value ex:InvalidInstance ; + ] ; + ] ; + mf:status sht:approved ; +. diff --git a/corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/core/targets/targetNode-001.ttl b/corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/core/targets/targetNode-001.ttl new file mode 100644 index 0000000000..195e3ffcfe --- /dev/null +++ b/corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/core/targets/targetNode-001.ttl @@ -0,0 +1,57 @@ +@prefix dash: . +@prefix ex: . +@prefix mf: . +@prefix owl: . +@prefix rdf: . +@prefix rdfs: . +@prefix sh: . +@prefix sht: . +@prefix xsd: . + +ex:InvalidResource1 + rdf:type rdfs:Resource ; + rdfs:label "Invalid resource 1" ; +. +ex:TestShape + rdf:type sh:NodeShape ; + rdfs:label "Test shape" ; + sh:property ex:TestShape-label ; + sh:targetNode ex:InvalidResource1 ; + sh:targetNode ex:ValidResource1 ; +. +ex:TestShape-label + sh:path rdfs:label ; + rdfs:label "label" ; + sh:datatype xsd:string ; + sh:maxCount 0 ; +. +ex:ValidResource1 + rdf:type rdfs:Resource ; +. +<> + rdf:type mf:Manifest ; + mf:entries ( + + ) ; +. + + rdf:type sht:Validate ; + rdfs:label "Test of sh:targetNode 001" ; + mf:action [ + sht:dataGraph <> ; + sht:shapesGraph <> ; + ] ; + mf:result [ + rdf:type sh:ValidationReport ; + sh:conforms "false"^^xsd:boolean ; + sh:result [ + rdf:type sh:ValidationResult ; + sh:focusNode ex:InvalidResource1 ; + sh:resultPath rdfs:label ; + sh:resultSeverity sh:Violation ; + sh:sourceConstraintComponent sh:MaxCountConstraintComponent ; + sh:sourceShape ex:TestShape-label ; + ] ; + ] ; + mf:status sht:approved ; +. diff --git a/corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/core/targets/targetObjectsOf-001.ttl b/corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/core/targets/targetObjectsOf-001.ttl new file mode 100644 index 0000000000..09eeea6550 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/core/targets/targetObjectsOf-001.ttl @@ -0,0 +1,65 @@ +@prefix dash: . +@prefix ex: . +@prefix mf: . +@prefix owl: . +@prefix rdf: . +@prefix rdfs: . +@prefix sh: . +@prefix sht: . +@prefix xsd: . + +ex:InvalidResource1 + ex:testProperty "String" ; +. +ex:InvalidResource2 + ex:testProperty rdfs:Resource ; +. +ex:TestShape + rdf:type sh:NodeShape ; + rdfs:label "Test shape" ; + sh:datatype xsd:integer ; + sh:targetObjectsOf ex:testProperty ; +. +ex:ValidResource1 + ex:testProperty 100 ; + ex:testProperty 42 ; +. +ex:testProperty + rdf:type rdf:Property ; + rdfs:label "test property" ; +. +<> + rdf:type mf:Manifest ; + mf:entries ( + + ) ; +. + + rdf:type sht:Validate ; + rdfs:label "Test of sh:targetObjectsOf 001" ; + mf:action [ + sht:dataGraph <> ; + sht:shapesGraph <> ; + ] ; + mf:result [ + rdf:type sh:ValidationReport ; + sh:conforms "false"^^xsd:boolean ; + sh:result [ + rdf:type sh:ValidationResult ; + sh:focusNode rdfs:Resource ; + sh:resultSeverity sh:Violation ; + sh:sourceConstraintComponent sh:DatatypeConstraintComponent ; + sh:sourceShape ex:TestShape ; + sh:value rdfs:Resource ; + ] ; + sh:result [ + rdf:type sh:ValidationResult ; + sh:focusNode "String" ; + sh:resultSeverity sh:Violation ; + sh:sourceConstraintComponent sh:DatatypeConstraintComponent ; + sh:sourceShape ex:TestShape ; + sh:value "String" ; + ] ; + ] ; + mf:status sht:approved ; +. diff --git a/corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/core/targets/targetSubjectsOf-001.ttl b/corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/core/targets/targetSubjectsOf-001.ttl new file mode 100644 index 0000000000..9069f17b00 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/core/targets/targetSubjectsOf-001.ttl @@ -0,0 +1,57 @@ +@prefix dash: . +@prefix ex: . +@prefix mf: . +@prefix owl: . +@prefix rdf: . +@prefix rdfs: . +@prefix sh: . +@prefix sht: . +@prefix xsd: . + +ex:InvalidInstance1 + ex:myProperty "A" ; + ex:myProperty "B" ; +. +ex:MyClass + rdf:type rdfs:Class ; +. +ex:TestShape + rdf:type sh:NodeShape ; + sh:property ex:TestShape-myProperty ; + sh:targetSubjectsOf ex:myProperty ; +. +ex:TestShape-myProperty + rdf:type sh:PropertyShape ; + sh:path ex:myProperty ; + sh:maxCount 1 ; +. +ex:ValidInstance1 + ex:myProperty "A" ; +. +<> + rdf:type mf:Manifest ; + mf:entries ( + + ) ; +. + + rdf:type sht:Validate ; + rdfs:label "Test of sh:targetSubjectsOf 001" ; + mf:action [ + sht:dataGraph <> ; + sht:shapesGraph <> ; + ] ; + mf:result [ + rdf:type sh:ValidationReport ; + sh:conforms "false"^^xsd:boolean ; + sh:result [ + rdf:type sh:ValidationResult ; + sh:focusNode ex:InvalidInstance1 ; + sh:resultPath ex:myProperty ; + sh:resultSeverity sh:Violation ; + sh:sourceConstraintComponent sh:MaxCountConstraintComponent ; + sh:sourceShape ex:TestShape-myProperty ; + ] ; + ] ; + mf:status sht:approved ; +. diff --git a/corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/core/targets/targetSubjectsOf-002.ttl b/corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/core/targets/targetSubjectsOf-002.ttl new file mode 100644 index 0000000000..e4adacdc27 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/core/targets/targetSubjectsOf-002.ttl @@ -0,0 +1,74 @@ +@prefix dash: . +@prefix ex: . +@prefix mf: . +@prefix owl: . +@prefix rdf: . +@prefix rdfs: . +@prefix sh: . +@prefix sht: . +@prefix xsd: . + +ex:InvalidInstance1 + rdf:type ex:MyClass ; + ex:myProperty "A" ; + ex:myProperty "B" ; +. +ex:InvalidInstance2 + ex:myProperty "A" ; + ex:myProperty "B" ; +. +ex:MyClass + rdf:type rdfs:Class ; +. +ex:TestShape + rdf:type sh:NodeShape ; + sh:property ex:TestShape-myProperty ; + sh:targetClass ex:MyClass ; + sh:targetSubjectsOf ex:myProperty ; +. +ex:TestShape-myProperty + sh:path ex:myProperty ; + sh:maxCount 1 ; +. +ex:ValidInstance1 + rdf:type ex:MyClass ; + ex:myProperty "A" ; +. +ex:ValidInstance2 + ex:myProperty "A" ; +. +<> + rdf:type mf:Manifest ; + mf:entries ( + + ) ; +. + + rdf:type sht:Validate ; + rdfs:label "Test of sh:targetSubjectsOf 002" ; + mf:action [ + sht:dataGraph <> ; + sht:shapesGraph <> ; + ] ; + mf:result [ + rdf:type sh:ValidationReport ; + sh:conforms "false"^^xsd:boolean ; + sh:result [ + rdf:type sh:ValidationResult ; + sh:focusNode ex:InvalidInstance1 ; + sh:resultPath ex:myProperty ; + sh:resultSeverity sh:Violation ; + sh:sourceConstraintComponent sh:MaxCountConstraintComponent ; + sh:sourceShape ex:TestShape-myProperty ; + ] ; + sh:result [ + rdf:type sh:ValidationResult ; + sh:focusNode ex:InvalidInstance2 ; + sh:resultPath ex:myProperty ; + sh:resultSeverity sh:Violation ; + sh:sourceConstraintComponent sh:MaxCountConstraintComponent ; + sh:sourceShape ex:TestShape-myProperty ; + ] ; + ] ; + mf:status sht:approved ; +. diff --git a/corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/core/validation-reports/manifest.ttl b/corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/core/validation-reports/manifest.ttl new file mode 100644 index 0000000000..b200ca17b8 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/core/validation-reports/manifest.ttl @@ -0,0 +1,9 @@ +@prefix mf: . +@prefix rdfs: . +@prefix sht: . + +<> + a mf:Manifest ; + rdfs:label "Tests for validation reports" ; + mf:include ; +. diff --git a/corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/core/validation-reports/shared-data.ttl b/corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/core/validation-reports/shared-data.ttl new file mode 100644 index 0000000000..5263a71ccf --- /dev/null +++ b/corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/core/validation-reports/shared-data.ttl @@ -0,0 +1,4 @@ +@prefix ex: . +ex:i ex:p ex:j . +ex:i ex:q ex:j . +ex:j ex:r ex:k . diff --git a/corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/core/validation-reports/shared-shapes.ttl b/corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/core/validation-reports/shared-shapes.ttl new file mode 100644 index 0000000000..26f4b73142 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/core/validation-reports/shared-shapes.ttl @@ -0,0 +1,16 @@ +@prefix sh: . +@prefix ex: . + +ex:s1 a sh:NodeShape ; + sh:targetNode ex:i ; + sh:property ex:s2 ; + sh:property ex:s3 . + +ex:s2 sh:path ex:p ; + sh:property ex:s4 . + +ex:s3 sh:path ex:q ; + sh:property ex:s4 . + +ex:s4 sh:path ex:r ; + sh:class ex:C . diff --git a/corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/core/validation-reports/shared.ttl b/corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/core/validation-reports/shared.ttl new file mode 100644 index 0000000000..ae4b01ca1c --- /dev/null +++ b/corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/core/validation-reports/shared.ttl @@ -0,0 +1,52 @@ +@prefix mf: . +@prefix owl: . +@prefix rdf: . +@prefix rdfs: . +@prefix sh: . +@prefix sht: . +@prefix xsd: . + +@prefix ex: . + +# This test case is under discussion, as there are different interpretations +# on whether the nested sh:property constraint that is reached twice should +# also be reported twice. + +<> + rdf:type mf:Manifest ; + mf:entries ( + + ) ; +. + + + rdf:type sht:Validate; + rdfs:label "Test of validation report for shape shared by property constraints" ; + mf:action [ + sht:dataGraph ; + sht:shapesGraph + ] ; + mf:result [ + rdf:type sh:ValidationReport ; + sh:conforms "false"^^xsd:boolean ; + sh:result [ + rdf:type sh:ValidationResult ; + sh:resultSeverity sh:Violation ; + sh:focusNode ex:j ; + sh:value ex:k ; + sh:resultPath ex:r ; + sh:sourceShape ex:s4 ; + sh:sourceConstraintComponent sh:ClassConstraintComponent + ] ; + sh:result [ + rdf:type sh:ValidationResult ; + sh:resultSeverity sh:Violation ; + sh:focusNode ex:j ; + sh:value ex:k ; + sh:resultPath ex:r ; + sh:sourceShape ex:s4 ; + sh:sourceConstraintComponent sh:ClassConstraintComponent + ] + ] ; + mf:status sht:approved . + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/manifest.ttl b/corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/manifest.ttl new file mode 100644 index 0000000000..08a5a1b9c5 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/manifest.ttl @@ -0,0 +1,9 @@ +@prefix mf: . +@prefix rdfs: . +@prefix sht: . + +<> + a mf:Manifest ; + mf:include ; + mf:include ; + . \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/sparql/component/manifest.ttl b/corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/sparql/component/manifest.ttl new file mode 100644 index 0000000000..f3354dccea --- /dev/null +++ b/corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/sparql/component/manifest.ttl @@ -0,0 +1,13 @@ +@prefix mf: . +@prefix rdfs: . +@prefix sht: . + +<> + a mf:Manifest ; + rdfs:label "Tests converted from http://datashapes.org/sh/tests/tests/sparql/component" ; + mf:include ; + mf:include ; + mf:include ; + mf:include ; + mf:include ; + . \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/sparql/component/nodeValidator-ask-001.ttl b/corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/sparql/component/nodeValidator-ask-001.ttl new file mode 100644 index 0000000000..4577619e1c --- /dev/null +++ b/corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/sparql/component/nodeValidator-ask-001.ttl @@ -0,0 +1,79 @@ +@prefix dash: . +@prefix ex: . +@prefix mf: . +@prefix owl: . +@prefix rdf: . +@prefix rdfs: . +@prefix sh: . +@prefix sht: . +@prefix xsd: . + + + sh:declare [ + rdf:type sh:PrefixDeclaration ; + sh:namespace "http://datashapes.org/sh/tests/sparql/component/nodeValidator-ask-001.test#"^^xsd:anyURI ; + sh:prefix "ex" ; + ] ; +. +ex:InvalidResource1 + ex:property "Other" ; +. +ex:TestConstraintComponent + rdf:type sh:ConstraintComponent ; + rdfs:label "Test constraint component" ; + sh:nodeValidator [ + rdf:type sh:SPARQLAskValidator ; + sh:ask """ASK { + $this ex:property ?requiredParam . +}""" ; + sh:prefixes ; + ] ; + sh:parameter [ + sh:path ex:optionalParam ; + sh:datatype xsd:integer ; + sh:name "optional param" ; + sh:optional "true"^^xsd:boolean ; + ] ; + sh:parameter [ + sh:path ex:requiredParam ; + sh:datatype xsd:string ; + sh:name "required param" ; + ] ; +. +ex:TestShape + rdf:type sh:NodeShape ; + ex:requiredParam "Value" ; + rdfs:label "Test shape" ; + sh:targetNode ex:InvalidResource1 ; + sh:targetNode ex:ValidResource1 ; +. +ex:ValidResource1 + ex:property "Value" ; +. +<> + rdf:type mf:Manifest ; + mf:entries ( + + ) ; +. + + rdf:type sht:Validate ; + rdfs:label "Test of sh:nodeValidator with ASK 001" ; + mf:action [ + sht:dataGraph <> ; + sht:shapesGraph <> ; + ] ; + mf:result [ + rdf:type sh:ValidationReport ; + sh:conforms "false"^^xsd:boolean ; + sh:result [ + rdf:type sh:ValidationResult ; + sh:focusNode ex:InvalidResource1 ; + sh:resultSeverity sh:Violation ; + sh:sourceConstraintComponent ex:TestConstraintComponent ; + sh:sourceShape ex:TestShape ; + sh:value ex:InvalidResource1 ; + ] ; + ] ; + mf:status sht:approved ; +. diff --git a/corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/sparql/component/optional-001.ttl b/corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/sparql/component/optional-001.ttl new file mode 100644 index 0000000000..0f3ba1f896 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/sparql/component/optional-001.ttl @@ -0,0 +1,113 @@ +@prefix dash: . +@prefix ex: . +@prefix mf: . +@prefix owl: . +@prefix rdf: . +@prefix rdfs: . +@prefix sh: . +@prefix sht: . +@prefix xsd: . + + + sh:declare [ + rdf:type sh:PrefixDeclaration ; + sh:namespace "http://datashapes.org/sh/tests/sparql/component/optional-001.test#"^^xsd:anyURI ; + sh:prefix "ex" ; + ] ; +. +ex:IncompleteShape + rdf:type sh:NodeShape ; + ex:optionalParam "Some" ; + rdfs:label "Incomplete shape" ; + sh:targetNode "One" ; + sh:targetNode "Three" ; + sh:targetNode "Two" ; +. +ex:TestConstraintComponent + rdf:type sh:ConstraintComponent ; + rdfs:label "Test constraint component" ; + sh:parameter [ + sh:path ex:optionalParam ; + sh:name "optional param" ; + sh:optional "true"^^xsd:boolean ; + ] ; + sh:parameter [ + sh:path ex:requiredParam ; + sh:name "required param" ; + ] ; + sh:validator [ + rdf:type sh:SPARQLAskValidator ; + sh:ask """ASK { + FILTER ($value != $requiredParam && $value != COALESCE(?optionalParam, \"Three\")) . +}""" ; + sh:prefixes ; + ] ; +. +ex:TestShape1 + rdf:type sh:NodeShape ; + ex:requiredParam "One" ; + rdfs:label "Test shape 1" ; + sh:targetNode "One" ; + sh:targetNode "Three" ; + sh:targetNode "Two" ; +. +ex:TestShape2 + rdf:type sh:NodeShape ; + ex:optionalParam "Two" ; + ex:requiredParam "One" ; + rdfs:label "Test shape 1" ; + sh:targetNode "One" ; + sh:targetNode "Three" ; + sh:targetNode "Two" ; +. +<> + rdf:type mf:Manifest ; + mf:entries ( + + ) ; +. + + rdf:type sht:Validate ; + rdfs:label "Test of sh:optional 001" ; + mf:action [ + sht:dataGraph <> ; + sht:shapesGraph <> ; + ] ; + mf:result [ + rdf:type sh:ValidationReport ; + sh:conforms "false"^^xsd:boolean ; + sh:result [ + rdf:type sh:ValidationResult ; + sh:focusNode "One" ; + sh:resultSeverity sh:Violation ; + sh:sourceConstraintComponent ex:TestConstraintComponent ; + sh:sourceShape ex:TestShape1 ; + sh:value "One" ; + ] ; + sh:result [ + rdf:type sh:ValidationResult ; + sh:focusNode "One" ; + sh:resultSeverity sh:Violation ; + sh:sourceConstraintComponent ex:TestConstraintComponent ; + sh:sourceShape ex:TestShape2 ; + sh:value "One" ; + ] ; + sh:result [ + rdf:type sh:ValidationResult ; + sh:focusNode "Three" ; + sh:resultSeverity sh:Violation ; + sh:sourceConstraintComponent ex:TestConstraintComponent ; + sh:sourceShape ex:TestShape1 ; + sh:value "Three" ; + ] ; + sh:result [ + rdf:type sh:ValidationResult ; + sh:focusNode "Two" ; + sh:resultSeverity sh:Violation ; + sh:sourceConstraintComponent ex:TestConstraintComponent ; + sh:sourceShape ex:TestShape2 ; + sh:value "Two" ; + ] ; + ] ; + mf:status sht:approved ; +. diff --git a/corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/sparql/component/propertyValidator-ask-001.ttl b/corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/sparql/component/propertyValidator-ask-001.ttl new file mode 100644 index 0000000000..60c8d590b1 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/sparql/component/propertyValidator-ask-001.ttl @@ -0,0 +1,106 @@ +@prefix dash: . +@prefix ex: . +@prefix mf: . +@prefix owl: . +@prefix rdf: . +@prefix rdfs: . +@prefix sh: . +@prefix sht: . +@prefix xsd: . + +ex:Country + rdf:type rdfs:Class ; + rdfs:label "Country" ; +. +ex:InvalidCountry1 + rdf:type ex:Country ; + ex:englishLabel "Munich" ; + ex:germanLabel "Muenchen" ; + rdfs:label "Invalid country1" ; +. +ex:LanguageConstraintComponentUsingASK + rdf:type sh:ConstraintComponent ; + rdfs:label "Language constraint component" ; + sh:labelTemplate "Values are literals with language \"{$lang}\"" ; + sh:parameter [ + sh:path ex:lang ; + sh:datatype xsd:string ; + sh:description "The language tag, e.g. \"de\"." ; + sh:minLength 2 ; + sh:name "language" ; + ] ; + sh:propertyValidator ex:hasLang ; +. +ex:LanguageExampleShape + rdf:type sh:NodeShape ; + sh:property _:b41651 ; + sh:property _:b75747 ; + sh:targetClass ex:Country ; +. +ex:ValidCountry1 + rdf:type ex:Country ; + ex:englishLabel "Beijing"@en ; + ex:germanLabel "Peking"@de ; + rdfs:label "Valid country1" ; +. +ex:englishLabel + rdfs:domain ex:Country ; +. +ex:germanLabel + rdfs:domain ex:Country ; +. +ex:hasLang + rdf:type sh:SPARQLAskValidator ; + sh:ask """ + ASK { + FILTER (isLiteral(?value) && langMatches(lang(?value), $lang)) + } + """ ; + sh:message "Values are literals with language \"{?lang}\"" ; + sh:prefixes ; +. +<> + rdf:type mf:Manifest ; + mf:entries ( + + ) ; +. + + rdf:type sht:Validate ; + rdfs:label "Test of sh:propertyValidator with ASK 001" ; + mf:action [ + sht:dataGraph <> ; + sht:shapesGraph <> ; + ] ; + mf:result [ + rdf:type sh:ValidationReport ; + sh:conforms "false"^^xsd:boolean ; + sh:result [ + rdf:type sh:ValidationResult ; + sh:focusNode ex:InvalidCountry1 ; + sh:resultPath ex:englishLabel ; + sh:resultSeverity sh:Violation ; + sh:sourceConstraintComponent ex:LanguageConstraintComponentUsingASK ; + sh:sourceShape _:b41651 ; + sh:value "Munich" ; + ] ; + sh:result [ + rdf:type sh:ValidationResult ; + sh:focusNode ex:InvalidCountry1 ; + sh:resultPath ex:germanLabel ; + sh:resultSeverity sh:Violation ; + sh:sourceConstraintComponent ex:LanguageConstraintComponentUsingASK ; + sh:sourceShape _:b75747 ; + sh:value "Muenchen" ; + ] ; + ] ; + mf:status sht:approved ; +. +_:b41651 + sh:path ex:englishLabel ; + ex:lang "en" ; +. +_:b75747 + sh:path ex:germanLabel ; + ex:lang "de" ; +. diff --git a/corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/sparql/component/propertyValidator-select-001.ttl b/corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/sparql/component/propertyValidator-select-001.ttl new file mode 100644 index 0000000000..a501c542f9 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/sparql/component/propertyValidator-select-001.ttl @@ -0,0 +1,107 @@ +@prefix dash: . +@prefix ex: . +@prefix mf: . +@prefix owl: . +@prefix rdf: . +@prefix rdfs: . +@prefix sh: . +@prefix sht: . +@prefix xsd: . + +ex:Country + rdf:type rdfs:Class ; + rdfs:label "Country" ; +. +ex:InvalidCountry1 + rdf:type ex:Country ; + ex:englishLabel "Munich" ; + ex:germanLabel "Muenchen" ; + rdfs:label "Invalid country1" ; +. +ex:LanguageConstraintComponentUsingSELECT + rdf:type sh:ConstraintComponent ; + rdfs:label "Language constraint component" ; + sh:labelTemplate "Values are literals with language \"{$lang}\"" ; + sh:parameter [ + sh:path ex:lang ; + sh:datatype xsd:string ; + sh:description "The language tag, e.g. \"de\"." ; + sh:minLength 2 ; + sh:name "language" ; + ] ; + sh:propertyValidator [ + rdf:type sh:SPARQLSelectValidator ; + sh:message "Values are literals with language \"{?lang}\"" ; + sh:prefixes ; + sh:select """ + SELECT DISTINCT $this ?value + WHERE { + $this $PATH ?value . + FILTER (!isLiteral(?value) || !langMatches(lang(?value), $lang)) + } + """ ; + ] ; +. +ex:LanguageExampleShape + rdf:type sh:NodeShape ; + sh:property _:b56647 ; + sh:property _:b71712 ; + sh:targetClass ex:Country ; +. +ex:ValidCountry1 + rdf:type ex:Country ; + ex:englishLabel "Beijing"@en ; + ex:germanLabel "Peking"@de ; + rdfs:label "Valid country1" ; +. +ex:englishLabel + rdfs:domain ex:Country ; +. +ex:germanLabel + rdfs:domain ex:Country ; +. +<> + rdf:type mf:Manifest ; + mf:entries ( + + ) ; +. + + rdf:type sht:Validate ; + rdfs:label "Test of sh:propertyValidator with SELECT 001" ; + mf:action [ + sht:dataGraph <> ; + sht:shapesGraph <> ; + ] ; + mf:result [ + rdf:type sh:ValidationReport ; + sh:conforms "false"^^xsd:boolean ; + sh:result [ + rdf:type sh:ValidationResult ; + sh:focusNode ex:InvalidCountry1 ; + sh:resultPath ex:englishLabel ; + sh:resultSeverity sh:Violation ; + sh:sourceConstraintComponent ex:LanguageConstraintComponentUsingSELECT ; + sh:sourceShape _:b56647 ; + sh:value "Munich" ; + ] ; + sh:result [ + rdf:type sh:ValidationResult ; + sh:focusNode ex:InvalidCountry1 ; + sh:resultPath ex:germanLabel ; + sh:resultSeverity sh:Violation ; + sh:sourceConstraintComponent ex:LanguageConstraintComponentUsingSELECT ; + sh:sourceShape _:b71712 ; + sh:value "Muenchen" ; + ] ; + ] ; + mf:status sht:approved ; +. +_:b56647 + sh:path ex:englishLabel ; + ex:lang "en" ; +. +_:b71712 + sh:path ex:germanLabel ; + ex:lang "de" ; +. diff --git a/corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/sparql/component/validator-001.ttl b/corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/sparql/component/validator-001.ttl new file mode 100644 index 0000000000..67b9d94ac3 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/sparql/component/validator-001.ttl @@ -0,0 +1,81 @@ +@prefix dash: . +@prefix ex: . +@prefix mf: . +@prefix owl: . +@prefix rdf: . +@prefix rdfs: . +@prefix sh: . +@prefix sht: . +@prefix xsd: . + + + owl:imports ; +. +ex:ConstraintComponent + rdf:type rdfs:Class ; + rdfs:label "Constraint component" ; + rdfs:subClassOf sh:ConstraintComponent ; +. +ex:SPARQLAskValidator + rdfs:subClassOf sh:SPARQLAskValidator ; +. +ex:TestConstraintComponent + rdf:type ex:ConstraintComponent ; + rdfs:comment """A simple test component with two parameters, which flags all values as invalid unless they are the concatenation of the two parameters. + +Part of this test is to also use various subclasses of the system classes.""" ; + rdfs:label "Test constraint component" ; + sh:parameter ex:TestParameter1 ; + sh:parameter ex:TestParameter2 ; + sh:validator [ + rdf:type ex:SPARQLAskValidator ; + sh:ask """ +ASK { FILTER (?value = CONCAT($test1, $test2)) } + """ ; + ] ; +. +ex:TestParameter1 + rdf:type sh:Parameter ; + sh:path ex:test1 ; + sh:datatype xsd:string ; +. +ex:TestParameter2 + rdf:type sh:Parameter ; + sh:path ex:test2 ; + sh:datatype xsd:string ; +. +ex:TestShape + rdf:type sh:NodeShape ; + ex:test1 "Hello " ; + ex:test2 "World" ; + rdfs:label "Test shape" ; + sh:targetNode "Hallo Welt" ; + sh:targetNode "Hello World" ; +. +<> + rdf:type mf:Manifest ; + mf:entries ( + + ) ; +. + + rdf:type sht:Validate ; + rdfs:label "Test of sh:validator 001" ; + mf:action [ + sht:dataGraph <> ; + sht:shapesGraph <> ; + ] ; + mf:result [ + rdf:type sh:ValidationReport ; + sh:conforms "false"^^xsd:boolean ; + sh:result [ + rdf:type sh:ValidationResult ; + sh:focusNode "Hallo Welt" ; + sh:resultSeverity sh:Violation ; + sh:sourceConstraintComponent ex:TestConstraintComponent ; + sh:sourceShape ex:TestShape ; + sh:value "Hallo Welt" ; + ] ; + ] ; + mf:status sht:approved ; +. diff --git a/corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/sparql/manifest.ttl b/corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/sparql/manifest.ttl new file mode 100644 index 0000000000..d823c551a7 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/sparql/manifest.ttl @@ -0,0 +1,11 @@ +@prefix mf: . +@prefix rdfs: . +@prefix sht: . + +<> + a mf:Manifest ; + mf:include ; + mf:include ; + mf:include ; + mf:include ; + . diff --git a/corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/sparql/node/manifest.ttl b/corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/sparql/node/manifest.ttl new file mode 100644 index 0000000000..c5f4b86e49 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/sparql/node/manifest.ttl @@ -0,0 +1,12 @@ +@prefix mf: . +@prefix rdfs: . +@prefix sht: . + +<> + a mf:Manifest ; + rdfs:label "Tests converted from http://datashapes.org/sh/tests/tests/sparql/node" ; + mf:include ; + mf:include ; + mf:include ; + mf:include ; + . \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/sparql/node/prefixes-001.ttl b/corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/sparql/node/prefixes-001.ttl new file mode 100644 index 0000000000..0409440eaa --- /dev/null +++ b/corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/sparql/node/prefixes-001.ttl @@ -0,0 +1,70 @@ +@prefix dash: . +@prefix ex: . +@prefix mf: . +@prefix owl: . +@prefix rdf: . +@prefix rdfs: . +@prefix sh: . +@prefix sht: . +@prefix xsd: . + + + sh:declare [ + rdf:type sh:PrefixDeclaration ; + sh:namespace "http://datashapes.org/sh/tests/sparql/node/prefixes-001.test#"^^xsd:anyURI ; + sh:prefix "ex" ; + ] ; +. +ex:InvalidResource1 + ex:property ; +. +ex:TestPrefixes + owl:imports ; + sh:declare [ + sh:namespace "http://test.com/ns#"^^xsd:anyURI ; + sh:prefix "test" ; + ] ; +. +ex:TestSPARQL + sh:prefixes ex:TestPrefixes ; + sh:select """ + SELECT $this ?value (ex:property as ?path) + WHERE { + $this ex:property ?value . + FILTER (?value = test:Value) . + } """ ; +. +ex:TestShape + rdf:type sh:NodeShape ; + sh:sparql ex:TestSPARQL ; + sh:targetNode ex:InvalidResource1 ; + sh:targetNode ex:ValidResource1 ; +. +<> + rdf:type mf:Manifest ; + mf:entries ( + + ) ; +. + + rdf:type sht:Validate ; + rdfs:label "Test of sh:prefixes 001" ; + mf:action [ + sht:dataGraph <> ; + sht:shapesGraph <> ; + ] ; + mf:result [ + rdf:type sh:ValidationReport ; + sh:conforms "false"^^xsd:boolean ; + sh:result [ + rdf:type sh:ValidationResult ; + sh:focusNode ex:InvalidResource1 ; + sh:resultSeverity sh:Violation ; + sh:sourceConstraint ex:TestSPARQL ; + sh:sourceConstraintComponent sh:SPARQLConstraintComponent ; + sh:sourceShape ex:TestShape ; + sh:value ; + ] ; + ] ; + mf:status sht:approved ; +. diff --git a/corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/sparql/node/sparql-001.ttl b/corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/sparql/node/sparql-001.ttl new file mode 100644 index 0000000000..eae95ebcd0 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/sparql/node/sparql-001.ttl @@ -0,0 +1,89 @@ +@prefix dash: . +@prefix ex: . +@prefix mf: . +@prefix owl: . +@prefix rdf: . +@prefix rdfs: . +@prefix sh: . +@prefix sht: . +@prefix xsd: . + +ex:InvalidResource1 + rdf:type rdfs:Resource ; + rdfs:label "Invalid resource 1" ; +. +ex:InvalidResource2 + rdf:type rdfs:Resource ; + rdfs:label "Invalid label 1" ; + rdfs:label "Invalid label 2" ; +. +ex:TestShape + rdf:type sh:NodeShape ; + rdfs:label "Test shape" ; + sh:sparql ex:TestShape-sparql ; + sh:targetNode ex:InvalidResource1 ; + sh:targetNode ex:InvalidResource2 ; + sh:targetNode ex:ValidResource1 ; +. +ex:TestShape-sparql + sh:message "Cannot have a label" ; + sh:prefixes ; + sh:select """ + SELECT $this ?path ?value + WHERE { + $this ?path ?value . + FILTER (?path = ) . + }""" ; +. +ex:ValidResource1 + rdf:type rdfs:Resource ; +. +<> + rdf:type mf:Manifest ; + mf:entries ( + + ) ; +. + + rdf:type sht:Validate ; + rdfs:label "Test of sh:sparql at node shape 001" ; + mf:action [ + sht:dataGraph <> ; + sht:shapesGraph <> ; + ] ; + mf:result [ + rdf:type sh:ValidationReport ; + sh:conforms "false"^^xsd:boolean ; + sh:result [ + rdf:type sh:ValidationResult ; + sh:focusNode ex:InvalidResource1 ; + sh:resultPath rdfs:label ; + sh:resultSeverity sh:Violation ; + sh:sourceConstraint ex:TestShape-sparql ; + sh:sourceConstraintComponent sh:SPARQLConstraintComponent ; + sh:sourceShape ex:TestShape ; + sh:value "Invalid resource 1" ; + ] ; + sh:result [ + rdf:type sh:ValidationResult ; + sh:focusNode ex:InvalidResource2 ; + sh:resultPath rdfs:label ; + sh:resultSeverity sh:Violation ; + sh:sourceConstraint ex:TestShape-sparql ; + sh:sourceConstraintComponent sh:SPARQLConstraintComponent ; + sh:sourceShape ex:TestShape ; + sh:value "Invalid label 1" ; + ] ; + sh:result [ + rdf:type sh:ValidationResult ; + sh:focusNode ex:InvalidResource2 ; + sh:resultPath rdfs:label ; + sh:resultSeverity sh:Violation ; + sh:sourceConstraint ex:TestShape-sparql ; + sh:sourceConstraintComponent sh:SPARQLConstraintComponent ; + sh:sourceShape ex:TestShape ; + sh:value "Invalid label 2" ; + ] ; + ] ; + mf:status sht:approved ; +. diff --git a/corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/sparql/node/sparql-002.ttl b/corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/sparql/node/sparql-002.ttl new file mode 100644 index 0000000000..e6dd7c11bb --- /dev/null +++ b/corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/sparql/node/sparql-002.ttl @@ -0,0 +1,69 @@ +@prefix dash: . +@prefix ex: . +@prefix mf: . +@prefix owl: . +@prefix rdf: . +@prefix rdfs: . +@prefix sh: . +@prefix sht: . +@prefix xsd: . + + + sh:declare [ + rdf:type sh:PrefixDeclaration ; + sh:namespace "http://datashapes.org/sh/tests/sparql/node/sparql-002.test#"^^xsd:anyURI ; + sh:prefix "ex" ; + ] ; +. +ex:InvalidCountry + rdf:type ex:Country ; + ex:germanLabel "Spain"@en ; +. +ex:LanguageExampleShape + rdf:type sh:NodeShape ; + rdf:type sh:SPARQLConstraint ; + sh:message "Values are literals with German language tag." ; + sh:prefixes ; + sh:select """ + SELECT $this (ex:germanLabel AS ?path) ?value + WHERE { + $this ex:germanLabel ?value . + FILTER (!isLiteral(?value) || !langMatches(lang(?value), \"de\")) + } + """ ; + sh:sparql ex:LanguageExampleShape ; + sh:targetClass ex:Country ; +. +ex:ValidCountry + rdf:type ex:Country ; + ex:germanLabel "Spanien"@de ; +. +<> + rdf:type mf:Manifest ; + mf:entries ( + + ) ; +. + + rdf:type sht:Validate ; + rdfs:label "Test of sh:sparql at node shape 002" ; + mf:action [ + sht:dataGraph <> ; + sht:shapesGraph <> ; + ] ; + mf:result [ + rdf:type sh:ValidationReport ; + sh:conforms "false"^^xsd:boolean ; + sh:result [ + rdf:type sh:ValidationResult ; + sh:focusNode ex:InvalidCountry ; + sh:resultPath ex:germanLabel ; + sh:resultSeverity sh:Violation ; + sh:sourceConstraint ex:LanguageExampleShape ; + sh:sourceConstraintComponent sh:SPARQLConstraintComponent ; + sh:sourceShape ex:LanguageExampleShape ; + sh:value "Spain"@en ; + ] ; + ] ; + mf:status sht:approved ; +. diff --git a/corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/sparql/node/sparql-003.ttl b/corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/sparql/node/sparql-003.ttl new file mode 100644 index 0000000000..fa843ea7b2 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/sparql/node/sparql-003.ttl @@ -0,0 +1,70 @@ +@prefix dash: . +@prefix ex: . +@prefix mf: . +@prefix owl: . +@prefix rdf: . +@prefix rdfs: . +@prefix sh: . +@prefix sht: . +@prefix xsd: . + + + sh:declare [ + rdf:type sh:PrefixDeclaration ; + sh:namespace "http://datashapes.org/sh/tests/sparql/node/sparql-003.test#"^^xsd:anyURI ; + sh:prefix "ex" ; + ] ; +. +ex:InvalidCountry + rdf:type ex:Country ; + ex:germanLabel "Spain"@en ; +. +ex:LanguageExampleShape + rdf:type sh:NodeShape ; + rdf:type sh:SPARQLConstraint ; + sh:message "Values are literals with German language tag." ; + sh:prefixes ; + sh:select """ + SELECT $this (ex:germanLabel AS ?path) + WHERE { + $this ex:germanLabel ?value . + FILTER (!isLiteral(?value) || !langMatches(lang(?value), \"de\")) + } + """ ; + sh:severity sh:Warning ; + sh:sparql ex:LanguageExampleShape ; + sh:targetClass ex:Country ; +. +ex:ValidCountry + rdf:type ex:Country ; + ex:germanLabel "Spanien"@de ; +. +<> + rdf:type mf:Manifest ; + mf:entries ( + + ) ; +. + + rdf:type sht:Validate ; + rdfs:label "Test of sh:sparql at node shape 003" ; + mf:action [ + sht:dataGraph <> ; + sht:shapesGraph <> ; + ] ; + mf:result [ + rdf:type sh:ValidationReport ; + sh:conforms "false"^^xsd:boolean ; + sh:result [ + rdf:type sh:ValidationResult ; + sh:focusNode ex:InvalidCountry ; + sh:resultPath ex:germanLabel ; + sh:resultSeverity sh:Warning ; + sh:sourceConstraint ex:LanguageExampleShape ; + sh:sourceConstraintComponent sh:SPARQLConstraintComponent ; + sh:sourceShape ex:LanguageExampleShape ; + sh:value "Spain"@en ; + ] ; + ] ; + mf:status sht:approved ; +. diff --git a/corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/sparql/pre-binding/manifest.ttl b/corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/sparql/pre-binding/manifest.ttl new file mode 100644 index 0000000000..8c1eb6a47d --- /dev/null +++ b/corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/sparql/pre-binding/manifest.ttl @@ -0,0 +1,21 @@ +@prefix mf: . +@prefix rdfs: . +@prefix sht: . + +<> + a mf:Manifest ; + rdfs:label "Tests for pre-binding" ; + mf:include ; + mf:include ; + mf:include ; + mf:include ; + mf:include ; + mf:include ; + mf:include ; + mf:include ; + mf:include ; + mf:include ; + mf:include ; + mf:include ; + mf:include ; +. diff --git a/corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/sparql/pre-binding/pre-binding-001.ttl b/corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/sparql/pre-binding/pre-binding-001.ttl new file mode 100644 index 0000000000..cf90275410 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/sparql/pre-binding/pre-binding-001.ttl @@ -0,0 +1,63 @@ +@prefix dash: . +@prefix ex: . +@prefix mf: . +@prefix owl: . +@prefix rdf: . +@prefix rdfs: . +@prefix sh: . +@prefix sht: . +@prefix xsd: . + +ex: + sh:declare [ + sh:prefix "ex" ; + sh:namespace "http://datashapes.org/sh/tests/sparql/pre-binding/pre-binding-001.test#"^^xsd:anyURI ; + ] . + +ex:TestShape + rdf:type sh:NodeShape ; + rdfs:label "Test shape" ; + sh:sparql ex:TestShape-sparql ; + sh:targetNode ex:InvalidResource ; +. +ex:TestShape-sparql + sh:message "Test message" ; + sh:prefixes ex: ; + sh:select """ + SELECT $this + WHERE { + FILTER ($this = ex:InvalidResource) . + }""" ; +. +ex:ValidResource1 + rdf:type rdfs:Resource ; +. +<> + rdf:type mf:Manifest ; + mf:entries ( + + ) ; +. + + rdf:type sht:Validate ; + rdfs:label "Test of pre-binding in FILTER" ; + mf:action [ + sht:dataGraph <> ; + sht:shapesGraph <> ; + ] ; + mf:result [ + rdf:type sh:ValidationReport ; + sh:conforms "false"^^xsd:boolean ; + sh:result [ + rdf:type sh:ValidationResult ; + sh:focusNode ex:InvalidResource ; + sh:resultMessage "Test message" ; + sh:resultSeverity sh:Violation ; + sh:sourceConstraint ex:TestShape-sparql ; + sh:sourceConstraintComponent sh:SPARQLConstraintComponent ; + sh:sourceShape ex:TestShape ; + sh:value ex:InvalidResource ; + ] ; + ] ; + mf:status sht:approved ; +. diff --git a/corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/sparql/pre-binding/pre-binding-002.ttl b/corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/sparql/pre-binding/pre-binding-002.ttl new file mode 100644 index 0000000000..819b6816ab --- /dev/null +++ b/corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/sparql/pre-binding/pre-binding-002.ttl @@ -0,0 +1,67 @@ +@prefix dash: . +@prefix ex: . +@prefix mf: . +@prefix owl: . +@prefix rdf: . +@prefix rdfs: . +@prefix sh: . +@prefix sht: . +@prefix xsd: . + +ex: + sh:declare [ + sh:prefix "ex" ; + sh:namespace "http://datashapes.org/sh/tests/sparql/pre-binding/pre-binding-002.test#"^^xsd:anyURI ; + ] . + +ex:TestShape + rdf:type sh:NodeShape ; + rdfs:label "Test shape" ; + sh:sparql ex:TestShape-sparql ; + sh:targetNode ex:InvalidResource ; +. +ex:TestShape-sparql + sh:prefixes ex: ; + sh:select """ + SELECT $this + WHERE { + { + FILTER (false) . + } + UNION + { + FILTER ($this = ex:InvalidResource) . + } + }""" ; +. +ex:ValidResource1 + rdf:type rdfs:Resource ; +. +<> + rdf:type mf:Manifest ; + mf:entries ( + + ) ; +. + + rdf:type sht:Validate ; + rdfs:label "Test of pre-binding in UNION" ; + mf:action [ + sht:dataGraph <> ; + sht:shapesGraph <> ; + ] ; + mf:result [ + rdf:type sh:ValidationReport ; + sh:conforms "false"^^xsd:boolean ; + sh:result [ + rdf:type sh:ValidationResult ; + sh:focusNode ex:InvalidResource ; + sh:resultSeverity sh:Violation ; + sh:sourceConstraint ex:TestShape-sparql ; + sh:sourceConstraintComponent sh:SPARQLConstraintComponent ; + sh:sourceShape ex:TestShape ; + sh:value ex:InvalidResource ; + ] ; + ] ; + mf:status sht:approved ; +. diff --git a/corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/sparql/pre-binding/pre-binding-003.ttl b/corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/sparql/pre-binding/pre-binding-003.ttl new file mode 100644 index 0000000000..2cc510c487 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/sparql/pre-binding/pre-binding-003.ttl @@ -0,0 +1,67 @@ +@prefix dash: . +@prefix ex: . +@prefix mf: . +@prefix owl: . +@prefix rdf: . +@prefix rdfs: . +@prefix sh: . +@prefix sht: . +@prefix xsd: . + +ex: + sh:declare [ + sh:prefix "ex" ; + sh:namespace "http://datashapes.org/sh/tests/sparql/pre-binding/pre-binding-003.test#"^^xsd:anyURI ; + ] . + +ex:TestShape + rdf:type sh:NodeShape ; + rdfs:label "Test shape" ; + sh:sparql ex:TestShape-sparql ; + sh:targetNode ex:InvalidResource ; +. +ex:TestShape-sparql + sh:prefixes ex: ; + sh:select """ + SELECT $this + WHERE { + { + { + FILTER ($this = ex:InvalidResource) . + } + FILTER bound($this) . + } + FILTER (true) . + }""" ; +. +ex:ValidResource1 + rdf:type rdfs:Resource ; +. +<> + rdf:type mf:Manifest ; + mf:entries ( + + ) ; +. + + rdf:type sht:Validate ; + rdfs:label "Test of pre-binding in inner {...} blocks" ; + mf:action [ + sht:dataGraph <> ; + sht:shapesGraph <> ; + ] ; + mf:result [ + rdf:type sh:ValidationReport ; + sh:conforms "false"^^xsd:boolean ; + sh:result [ + rdf:type sh:ValidationResult ; + sh:focusNode ex:InvalidResource ; + sh:resultSeverity sh:Violation ; + sh:sourceConstraint ex:TestShape-sparql ; + sh:sourceConstraintComponent sh:SPARQLConstraintComponent ; + sh:sourceShape ex:TestShape ; + sh:value ex:InvalidResource ; + ] ; + ] ; + mf:status sht:approved ; +. diff --git a/corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/sparql/pre-binding/pre-binding-004.ttl b/corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/sparql/pre-binding/pre-binding-004.ttl new file mode 100644 index 0000000000..e19c2e0d08 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/sparql/pre-binding/pre-binding-004.ttl @@ -0,0 +1,62 @@ +@prefix dash: . +@prefix ex: . +@prefix mf: . +@prefix owl: . +@prefix rdf: . +@prefix rdfs: . +@prefix sh: . +@prefix sht: . +@prefix xsd: . + +ex: + sh:declare [ + sh:prefix "ex" ; + sh:namespace "http://datashapes.org/sh/tests/sparql/pre-binding/pre-binding-004.test#"^^xsd:anyURI ; + ] . + +ex:TestShape + rdf:type sh:NodeShape ; + rdfs:label "Test shape" ; + sh:sparql ex:TestShape-sparql ; + sh:targetNode ex:InvalidResource ; +. +ex:TestShape-sparql + sh:prefixes ex: ; + sh:select """ + SELECT $this + WHERE { + BIND ($this AS ?that) . + FILTER (?that = ex:InvalidResource) . + }""" ; +. +ex:ValidResource1 + rdf:type rdfs:Resource ; +. +<> + rdf:type mf:Manifest ; + mf:entries ( + + ) ; +. + + rdf:type sht:Validate ; + rdfs:label "Test of pre-binding in BIND expressions" ; + mf:action [ + sht:dataGraph <> ; + sht:shapesGraph <> ; + ] ; + mf:result [ + rdf:type sh:ValidationReport ; + sh:conforms "false"^^xsd:boolean ; + sh:result [ + rdf:type sh:ValidationResult ; + sh:focusNode ex:InvalidResource ; + sh:resultSeverity sh:Violation ; + sh:sourceConstraint ex:TestShape-sparql ; + sh:sourceConstraintComponent sh:SPARQLConstraintComponent ; + sh:sourceShape ex:TestShape ; + sh:value ex:InvalidResource ; + ] ; + ] ; + mf:status sht:approved ; +. diff --git a/corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/sparql/pre-binding/pre-binding-005.ttl b/corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/sparql/pre-binding/pre-binding-005.ttl new file mode 100644 index 0000000000..83790bb3c8 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/sparql/pre-binding/pre-binding-005.ttl @@ -0,0 +1,68 @@ +@prefix dash: . +@prefix ex: . +@prefix mf: . +@prefix owl: . +@prefix rdf: . +@prefix rdfs: . +@prefix sh: . +@prefix sht: . +@prefix xsd: . + +ex: + sh:declare [ + sh:prefix "ex" ; + sh:namespace "http://datashapes.org/sh/tests/sparql/pre-binding/pre-binding-005.test#"^^xsd:anyURI ; + ] . + +ex:InvalidResource + ex:property "Label" . + +ex:TestShape + rdf:type sh:NodeShape ; + rdfs:label "Test shape" ; + sh:sparql ex:TestShape-sparql ; + sh:targetNode ex:InvalidResource ; +. +ex:TestShape-sparql + sh:prefixes ex: ; + sh:select """ + SELECT $this + WHERE { + { + FILTER (bound($this)) + } + $this ex:property "Label" . + FILTER (bound($this)) . + }""" ; +. +ex:ValidResource1 + rdf:type rdfs:Resource ; +. +<> + rdf:type mf:Manifest ; + mf:entries ( + + ) ; +. + + rdf:type sht:Validate ; + rdfs:label "Test of pre-binding in BGP and FILTER" ; + mf:action [ + sht:dataGraph <> ; + sht:shapesGraph <> ; + ] ; + mf:result [ + rdf:type sh:ValidationReport ; + sh:conforms "false"^^xsd:boolean ; + sh:result [ + rdf:type sh:ValidationResult ; + sh:focusNode ex:InvalidResource ; + sh:resultSeverity sh:Violation ; + sh:sourceConstraint ex:TestShape-sparql ; + sh:sourceConstraintComponent sh:SPARQLConstraintComponent ; + sh:sourceShape ex:TestShape ; + sh:value ex:InvalidResource ; + ] ; + ] ; + mf:status sht:approved ; +. diff --git a/corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/sparql/pre-binding/pre-binding-006.ttl b/corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/sparql/pre-binding/pre-binding-006.ttl new file mode 100644 index 0000000000..769e2e5aae --- /dev/null +++ b/corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/sparql/pre-binding/pre-binding-006.ttl @@ -0,0 +1,66 @@ +@prefix dash: . +@prefix ex: . +@prefix mf: . +@prefix owl: . +@prefix rdf: . +@prefix rdfs: . +@prefix sh: . +@prefix sht: . +@prefix xsd: . + +ex: + sh:declare [ + sh:prefix "ex" ; + sh:namespace "http://datashapes.org/sh/tests/sparql/pre-binding/pre-binding-006.test#"^^xsd:anyURI ; + ] . + +ex:TestShape + rdf:type sh:NodeShape ; + rdfs:label "Test shape" ; + sh:sparql ex:TestShape-sparql ; + sh:targetNode ex:InvalidResource ; +. +ex:TestShape-sparql + sh:prefixes ex: ; + sh:select """ + SELECT $this + WHERE { + { + SELECT * + WHERE { + FILTER ($this = ex:InvalidResource) . + } + } + }""" ; +. +ex:ValidResource1 + rdf:type rdfs:Resource ; +. +<> + rdf:type mf:Manifest ; + mf:entries ( + + ) ; +. + + rdf:type sht:Validate ; + rdfs:label "Test of pre-binding in nested SELECT" ; + mf:action [ + sht:dataGraph <> ; + sht:shapesGraph <> ; + ] ; + mf:result [ + rdf:type sh:ValidationReport ; + sh:conforms "false"^^xsd:boolean ; + sh:result [ + rdf:type sh:ValidationResult ; + sh:focusNode ex:InvalidResource ; + sh:resultSeverity sh:Violation ; + sh:sourceConstraint ex:TestShape-sparql ; + sh:sourceConstraintComponent sh:SPARQLConstraintComponent ; + sh:sourceShape ex:TestShape ; + sh:value ex:InvalidResource ; + ] ; + ] ; + mf:status sht:approved ; +. diff --git a/corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/sparql/pre-binding/shapesGraph-001.ttl b/corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/sparql/pre-binding/shapesGraph-001.ttl new file mode 100644 index 0000000000..6a93b7cfcd --- /dev/null +++ b/corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/sparql/pre-binding/shapesGraph-001.ttl @@ -0,0 +1,64 @@ +@prefix ex: . +@prefix mf: . +@prefix owl: . +@prefix rdf: . +@prefix rdfs: . +@prefix sh: . +@prefix sht: . +@prefix xsd: . + +ex: + sh:declare [ + sh:prefix "ex" ; + sh:namespace "http://datashapes.org/sh/tests/sparql/pre-binding/shapesGraph-001.test#"^^xsd:anyURI ; + ] . + +ex:TestShape + rdf:type sh:NodeShape ; + rdfs:label "Test shape" ; + sh:sparql ex:TestShape-sparql ; + sh:targetNode ex:InvalidResource ; + ex:property 42 ; +. +ex:TestShape-sparql + sh:message "Test message" ; + sh:prefixes ex: ; + sh:select """ + SELECT $this + WHERE { + FILTER bound($shapesGraph) . + GRAPH $shapesGraph { + FILTER bound($currentShape) . + $currentShape ex:property 42 . + } + }""" ; +. +<> + rdf:type mf:Manifest ; + mf:entries ( + + ) ; +. + + rdf:type sht:Validate ; + rdfs:label "Test of $shapesGraph and $currentShape" ; + mf:action [ + sht:dataGraph <> ; + sht:shapesGraph <> ; + ] ; + mf:result [ + rdf:type sh:ValidationReport ; + sh:conforms "false"^^xsd:boolean ; + sh:result [ + rdf:type sh:ValidationResult ; + sh:focusNode ex:InvalidResource ; + sh:resultMessage "Test message" ; + sh:resultSeverity sh:Violation ; + sh:sourceConstraint ex:TestShape-sparql ; + sh:sourceConstraintComponent sh:SPARQLConstraintComponent ; + sh:sourceShape ex:TestShape ; + sh:value ex:InvalidResource ; + ] ; + ] ; + mf:status sht:proposed ; +. diff --git a/corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/sparql/pre-binding/unsupported-sparql-001.ttl b/corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/sparql/pre-binding/unsupported-sparql-001.ttl new file mode 100644 index 0000000000..ddc007aaed --- /dev/null +++ b/corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/sparql/pre-binding/unsupported-sparql-001.ttl @@ -0,0 +1,34 @@ +@prefix ex: . +@prefix mf: . +@prefix owl: . +@prefix rdf: . +@prefix rdfs: . +@prefix sh: . +@prefix sht: . +@prefix xsd: . + +<> + rdf:type mf:Manifest ; + mf:entries ( ) . + + + rdf:type sht:Validate ; + rdfs:label "Test of unsupported MINUS" ; + mf:action [ + sht:dataGraph <> ; + sht:shapesGraph <> ; + ] ; + mf:result sht:Failure ; + mf:status sht:approved . + +ex:TestShape + a sh:NodeShape ; + sh:targetNode ex:InvalidResource ; + sh:sparql [ + sh:select """ + SELECT $this + WHERE { + $this ?x ?any . + MINUS { $this ?x "Value" } + }""" ; + ] . diff --git a/corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/sparql/pre-binding/unsupported-sparql-002.ttl b/corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/sparql/pre-binding/unsupported-sparql-002.ttl new file mode 100644 index 0000000000..529ef9a01c --- /dev/null +++ b/corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/sparql/pre-binding/unsupported-sparql-002.ttl @@ -0,0 +1,33 @@ +@prefix ex: . +@prefix mf: . +@prefix owl: . +@prefix rdf: . +@prefix rdfs: . +@prefix sh: . +@prefix sht: . +@prefix xsd: . + +<> + rdf:type mf:Manifest ; + mf:entries ( ) . + + + rdf:type sht:Validate ; + rdfs:label "Test of unsupported VALUES" ; + mf:action [ + sht:dataGraph <> ; + sht:shapesGraph <> ; + ] ; + mf:result sht:Failure ; + mf:status sht:approved . + +ex:TestShape + a sh:NodeShape ; + sh:targetNode ex:InvalidResource ; + sh:sparql [ + sh:select """ + SELECT $this + WHERE { + VALUES ?any { true } + }""" ; + ] . diff --git a/corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/sparql/pre-binding/unsupported-sparql-003.ttl b/corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/sparql/pre-binding/unsupported-sparql-003.ttl new file mode 100644 index 0000000000..02c191ec8b --- /dev/null +++ b/corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/sparql/pre-binding/unsupported-sparql-003.ttl @@ -0,0 +1,36 @@ +@prefix ex: . +@prefix mf: . +@prefix owl: . +@prefix rdf: . +@prefix rdfs: . +@prefix sh: . +@prefix sht: . +@prefix xsd: . + +<> + rdf:type mf:Manifest ; + mf:entries ( ) . + + + rdf:type sht:Validate ; + rdfs:label "Test of unsupported SERVICE" ; + mf:action [ + sht:dataGraph <> ; + sht:shapesGraph <> ; + ] ; + mf:result sht:Failure ; + mf:status sht:approved . + +ex:TestShape + a sh:NodeShape ; + sh:targetNode ex:InvalidResource ; + sh:sparql [ + sh:select """ + SELECT $this + WHERE { + $this ?x ?any . + SERVICE { + ?a ?b ?c . + } + }""" ; + ] . diff --git a/corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/sparql/pre-binding/unsupported-sparql-004.ttl b/corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/sparql/pre-binding/unsupported-sparql-004.ttl new file mode 100644 index 0000000000..7ebf22fa26 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/sparql/pre-binding/unsupported-sparql-004.ttl @@ -0,0 +1,39 @@ +@prefix ex: . +@prefix mf: . +@prefix owl: . +@prefix rdf: . +@prefix rdfs: . +@prefix sh: . +@prefix sht: . +@prefix xsd: . + +<> + rdf:type mf:Manifest ; + mf:entries ( ) . + + + rdf:type sht:Validate ; + rdfs:label "Test of unsupported SELECT" ; + mf:action [ + sht:dataGraph <> ; + sht:shapesGraph <> ; + ] ; + mf:result sht:Failure ; + mf:status sht:approved . + +ex:TestShape + a sh:NodeShape ; + sh:targetNode ex:InvalidResource ; + sh:sparql [ + sh:select """ + SELECT $this + WHERE { + $this ?x ?any . + { + SELECT ?other ?b + WHERE { + ?other ?b ?c . + } + } + }""" ; + ] . diff --git a/corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/sparql/pre-binding/unsupported-sparql-005.ttl b/corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/sparql/pre-binding/unsupported-sparql-005.ttl new file mode 100644 index 0000000000..3d47bce588 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/sparql/pre-binding/unsupported-sparql-005.ttl @@ -0,0 +1,33 @@ +@prefix ex: . +@prefix mf: . +@prefix owl: . +@prefix rdf: . +@prefix rdfs: . +@prefix sh: . +@prefix sht: . +@prefix xsd: . + +<> + rdf:type mf:Manifest ; + mf:entries ( ) . + + + rdf:type sht:Validate ; + rdfs:label "Test of unsupported AS ?prebound" ; + mf:action [ + sht:dataGraph <> ; + sht:shapesGraph <> ; + ] ; + mf:result sht:Failure ; + mf:status sht:approved . + +ex:TestShape + a sh:NodeShape ; + sh:targetNode ex:InvalidResource ; + sh:sparql [ + sh:select """ + SELECT $this + WHERE { + BIND (true AS $this) . + }""" ; + ] . diff --git a/corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/sparql/pre-binding/unsupported-sparql-006.ttl b/corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/sparql/pre-binding/unsupported-sparql-006.ttl new file mode 100644 index 0000000000..83a99204a9 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/sparql/pre-binding/unsupported-sparql-006.ttl @@ -0,0 +1,85 @@ +@prefix dash: . +@prefix ex: . +@prefix mf: . +@prefix owl: . +@prefix rdf: . +@prefix rdfs: . +@prefix sh: . +@prefix sht: . +@prefix xsd: . + +ex:Country + rdf:type rdfs:Class ; + rdfs:label "Country" ; +. +ex:InvalidCountry1 + rdf:type ex:Country ; + ex:englishLabel "Munich" ; + ex:germanLabel "Muenchen" ; + rdfs:label "Invalid country1" ; +. +ex:LanguageConstraintComponentUsingASK + rdf:type sh:ConstraintComponent ; + rdfs:label "Language constraint component" ; + sh:labelTemplate "Values are literals with language \"{$lang}\"" ; + sh:parameter [ + sh:path ex:lang ; + sh:datatype xsd:string ; + sh:description "The language tag, e.g. \"de\"." ; + sh:minLength 2 ; + sh:name "language" ; + ] ; + sh:propertyValidator ex:hasLang ; +. +ex:LanguageExampleShape + rdf:type sh:NodeShape ; + sh:property _:b41651 ; + sh:property _:b75747 ; + sh:targetClass ex:Country ; +. +ex:ValidCountry1 + rdf:type ex:Country ; + ex:englishLabel "Beijing"@en ; + ex:germanLabel "Peking"@de ; + rdfs:label "Valid country1" ; +. +ex:englishLabel + rdfs:domain ex:Country ; +. +ex:germanLabel + rdfs:domain ex:Country ; +. +ex:hasLang + rdf:type sh:SPARQLAskValidator ; + sh:ask """ + ASK { + BIND (true AS ?value) . + FILTER (isLiteral(?value) && langMatches(lang(?value), $lang)) + } + """ ; + sh:message "Values are literals with language \"{?lang}\"" ; +. +<> + rdf:type mf:Manifest ; + mf:entries ( + + ) ; +. + + rdf:type sht:Validate ; + rdfs:label "Test of ASK trying to reassign ?value" ; + mf:action [ + sht:dataGraph <> ; + sht:shapesGraph <> ; + ] ; + mf:result sht:Failure ; + mf:status sht:approved ; +. +_:b41651 + sh:path ex:englishLabel ; + ex:lang "en" ; +. +_:b75747 + sh:path ex:germanLabel ; + ex:lang "de" ; +. diff --git a/corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/sparql/property/manifest.ttl b/corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/sparql/property/manifest.ttl new file mode 100644 index 0000000000..fab6e179af --- /dev/null +++ b/corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/sparql/property/manifest.ttl @@ -0,0 +1,10 @@ +@prefix mf: . +@prefix rdfs: . +@prefix sht: . + +<> + a mf:Manifest ; + rdfs:label "Tests converted from http://datashapes.org/sh/tests/tests/sparql/property" ; + mf:include ; + mf:include ; + . diff --git a/corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/sparql/property/sparql-001.ttl b/corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/sparql/property/sparql-001.ttl new file mode 100644 index 0000000000..8fce16c2e6 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/sparql/property/sparql-001.ttl @@ -0,0 +1,76 @@ +@prefix dash: . +@prefix ex: . +@prefix mf: . +@prefix owl: . +@prefix rdf: . +@prefix rdfs: . +@prefix sh: . +@prefix sht: . +@prefix xsd: . + + sh:declare [ + rdf:type sh:PrefixDeclaration ; + sh:namespace "http://datashapes.org/sh/tests/sparql/property/sparql-001.test#"^^xsd:anyURI ; + sh:prefix "ex" ; + ] +. + +ex:Country + rdf:type rdfs:Class ; +. +ex:InvalidCountry + rdf:type ex:Country ; + ex:germanLabel "Spain"@en ; +. +ex:LanguageExamplePropertyShape + rdf:type sh:PropertyShape ; + # sh:path ex:germanLabel ; + sh:sparql ex:LanguageExamplePropertyShape-sparql ; + sh:targetClass ex:Country ; +. +ex:LanguageExamplePropertyShape-sparql + rdf:type sh:SPARQLConstraint ; + sh:message "Values are literals with German language tag." ; + sh:prefixes ; + sh:select """ + SELECT $this ?value $path + WHERE { + bind (ex:germanLabel as $path) + $this $path ?value . + FILTER (!isLiteral(?value) || !langMatches(lang(?value), \"de\")) + } + """ ; +. +ex:ValidCountry + rdf:type ex:Country ; + ex:germanLabel "Spanien"@de ; +. +<> + rdf:type mf:Manifest ; + mf:entries ( + + ) ; +. + + rdf:type sht:Validate ; + rdfs:label "Test of sh:sparql at property shape 001" ; + mf:action [ + sht:dataGraph <> ; + sht:shapesGraph <> ; + ] ; + mf:result [ + rdf:type sh:ValidationReport ; + sh:conforms "false"^^xsd:boolean ; + sh:result [ + rdf:type sh:ValidationResult ; + sh:focusNode ex:InvalidCountry ; + sh:resultPath ex:germanLabel ; + sh:resultSeverity sh:Violation ; + sh:sourceConstraint ex:LanguageExamplePropertyShape-sparql ; + sh:sourceConstraintComponent sh:SPARQLConstraintComponent ; + sh:sourceShape ex:LanguageExamplePropertyShape ; + sh:value "Spain"@en ; + ] ; + ] ; + mf:status sht:approved ; +. diff --git a/corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/sparql/property/sparql-002.ttl b/corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/sparql/property/sparql-002.ttl new file mode 100644 index 0000000000..a2e4fbf1f8 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/data-shapes/data-shapes-test-suite/tests/sparql/property/sparql-002.ttl @@ -0,0 +1,77 @@ +@prefix dash: . +@prefix ex: . +@prefix mf: . +@prefix owl: . +@prefix rdf: . +@prefix rdfs: . +@prefix sh: . +@prefix sht: . +@prefix xsd: . + + sh:declare [ + rdf:type sh:PrefixDeclaration ; + sh:namespace "http://datashapes.org/sh/tests/sparql/property/sparql-002.test#"^^xsd:anyURI ; + sh:prefix "ex" ; + ] +. + +ex:Country + rdf:type rdfs:Class ; +. +ex:InvalidCountry + rdf:type ex:Country ; + ex:germanLabel "Spain"@en ; +. +ex:LanguageExamplePropertyShape + rdf:type sh:PropertyShape ; + sh:path ex:germanLabel ; + sh:sparql ex:LanguageExamplePropertyShape-sparql ; + sh:targetClass ex:Country ; +. +ex:LanguageExamplePropertyShape-sparql + rdf:type sh:SPARQLConstraint ; + sh:message "Values are literals with German language tag." ; + sh:prefixes ; + sh:select """ + SELECT $this ?value $path + WHERE { + values (?this) {(UNDEF)} + bind (ex:germanLabel as $path) + bind (?this as ?value) + FILTER (!isLiteral(?value) || !langMatches(lang(?value), \"de\")) + } + """ ; +. +ex:ValidCountry + rdf:type ex:Country ; + ex:germanLabel "Spanien"@de ; +. +<> + rdf:type mf:Manifest ; + mf:entries ( + + ) ; +. + + rdf:type sht:Validate ; + rdfs:label "Test of sh:sparql at property shape 002" ; + mf:action [ + sht:dataGraph <> ; + sht:shapesGraph <> ; + ] ; + mf:result [ + rdf:type sh:ValidationReport ; + sh:conforms "false"^^xsd:boolean ; + sh:result [ + rdf:type sh:ValidationResult ; + sh:focusNode ex:InvalidCountry ; + sh:resultPath ex:germanLabel ; + sh:resultSeverity sh:Violation ; + sh:sourceConstraint ex:LanguageExamplePropertyShape-sparql ; + sh:sourceConstraintComponent sh:SPARQLConstraintComponent ; + sh:sourceShape ex:LanguageExamplePropertyShape ; + sh:value "Spain"@en ; + ] ; + ] ; + mf:status sht:approved ; +. diff --git a/corese-unit-test/src/test/resources/data/earl/corese.txt b/corese-unit-test/src/test/resources/data/earl/corese.txt new file mode 100644 index 0000000000..0f1adc685f --- /dev/null +++ b/corese-unit-test/src/test/resources/data/earl/corese.txt @@ -0,0 +1,16 @@ + a foaf:Person ; + foaf:homepage ; + foaf:name "Olivier Corby" . + + + a doap:Project ; + dc:creator ; + foaf:maker ; + doap:name "Corese" ; + doap:developer ; + doap:license ; + foaf:description "Corese is a Semantic Web Factory implementing RDF, RDFS, SPARQL 1.1 Query & Update and Inference Rules, developed at Inria & I3S" ; + foaf:homepage . + + + diff --git a/corese-unit-test/src/test/resources/data/earl/earl-corese.ttl b/corese-unit-test/src/test/resources/data/earl/earl-corese.ttl new file mode 100644 index 0000000000..8c723852a7 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/earl/earl-corese.ttl @@ -0,0 +1,435 @@ +@prefix dc: . +@prefix earl: . +@prefix foaf: . +@prefix dct: . +@prefix xsd: . +@prefix rdf: . +@prefix dawg: . +@prefix doap: . + + a foaf:Person ; + foaf:homepage ; + foaf:name "Olivier Corby" . + + + a doap:Project ; + dc:creator ; + foaf:maker ; + doap:name "Corese" ; + doap:developer ; + doap:license ; + foaf:description "Corese is a Semantic Web Factory implementing RDF, RDFS, SPARQL 1.1 Query & Update and Inference Rules, developed at Inria & I3S" ; + foaf:homepage . + + + +[] a earl:Assertion ; + earl:assertedBy ; + earl:result [ + a earl:TestResult ; + dc:date "2013-12-09T10:36:10"^^xsd:dateTime ; + earl:outcome earl:passed + ] ; + earl:subject ; + earl:test . + +[] a earl:Assertion ; + earl:assertedBy ; + earl:result [ + a earl:TestResult ; + dc:date "2013-12-09T10:36:10"^^xsd:dateTime ; + earl:outcome earl:failed + ] ; + earl:subject ; + earl:test . + +[] a earl:Assertion ; + earl:assertedBy ; + earl:result [ + a earl:TestResult ; + dc:date "2013-12-09T10:36:11"^^xsd:dateTime ; + earl:outcome earl:passed + ] ; + earl:subject ; + earl:test . + +[] a earl:Assertion ; + earl:assertedBy ; + earl:result [ + a earl:TestResult ; + dc:date "2013-12-09T10:36:11"^^xsd:dateTime ; + earl:outcome earl:passed + ] ; + earl:subject ; + earl:test . + +[] a earl:Assertion ; + earl:assertedBy ; + earl:result [ + a earl:TestResult ; + dc:date "2013-12-09T10:36:11"^^xsd:dateTime ; + earl:outcome earl:passed + ] ; + earl:subject ; + earl:test . + +[] a earl:Assertion ; + earl:assertedBy ; + earl:result [ + a earl:TestResult ; + dc:date "2013-12-09T10:36:11"^^xsd:dateTime ; + earl:outcome earl:passed + ] ; + earl:subject ; + earl:test . + +[] a earl:Assertion ; + earl:assertedBy ; + earl:result [ + a earl:TestResult ; + dc:date "2013-12-09T10:36:11"^^xsd:dateTime ; + earl:outcome earl:passed + ] ; + earl:subject ; + earl:test . + +[] a earl:Assertion ; + earl:assertedBy ; + earl:result [ + a earl:TestResult ; + dc:date "2013-12-09T10:36:12"^^xsd:dateTime ; + earl:outcome earl:passed + ] ; + earl:subject ; + earl:test . + +[] a earl:Assertion ; + earl:assertedBy ; + earl:result [ + a earl:TestResult ; + dc:date "2013-12-09T10:36:12"^^xsd:dateTime ; + earl:outcome earl:passed + ] ; + earl:subject ; + earl:test . + +[] a earl:Assertion ; + earl:assertedBy ; + earl:result [ + a earl:TestResult ; + dc:date "2013-12-09T10:36:12"^^xsd:dateTime ; + earl:outcome earl:passed + ] ; + earl:subject ; + earl:test . + +[] a earl:Assertion ; + earl:assertedBy ; + earl:result [ + a earl:TestResult ; + dc:date "2013-12-09T10:36:12"^^xsd:dateTime ; + earl:outcome earl:passed + ] ; + earl:subject ; + earl:test . + +[] a earl:Assertion ; + earl:assertedBy ; + earl:result [ + a earl:TestResult ; + dc:date "2013-12-09T10:36:13"^^xsd:dateTime ; + earl:outcome earl:passed + ] ; + earl:subject ; + earl:test . + +[] a earl:Assertion ; + earl:assertedBy ; + earl:result [ + a earl:TestResult ; + dc:date "2013-12-09T10:36:13"^^xsd:dateTime ; + earl:outcome earl:passed + ] ; + earl:subject ; + earl:test . + +[] a earl:Assertion ; + earl:assertedBy ; + earl:result [ + a earl:TestResult ; + dc:date "2013-12-09T10:36:13"^^xsd:dateTime ; + earl:outcome earl:passed + ] ; + earl:subject ; + earl:test . + +[] a earl:Assertion ; + earl:assertedBy ; + earl:result [ + a earl:TestResult ; + dc:date "2013-12-09T10:36:13"^^xsd:dateTime ; + earl:outcome earl:passed + ] ; + earl:subject ; + earl:test . + +[] a earl:Assertion ; + earl:assertedBy ; + earl:result [ + a earl:TestResult ; + dc:date "2013-12-09T10:36:14"^^xsd:dateTime ; + earl:outcome earl:passed + ] ; + earl:subject ; + earl:test . + +[] a earl:Assertion ; + earl:assertedBy ; + earl:result [ + a earl:TestResult ; + dc:date "2013-12-09T10:36:14"^^xsd:dateTime ; + earl:outcome earl:passed + ] ; + earl:subject ; + earl:test . + +[] a earl:Assertion ; + earl:assertedBy ; + earl:result [ + a earl:TestResult ; + dc:date "2013-12-09T10:36:14"^^xsd:dateTime ; + earl:outcome earl:passed + ] ; + earl:subject ; + earl:test . + +[] a earl:Assertion ; + earl:assertedBy ; + earl:result [ + a earl:TestResult ; + dc:date "2013-12-09T10:36:14"^^xsd:dateTime ; + earl:outcome earl:passed + ] ; + earl:subject ; + earl:test . + +[] a earl:Assertion ; + earl:assertedBy ; + earl:result [ + a earl:TestResult ; + dc:date "2013-12-09T10:36:15"^^xsd:dateTime ; + earl:outcome earl:passed + ] ; + earl:subject ; + earl:test . + +[] a earl:Assertion ; + earl:assertedBy ; + earl:result [ + a earl:TestResult ; + dc:date "2013-12-09T10:36:15"^^xsd:dateTime ; + earl:outcome earl:passed + ] ; + earl:subject ; + earl:test . + +[] a earl:Assertion ; + earl:assertedBy ; + earl:result [ + a earl:TestResult ; + dc:date "2013-12-09T10:36:15"^^xsd:dateTime ; + earl:outcome earl:passed + ] ; + earl:subject ; + earl:test . + +[] a earl:Assertion ; + earl:assertedBy ; + earl:result [ + a earl:TestResult ; + dc:date "2013-12-09T10:36:16"^^xsd:dateTime ; + earl:outcome earl:passed + ] ; + earl:subject ; + earl:test . + +[] a earl:Assertion ; + earl:assertedBy ; + earl:result [ + a earl:TestResult ; + dc:date "2013-12-09T10:36:16"^^xsd:dateTime ; + earl:outcome earl:passed + ] ; + earl:subject ; + earl:test . + +[] a earl:Assertion ; + earl:assertedBy ; + earl:result [ + a earl:TestResult ; + dc:date "2013-12-09T10:36:16"^^xsd:dateTime ; + earl:outcome earl:passed + ] ; + earl:subject ; + earl:test . + +[] a earl:Assertion ; + earl:assertedBy ; + earl:result [ + a earl:TestResult ; + dc:date "2013-12-09T10:36:16"^^xsd:dateTime ; + earl:outcome earl:passed + ] ; + earl:subject ; + earl:test . + +[] a earl:Assertion ; + earl:assertedBy ; + earl:result [ + a earl:TestResult ; + dc:date "2013-12-09T10:36:16"^^xsd:dateTime ; + earl:outcome earl:passed + ] ; + earl:subject ; + earl:test . + +[] a earl:Assertion ; + earl:assertedBy ; + earl:result [ + a earl:TestResult ; + dc:date "2013-12-09T10:36:17"^^xsd:dateTime ; + earl:outcome earl:passed + ] ; + earl:subject ; + earl:test . + +[] a earl:Assertion ; + earl:assertedBy ; + earl:result [ + a earl:TestResult ; + dc:date "2013-12-09T10:36:17"^^xsd:dateTime ; + earl:outcome earl:passed + ] ; + earl:subject ; + earl:test . + +[] a earl:Assertion ; + earl:assertedBy ; + earl:result [ + a earl:TestResult ; + dc:date "2013-12-09T10:36:17"^^xsd:dateTime ; + earl:outcome earl:passed + ] ; + earl:subject ; + earl:test . + +[] a earl:Assertion ; + earl:assertedBy ; + earl:result [ + a earl:TestResult ; + dc:date "2013-12-09T10:36:17"^^xsd:dateTime ; + earl:outcome earl:passed + ] ; + earl:subject ; + earl:test . + +[] a earl:Assertion ; + earl:assertedBy ; + earl:result [ + a earl:TestResult ; + dc:date "2013-12-09T10:36:18"^^xsd:dateTime ; + earl:outcome earl:passed + ] ; + earl:subject ; + earl:test . + +[] a earl:Assertion ; + earl:assertedBy ; + earl:result [ + a earl:TestResult ; + dc:date "2013-12-09T10:36:18"^^xsd:dateTime ; + earl:outcome earl:passed + ] ; + earl:subject ; + earl:test . + +[] a earl:Assertion ; + earl:assertedBy ; + earl:result [ + a earl:TestResult ; + dc:date "2013-12-09T10:36:18"^^xsd:dateTime ; + earl:outcome earl:passed + ] ; + earl:subject ; + earl:test . + +[] a earl:Assertion ; + earl:assertedBy ; + earl:result [ + a earl:TestResult ; + dc:date "2013-12-09T10:36:18"^^xsd:dateTime ; + earl:outcome earl:passed + ] ; + earl:subject ; + earl:test . + +[] a earl:Assertion ; + earl:assertedBy ; + earl:result [ + a earl:TestResult ; + dc:date "2013-12-09T10:36:19"^^xsd:dateTime ; + earl:outcome earl:passed + ] ; + earl:subject ; + earl:test . + +[] a earl:Assertion ; + earl:assertedBy ; + earl:result [ + a earl:TestResult ; + dc:date "2013-12-09T10:36:19"^^xsd:dateTime ; + earl:outcome earl:passed + ] ; + earl:subject ; + earl:test . + +[] a earl:Assertion ; + earl:assertedBy ; + earl:result [ + a earl:TestResult ; + dc:date "2013-12-09T10:36:19"^^xsd:dateTime ; + earl:outcome earl:passed + ] ; + earl:subject ; + earl:test . + +[] a earl:Assertion ; + earl:assertedBy ; + earl:result [ + a earl:TestResult ; + dc:date "2013-12-09T10:36:19"^^xsd:dateTime ; + earl:outcome earl:passed + ] ; + earl:subject ; + earl:test . + +[] a earl:Assertion ; + earl:assertedBy ; + earl:result [ + a earl:TestResult ; + dc:date "2013-12-09T10:36:20"^^xsd:dateTime ; + earl:outcome earl:failed + ] ; + earl:subject ; + earl:test . + +[] a earl:Assertion ; + earl:assertedBy ; + earl:result [ + a earl:TestResult ; + dc:date "2013-12-09T10:36:20"^^xsd:dateTime ; + earl:outcome earl:passed + ] ; + earl:subject ; + earl:test . + diff --git a/corese-unit-test/src/test/resources/data/earl/earl.ttl b/corese-unit-test/src/test/resources/data/earl/earl.ttl new file mode 100644 index 0000000000..56ae49fbac --- /dev/null +++ b/corese-unit-test/src/test/resources/data/earl/earl.ttl @@ -0,0 +1,4465 @@ +@prefix dc: . +@prefix earl: . +@prefix foaf: . +@prefix dct: . +@prefix xsd: . +@prefix rdf: . +@prefix dawg: . +@prefix doap: . + + a foaf:Person ; + foaf:homepage ; + foaf:name "Olivier Corby" . + + + a doap:Project ; + dc:creator ; + foaf:maker ; + doap:name "Corese" ; + doap:developer ; + doap:license ; + foaf:description "Corese is a Semantic Web Factory implementing RDF, RDFS, SPARQL 1.1 Query & Update and Inference Rules, developed at Inria & I3S" ; + foaf:homepage . + + + +[] a earl:Assertion ; + earl:assertedBy ; + earl:result [ + a earl:TestResult ; + dc:date "2014-02-13T11:45:25"^^xsd:dateTime ; + earl:outcome earl:passed + ] ; + earl:subject ; + earl:test . + +[] a earl:Assertion ; + earl:assertedBy ; + earl:result [ + a earl:TestResult ; + dc:date "2014-02-13T11:45:25"^^xsd:dateTime ; + earl:outcome earl:passed + ] ; + earl:subject ; + earl:test . + +[] a earl:Assertion ; + earl:assertedBy ; + earl:result [ + a earl:TestResult ; + dc:date "2014-02-13T11:45:25"^^xsd:dateTime ; + earl:outcome earl:passed + ] ; + earl:subject ; + earl:test . + +[] a earl:Assertion ; + earl:assertedBy ; + earl:result [ + a earl:TestResult ; + dc:date "2014-02-13T11:45:26"^^xsd:dateTime ; + earl:outcome earl:passed + ] ; + earl:subject ; + earl:test . + +[] a earl:Assertion ; + earl:assertedBy ; + earl:result [ + a earl:TestResult ; + dc:date "2014-02-13T11:45:26"^^xsd:dateTime ; + earl:outcome earl:passed + ] ; + earl:subject ; + earl:test . + +[] a earl:Assertion ; + earl:assertedBy ; + earl:result [ + a earl:TestResult ; + dc:date "2014-02-13T11:45:26"^^xsd:dateTime ; + earl:outcome earl:passed + ] ; + earl:subject ; + earl:test . + +[] a earl:Assertion ; + earl:assertedBy ; + earl:result [ + a earl:TestResult ; + dc:date "2014-02-13T11:45:26"^^xsd:dateTime ; + earl:outcome earl:passed + ] ; + earl:subject ; + earl:test . + +[] a earl:Assertion ; + earl:assertedBy ; + earl:result [ + a earl:TestResult ; + dc:date "2014-02-13T11:45:26"^^xsd:dateTime ; + earl:outcome earl:passed + ] ; + earl:subject ; + earl:test . + +[] a earl:Assertion ; + earl:assertedBy ; + earl:result [ + a earl:TestResult ; + dc:date "2014-02-13T11:45:26"^^xsd:dateTime ; + earl:outcome earl:passed + ] ; + earl:subject ; + earl:test . + +[] a earl:Assertion ; + earl:assertedBy ; + earl:result [ + a earl:TestResult ; + dc:date "2014-02-13T11:45:26"^^xsd:dateTime ; + earl:outcome earl:passed + ] ; + earl:subject ; + earl:test . + +[] a earl:Assertion ; + earl:assertedBy ; + earl:result [ + a earl:TestResult ; + dc:date "2014-02-13T11:45:26"^^xsd:dateTime ; + earl:outcome earl:passed + ] ; + earl:subject ; + earl:test . + +[] a earl:Assertion ; + earl:assertedBy ; + earl:result [ + a earl:TestResult ; + dc:date "2014-02-13T11:45:26"^^xsd:dateTime ; + earl:outcome earl:passed + ] ; + earl:subject ; + earl:test . + +[] a earl:Assertion ; + earl:assertedBy ; + earl:result [ + a earl:TestResult ; + dc:date "2014-02-13T11:45:26"^^xsd:dateTime ; + earl:outcome earl:passed + ] ; + earl:subject ; + earl:test . + +[] a earl:Assertion ; + earl:assertedBy ; + earl:result [ + a earl:TestResult ; + dc:date "2014-02-13T11:45:26"^^xsd:dateTime ; + earl:outcome earl:passed + ] ; + earl:subject ; + earl:test . + +[] a earl:Assertion ; + earl:assertedBy ; + earl:result [ + a earl:TestResult ; + dc:date "2014-02-13T11:45:26"^^xsd:dateTime ; + earl:outcome earl:passed + ] ; + earl:subject ; + earl:test . + +[] a earl:Assertion ; + earl:assertedBy ; + earl:result [ + a earl:TestResult ; + dc:date "2014-02-13T11:45:26"^^xsd:dateTime ; + earl:outcome earl:passed + ] ; + earl:subject ; + earl:test . + +[] a earl:Assertion ; + earl:assertedBy ; + earl:result [ + a earl:TestResult ; + dc:date "2014-02-13T11:45:26"^^xsd:dateTime ; + earl:outcome earl:passed + ] ; + earl:subject ; + earl:test . + +[] a earl:Assertion ; + earl:assertedBy ; + earl:result [ + a earl:TestResult ; + dc:date "2014-02-13T11:45:26"^^xsd:dateTime ; + earl:outcome earl:passed + ] ; + earl:subject ; + earl:test . + +[] a earl:Assertion ; + earl:assertedBy ; + earl:result [ + a earl:TestResult ; + dc:date "2014-02-13T11:45:26"^^xsd:dateTime ; + earl:outcome earl:passed + ] ; + earl:subject ; + earl:test . + +[] a earl:Assertion ; + earl:assertedBy ; + earl:result [ + a earl:TestResult ; + dc:date "2014-02-13T11:45:26"^^xsd:dateTime ; + earl:outcome earl:passed + ] ; + earl:subject ; + earl:test . + +[] a earl:Assertion ; + earl:assertedBy ; + earl:result [ + a earl:TestResult ; + dc:date "2014-02-13T11:45:26"^^xsd:dateTime ; + earl:outcome earl:passed + ] ; + earl:subject ; + earl:test . + +[] a earl:Assertion ; + earl:assertedBy ; + earl:result [ + a earl:TestResult ; + dc:date "2014-02-13T11:45:26"^^xsd:dateTime ; + earl:outcome earl:passed + ] ; + earl:subject ; + earl:test . + +[] a earl:Assertion ; + earl:assertedBy ; + earl:result [ + a earl:TestResult ; + dc:date "2014-02-13T11:45:26"^^xsd:dateTime ; + earl:outcome earl:passed + ] ; + earl:subject ; + earl:test . + +[] a earl:Assertion ; + earl:assertedBy ; + earl:result [ + a earl:TestResult ; + dc:date "2014-02-13T11:45:26"^^xsd:dateTime ; + earl:outcome earl:passed + ] ; + earl:subject ; + earl:test . + +[] a earl:Assertion ; + earl:assertedBy ; + earl:result [ + a earl:TestResult ; + dc:date "2014-02-13T11:45:26"^^xsd:dateTime ; + earl:outcome earl:passed + ] ; + earl:subject ; + earl:test . + +[] a earl:Assertion ; + earl:assertedBy ; + earl:result [ + a earl:TestResult ; + dc:date "2014-02-13T11:45:26"^^xsd:dateTime ; + earl:outcome earl:passed + ] ; + earl:subject ; + earl:test . + +[] a earl:Assertion ; + earl:assertedBy ; + earl:result [ + a earl:TestResult ; + dc:date "2014-02-13T11:45:26"^^xsd:dateTime ; + earl:outcome earl:passed + ] ; + earl:subject ; + earl:test . + +[] a earl:Assertion ; + earl:assertedBy ; + earl:result [ + a earl:TestResult ; + dc:date "2014-02-13T11:45:26"^^xsd:dateTime ; + earl:outcome earl:passed + ] ; + earl:subject ; + earl:test . + +[] a earl:Assertion ; + earl:assertedBy ; + earl:result [ + a earl:TestResult ; + dc:date "2014-02-13T11:45:26"^^xsd:dateTime ; + earl:outcome earl:passed + ] ; + earl:subject ; + earl:test . + +[] a earl:Assertion ; + earl:assertedBy ; + earl:result [ + a earl:TestResult ; + dc:date "2014-02-13T11:45:26"^^xsd:dateTime ; + earl:outcome earl:passed + ] ; + earl:subject ; + earl:test . + +[] a earl:Assertion ; + earl:assertedBy ; + earl:result [ + a earl:TestResult ; + dc:date "2014-02-13T11:45:26"^^xsd:dateTime ; + earl:outcome earl:passed + ] ; + earl:subject ; + earl:test . + +[] a earl:Assertion ; + earl:assertedBy ; + earl:result [ + a earl:TestResult ; + dc:date "2014-02-13T11:45:26"^^xsd:dateTime ; + earl:outcome earl:passed + ] ; + earl:subject ; + earl:test . + +[] a earl:Assertion ; + earl:assertedBy ; + earl:result [ + a earl:TestResult ; + dc:date "2014-02-13T11:45:26"^^xsd:dateTime ; + earl:outcome earl:passed + ] ; + earl:subject ; + earl:test . + +[] a earl:Assertion ; + earl:assertedBy ; + earl:result [ + a earl:TestResult ; + dc:date "2014-02-13T11:45:26"^^xsd:dateTime ; + earl:outcome earl:passed + ] ; + earl:subject ; + earl:test . + +[] a earl:Assertion ; + earl:assertedBy ; + earl:result [ + a earl:TestResult ; + dc:date "2014-02-13T11:45:26"^^xsd:dateTime ; + earl:outcome earl:passed + ] ; + earl:subject ; + earl:test . + +[] a earl:Assertion ; + earl:assertedBy ; + earl:result [ + a earl:TestResult ; + dc:date "2014-02-13T11:45:26"^^xsd:dateTime ; + earl:outcome earl:passed + ] ; + earl:subject ; + earl:test . + +[] a earl:Assertion ; + earl:assertedBy ; + earl:result [ + a earl:TestResult ; + dc:date "2014-02-13T11:45:26"^^xsd:dateTime ; + earl:outcome earl:passed + ] ; + earl:subject ; + earl:test . + +[] a earl:Assertion ; + earl:assertedBy ; + earl:result [ + a earl:TestResult ; + dc:date "2014-02-13T11:45:26"^^xsd:dateTime ; + earl:outcome earl:passed + ] ; + earl:subject ; + earl:test . + +[] a earl:Assertion ; + earl:assertedBy ; + earl:result [ + a earl:TestResult ; + dc:date "2014-02-13T11:45:26"^^xsd:dateTime ; + earl:outcome earl:passed + ] ; + earl:subject ; + earl:test . + +[] a earl:Assertion ; + earl:assertedBy ; + earl:result [ + a earl:TestResult ; + dc:date "2014-02-13T11:45:26"^^xsd:dateTime ; + earl:outcome earl:passed + ] ; + earl:subject ; + earl:test . + +[] a earl:Assertion ; + earl:assertedBy ; + earl:result [ + a earl:TestResult ; + dc:date "2014-02-13T11:45:26"^^xsd:dateTime ; + earl:outcome earl:passed + ] ; + earl:subject ; + earl:test . + +[] a earl:Assertion ; + earl:assertedBy ; + earl:result [ + a earl:TestResult ; + dc:date "2014-02-13T11:45:26"^^xsd:dateTime ; + earl:outcome earl:passed + ] ; + earl:subject ; + earl:test . + +[] a earl:Assertion ; + earl:assertedBy ; + earl:result [ + a earl:TestResult ; + dc:date "2014-02-13T11:45:26"^^xsd:dateTime ; + earl:outcome earl:passed + ] ; + earl:subject ; + earl:test . + +[] a earl:Assertion ; + earl:assertedBy ; + earl:result [ + a earl:TestResult ; + dc:date "2014-02-13T11:45:26"^^xsd:dateTime ; + earl:outcome earl:passed + ] ; + earl:subject ; + earl:test . + +[] a earl:Assertion ; + earl:assertedBy ; + earl:result [ + a earl:TestResult ; + dc:date "2014-02-13T11:45:26"^^xsd:dateTime ; + earl:outcome earl:passed + ] ; + earl:subject ; + earl:test . + +[] a earl:Assertion ; + earl:assertedBy ; + earl:result [ + a earl:TestResult ; + dc:date "2014-02-13T11:45:26"^^xsd:dateTime ; + earl:outcome earl:passed + ] ; + earl:subject ; + earl:test . + +[] a earl:Assertion ; + earl:assertedBy ; + earl:result [ + a earl:TestResult ; + dc:date "2014-02-13T11:45:26"^^xsd:dateTime ; + earl:outcome earl:passed + ] ; + earl:subject ; + earl:test . + +[] a earl:Assertion ; + earl:assertedBy ; + earl:result [ + a earl:TestResult ; + dc:date "2014-02-13T11:45:26"^^xsd:dateTime ; + earl:outcome earl:passed + ] ; + earl:subject ; + earl:test . + +[] a earl:Assertion ; + earl:assertedBy ; + earl:result [ + a earl:TestResult ; + dc:date "2014-02-13T11:45:26"^^xsd:dateTime ; + earl:outcome earl:passed + ] ; + earl:subject ; + earl:test . + +[] a earl:Assertion ; + earl:assertedBy ; + earl:result [ + a earl:TestResult ; + dc:date "2014-02-13T11:45:26"^^xsd:dateTime ; + earl:outcome earl:passed + ] ; + earl:subject ; + earl:test . + +[] a earl:Assertion ; + earl:assertedBy ; + earl:result [ + a earl:TestResult ; + dc:date "2014-02-13T11:45:26"^^xsd:dateTime ; + earl:outcome earl:passed + ] ; + earl:subject ; + earl:test . + +[] a earl:Assertion ; + earl:assertedBy ; + earl:result [ + a earl:TestResult ; + dc:date "2014-02-13T11:45:26"^^xsd:dateTime ; + earl:outcome earl:passed + ] ; + earl:subject ; + earl:test . + +[] a earl:Assertion ; + earl:assertedBy ; + earl:result [ + a earl:TestResult ; + dc:date "2014-02-13T11:45:26"^^xsd:dateTime ; + earl:outcome earl:passed + ] ; + earl:subject ; + earl:test . + +[] a earl:Assertion ; + earl:assertedBy ; + earl:result [ + a earl:TestResult ; + dc:date "2014-02-13T11:45:26"^^xsd:dateTime ; + earl:outcome earl:passed + ] ; + earl:subject ; + earl:test . + +[] a earl:Assertion ; + earl:assertedBy ; + earl:result [ + a earl:TestResult ; + dc:date "2014-02-13T11:45:26"^^xsd:dateTime ; + earl:outcome earl:passed + ] ; + earl:subject ; + earl:test . + +[] a earl:Assertion ; + earl:assertedBy ; + earl:result [ + a earl:TestResult ; + dc:date "2014-02-13T11:45:26"^^xsd:dateTime ; + earl:outcome earl:passed + ] ; + earl:subject ; + earl:test . + +[] a earl:Assertion ; + earl:assertedBy ; + earl:result [ + a earl:TestResult ; + dc:date "2014-02-13T11:45:26"^^xsd:dateTime ; + earl:outcome earl:passed + ] ; + earl:subject ; + earl:test . + +[] a earl:Assertion ; + earl:assertedBy ; + earl:result [ + a earl:TestResult ; + dc:date "2014-02-13T11:45:26"^^xsd:dateTime ; + earl:outcome earl:passed + ] ; + earl:subject ; + earl:test . + +[] a earl:Assertion ; + earl:assertedBy ; + earl:result [ + a earl:TestResult ; + dc:date "2014-02-13T11:45:26"^^xsd:dateTime ; + earl:outcome earl:passed + ] ; + earl:subject ; + earl:test . + +[] a earl:Assertion ; + earl:assertedBy ; + earl:result [ + a earl:TestResult ; + dc:date "2014-02-13T11:45:26"^^xsd:dateTime ; + earl:outcome earl:passed + ] ; + earl:subject ; + earl:test . + +[] a earl:Assertion ; + earl:assertedBy ; + earl:result [ + a earl:TestResult ; + dc:date "2014-02-13T11:45:26"^^xsd:dateTime ; + earl:outcome earl:passed + ] ; + earl:subject ; + earl:test . + +[] a earl:Assertion ; + earl:assertedBy ; + earl:result [ + a earl:TestResult ; + dc:date "2014-02-13T11:45:26"^^xsd:dateTime ; + earl:outcome earl:passed + ] ; + earl:subject ; + earl:test . + +[] a earl:Assertion ; + earl:assertedBy ; + earl:result [ + a earl:TestResult ; + dc:date "2014-02-13T11:45:26"^^xsd:dateTime ; + earl:outcome earl:passed + ] ; + earl:subject ; + earl:test . + +[] a earl:Assertion ; + earl:assertedBy ; + earl:result [ + a earl:TestResult ; + dc:date "2014-02-13T11:45:26"^^xsd:dateTime ; + earl:outcome earl:passed + ] ; + earl:subject ; + earl:test . + +[] a earl:Assertion ; + earl:assertedBy ; + earl:result [ + a earl:TestResult ; + dc:date "2014-02-13T11:45:26"^^xsd:dateTime ; + earl:outcome earl:passed + ] ; + earl:subject ; + earl:test . + +[] a earl:Assertion ; + earl:assertedBy ; + earl:result [ + a earl:TestResult ; + dc:date "2014-02-13T11:45:26"^^xsd:dateTime ; + earl:outcome earl:passed + ] ; + earl:subject ; + earl:test . + +[] a earl:Assertion ; + earl:assertedBy ; + earl:result [ + a earl:TestResult ; + dc:date "2014-02-13T11:45:26"^^xsd:dateTime ; + earl:outcome earl:passed + ] ; + earl:subject ; + earl:test . + +[] a earl:Assertion ; + earl:assertedBy ; + earl:result [ + a earl:TestResult ; + dc:date "2014-02-13T11:45:26"^^xsd:dateTime ; + earl:outcome earl:passed + ] ; + earl:subject ; + earl:test . + +[] a earl:Assertion ; + earl:assertedBy ; + earl:result [ + a earl:TestResult ; + dc:date "2014-02-13T11:45:26"^^xsd:dateTime ; + earl:outcome earl:passed + ] ; + earl:subject ; + earl:test . + +[] a earl:Assertion ; + earl:assertedBy ; + earl:result [ + a earl:TestResult ; + dc:date "2014-02-13T11:45:26"^^xsd:dateTime ; + earl:outcome earl:passed + ] ; + earl:subject ; + earl:test . + +[] a earl:Assertion ; + earl:assertedBy ; + earl:result [ + a earl:TestResult ; + dc:date "2014-02-13T11:45:26"^^xsd:dateTime ; + earl:outcome earl:passed + ] ; + earl:subject ; + earl:test . + +[] a earl:Assertion ; + earl:assertedBy ; + earl:result [ + a earl:TestResult ; + dc:date "2014-02-13T11:45:26"^^xsd:dateTime ; + earl:outcome earl:passed + ] ; + earl:subject ; + earl:test . + +[] a earl:Assertion ; + earl:assertedBy ; + earl:result [ + a earl:TestResult ; + dc:date "2014-02-13T11:45:26"^^xsd:dateTime ; + earl:outcome earl:passed + ] ; + earl:subject ; + earl:test . + +[] a earl:Assertion ; + earl:assertedBy ; + earl:result [ + a earl:TestResult ; + dc:date "2014-02-13T11:45:26"^^xsd:dateTime ; + earl:outcome earl:passed + ] ; + earl:subject ; + earl:test . + +[] a earl:Assertion ; + earl:assertedBy ; + earl:result [ + a earl:TestResult ; + dc:date "2014-02-13T11:45:26"^^xsd:dateTime ; + earl:outcome earl:passed + ] ; + earl:subject ; + earl:test . + +[] a earl:Assertion ; + earl:assertedBy ; + earl:result [ + a earl:TestResult ; + dc:date "2014-02-13T11:45:26"^^xsd:dateTime ; + earl:outcome earl:passed + ] ; + earl:subject ; + earl:test . + +[] a earl:Assertion ; + earl:assertedBy ; + earl:result [ + a earl:TestResult ; + dc:date "2014-02-13T11:45:26"^^xsd:dateTime ; + earl:outcome earl:passed + ] ; + earl:subject ; + earl:test . + +[] a earl:Assertion ; + earl:assertedBy ; + earl:result [ + a earl:TestResult ; + dc:date "2014-02-13T11:45:26"^^xsd:dateTime ; + earl:outcome earl:passed + ] ; + earl:subject ; + earl:test . + +[] a earl:Assertion ; + earl:assertedBy ; + earl:result [ + a earl:TestResult ; + dc:date "2014-02-13T11:45:26"^^xsd:dateTime ; + earl:outcome earl:passed + ] ; + earl:subject ; + earl:test . + +[] a earl:Assertion ; + earl:assertedBy ; + earl:result [ + a earl:TestResult ; + dc:date "2014-02-13T11:45:26"^^xsd:dateTime ; + earl:outcome earl:passed + ] ; + earl:subject ; + earl:test . + +[] a earl:Assertion ; + earl:assertedBy ; + earl:result [ + a earl:TestResult ; + dc:date "2014-02-13T11:45:26"^^xsd:dateTime ; + earl:outcome earl:passed + ] ; + earl:subject ; + earl:test . + +[] a earl:Assertion ; + earl:assertedBy ; + earl:result [ + a earl:TestResult ; + dc:date "2014-02-13T11:45:26"^^xsd:dateTime ; + earl:outcome earl:failed + ] ; + earl:subject ; + earl:test . + +[] a earl:Assertion ; + earl:assertedBy ; + earl:result [ + a earl:TestResult ; + dc:date "2014-02-13T11:45:26"^^xsd:dateTime ; + earl:outcome earl:passed + ] ; + earl:subject ; + earl:test . + +[] a earl:Assertion ; + earl:assertedBy ; + earl:result [ + a earl:TestResult ; + dc:date "2014-02-13T11:45:26"^^xsd:dateTime ; + earl:outcome earl:passed + ] ; + earl:subject ; + earl:test . + +[] a earl:Assertion ; + earl:assertedBy ; + earl:result [ + a earl:TestResult ; + dc:date "2014-02-13T11:45:26"^^xsd:dateTime ; + earl:outcome earl:passed + ] ; + earl:subject ; + earl:test . + +[] a earl:Assertion ; + earl:assertedBy ; + earl:result [ + a earl:TestResult ; + dc:date "2014-02-13T11:45:26"^^xsd:dateTime ; + earl:outcome earl:passed + ] ; + earl:subject ; + earl:test . + +[] a earl:Assertion ; + earl:assertedBy ; + earl:result [ + a earl:TestResult ; + dc:date "2014-02-13T11:45:26"^^xsd:dateTime ; + earl:outcome earl:passed + ] ; + earl:subject ; + earl:test . + +[] a earl:Assertion ; + earl:assertedBy ; + earl:result [ + a earl:TestResult ; + dc:date "2014-02-13T11:45:26"^^xsd:dateTime ; + earl:outcome earl:passed + ] ; + earl:subject ; + earl:test . + +[] a earl:Assertion ; + earl:assertedBy ; + earl:result [ + a earl:TestResult ; + dc:date "2014-02-13T11:45:26"^^xsd:dateTime ; + earl:outcome earl:passed + ] ; + earl:subject ; + earl:test . + +[] a earl:Assertion ; + earl:assertedBy ; + earl:result [ + a earl:TestResult ; + dc:date "2014-02-13T11:45:26"^^xsd:dateTime ; + earl:outcome earl:passed + ] ; + earl:subject ; + earl:test . + +[] a earl:Assertion ; + earl:assertedBy ; + earl:result [ + a earl:TestResult ; + dc:date "2014-02-13T11:45:26"^^xsd:dateTime ; + earl:outcome earl:passed + ] ; + earl:subject ; + earl:test . + +[] a earl:Assertion ; + earl:assertedBy ; + earl:result [ + a earl:TestResult ; + dc:date "2014-02-13T11:45:26"^^xsd:dateTime ; + earl:outcome earl:passed + ] ; + earl:subject ; + earl:test . + +[] a earl:Assertion ; + earl:assertedBy ; + earl:result [ + a earl:TestResult ; + dc:date "2014-02-13T11:45:26"^^xsd:dateTime ; + earl:outcome earl:passed + ] ; + earl:subject ; + earl:test . + +[] a earl:Assertion ; + earl:assertedBy ; + earl:result [ + a earl:TestResult ; + dc:date "2014-02-13T11:45:26"^^xsd:dateTime ; + earl:outcome earl:passed + ] ; + earl:subject ; + earl:test . + +[] a earl:Assertion ; + earl:assertedBy ; + earl:result [ + a earl:TestResult ; + dc:date "2014-02-13T11:45:26"^^xsd:dateTime ; + earl:outcome earl:passed + ] ; + earl:subject ; + earl:test . + +[] a earl:Assertion ; + earl:assertedBy ; + earl:result [ + a earl:TestResult ; + dc:date "2014-02-13T11:45:26"^^xsd:dateTime ; + earl:outcome earl:passed + ] ; + earl:subject ; + earl:test . + +[] a earl:Assertion ; + earl:assertedBy ; + earl:result [ + a earl:TestResult ; + dc:date "2014-02-13T11:45:26"^^xsd:dateTime ; + earl:outcome earl:passed + ] ; + earl:subject ; + earl:test . + +[] a earl:Assertion ; + earl:assertedBy ; + earl:result [ + a earl:TestResult ; + dc:date "2014-02-13T11:45:26"^^xsd:dateTime ; + earl:outcome earl:passed + ] ; + earl:subject ; + earl:test . + +[] a earl:Assertion ; + earl:assertedBy ; + earl:result [ + a earl:TestResult ; + dc:date "2014-02-13T11:45:26"^^xsd:dateTime ; + earl:outcome earl:passed + ] ; + earl:subject ; + earl:test . + +[] a earl:Assertion ; + earl:assertedBy ; + earl:result [ + a earl:TestResult ; + dc:date "2014-02-13T11:45:26"^^xsd:dateTime ; + earl:outcome earl:passed + ] ; + earl:subject ; + earl:test . + +[] a earl:Assertion ; + earl:assertedBy ; + earl:result [ + a earl:TestResult ; + dc:date "2014-02-13T11:45:27"^^xsd:dateTime ; + earl:outcome earl:passed + ] ; + earl:subject ; + earl:test . + +[] a earl:Assertion ; + earl:assertedBy ; + earl:result [ + a earl:TestResult ; + dc:date "2014-02-13T11:45:27"^^xsd:dateTime ; + earl:outcome earl:passed + ] ; + earl:subject ; + earl:test . + +[] a earl:Assertion ; + earl:assertedBy ; + earl:result [ + a earl:TestResult ; + dc:date "2014-02-13T11:45:27"^^xsd:dateTime ; + earl:outcome earl:passed + ] ; + earl:subject ; + earl:test . + +[] a earl:Assertion ; + earl:assertedBy ; + earl:result [ + a earl:TestResult ; + dc:date "2014-02-13T11:45:27"^^xsd:dateTime ; + earl:outcome earl:passed + ] ; + earl:subject ; + earl:test . + +[] a earl:Assertion ; + earl:assertedBy ; + earl:result [ + a earl:TestResult ; + dc:date "2014-02-13T11:45:27"^^xsd:dateTime ; + earl:outcome earl:passed + ] ; + earl:subject ; + earl:test . + +[] a earl:Assertion ; + earl:assertedBy ; + earl:result [ + a earl:TestResult ; + dc:date "2014-02-13T11:45:27"^^xsd:dateTime ; + earl:outcome earl:passed + ] ; + earl:subject ; + earl:test . + +[] a earl:Assertion ; + earl:assertedBy ; + earl:result [ + a earl:TestResult ; + dc:date "2014-02-13T11:45:27"^^xsd:dateTime ; + earl:outcome earl:passed + ] ; + earl:subject ; + earl:test . + +[] a earl:Assertion ; + earl:assertedBy ; + earl:result [ + a earl:TestResult ; + dc:date "2014-02-13T11:45:27"^^xsd:dateTime ; + earl:outcome earl:passed + ] ; + earl:subject ; + earl:test . + +[] a earl:Assertion ; + earl:assertedBy ; + earl:result [ + a earl:TestResult ; + dc:date "2014-02-13T11:45:27"^^xsd:dateTime ; + earl:outcome earl:passed + ] ; + earl:subject ; + earl:test . + +[] a earl:Assertion ; + earl:assertedBy ; + earl:result [ + a earl:TestResult ; + dc:date "2014-02-13T11:45:27"^^xsd:dateTime ; + earl:outcome earl:passed + ] ; + earl:subject ; + earl:test . + +[] a earl:Assertion ; + earl:assertedBy ; + earl:result [ + a earl:TestResult ; + dc:date "2014-02-13T11:45:27"^^xsd:dateTime ; + earl:outcome earl:passed + ] ; + earl:subject ; + earl:test . + +[] a earl:Assertion ; + earl:assertedBy ; + earl:result [ + a earl:TestResult ; + dc:date "2014-02-13T11:45:27"^^xsd:dateTime ; + earl:outcome earl:passed + ] ; + earl:subject ; + earl:test . + +[] a earl:Assertion ; + earl:assertedBy ; + earl:result [ + a earl:TestResult ; + dc:date "2014-02-13T11:45:27"^^xsd:dateTime ; + earl:outcome earl:passed + ] ; + earl:subject ; + earl:test . + +[] a earl:Assertion ; + earl:assertedBy ; + earl:result [ + a earl:TestResult ; + dc:date "2014-02-13T11:45:27"^^xsd:dateTime ; + earl:outcome earl:passed + ] ; + earl:subject ; + earl:test . + +[] a earl:Assertion ; + earl:assertedBy ; + earl:result [ + a earl:TestResult ; + dc:date "2014-02-13T11:45:27"^^xsd:dateTime ; + earl:outcome earl:passed + ] ; + earl:subject ; + earl:test . + +[] a earl:Assertion ; + earl:assertedBy ; + earl:result [ + a earl:TestResult ; + dc:date "2014-02-13T11:45:27"^^xsd:dateTime ; + earl:outcome earl:passed + ] ; + earl:subject ; + earl:test . + +[] a earl:Assertion ; + earl:assertedBy ; + earl:result [ + a earl:TestResult ; + dc:date "2014-02-13T11:45:27"^^xsd:dateTime ; + earl:outcome earl:passed + ] ; + earl:subject ; + earl:test . + +[] a earl:Assertion ; + earl:assertedBy ; + earl:result [ + a earl:TestResult ; + dc:date "2014-02-13T11:45:27"^^xsd:dateTime ; + earl:outcome earl:passed + ] ; + earl:subject ; + earl:test . + +[] a earl:Assertion ; + earl:assertedBy ; + earl:result [ + a earl:TestResult ; + dc:date "2014-02-13T11:45:27"^^xsd:dateTime ; + earl:outcome earl:passed + ] ; + earl:subject ; + earl:test . + +[] a earl:Assertion ; + earl:assertedBy ; + earl:result [ + a earl:TestResult ; + dc:date "2014-02-13T11:45:27"^^xsd:dateTime ; + earl:outcome earl:passed + ] ; + earl:subject ; + earl:test . + +[] a earl:Assertion ; + earl:assertedBy ; + earl:result [ + a earl:TestResult ; + dc:date "2014-02-13T11:45:27"^^xsd:dateTime ; + earl:outcome earl:passed + ] ; + earl:subject ; + earl:test . + +[] a earl:Assertion ; + earl:assertedBy ; + earl:result [ + a earl:TestResult ; + dc:date "2014-02-13T11:45:27"^^xsd:dateTime ; + earl:outcome earl:passed + ] ; + earl:subject ; + earl:test . + +[] a earl:Assertion ; + earl:assertedBy ; + earl:result [ + a earl:TestResult ; + dc:date "2014-02-13T11:45:27"^^xsd:dateTime ; + earl:outcome earl:passed + ] ; + earl:subject ; + earl:test . + +[] a earl:Assertion ; + earl:assertedBy ; + earl:result [ + a earl:TestResult ; + dc:date "2014-02-13T11:45:27"^^xsd:dateTime ; + earl:outcome earl:passed + ] ; + earl:subject ; + earl:test . + +[] a earl:Assertion ; + earl:assertedBy ; + earl:result [ + a earl:TestResult ; + dc:date "2014-02-13T11:45:27"^^xsd:dateTime ; + earl:outcome earl:passed + ] ; + earl:subject ; + earl:test . + +[] a earl:Assertion ; + earl:assertedBy ; + earl:result [ + a earl:TestResult ; + dc:date "2014-02-13T11:45:27"^^xsd:dateTime ; + earl:outcome earl:passed + ] ; + earl:subject ; + earl:test . + +[] a earl:Assertion ; + earl:assertedBy ; + earl:result [ + a earl:TestResult ; + dc:date "2014-02-13T11:45:27"^^xsd:dateTime ; + earl:outcome earl:passed + ] ; + earl:subject ; + earl:test . + +[] a earl:Assertion ; + earl:assertedBy ; + earl:result [ + a earl:TestResult ; + dc:date "2014-02-13T11:45:27"^^xsd:dateTime ; + earl:outcome earl:passed + ] ; + earl:subject ; + earl:test . + +[] a earl:Assertion ; + earl:assertedBy ; + earl:result [ + a earl:TestResult ; + dc:date "2014-02-13T11:45:27"^^xsd:dateTime ; + earl:outcome earl:passed + ] ; + earl:subject ; + earl:test . + +[] a earl:Assertion ; + earl:assertedBy ; + earl:result [ + a earl:TestResult ; + dc:date "2014-02-13T11:45:27"^^xsd:dateTime ; + earl:outcome earl:passed + ] ; + earl:subject ; + earl:test . + +[] a earl:Assertion ; + earl:assertedBy ; + earl:result [ + a earl:TestResult ; + dc:date "2014-02-13T11:45:27"^^xsd:dateTime ; + earl:outcome earl:passed + ] ; + earl:subject ; + earl:test . + +[] a earl:Assertion ; + earl:assertedBy ; + earl:result [ + a earl:TestResult ; + dc:date "2014-02-13T11:45:27"^^xsd:dateTime ; + earl:outcome earl:passed + ] ; + earl:subject ; + earl:test . + +[] a earl:Assertion ; + earl:assertedBy ; + earl:result [ + a earl:TestResult ; + dc:date "2014-02-13T11:45:27"^^xsd:dateTime ; + earl:outcome earl:passed + ] ; + earl:subject ; + earl:test . + +[] a earl:Assertion ; + earl:assertedBy ; + earl:result [ + a earl:TestResult ; + dc:date "2014-02-13T11:45:27"^^xsd:dateTime ; + earl:outcome earl:passed + ] ; + earl:subject ; + earl:test . + +[] a earl:Assertion ; + earl:assertedBy ; + earl:result [ + a earl:TestResult ; + dc:date "2014-02-13T11:45:27"^^xsd:dateTime ; + earl:outcome earl:passed + ] ; + earl:subject ; + earl:test . + +[] a earl:Assertion ; + earl:assertedBy ; + earl:result [ + a earl:TestResult ; + dc:date "2014-02-13T11:45:27"^^xsd:dateTime ; + earl:outcome earl:passed + ] ; + earl:subject ; + earl:test . + +[] a earl:Assertion ; + earl:assertedBy ; + earl:result [ + a earl:TestResult ; + dc:date "2014-02-13T11:45:27"^^xsd:dateTime ; + earl:outcome earl:passed + ] ; + earl:subject ; + earl:test . + +[] a earl:Assertion ; + earl:assertedBy ; + earl:result [ + a earl:TestResult ; + dc:date "2014-02-13T11:45:27"^^xsd:dateTime ; + earl:outcome earl:passed + ] ; + earl:subject ; + earl:test . + +[] a earl:Assertion ; + earl:assertedBy ; + earl:result [ + a earl:TestResult ; + dc:date "2014-02-13T11:45:27"^^xsd:dateTime ; + earl:outcome earl:passed + ] ; + earl:subject ; + earl:test . + +[] a earl:Assertion ; + earl:assertedBy ; + earl:result [ + a earl:TestResult ; + dc:date "2014-02-13T11:45:27"^^xsd:dateTime ; + earl:outcome earl:passed + ] ; + earl:subject ; + earl:test . + +[] a earl:Assertion ; + earl:assertedBy ; + earl:result [ + a earl:TestResult ; + dc:date "2014-02-13T11:45:27"^^xsd:dateTime ; + earl:outcome earl:passed + ] ; + earl:subject ; + earl:test . + +[] a earl:Assertion ; + earl:assertedBy ; + earl:result [ + a earl:TestResult ; + dc:date "2014-02-13T11:45:27"^^xsd:dateTime ; + earl:outcome earl:passed + ] ; + earl:subject ; + earl:test . + +[] a earl:Assertion ; + earl:assertedBy ; + earl:result [ + a earl:TestResult ; + dc:date "2014-02-13T11:45:27"^^xsd:dateTime ; + earl:outcome earl:passed + ] ; + earl:subject ; + earl:test . + +[] a earl:Assertion ; + earl:assertedBy ; + earl:result [ + a earl:TestResult ; + dc:date "2014-02-13T11:45:27"^^xsd:dateTime ; + earl:outcome earl:passed + ] ; + earl:subject ; + earl:test . + +[] a earl:Assertion ; + earl:assertedBy ; + earl:result [ + a earl:TestResult ; + dc:date "2014-02-13T11:45:27"^^xsd:dateTime ; + earl:outcome earl:passed + ] ; + earl:subject ; + earl:test . + +[] a earl:Assertion ; + earl:assertedBy ; + earl:result [ + a earl:TestResult ; + dc:date "2014-02-13T11:45:27"^^xsd:dateTime ; + earl:outcome earl:passed + ] ; + earl:subject ; + earl:test . + +[] a earl:Assertion ; + earl:assertedBy ; + earl:result [ + a earl:TestResult ; + dc:date "2014-02-13T11:45:27"^^xsd:dateTime ; + earl:outcome earl:passed + ] ; + earl:subject ; + earl:test . + +[] a earl:Assertion ; + earl:assertedBy ; + earl:result [ + a earl:TestResult ; + dc:date "2014-02-13T11:45:27"^^xsd:dateTime ; + earl:outcome earl:passed + ] ; + earl:subject ; + earl:test . + +[] a earl:Assertion ; + earl:assertedBy ; + earl:result [ + a earl:TestResult ; + dc:date "2014-02-13T11:45:27"^^xsd:dateTime ; + earl:outcome earl:passed + ] ; + earl:subject ; + earl:test . + +[] a earl:Assertion ; + earl:assertedBy ; + earl:result [ + a earl:TestResult ; + dc:date "2014-02-13T11:45:27"^^xsd:dateTime ; + earl:outcome earl:passed + ] ; + earl:subject ; + earl:test . + +[] a earl:Assertion ; + earl:assertedBy ; + earl:result [ + a earl:TestResult ; + dc:date "2014-02-13T11:45:27"^^xsd:dateTime ; + earl:outcome earl:passed + ] ; + earl:subject ; + earl:test . + +[] a earl:Assertion ; + earl:assertedBy ; + earl:result [ + a earl:TestResult ; + dc:date "2014-02-13T11:45:27"^^xsd:dateTime ; + earl:outcome earl:passed + ] ; + earl:subject ; + earl:test . + +[] a earl:Assertion ; + earl:assertedBy ; + earl:result [ + a earl:TestResult ; + dc:date "2014-02-13T11:45:27"^^xsd:dateTime ; + earl:outcome earl:passed + ] ; + earl:subject ; + earl:test . + +[] a earl:Assertion ; + earl:assertedBy ; + earl:result [ + a earl:TestResult ; + dc:date "2014-02-13T11:45:27"^^xsd:dateTime ; + earl:outcome earl:passed + ] ; + earl:subject ; + earl:test . + +[] a earl:Assertion ; + earl:assertedBy ; + earl:result [ + a earl:TestResult ; + dc:date "2014-02-13T11:45:27"^^xsd:dateTime ; + earl:outcome earl:passed + ] ; + earl:subject ; + earl:test . + +[] a earl:Assertion ; + earl:assertedBy ; + earl:result [ + a earl:TestResult ; + dc:date "2014-02-13T11:45:27"^^xsd:dateTime ; + earl:outcome earl:passed + ] ; + earl:subject ; + earl:test . + +[] a earl:Assertion ; + earl:assertedBy ; + earl:result [ + a earl:TestResult ; + dc:date "2014-02-13T11:45:27"^^xsd:dateTime ; + earl:outcome earl:passed + ] ; + earl:subject ; + earl:test . + +[] a earl:Assertion ; + earl:assertedBy ; + earl:result [ + a earl:TestResult ; + dc:date "2014-02-13T11:45:27"^^xsd:dateTime ; + earl:outcome earl:passed + ] ; + earl:subject ; + earl:test . + +[] a earl:Assertion ; + earl:assertedBy ; + earl:result [ + a earl:TestResult ; + dc:date "2014-02-13T11:45:27"^^xsd:dateTime ; + earl:outcome earl:passed + ] ; + earl:subject ; + earl:test . + +[] a earl:Assertion ; + earl:assertedBy ; + earl:result [ + a earl:TestResult ; + dc:date "2014-02-13T11:45:27"^^xsd:dateTime ; + earl:outcome earl:passed + ] ; + earl:subject ; + earl:test . + +[] a earl:Assertion ; + earl:assertedBy ; + earl:result [ + a earl:TestResult ; + dc:date "2014-02-13T11:45:27"^^xsd:dateTime ; + earl:outcome earl:passed + ] ; + earl:subject ; + earl:test . + +[] a earl:Assertion ; + earl:assertedBy ; + earl:result [ + a earl:TestResult ; + dc:date "2014-02-13T11:45:27"^^xsd:dateTime ; + earl:outcome earl:passed + ] ; + earl:subject ; + earl:test . + +[] a earl:Assertion ; + earl:assertedBy ; + earl:result [ + a earl:TestResult ; + dc:date "2014-02-13T11:45:27"^^xsd:dateTime ; + earl:outcome earl:passed + ] ; + earl:subject ; + earl:test . + +[] a earl:Assertion ; + earl:assertedBy ; + earl:result [ + a earl:TestResult ; + dc:date "2014-02-13T11:45:27"^^xsd:dateTime ; + earl:outcome earl:passed + ] ; + earl:subject ; + earl:test . + +[] a earl:Assertion ; + earl:assertedBy ; + earl:result [ + a earl:TestResult ; + dc:date "2014-02-13T11:45:27"^^xsd:dateTime ; + earl:outcome earl:passed + ] ; + earl:subject ; + earl:test . + +[] a earl:Assertion ; + earl:assertedBy ; + earl:result [ + a earl:TestResult ; + dc:date "2014-02-13T11:45:27"^^xsd:dateTime ; + earl:outcome earl:passed + ] ; + earl:subject ; + earl:test . + +[] a earl:Assertion ; + earl:assertedBy ; + earl:result [ + a earl:TestResult ; + dc:date "2014-02-13T11:45:27"^^xsd:dateTime ; + earl:outcome earl:passed + ] ; + earl:subject ; + earl:test . + +[] a earl:Assertion ; + earl:assertedBy ; + earl:result [ + a earl:TestResult ; + dc:date "2014-02-13T11:45:27"^^xsd:dateTime ; + earl:outcome earl:passed + ] ; + earl:subject ; + earl:test . + +[] a earl:Assertion ; + earl:assertedBy ; + earl:result [ + a earl:TestResult ; + dc:date "2014-02-13T11:45:27"^^xsd:dateTime ; + earl:outcome earl:passed + ] ; + earl:subject ; + earl:test . + +[] a earl:Assertion ; + earl:assertedBy ; + earl:result [ + a earl:TestResult ; + dc:date "2014-02-13T11:45:27"^^xsd:dateTime ; + earl:outcome earl:passed + ] ; + earl:subject ; + earl:test . + +[] a earl:Assertion ; + earl:assertedBy ; + earl:result [ + a earl:TestResult ; + dc:date "2014-02-13T11:45:27"^^xsd:dateTime ; + earl:outcome earl:passed + ] ; + earl:subject ; + earl:test . + +[] a earl:Assertion ; + earl:assertedBy ; + earl:result [ + a earl:TestResult ; + dc:date "2014-02-13T11:45:27"^^xsd:dateTime ; + earl:outcome earl:passed + ] ; + earl:subject ; + earl:test . + +[] a earl:Assertion ; + earl:assertedBy ; + earl:result [ + a earl:TestResult ; + dc:date "2014-02-13T11:45:27"^^xsd:dateTime ; + earl:outcome earl:passed + ] ; + earl:subject ; + earl:test . + +[] a earl:Assertion ; + earl:assertedBy ; + earl:result [ + a earl:TestResult ; + dc:date "2014-02-13T11:45:27"^^xsd:dateTime ; + earl:outcome earl:passed + ] ; + earl:subject ; + earl:test . + +[] a earl:Assertion ; + earl:assertedBy ; + earl:result [ + a earl:TestResult ; + dc:date "2014-02-13T11:45:27"^^xsd:dateTime ; + earl:outcome earl:passed + ] ; + earl:subject ; + earl:test . + +[] a earl:Assertion ; + earl:assertedBy ; + earl:result [ + a earl:TestResult ; + dc:date "2014-02-13T11:45:27"^^xsd:dateTime ; + earl:outcome earl:passed + ] ; + earl:subject ; + earl:test . + +[] a earl:Assertion ; + earl:assertedBy ; + earl:result [ + a earl:TestResult ; + dc:date "2014-02-13T11:45:27"^^xsd:dateTime ; + earl:outcome earl:passed + ] ; + earl:subject ; + earl:test . + +[] a earl:Assertion ; + earl:assertedBy ; + earl:result [ + a earl:TestResult ; + dc:date "2014-02-13T11:45:27"^^xsd:dateTime ; + earl:outcome earl:passed + ] ; + earl:subject ; + earl:test . + +[] a earl:Assertion ; + earl:assertedBy ; + earl:result [ + a earl:TestResult ; + dc:date "2014-02-13T11:45:27"^^xsd:dateTime ; + earl:outcome earl:passed + ] ; + earl:subject ; + earl:test . + +[] a earl:Assertion ; + earl:assertedBy ; + earl:result [ + a earl:TestResult ; + dc:date "2014-02-13T11:45:27"^^xsd:dateTime ; + earl:outcome earl:passed + ] ; + earl:subject ; + earl:test . + +[] a earl:Assertion ; + earl:assertedBy ; + earl:result [ + a earl:TestResult ; + dc:date "2014-02-13T11:45:27"^^xsd:dateTime ; + earl:outcome earl:passed + ] ; + earl:subject ; + earl:test . + +[] a earl:Assertion ; + earl:assertedBy ; + earl:result [ + a earl:TestResult ; + dc:date "2014-02-13T11:45:27"^^xsd:dateTime ; + earl:outcome earl:passed + ] ; + earl:subject ; + earl:test . + +[] a earl:Assertion ; + earl:assertedBy ; + earl:result [ + a earl:TestResult ; + dc:date "2014-02-13T11:45:27"^^xsd:dateTime ; + earl:outcome earl:passed + ] ; + earl:subject ; + earl:test . + +[] a earl:Assertion ; + earl:assertedBy ; + earl:result [ + a earl:TestResult ; + dc:date "2014-02-13T11:45:27"^^xsd:dateTime ; + earl:outcome earl:passed + ] ; + earl:subject ; + earl:test . + +[] a earl:Assertion ; + earl:assertedBy ; + earl:result [ + a earl:TestResult ; + dc:date "2014-02-13T11:45:27"^^xsd:dateTime ; + earl:outcome earl:passed + ] ; + earl:subject ; + earl:test . + +[] a earl:Assertion ; + earl:assertedBy ; + earl:result [ + a earl:TestResult ; + dc:date "2014-02-13T11:45:27"^^xsd:dateTime ; + earl:outcome earl:passed + ] ; + earl:subject ; + earl:test . + +[] a earl:Assertion ; + earl:assertedBy ; + earl:result [ + a earl:TestResult ; + dc:date "2014-02-13T11:45:27"^^xsd:dateTime ; + earl:outcome earl:passed + ] ; + earl:subject ; + earl:test . + +[] a earl:Assertion ; + earl:assertedBy ; + earl:result [ + a earl:TestResult ; + dc:date "2014-02-13T11:45:27"^^xsd:dateTime ; + earl:outcome earl:passed + ] ; + earl:subject ; + earl:test . + +[] a earl:Assertion ; + earl:assertedBy ; + earl:result [ + a earl:TestResult ; + dc:date "2014-02-13T11:45:27"^^xsd:dateTime ; + earl:outcome earl:passed + ] ; + earl:subject ; + earl:test . + +[] a earl:Assertion ; + earl:assertedBy ; + earl:result [ + a earl:TestResult ; + dc:date "2014-02-13T11:45:27"^^xsd:dateTime ; + earl:outcome earl:passed + ] ; + earl:subject ; + earl:test . + +[] a earl:Assertion ; + earl:assertedBy ; + earl:result [ + a earl:TestResult ; + dc:date "2014-02-13T11:45:27"^^xsd:dateTime ; + earl:outcome earl:passed + ] ; + earl:subject ; + earl:test . + +[] a earl:Assertion ; + earl:assertedBy ; + earl:result [ + a earl:TestResult ; + dc:date "2014-02-13T11:45:27"^^xsd:dateTime ; + earl:outcome earl:passed + ] ; + earl:subject ; + earl:test . + +[] a earl:Assertion ; + earl:assertedBy ; + earl:result [ + a earl:TestResult ; + dc:date "2014-02-13T11:45:27"^^xsd:dateTime ; + earl:outcome earl:passed + ] ; + earl:subject ; + earl:test . + +[] a earl:Assertion ; + earl:assertedBy ; + earl:result [ + a earl:TestResult ; + dc:date "2014-02-13T11:45:27"^^xsd:dateTime ; + earl:outcome earl:passed + ] ; + earl:subject ; + earl:test . + +[] a earl:Assertion ; + earl:assertedBy ; + earl:result [ + a earl:TestResult ; + dc:date "2014-02-13T11:45:27"^^xsd:dateTime ; + earl:outcome earl:passed + ] ; + earl:subject ; + earl:test . + +[] a earl:Assertion ; + earl:assertedBy ; + earl:result [ + a earl:TestResult ; + dc:date "2014-02-13T11:45:27"^^xsd:dateTime ; + earl:outcome earl:passed + ] ; + earl:subject ; + earl:test . + +[] a earl:Assertion ; + earl:assertedBy ; + earl:result [ + a earl:TestResult ; + dc:date "2014-02-13T11:45:27"^^xsd:dateTime ; + earl:outcome earl:passed + ] ; + earl:subject ; + earl:test . + +[] a earl:Assertion ; + earl:assertedBy ; + earl:result [ + a earl:TestResult ; + dc:date "2014-02-13T11:45:27"^^xsd:dateTime ; + earl:outcome earl:passed + ] ; + earl:subject ; + earl:test . + +[] a earl:Assertion ; + earl:assertedBy ; + earl:result [ + a earl:TestResult ; + dc:date "2014-02-13T11:45:27"^^xsd:dateTime ; + earl:outcome earl:passed + ] ; + earl:subject ; + earl:test . + +[] a earl:Assertion ; + earl:assertedBy ; + earl:result [ + a earl:TestResult ; + dc:date "2014-02-13T11:45:27"^^xsd:dateTime ; + earl:outcome earl:passed + ] ; + earl:subject ; + earl:test . + +[] a earl:Assertion ; + earl:assertedBy ; + earl:result [ + a earl:TestResult ; + dc:date "2014-02-13T11:45:27"^^xsd:dateTime ; + earl:outcome earl:passed + ] ; + earl:subject ; + earl:test . + +[] a earl:Assertion ; + earl:assertedBy ; + earl:result [ + a earl:TestResult ; + dc:date "2014-02-13T11:45:27"^^xsd:dateTime ; + earl:outcome earl:passed + ] ; + earl:subject ; + earl:test . + +[] a earl:Assertion ; + earl:assertedBy ; + earl:result [ + a earl:TestResult ; + dc:date "2014-02-13T11:45:27"^^xsd:dateTime ; + earl:outcome earl:passed + ] ; + earl:subject ; + earl:test . + +[] a earl:Assertion ; + earl:assertedBy ; + earl:result [ + a earl:TestResult ; + dc:date "2014-02-13T11:45:27"^^xsd:dateTime ; + earl:outcome earl:passed + ] ; + earl:subject ; + earl:test . + +[] a earl:Assertion ; + earl:assertedBy ; + earl:result [ + a earl:TestResult ; + dc:date "2014-02-13T11:45:27"^^xsd:dateTime ; + earl:outcome earl:passed + ] ; + earl:subject ; + earl:test . + +[] a earl:Assertion ; + earl:assertedBy ; + earl:result [ + a earl:TestResult ; + dc:date "2014-02-13T11:45:28"^^xsd:dateTime ; + earl:outcome earl:passed + ] ; + earl:subject ; + earl:test . + +[] a earl:Assertion ; + earl:assertedBy ; + earl:result [ + a earl:TestResult ; + dc:date "2014-02-13T11:45:28"^^xsd:dateTime ; + earl:outcome earl:passed + ] ; + earl:subject ; + earl:test . + +[] a earl:Assertion ; + earl:assertedBy ; + earl:result [ + a earl:TestResult ; + dc:date "2014-02-13T11:45:28"^^xsd:dateTime ; + earl:outcome earl:passed + ] ; + earl:subject ; + earl:test . + +[] a earl:Assertion ; + earl:assertedBy ; + earl:result [ + a earl:TestResult ; + dc:date "2014-02-13T11:45:28"^^xsd:dateTime ; + earl:outcome earl:passed + ] ; + earl:subject ; + earl:test . + +[] a earl:Assertion ; + earl:assertedBy ; + earl:result [ + a earl:TestResult ; + dc:date "2014-02-13T11:45:28"^^xsd:dateTime ; + earl:outcome earl:passed + ] ; + earl:subject ; + earl:test . + +[] a earl:Assertion ; + earl:assertedBy ; + earl:result [ + a earl:TestResult ; + dc:date "2014-02-13T11:45:28"^^xsd:dateTime ; + earl:outcome earl:passed + ] ; + earl:subject ; + earl:test . + +[] a earl:Assertion ; + earl:assertedBy ; + earl:result [ + a earl:TestResult ; + dc:date "2014-02-13T11:45:28"^^xsd:dateTime ; + earl:outcome earl:passed + ] ; + earl:subject ; + earl:test . + +[] a earl:Assertion ; + earl:assertedBy ; + earl:result [ + a earl:TestResult ; + dc:date "2014-02-13T11:45:28"^^xsd:dateTime ; + earl:outcome earl:passed + ] ; + earl:subject ; + earl:test . + +[] a earl:Assertion ; + earl:assertedBy ; + earl:result [ + a earl:TestResult ; + dc:date "2014-02-13T11:45:28"^^xsd:dateTime ; + earl:outcome earl:passed + ] ; + earl:subject ; + earl:test . + +[] a earl:Assertion ; + earl:assertedBy ; + earl:result [ + a earl:TestResult ; + dc:date "2014-02-13T11:45:28"^^xsd:dateTime ; + earl:outcome earl:passed + ] ; + earl:subject ; + earl:test . + +[] a earl:Assertion ; + earl:assertedBy ; + earl:result [ + a earl:TestResult ; + dc:date "2014-02-13T11:45:28"^^xsd:dateTime ; + earl:outcome earl:passed + ] ; + earl:subject ; + earl:test . + +[] a earl:Assertion ; + earl:assertedBy ; + earl:result [ + a earl:TestResult ; + dc:date "2014-02-13T11:45:28"^^xsd:dateTime ; + earl:outcome earl:passed + ] ; + earl:subject ; + earl:test . + +[] a earl:Assertion ; + earl:assertedBy ; + earl:result [ + a earl:TestResult ; + dc:date "2014-02-13T11:45:28"^^xsd:dateTime ; + earl:outcome earl:passed + ] ; + earl:subject ; + earl:test . + +[] a earl:Assertion ; + earl:assertedBy ; + earl:result [ + a earl:TestResult ; + dc:date "2014-02-13T11:45:28"^^xsd:dateTime ; + earl:outcome earl:passed + ] ; + earl:subject ; + earl:test . + +[] a earl:Assertion ; + earl:assertedBy ; + earl:result [ + a earl:TestResult ; + dc:date "2014-02-13T11:45:28"^^xsd:dateTime ; + earl:outcome earl:passed + ] ; + earl:subject ; + earl:test . + +[] a earl:Assertion ; + earl:assertedBy ; + earl:result [ + a earl:TestResult ; + dc:date "2014-02-13T11:45:28"^^xsd:dateTime ; + earl:outcome earl:passed + ] ; + earl:subject ; + earl:test . + +[] a earl:Assertion ; + earl:assertedBy ; + earl:result [ + a earl:TestResult ; + dc:date "2014-02-13T11:45:28"^^xsd:dateTime ; + earl:outcome earl:passed + ] ; + earl:subject ; + earl:test . + +[] a earl:Assertion ; + earl:assertedBy ; + earl:result [ + a earl:TestResult ; + dc:date "2014-02-13T11:45:28"^^xsd:dateTime ; + earl:outcome earl:passed + ] ; + earl:subject ; + earl:test . + +[] a earl:Assertion ; + earl:assertedBy ; + earl:result [ + a earl:TestResult ; + dc:date "2014-02-13T11:45:28"^^xsd:dateTime ; + earl:outcome earl:passed + ] ; + earl:subject ; + earl:test . + +[] a earl:Assertion ; + earl:assertedBy ; + earl:result [ + a earl:TestResult ; + dc:date "2014-02-13T11:45:28"^^xsd:dateTime ; + earl:outcome earl:passed + ] ; + earl:subject ; + earl:test . + +[] a earl:Assertion ; + earl:assertedBy ; + earl:result [ + a earl:TestResult ; + dc:date "2014-02-13T11:45:28"^^xsd:dateTime ; + earl:outcome earl:passed + ] ; + earl:subject ; + earl:test . + +[] a earl:Assertion ; + earl:assertedBy ; + earl:result [ + a earl:TestResult ; + dc:date "2014-02-13T11:45:28"^^xsd:dateTime ; + earl:outcome earl:passed + ] ; + earl:subject ; + earl:test . + +[] a earl:Assertion ; + earl:assertedBy ; + earl:result [ + a earl:TestResult ; + dc:date "2014-02-13T11:45:28"^^xsd:dateTime ; + earl:outcome earl:passed + ] ; + earl:subject ; + earl:test . + +[] a earl:Assertion ; + earl:assertedBy ; + earl:result [ + a earl:TestResult ; + dc:date "2014-02-13T11:45:28"^^xsd:dateTime ; + earl:outcome earl:passed + ] ; + earl:subject ; + earl:test . + +[] a earl:Assertion ; + earl:assertedBy ; + earl:result [ + a earl:TestResult ; + dc:date "2014-02-13T11:45:28"^^xsd:dateTime ; + earl:outcome earl:passed + ] ; + earl:subject ; + earl:test . + +[] a earl:Assertion ; + earl:assertedBy ; + earl:result [ + a earl:TestResult ; + dc:date "2014-02-13T11:45:28"^^xsd:dateTime ; + earl:outcome earl:passed + ] ; + earl:subject ; + earl:test . + +[] a earl:Assertion ; + earl:assertedBy ; + earl:result [ + a earl:TestResult ; + dc:date "2014-02-13T11:45:28"^^xsd:dateTime ; + earl:outcome earl:passed + ] ; + earl:subject ; + earl:test . + +[] a earl:Assertion ; + earl:assertedBy ; + earl:result [ + a earl:TestResult ; + dc:date "2014-02-13T11:45:28"^^xsd:dateTime ; + earl:outcome earl:passed + ] ; + earl:subject ; + earl:test . + +[] a earl:Assertion ; + earl:assertedBy ; + earl:result [ + a earl:TestResult ; + dc:date "2014-02-13T11:45:28"^^xsd:dateTime ; + earl:outcome earl:passed + ] ; + earl:subject ; + earl:test . + +[] a earl:Assertion ; + earl:assertedBy ; + earl:result [ + a earl:TestResult ; + dc:date "2014-02-13T11:45:28"^^xsd:dateTime ; + earl:outcome earl:passed + ] ; + earl:subject ; + earl:test . + +[] a earl:Assertion ; + earl:assertedBy ; + earl:result [ + a earl:TestResult ; + dc:date "2014-02-13T11:45:28"^^xsd:dateTime ; + earl:outcome earl:passed + ] ; + earl:subject ; + earl:test . + +[] a earl:Assertion ; + earl:assertedBy ; + earl:result [ + a earl:TestResult ; + dc:date "2014-02-13T11:45:28"^^xsd:dateTime ; + earl:outcome earl:passed + ] ; + earl:subject ; + earl:test . + +[] a earl:Assertion ; + earl:assertedBy ; + earl:result [ + a earl:TestResult ; + dc:date "2014-02-13T11:45:28"^^xsd:dateTime ; + earl:outcome earl:passed + ] ; + earl:subject ; + earl:test . + +[] a earl:Assertion ; + earl:assertedBy ; + earl:result [ + a earl:TestResult ; + dc:date "2014-02-13T11:45:28"^^xsd:dateTime ; + earl:outcome earl:passed + ] ; + earl:subject ; + earl:test . + +[] a earl:Assertion ; + earl:assertedBy ; + earl:result [ + a earl:TestResult ; + dc:date "2014-02-13T11:45:28"^^xsd:dateTime ; + earl:outcome earl:passed + ] ; + earl:subject ; + earl:test . + +[] a earl:Assertion ; + earl:assertedBy ; + earl:result [ + a earl:TestResult ; + dc:date "2014-02-13T11:45:28"^^xsd:dateTime ; + earl:outcome earl:passed + ] ; + earl:subject ; + earl:test . + +[] a earl:Assertion ; + earl:assertedBy ; + earl:result [ + a earl:TestResult ; + dc:date "2014-02-13T11:45:28"^^xsd:dateTime ; + earl:outcome earl:passed + ] ; + earl:subject ; + earl:test . + +[] a earl:Assertion ; + earl:assertedBy ; + earl:result [ + a earl:TestResult ; + dc:date "2014-02-13T11:45:28"^^xsd:dateTime ; + earl:outcome earl:passed + ] ; + earl:subject ; + earl:test . + +[] a earl:Assertion ; + earl:assertedBy ; + earl:result [ + a earl:TestResult ; + dc:date "2014-02-13T11:45:28"^^xsd:dateTime ; + earl:outcome earl:passed + ] ; + earl:subject ; + earl:test . + +[] a earl:Assertion ; + earl:assertedBy ; + earl:result [ + a earl:TestResult ; + dc:date "2014-02-13T11:45:28"^^xsd:dateTime ; + earl:outcome earl:passed + ] ; + earl:subject ; + earl:test . + +[] a earl:Assertion ; + earl:assertedBy ; + earl:result [ + a earl:TestResult ; + dc:date "2014-02-13T11:45:28"^^xsd:dateTime ; + earl:outcome earl:passed + ] ; + earl:subject ; + earl:test . + +[] a earl:Assertion ; + earl:assertedBy ; + earl:result [ + a earl:TestResult ; + dc:date "2014-02-13T11:45:28"^^xsd:dateTime ; + earl:outcome earl:passed + ] ; + earl:subject ; + earl:test . + +[] a earl:Assertion ; + earl:assertedBy ; + earl:result [ + a earl:TestResult ; + dc:date "2014-02-13T11:45:28"^^xsd:dateTime ; + earl:outcome earl:passed + ] ; + earl:subject ; + earl:test . + +[] a earl:Assertion ; + earl:assertedBy ; + earl:result [ + a earl:TestResult ; + dc:date "2014-02-13T11:45:28"^^xsd:dateTime ; + earl:outcome earl:passed + ] ; + earl:subject ; + earl:test . + +[] a earl:Assertion ; + earl:assertedBy ; + earl:result [ + a earl:TestResult ; + dc:date "2014-02-13T11:45:28"^^xsd:dateTime ; + earl:outcome earl:passed + ] ; + earl:subject ; + earl:test . + +[] a earl:Assertion ; + earl:assertedBy ; + earl:result [ + a earl:TestResult ; + dc:date "2014-02-13T11:45:28"^^xsd:dateTime ; + earl:outcome earl:passed + ] ; + earl:subject ; + earl:test . + +[] a earl:Assertion ; + earl:assertedBy ; + earl:result [ + a earl:TestResult ; + dc:date "2014-02-13T11:45:28"^^xsd:dateTime ; + earl:outcome earl:passed + ] ; + earl:subject ; + earl:test . + +[] a earl:Assertion ; + earl:assertedBy ; + earl:result [ + a earl:TestResult ; + dc:date "2014-02-13T11:45:28"^^xsd:dateTime ; + earl:outcome earl:passed + ] ; + earl:subject ; + earl:test . + +[] a earl:Assertion ; + earl:assertedBy ; + earl:result [ + a earl:TestResult ; + dc:date "2014-02-13T11:45:28"^^xsd:dateTime ; + earl:outcome earl:passed + ] ; + earl:subject ; + earl:test . + +[] a earl:Assertion ; + earl:assertedBy ; + earl:result [ + a earl:TestResult ; + dc:date "2014-02-13T11:45:28"^^xsd:dateTime ; + earl:outcome earl:passed + ] ; + earl:subject ; + earl:test . + +[] a earl:Assertion ; + earl:assertedBy ; + earl:result [ + a earl:TestResult ; + dc:date "2014-02-13T11:45:28"^^xsd:dateTime ; + earl:outcome earl:passed + ] ; + earl:subject ; + earl:test . + +[] a earl:Assertion ; + earl:assertedBy ; + earl:result [ + a earl:TestResult ; + dc:date "2014-02-13T11:45:28"^^xsd:dateTime ; + earl:outcome earl:passed + ] ; + earl:subject ; + earl:test . + +[] a earl:Assertion ; + earl:assertedBy ; + earl:result [ + a earl:TestResult ; + dc:date "2014-02-13T11:45:28"^^xsd:dateTime ; + earl:outcome earl:passed + ] ; + earl:subject ; + earl:test . + +[] a earl:Assertion ; + earl:assertedBy ; + earl:result [ + a earl:TestResult ; + dc:date "2014-02-13T11:45:28"^^xsd:dateTime ; + earl:outcome earl:passed + ] ; + earl:subject ; + earl:test . + +[] a earl:Assertion ; + earl:assertedBy ; + earl:result [ + a earl:TestResult ; + dc:date "2014-02-13T11:45:28"^^xsd:dateTime ; + earl:outcome earl:passed + ] ; + earl:subject ; + earl:test . + +[] a earl:Assertion ; + earl:assertedBy ; + earl:result [ + a earl:TestResult ; + dc:date "2014-02-13T11:45:28"^^xsd:dateTime ; + earl:outcome earl:passed + ] ; + earl:subject ; + earl:test . + +[] a earl:Assertion ; + earl:assertedBy ; + earl:result [ + a earl:TestResult ; + dc:date "2014-02-13T11:45:28"^^xsd:dateTime ; + earl:outcome earl:passed + ] ; + earl:subject ; + earl:test . + +[] a earl:Assertion ; + earl:assertedBy ; + earl:result [ + a earl:TestResult ; + dc:date "2014-02-13T11:45:28"^^xsd:dateTime ; + earl:outcome earl:passed + ] ; + earl:subject ; + earl:test . + +[] a earl:Assertion ; + earl:assertedBy ; + earl:result [ + a earl:TestResult ; + dc:date "2014-02-13T11:45:28"^^xsd:dateTime ; + earl:outcome earl:passed + ] ; + earl:subject ; + earl:test . + +[] a earl:Assertion ; + earl:assertedBy ; + earl:result [ + a earl:TestResult ; + dc:date "2014-02-13T11:45:28"^^xsd:dateTime ; + earl:outcome earl:passed + ] ; + earl:subject ; + earl:test . + +[] a earl:Assertion ; + earl:assertedBy ; + earl:result [ + a earl:TestResult ; + dc:date "2014-02-13T11:45:28"^^xsd:dateTime ; + earl:outcome earl:passed + ] ; + earl:subject ; + earl:test . + +[] a earl:Assertion ; + earl:assertedBy ; + earl:result [ + a earl:TestResult ; + dc:date "2014-02-13T11:45:28"^^xsd:dateTime ; + earl:outcome earl:passed + ] ; + earl:subject ; + earl:test . + +[] a earl:Assertion ; + earl:assertedBy ; + earl:result [ + a earl:TestResult ; + dc:date "2014-02-13T11:45:28"^^xsd:dateTime ; + earl:outcome earl:passed + ] ; + earl:subject ; + earl:test . + +[] a earl:Assertion ; + earl:assertedBy ; + earl:result [ + a earl:TestResult ; + dc:date "2014-02-13T11:45:28"^^xsd:dateTime ; + earl:outcome earl:passed + ] ; + earl:subject ; + earl:test . + +[] a earl:Assertion ; + earl:assertedBy ; + earl:result [ + a earl:TestResult ; + dc:date "2014-02-13T11:45:28"^^xsd:dateTime ; + earl:outcome earl:passed + ] ; + earl:subject ; + earl:test . + +[] a earl:Assertion ; + earl:assertedBy ; + earl:result [ + a earl:TestResult ; + dc:date "2014-02-13T11:45:28"^^xsd:dateTime ; + earl:outcome earl:passed + ] ; + earl:subject ; + earl:test . + +[] a earl:Assertion ; + earl:assertedBy ; + earl:result [ + a earl:TestResult ; + dc:date "2014-02-13T11:45:28"^^xsd:dateTime ; + earl:outcome earl:passed + ] ; + earl:subject ; + earl:test . + +[] a earl:Assertion ; + earl:assertedBy ; + earl:result [ + a earl:TestResult ; + dc:date "2014-02-13T11:45:28"^^xsd:dateTime ; + earl:outcome earl:passed + ] ; + earl:subject ; + earl:test . + +[] a earl:Assertion ; + earl:assertedBy ; + earl:result [ + a earl:TestResult ; + dc:date "2014-02-13T11:45:28"^^xsd:dateTime ; + earl:outcome earl:passed + ] ; + earl:subject ; + earl:test . + +[] a earl:Assertion ; + earl:assertedBy ; + earl:result [ + a earl:TestResult ; + dc:date "2014-02-13T11:45:28"^^xsd:dateTime ; + earl:outcome earl:passed + ] ; + earl:subject ; + earl:test . + +[] a earl:Assertion ; + earl:assertedBy ; + earl:result [ + a earl:TestResult ; + dc:date "2014-02-13T11:45:28"^^xsd:dateTime ; + earl:outcome earl:passed + ] ; + earl:subject ; + earl:test . + +[] a earl:Assertion ; + earl:assertedBy ; + earl:result [ + a earl:TestResult ; + dc:date "2014-02-13T11:45:28"^^xsd:dateTime ; + earl:outcome earl:passed + ] ; + earl:subject ; + earl:test . + +[] a earl:Assertion ; + earl:assertedBy ; + earl:result [ + a earl:TestResult ; + dc:date "2014-02-13T11:45:28"^^xsd:dateTime ; + earl:outcome earl:passed + ] ; + earl:subject ; + earl:test . + +[] a earl:Assertion ; + earl:assertedBy ; + earl:result [ + a earl:TestResult ; + dc:date "2014-02-13T11:45:28"^^xsd:dateTime ; + earl:outcome earl:passed + ] ; + earl:subject ; + earl:test . + +[] a earl:Assertion ; + earl:assertedBy ; + earl:result [ + a earl:TestResult ; + dc:date "2014-02-13T11:45:28"^^xsd:dateTime ; + earl:outcome earl:passed + ] ; + earl:subject ; + earl:test . + +[] a earl:Assertion ; + earl:assertedBy ; + earl:result [ + a earl:TestResult ; + dc:date "2014-02-13T11:45:28"^^xsd:dateTime ; + earl:outcome earl:passed + ] ; + earl:subject ; + earl:test . + +[] a earl:Assertion ; + earl:assertedBy ; + earl:result [ + a earl:TestResult ; + dc:date "2014-02-13T11:45:28"^^xsd:dateTime ; + earl:outcome earl:passed + ] ; + earl:subject ; + earl:test . + +[] a earl:Assertion ; + earl:assertedBy ; + earl:result [ + a earl:TestResult ; + dc:date "2014-02-13T11:45:28"^^xsd:dateTime ; + earl:outcome earl:passed + ] ; + earl:subject ; + earl:test . + +[] a earl:Assertion ; + earl:assertedBy ; + earl:result [ + a earl:TestResult ; + dc:date "2014-02-13T11:45:28"^^xsd:dateTime ; + earl:outcome earl:passed + ] ; + earl:subject ; + earl:test . + +[] a earl:Assertion ; + earl:assertedBy ; + earl:result [ + a earl:TestResult ; + dc:date "2014-02-13T11:45:28"^^xsd:dateTime ; + earl:outcome earl:passed + ] ; + earl:subject ; + earl:test . + +[] a earl:Assertion ; + earl:assertedBy ; + earl:result [ + a earl:TestResult ; + dc:date "2014-02-13T11:45:28"^^xsd:dateTime ; + earl:outcome earl:passed + ] ; + earl:subject ; + earl:test . + +[] a earl:Assertion ; + earl:assertedBy ; + earl:result [ + a earl:TestResult ; + dc:date "2014-02-13T11:45:28"^^xsd:dateTime ; + earl:outcome earl:passed + ] ; + earl:subject ; + earl:test . + +[] a earl:Assertion ; + earl:assertedBy ; + earl:result [ + a earl:TestResult ; + dc:date "2014-02-13T11:45:28"^^xsd:dateTime ; + earl:outcome earl:passed + ] ; + earl:subject ; + earl:test . + +[] a earl:Assertion ; + earl:assertedBy ; + earl:result [ + a earl:TestResult ; + dc:date "2014-02-13T11:45:28"^^xsd:dateTime ; + earl:outcome earl:passed + ] ; + earl:subject ; + earl:test . + +[] a earl:Assertion ; + earl:assertedBy ; + earl:result [ + a earl:TestResult ; + dc:date "2014-02-13T11:45:28"^^xsd:dateTime ; + earl:outcome earl:passed + ] ; + earl:subject ; + earl:test . + +[] a earl:Assertion ; + earl:assertedBy ; + earl:result [ + a earl:TestResult ; + dc:date "2014-02-13T11:45:28"^^xsd:dateTime ; + earl:outcome earl:passed + ] ; + earl:subject ; + earl:test . + +[] a earl:Assertion ; + earl:assertedBy ; + earl:result [ + a earl:TestResult ; + dc:date "2014-02-13T11:45:28"^^xsd:dateTime ; + earl:outcome earl:passed + ] ; + earl:subject ; + earl:test . + +[] a earl:Assertion ; + earl:assertedBy ; + earl:result [ + a earl:TestResult ; + dc:date "2014-02-13T11:45:28"^^xsd:dateTime ; + earl:outcome earl:passed + ] ; + earl:subject ; + earl:test . + +[] a earl:Assertion ; + earl:assertedBy ; + earl:result [ + a earl:TestResult ; + dc:date "2014-02-13T11:45:28"^^xsd:dateTime ; + earl:outcome earl:passed + ] ; + earl:subject ; + earl:test . + +[] a earl:Assertion ; + earl:assertedBy ; + earl:result [ + a earl:TestResult ; + dc:date "2014-02-13T11:45:28"^^xsd:dateTime ; + earl:outcome earl:passed + ] ; + earl:subject ; + earl:test . + +[] a earl:Assertion ; + earl:assertedBy ; + earl:result [ + a earl:TestResult ; + dc:date "2014-02-13T11:45:28"^^xsd:dateTime ; + earl:outcome earl:passed + ] ; + earl:subject ; + earl:test . + +[] a earl:Assertion ; + earl:assertedBy ; + earl:result [ + a earl:TestResult ; + dc:date "2014-02-13T11:45:28"^^xsd:dateTime ; + earl:outcome earl:passed + ] ; + earl:subject ; + earl:test . + +[] a earl:Assertion ; + earl:assertedBy ; + earl:result [ + a earl:TestResult ; + dc:date "2014-02-13T11:45:28"^^xsd:dateTime ; + earl:outcome earl:passed + ] ; + earl:subject ; + earl:test . + +[] a earl:Assertion ; + earl:assertedBy ; + earl:result [ + a earl:TestResult ; + dc:date "2014-02-13T11:45:28"^^xsd:dateTime ; + earl:outcome earl:passed + ] ; + earl:subject ; + earl:test . + +[] a earl:Assertion ; + earl:assertedBy ; + earl:result [ + a earl:TestResult ; + dc:date "2014-02-13T11:45:28"^^xsd:dateTime ; + earl:outcome earl:passed + ] ; + earl:subject ; + earl:test . + +[] a earl:Assertion ; + earl:assertedBy ; + earl:result [ + a earl:TestResult ; + dc:date "2014-02-13T11:45:28"^^xsd:dateTime ; + earl:outcome earl:passed + ] ; + earl:subject ; + earl:test . + +[] a earl:Assertion ; + earl:assertedBy ; + earl:result [ + a earl:TestResult ; + dc:date "2014-02-13T11:45:28"^^xsd:dateTime ; + earl:outcome earl:passed + ] ; + earl:subject ; + earl:test . + +[] a earl:Assertion ; + earl:assertedBy ; + earl:result [ + a earl:TestResult ; + dc:date "2014-02-13T11:45:28"^^xsd:dateTime ; + earl:outcome earl:passed + ] ; + earl:subject ; + earl:test . + +[] a earl:Assertion ; + earl:assertedBy ; + earl:result [ + a earl:TestResult ; + dc:date "2014-02-13T11:45:28"^^xsd:dateTime ; + earl:outcome earl:passed + ] ; + earl:subject ; + earl:test . + +[] a earl:Assertion ; + earl:assertedBy ; + earl:result [ + a earl:TestResult ; + dc:date "2014-02-13T11:45:28"^^xsd:dateTime ; + earl:outcome earl:passed + ] ; + earl:subject ; + earl:test . + +[] a earl:Assertion ; + earl:assertedBy ; + earl:result [ + a earl:TestResult ; + dc:date "2014-02-13T11:45:28"^^xsd:dateTime ; + earl:outcome earl:passed + ] ; + earl:subject ; + earl:test . + +[] a earl:Assertion ; + earl:assertedBy ; + earl:result [ + a earl:TestResult ; + dc:date "2014-02-13T11:45:28"^^xsd:dateTime ; + earl:outcome earl:passed + ] ; + earl:subject ; + earl:test . + +[] a earl:Assertion ; + earl:assertedBy ; + earl:result [ + a earl:TestResult ; + dc:date "2014-02-13T11:45:28"^^xsd:dateTime ; + earl:outcome earl:passed + ] ; + earl:subject ; + earl:test . + +[] a earl:Assertion ; + earl:assertedBy ; + earl:result [ + a earl:TestResult ; + dc:date "2014-02-13T11:45:28"^^xsd:dateTime ; + earl:outcome earl:passed + ] ; + earl:subject ; + earl:test . + +[] a earl:Assertion ; + earl:assertedBy ; + earl:result [ + a earl:TestResult ; + dc:date "2014-02-13T11:45:28"^^xsd:dateTime ; + earl:outcome earl:passed + ] ; + earl:subject ; + earl:test . + +[] a earl:Assertion ; + earl:assertedBy ; + earl:result [ + a earl:TestResult ; + dc:date "2014-02-13T11:45:28"^^xsd:dateTime ; + earl:outcome earl:passed + ] ; + earl:subject ; + earl:test . + +[] a earl:Assertion ; + earl:assertedBy ; + earl:result [ + a earl:TestResult ; + dc:date "2014-02-13T11:45:28"^^xsd:dateTime ; + earl:outcome earl:passed + ] ; + earl:subject ; + earl:test . + +[] a earl:Assertion ; + earl:assertedBy ; + earl:result [ + a earl:TestResult ; + dc:date "2014-02-13T11:45:28"^^xsd:dateTime ; + earl:outcome earl:passed + ] ; + earl:subject ; + earl:test . + +[] a earl:Assertion ; + earl:assertedBy ; + earl:result [ + a earl:TestResult ; + dc:date "2014-02-13T11:45:28"^^xsd:dateTime ; + earl:outcome earl:passed + ] ; + earl:subject ; + earl:test . + +[] a earl:Assertion ; + earl:assertedBy ; + earl:result [ + a earl:TestResult ; + dc:date "2014-02-13T11:45:28"^^xsd:dateTime ; + earl:outcome earl:passed + ] ; + earl:subject ; + earl:test . + +[] a earl:Assertion ; + earl:assertedBy ; + earl:result [ + a earl:TestResult ; + dc:date "2014-02-13T11:45:28"^^xsd:dateTime ; + earl:outcome earl:passed + ] ; + earl:subject ; + earl:test . + +[] a earl:Assertion ; + earl:assertedBy ; + earl:result [ + a earl:TestResult ; + dc:date "2014-02-13T11:45:28"^^xsd:dateTime ; + earl:outcome earl:passed + ] ; + earl:subject ; + earl:test . + +[] a earl:Assertion ; + earl:assertedBy ; + earl:result [ + a earl:TestResult ; + dc:date "2014-02-13T11:45:28"^^xsd:dateTime ; + earl:outcome earl:passed + ] ; + earl:subject ; + earl:test . + +[] a earl:Assertion ; + earl:assertedBy ; + earl:result [ + a earl:TestResult ; + dc:date "2014-02-13T11:45:28"^^xsd:dateTime ; + earl:outcome earl:passed + ] ; + earl:subject ; + earl:test . + +[] a earl:Assertion ; + earl:assertedBy ; + earl:result [ + a earl:TestResult ; + dc:date "2014-02-13T11:45:28"^^xsd:dateTime ; + earl:outcome earl:passed + ] ; + earl:subject ; + earl:test . + +[] a earl:Assertion ; + earl:assertedBy ; + earl:result [ + a earl:TestResult ; + dc:date "2014-02-13T11:45:28"^^xsd:dateTime ; + earl:outcome earl:passed + ] ; + earl:subject ; + earl:test . + +[] a earl:Assertion ; + earl:assertedBy ; + earl:result [ + a earl:TestResult ; + dc:date "2014-02-13T11:45:28"^^xsd:dateTime ; + earl:outcome earl:passed + ] ; + earl:subject ; + earl:test . + +[] a earl:Assertion ; + earl:assertedBy ; + earl:result [ + a earl:TestResult ; + dc:date "2014-02-13T11:45:28"^^xsd:dateTime ; + earl:outcome earl:passed + ] ; + earl:subject ; + earl:test . + +[] a earl:Assertion ; + earl:assertedBy ; + earl:result [ + a earl:TestResult ; + dc:date "2014-02-13T11:45:28"^^xsd:dateTime ; + earl:outcome earl:passed + ] ; + earl:subject ; + earl:test . + +[] a earl:Assertion ; + earl:assertedBy ; + earl:result [ + a earl:TestResult ; + dc:date "2014-02-13T11:45:28"^^xsd:dateTime ; + earl:outcome earl:passed + ] ; + earl:subject ; + earl:test . + +[] a earl:Assertion ; + earl:assertedBy ; + earl:result [ + a earl:TestResult ; + dc:date "2014-02-13T11:45:28"^^xsd:dateTime ; + earl:outcome earl:passed + ] ; + earl:subject ; + earl:test . + +[] a earl:Assertion ; + earl:assertedBy ; + earl:result [ + a earl:TestResult ; + dc:date "2014-02-13T11:45:28"^^xsd:dateTime ; + earl:outcome earl:passed + ] ; + earl:subject ; + earl:test . + +[] a earl:Assertion ; + earl:assertedBy ; + earl:result [ + a earl:TestResult ; + dc:date "2014-02-13T11:45:28"^^xsd:dateTime ; + earl:outcome earl:passed + ] ; + earl:subject ; + earl:test . + +[] a earl:Assertion ; + earl:assertedBy ; + earl:result [ + a earl:TestResult ; + dc:date "2014-02-13T11:45:28"^^xsd:dateTime ; + earl:outcome earl:passed + ] ; + earl:subject ; + earl:test . + +[] a earl:Assertion ; + earl:assertedBy ; + earl:result [ + a earl:TestResult ; + dc:date "2014-02-13T11:45:28"^^xsd:dateTime ; + earl:outcome earl:passed + ] ; + earl:subject ; + earl:test . + +[] a earl:Assertion ; + earl:assertedBy ; + earl:result [ + a earl:TestResult ; + dc:date "2014-02-13T11:45:28"^^xsd:dateTime ; + earl:outcome earl:passed + ] ; + earl:subject ; + earl:test . + +[] a earl:Assertion ; + earl:assertedBy ; + earl:result [ + a earl:TestResult ; + dc:date "2014-02-13T11:45:28"^^xsd:dateTime ; + earl:outcome earl:passed + ] ; + earl:subject ; + earl:test . + +[] a earl:Assertion ; + earl:assertedBy ; + earl:result [ + a earl:TestResult ; + dc:date "2014-02-13T11:45:28"^^xsd:dateTime ; + earl:outcome earl:passed + ] ; + earl:subject ; + earl:test . + +[] a earl:Assertion ; + earl:assertedBy ; + earl:result [ + a earl:TestResult ; + dc:date "2014-02-13T11:45:28"^^xsd:dateTime ; + earl:outcome earl:passed + ] ; + earl:subject ; + earl:test . + +[] a earl:Assertion ; + earl:assertedBy ; + earl:result [ + a earl:TestResult ; + dc:date "2014-02-13T11:45:28"^^xsd:dateTime ; + earl:outcome earl:passed + ] ; + earl:subject ; + earl:test . + +[] a earl:Assertion ; + earl:assertedBy ; + earl:result [ + a earl:TestResult ; + dc:date "2014-02-13T11:45:28"^^xsd:dateTime ; + earl:outcome earl:passed + ] ; + earl:subject ; + earl:test . + +[] a earl:Assertion ; + earl:assertedBy ; + earl:result [ + a earl:TestResult ; + dc:date "2014-02-13T11:45:28"^^xsd:dateTime ; + earl:outcome earl:passed + ] ; + earl:subject ; + earl:test . + +[] a earl:Assertion ; + earl:assertedBy ; + earl:result [ + a earl:TestResult ; + dc:date "2014-02-13T11:45:28"^^xsd:dateTime ; + earl:outcome earl:failed + ] ; + earl:subject ; + earl:test . + +[] a earl:Assertion ; + earl:assertedBy ; + earl:result [ + a earl:TestResult ; + dc:date "2014-02-13T11:45:28"^^xsd:dateTime ; + earl:outcome earl:passed + ] ; + earl:subject ; + earl:test . + +[] a earl:Assertion ; + earl:assertedBy ; + earl:result [ + a earl:TestResult ; + dc:date "2014-02-13T11:45:28"^^xsd:dateTime ; + earl:outcome earl:passed + ] ; + earl:subject ; + earl:test . + +[] a earl:Assertion ; + earl:assertedBy ; + earl:result [ + a earl:TestResult ; + dc:date "2014-02-13T11:45:28"^^xsd:dateTime ; + earl:outcome earl:passed + ] ; + earl:subject ; + earl:test . + +[] a earl:Assertion ; + earl:assertedBy ; + earl:result [ + a earl:TestResult ; + dc:date "2014-02-13T11:45:28"^^xsd:dateTime ; + earl:outcome earl:passed + ] ; + earl:subject ; + earl:test . + +[] a earl:Assertion ; + earl:assertedBy ; + earl:result [ + a earl:TestResult ; + dc:date "2014-02-13T11:45:28"^^xsd:dateTime ; + earl:outcome earl:passed + ] ; + earl:subject ; + earl:test . + +[] a earl:Assertion ; + earl:assertedBy ; + earl:result [ + a earl:TestResult ; + dc:date "2014-02-13T11:45:28"^^xsd:dateTime ; + earl:outcome earl:passed + ] ; + earl:subject ; + earl:test . + +[] a earl:Assertion ; + earl:assertedBy ; + earl:result [ + a earl:TestResult ; + dc:date "2014-02-13T11:45:28"^^xsd:dateTime ; + earl:outcome earl:passed + ] ; + earl:subject ; + earl:test . + +[] a earl:Assertion ; + earl:assertedBy ; + earl:result [ + a earl:TestResult ; + dc:date "2014-02-13T11:45:28"^^xsd:dateTime ; + earl:outcome earl:passed + ] ; + earl:subject ; + earl:test . + +[] a earl:Assertion ; + earl:assertedBy ; + earl:result [ + a earl:TestResult ; + dc:date "2014-02-13T11:45:28"^^xsd:dateTime ; + earl:outcome earl:passed + ] ; + earl:subject ; + earl:test . + +[] a earl:Assertion ; + earl:assertedBy ; + earl:result [ + a earl:TestResult ; + dc:date "2014-02-13T11:45:28"^^xsd:dateTime ; + earl:outcome earl:passed + ] ; + earl:subject ; + earl:test . + +[] a earl:Assertion ; + earl:assertedBy ; + earl:result [ + a earl:TestResult ; + dc:date "2014-02-13T11:45:28"^^xsd:dateTime ; + earl:outcome earl:passed + ] ; + earl:subject ; + earl:test . + +[] a earl:Assertion ; + earl:assertedBy ; + earl:result [ + a earl:TestResult ; + dc:date "2014-02-13T11:45:28"^^xsd:dateTime ; + earl:outcome earl:passed + ] ; + earl:subject ; + earl:test . + +[] a earl:Assertion ; + earl:assertedBy ; + earl:result [ + a earl:TestResult ; + dc:date "2014-02-13T11:45:28"^^xsd:dateTime ; + earl:outcome earl:passed + ] ; + earl:subject ; + earl:test . + +[] a earl:Assertion ; + earl:assertedBy ; + earl:result [ + a earl:TestResult ; + dc:date "2014-02-13T11:45:28"^^xsd:dateTime ; + earl:outcome earl:passed + ] ; + earl:subject ; + earl:test . + +[] a earl:Assertion ; + earl:assertedBy ; + earl:result [ + a earl:TestResult ; + dc:date "2014-02-13T11:45:28"^^xsd:dateTime ; + earl:outcome earl:passed + ] ; + earl:subject ; + earl:test . + +[] a earl:Assertion ; + earl:assertedBy ; + earl:result [ + a earl:TestResult ; + dc:date "2014-02-13T11:45:28"^^xsd:dateTime ; + earl:outcome earl:passed + ] ; + earl:subject ; + earl:test . + +[] a earl:Assertion ; + earl:assertedBy ; + earl:result [ + a earl:TestResult ; + dc:date "2014-02-13T11:45:28"^^xsd:dateTime ; + earl:outcome earl:passed + ] ; + earl:subject ; + earl:test . + +[] a earl:Assertion ; + earl:assertedBy ; + earl:result [ + a earl:TestResult ; + dc:date "2014-02-13T11:45:28"^^xsd:dateTime ; + earl:outcome earl:passed + ] ; + earl:subject ; + earl:test . + +[] a earl:Assertion ; + earl:assertedBy ; + earl:result [ + a earl:TestResult ; + dc:date "2014-02-13T11:45:28"^^xsd:dateTime ; + earl:outcome earl:passed + ] ; + earl:subject ; + earl:test . + +[] a earl:Assertion ; + earl:assertedBy ; + earl:result [ + a earl:TestResult ; + dc:date "2014-02-13T11:45:28"^^xsd:dateTime ; + earl:outcome earl:passed + ] ; + earl:subject ; + earl:test . + +[] a earl:Assertion ; + earl:assertedBy ; + earl:result [ + a earl:TestResult ; + dc:date "2014-02-13T11:45:28"^^xsd:dateTime ; + earl:outcome earl:passed + ] ; + earl:subject ; + earl:test . + +[] a earl:Assertion ; + earl:assertedBy ; + earl:result [ + a earl:TestResult ; + dc:date "2014-02-13T11:45:28"^^xsd:dateTime ; + earl:outcome earl:passed + ] ; + earl:subject ; + earl:test . + +[] a earl:Assertion ; + earl:assertedBy ; + earl:result [ + a earl:TestResult ; + dc:date "2014-02-13T11:45:28"^^xsd:dateTime ; + earl:outcome earl:passed + ] ; + earl:subject ; + earl:test . + +[] a earl:Assertion ; + earl:assertedBy ; + earl:result [ + a earl:TestResult ; + dc:date "2014-02-13T11:45:28"^^xsd:dateTime ; + earl:outcome earl:passed + ] ; + earl:subject ; + earl:test . + +[] a earl:Assertion ; + earl:assertedBy ; + earl:result [ + a earl:TestResult ; + dc:date "2014-02-13T11:45:28"^^xsd:dateTime ; + earl:outcome earl:passed + ] ; + earl:subject ; + earl:test . + +[] a earl:Assertion ; + earl:assertedBy ; + earl:result [ + a earl:TestResult ; + dc:date "2014-02-13T11:45:28"^^xsd:dateTime ; + earl:outcome earl:passed + ] ; + earl:subject ; + earl:test . + +[] a earl:Assertion ; + earl:assertedBy ; + earl:result [ + a earl:TestResult ; + dc:date "2014-02-13T11:45:28"^^xsd:dateTime ; + earl:outcome earl:passed + ] ; + earl:subject ; + earl:test . + +[] a earl:Assertion ; + earl:assertedBy ; + earl:result [ + a earl:TestResult ; + dc:date "2014-02-13T11:45:28"^^xsd:dateTime ; + earl:outcome earl:passed + ] ; + earl:subject ; + earl:test . + +[] a earl:Assertion ; + earl:assertedBy ; + earl:result [ + a earl:TestResult ; + dc:date "2014-02-13T11:45:28"^^xsd:dateTime ; + earl:outcome earl:passed + ] ; + earl:subject ; + earl:test . + +[] a earl:Assertion ; + earl:assertedBy ; + earl:result [ + a earl:TestResult ; + dc:date "2014-02-13T11:45:28"^^xsd:dateTime ; + earl:outcome earl:passed + ] ; + earl:subject ; + earl:test . + +[] a earl:Assertion ; + earl:assertedBy ; + earl:result [ + a earl:TestResult ; + dc:date "2014-02-13T11:45:29"^^xsd:dateTime ; + earl:outcome earl:passed + ] ; + earl:subject ; + earl:test . + +[] a earl:Assertion ; + earl:assertedBy ; + earl:result [ + a earl:TestResult ; + dc:date "2014-02-13T11:45:29"^^xsd:dateTime ; + earl:outcome earl:passed + ] ; + earl:subject ; + earl:test . + +[] a earl:Assertion ; + earl:assertedBy ; + earl:result [ + a earl:TestResult ; + dc:date "2014-02-13T11:45:29"^^xsd:dateTime ; + earl:outcome earl:passed + ] ; + earl:subject ; + earl:test . + +[] a earl:Assertion ; + earl:assertedBy ; + earl:result [ + a earl:TestResult ; + dc:date "2014-02-13T11:45:29"^^xsd:dateTime ; + earl:outcome earl:passed + ] ; + earl:subject ; + earl:test . + +[] a earl:Assertion ; + earl:assertedBy ; + earl:result [ + a earl:TestResult ; + dc:date "2014-02-13T11:45:29"^^xsd:dateTime ; + earl:outcome earl:passed + ] ; + earl:subject ; + earl:test . + +[] a earl:Assertion ; + earl:assertedBy ; + earl:result [ + a earl:TestResult ; + dc:date "2014-02-13T11:45:29"^^xsd:dateTime ; + earl:outcome earl:passed + ] ; + earl:subject ; + earl:test . + +[] a earl:Assertion ; + earl:assertedBy ; + earl:result [ + a earl:TestResult ; + dc:date "2014-02-13T11:45:29"^^xsd:dateTime ; + earl:outcome earl:passed + ] ; + earl:subject ; + earl:test . + +[] a earl:Assertion ; + earl:assertedBy ; + earl:result [ + a earl:TestResult ; + dc:date "2014-02-13T11:45:29"^^xsd:dateTime ; + earl:outcome earl:passed + ] ; + earl:subject ; + earl:test . + +[] a earl:Assertion ; + earl:assertedBy ; + earl:result [ + a earl:TestResult ; + dc:date "2014-02-13T11:45:29"^^xsd:dateTime ; + earl:outcome earl:passed + ] ; + earl:subject ; + earl:test . + +[] a earl:Assertion ; + earl:assertedBy ; + earl:result [ + a earl:TestResult ; + dc:date "2014-02-13T11:45:29"^^xsd:dateTime ; + earl:outcome earl:passed + ] ; + earl:subject ; + earl:test . + +[] a earl:Assertion ; + earl:assertedBy ; + earl:result [ + a earl:TestResult ; + dc:date "2014-02-13T11:45:29"^^xsd:dateTime ; + earl:outcome earl:passed + ] ; + earl:subject ; + earl:test . + +[] a earl:Assertion ; + earl:assertedBy ; + earl:result [ + a earl:TestResult ; + dc:date "2014-02-13T11:45:29"^^xsd:dateTime ; + earl:outcome earl:passed + ] ; + earl:subject ; + earl:test . + +[] a earl:Assertion ; + earl:assertedBy ; + earl:result [ + a earl:TestResult ; + dc:date "2014-02-13T11:45:29"^^xsd:dateTime ; + earl:outcome earl:passed + ] ; + earl:subject ; + earl:test . + +[] a earl:Assertion ; + earl:assertedBy ; + earl:result [ + a earl:TestResult ; + dc:date "2014-02-13T11:45:29"^^xsd:dateTime ; + earl:outcome earl:passed + ] ; + earl:subject ; + earl:test . + +[] a earl:Assertion ; + earl:assertedBy ; + earl:result [ + a earl:TestResult ; + dc:date "2014-02-13T11:45:29"^^xsd:dateTime ; + earl:outcome earl:passed + ] ; + earl:subject ; + earl:test . + +[] a earl:Assertion ; + earl:assertedBy ; + earl:result [ + a earl:TestResult ; + dc:date "2014-02-13T11:45:29"^^xsd:dateTime ; + earl:outcome earl:passed + ] ; + earl:subject ; + earl:test . + +[] a earl:Assertion ; + earl:assertedBy ; + earl:result [ + a earl:TestResult ; + dc:date "2014-02-13T11:45:29"^^xsd:dateTime ; + earl:outcome earl:passed + ] ; + earl:subject ; + earl:test . + +[] a earl:Assertion ; + earl:assertedBy ; + earl:result [ + a earl:TestResult ; + dc:date "2014-02-13T11:45:29"^^xsd:dateTime ; + earl:outcome earl:passed + ] ; + earl:subject ; + earl:test . + +[] a earl:Assertion ; + earl:assertedBy ; + earl:result [ + a earl:TestResult ; + dc:date "2014-02-13T11:45:29"^^xsd:dateTime ; + earl:outcome earl:passed + ] ; + earl:subject ; + earl:test . + +[] a earl:Assertion ; + earl:assertedBy ; + earl:result [ + a earl:TestResult ; + dc:date "2014-02-13T11:45:29"^^xsd:dateTime ; + earl:outcome earl:passed + ] ; + earl:subject ; + earl:test . + +[] a earl:Assertion ; + earl:assertedBy ; + earl:result [ + a earl:TestResult ; + dc:date "2014-02-13T11:45:29"^^xsd:dateTime ; + earl:outcome earl:passed + ] ; + earl:subject ; + earl:test . + +[] a earl:Assertion ; + earl:assertedBy ; + earl:result [ + a earl:TestResult ; + dc:date "2014-02-13T11:45:29"^^xsd:dateTime ; + earl:outcome earl:passed + ] ; + earl:subject ; + earl:test . + +[] a earl:Assertion ; + earl:assertedBy ; + earl:result [ + a earl:TestResult ; + dc:date "2014-02-13T11:45:29"^^xsd:dateTime ; + earl:outcome earl:passed + ] ; + earl:subject ; + earl:test . + +[] a earl:Assertion ; + earl:assertedBy ; + earl:result [ + a earl:TestResult ; + dc:date "2014-02-13T11:45:29"^^xsd:dateTime ; + earl:outcome earl:passed + ] ; + earl:subject ; + earl:test . + +[] a earl:Assertion ; + earl:assertedBy ; + earl:result [ + a earl:TestResult ; + dc:date "2014-02-13T11:45:29"^^xsd:dateTime ; + earl:outcome earl:passed + ] ; + earl:subject ; + earl:test . + +[] a earl:Assertion ; + earl:assertedBy ; + earl:result [ + a earl:TestResult ; + dc:date "2014-02-13T11:45:29"^^xsd:dateTime ; + earl:outcome earl:passed + ] ; + earl:subject ; + earl:test . + +[] a earl:Assertion ; + earl:assertedBy ; + earl:result [ + a earl:TestResult ; + dc:date "2014-02-13T11:45:29"^^xsd:dateTime ; + earl:outcome earl:passed + ] ; + earl:subject ; + earl:test . + +[] a earl:Assertion ; + earl:assertedBy ; + earl:result [ + a earl:TestResult ; + dc:date "2014-02-13T11:45:29"^^xsd:dateTime ; + earl:outcome earl:passed + ] ; + earl:subject ; + earl:test . + +[] a earl:Assertion ; + earl:assertedBy ; + earl:result [ + a earl:TestResult ; + dc:date "2014-02-13T11:45:29"^^xsd:dateTime ; + earl:outcome earl:passed + ] ; + earl:subject ; + earl:test . + +[] a earl:Assertion ; + earl:assertedBy ; + earl:result [ + a earl:TestResult ; + dc:date "2014-02-13T11:45:29"^^xsd:dateTime ; + earl:outcome earl:passed + ] ; + earl:subject ; + earl:test . + +[] a earl:Assertion ; + earl:assertedBy ; + earl:result [ + a earl:TestResult ; + dc:date "2014-02-13T11:45:29"^^xsd:dateTime ; + earl:outcome earl:passed + ] ; + earl:subject ; + earl:test . + +[] a earl:Assertion ; + earl:assertedBy ; + earl:result [ + a earl:TestResult ; + dc:date "2014-02-13T11:45:29"^^xsd:dateTime ; + earl:outcome earl:passed + ] ; + earl:subject ; + earl:test . + +[] a earl:Assertion ; + earl:assertedBy ; + earl:result [ + a earl:TestResult ; + dc:date "2014-02-13T11:45:29"^^xsd:dateTime ; + earl:outcome earl:passed + ] ; + earl:subject ; + earl:test . + +[] a earl:Assertion ; + earl:assertedBy ; + earl:result [ + a earl:TestResult ; + dc:date "2014-02-13T11:45:29"^^xsd:dateTime ; + earl:outcome earl:passed + ] ; + earl:subject ; + earl:test . + +[] a earl:Assertion ; + earl:assertedBy ; + earl:result [ + a earl:TestResult ; + dc:date "2014-02-13T11:45:29"^^xsd:dateTime ; + earl:outcome earl:passed + ] ; + earl:subject ; + earl:test . + +[] a earl:Assertion ; + earl:assertedBy ; + earl:result [ + a earl:TestResult ; + dc:date "2014-02-13T11:45:29"^^xsd:dateTime ; + earl:outcome earl:passed + ] ; + earl:subject ; + earl:test . + +[] a earl:Assertion ; + earl:assertedBy ; + earl:result [ + a earl:TestResult ; + dc:date "2014-02-13T11:45:29"^^xsd:dateTime ; + earl:outcome earl:passed + ] ; + earl:subject ; + earl:test . + +[] a earl:Assertion ; + earl:assertedBy ; + earl:result [ + a earl:TestResult ; + dc:date "2014-02-13T11:45:29"^^xsd:dateTime ; + earl:outcome earl:passed + ] ; + earl:subject ; + earl:test . + +[] a earl:Assertion ; + earl:assertedBy ; + earl:result [ + a earl:TestResult ; + dc:date "2014-02-13T11:45:29"^^xsd:dateTime ; + earl:outcome earl:passed + ] ; + earl:subject ; + earl:test . + +[] a earl:Assertion ; + earl:assertedBy ; + earl:result [ + a earl:TestResult ; + dc:date "2014-02-13T11:45:29"^^xsd:dateTime ; + earl:outcome earl:passed + ] ; + earl:subject ; + earl:test . + +[] a earl:Assertion ; + earl:assertedBy ; + earl:result [ + a earl:TestResult ; + dc:date "2014-02-13T11:45:29"^^xsd:dateTime ; + earl:outcome earl:passed + ] ; + earl:subject ; + earl:test . + +[] a earl:Assertion ; + earl:assertedBy ; + earl:result [ + a earl:TestResult ; + dc:date "2014-02-13T11:45:29"^^xsd:dateTime ; + earl:outcome earl:passed + ] ; + earl:subject ; + earl:test . + +[] a earl:Assertion ; + earl:assertedBy ; + earl:result [ + a earl:TestResult ; + dc:date "2014-02-13T11:45:29"^^xsd:dateTime ; + earl:outcome earl:passed + ] ; + earl:subject ; + earl:test . + +[] a earl:Assertion ; + earl:assertedBy ; + earl:result [ + a earl:TestResult ; + dc:date "2014-02-13T11:45:29"^^xsd:dateTime ; + earl:outcome earl:passed + ] ; + earl:subject ; + earl:test . + +[] a earl:Assertion ; + earl:assertedBy ; + earl:result [ + a earl:TestResult ; + dc:date "2014-02-13T11:45:29"^^xsd:dateTime ; + earl:outcome earl:passed + ] ; + earl:subject ; + earl:test . + +[] a earl:Assertion ; + earl:assertedBy ; + earl:result [ + a earl:TestResult ; + dc:date "2014-02-13T11:45:29"^^xsd:dateTime ; + earl:outcome earl:passed + ] ; + earl:subject ; + earl:test . + +[] a earl:Assertion ; + earl:assertedBy ; + earl:result [ + a earl:TestResult ; + dc:date "2014-02-13T11:45:29"^^xsd:dateTime ; + earl:outcome earl:passed + ] ; + earl:subject ; + earl:test . + +[] a earl:Assertion ; + earl:assertedBy ; + earl:result [ + a earl:TestResult ; + dc:date "2014-02-13T11:45:29"^^xsd:dateTime ; + earl:outcome earl:passed + ] ; + earl:subject ; + earl:test . + +[] a earl:Assertion ; + earl:assertedBy ; + earl:result [ + a earl:TestResult ; + dc:date "2014-02-13T11:45:29"^^xsd:dateTime ; + earl:outcome earl:passed + ] ; + earl:subject ; + earl:test . + +[] a earl:Assertion ; + earl:assertedBy ; + earl:result [ + a earl:TestResult ; + dc:date "2014-02-13T11:45:29"^^xsd:dateTime ; + earl:outcome earl:passed + ] ; + earl:subject ; + earl:test . + +[] a earl:Assertion ; + earl:assertedBy ; + earl:result [ + a earl:TestResult ; + dc:date "2014-02-13T11:45:29"^^xsd:dateTime ; + earl:outcome earl:passed + ] ; + earl:subject ; + earl:test . + +[] a earl:Assertion ; + earl:assertedBy ; + earl:result [ + a earl:TestResult ; + dc:date "2014-02-13T11:45:29"^^xsd:dateTime ; + earl:outcome earl:passed + ] ; + earl:subject ; + earl:test . + +[] a earl:Assertion ; + earl:assertedBy ; + earl:result [ + a earl:TestResult ; + dc:date "2014-02-13T11:45:29"^^xsd:dateTime ; + earl:outcome earl:passed + ] ; + earl:subject ; + earl:test . + +[] a earl:Assertion ; + earl:assertedBy ; + earl:result [ + a earl:TestResult ; + dc:date "2014-02-13T11:45:29"^^xsd:dateTime ; + earl:outcome earl:passed + ] ; + earl:subject ; + earl:test . + +[] a earl:Assertion ; + earl:assertedBy ; + earl:result [ + a earl:TestResult ; + dc:date "2014-02-13T11:45:29"^^xsd:dateTime ; + earl:outcome earl:passed + ] ; + earl:subject ; + earl:test . + +[] a earl:Assertion ; + earl:assertedBy ; + earl:result [ + a earl:TestResult ; + dc:date "2014-02-13T11:45:29"^^xsd:dateTime ; + earl:outcome earl:passed + ] ; + earl:subject ; + earl:test . + +[] a earl:Assertion ; + earl:assertedBy ; + earl:result [ + a earl:TestResult ; + dc:date "2014-02-13T11:45:29"^^xsd:dateTime ; + earl:outcome earl:passed + ] ; + earl:subject ; + earl:test . + +[] a earl:Assertion ; + earl:assertedBy ; + earl:result [ + a earl:TestResult ; + dc:date "2014-02-13T11:45:29"^^xsd:dateTime ; + earl:outcome earl:passed + ] ; + earl:subject ; + earl:test . + +[] a earl:Assertion ; + earl:assertedBy ; + earl:result [ + a earl:TestResult ; + dc:date "2014-02-13T11:45:29"^^xsd:dateTime ; + earl:outcome earl:passed + ] ; + earl:subject ; + earl:test . + +[] a earl:Assertion ; + earl:assertedBy ; + earl:result [ + a earl:TestResult ; + dc:date "2014-02-13T11:45:29"^^xsd:dateTime ; + earl:outcome earl:passed + ] ; + earl:subject ; + earl:test . + +[] a earl:Assertion ; + earl:assertedBy ; + earl:result [ + a earl:TestResult ; + dc:date "2014-02-13T11:45:29"^^xsd:dateTime ; + earl:outcome earl:passed + ] ; + earl:subject ; + earl:test . + +[] a earl:Assertion ; + earl:assertedBy ; + earl:result [ + a earl:TestResult ; + dc:date "2014-02-13T11:45:29"^^xsd:dateTime ; + earl:outcome earl:passed + ] ; + earl:subject ; + earl:test . + +[] a earl:Assertion ; + earl:assertedBy ; + earl:result [ + a earl:TestResult ; + dc:date "2014-02-13T11:45:29"^^xsd:dateTime ; + earl:outcome earl:passed + ] ; + earl:subject ; + earl:test . + +[] a earl:Assertion ; + earl:assertedBy ; + earl:result [ + a earl:TestResult ; + dc:date "2014-02-13T11:45:29"^^xsd:dateTime ; + earl:outcome earl:passed + ] ; + earl:subject ; + earl:test . + +[] a earl:Assertion ; + earl:assertedBy ; + earl:result [ + a earl:TestResult ; + dc:date "2014-02-13T11:45:29"^^xsd:dateTime ; + earl:outcome earl:passed + ] ; + earl:subject ; + earl:test . + +[] a earl:Assertion ; + earl:assertedBy ; + earl:result [ + a earl:TestResult ; + dc:date "2014-02-13T11:45:29"^^xsd:dateTime ; + earl:outcome earl:passed + ] ; + earl:subject ; + earl:test . + +[] a earl:Assertion ; + earl:assertedBy ; + earl:result [ + a earl:TestResult ; + dc:date "2014-02-13T11:45:29"^^xsd:dateTime ; + earl:outcome earl:passed + ] ; + earl:subject ; + earl:test . + +[] a earl:Assertion ; + earl:assertedBy ; + earl:result [ + a earl:TestResult ; + dc:date "2014-02-13T11:45:29"^^xsd:dateTime ; + earl:outcome earl:passed + ] ; + earl:subject ; + earl:test . + +[] a earl:Assertion ; + earl:assertedBy ; + earl:result [ + a earl:TestResult ; + dc:date "2014-02-13T11:45:29"^^xsd:dateTime ; + earl:outcome earl:passed + ] ; + earl:subject ; + earl:test . + +[] a earl:Assertion ; + earl:assertedBy ; + earl:result [ + a earl:TestResult ; + dc:date "2014-02-13T11:45:29"^^xsd:dateTime ; + earl:outcome earl:passed + ] ; + earl:subject ; + earl:test . + +[] a earl:Assertion ; + earl:assertedBy ; + earl:result [ + a earl:TestResult ; + dc:date "2014-02-13T11:45:29"^^xsd:dateTime ; + earl:outcome earl:passed + ] ; + earl:subject ; + earl:test . + +[] a earl:Assertion ; + earl:assertedBy ; + earl:result [ + a earl:TestResult ; + dc:date "2014-02-13T11:45:29"^^xsd:dateTime ; + earl:outcome earl:passed + ] ; + earl:subject ; + earl:test . + +[] a earl:Assertion ; + earl:assertedBy ; + earl:result [ + a earl:TestResult ; + dc:date "2014-02-13T11:45:29"^^xsd:dateTime ; + earl:outcome earl:passed + ] ; + earl:subject ; + earl:test . + +[] a earl:Assertion ; + earl:assertedBy ; + earl:result [ + a earl:TestResult ; + dc:date "2014-02-13T11:45:29"^^xsd:dateTime ; + earl:outcome earl:passed + ] ; + earl:subject ; + earl:test . + +[] a earl:Assertion ; + earl:assertedBy ; + earl:result [ + a earl:TestResult ; + dc:date "2014-02-13T11:45:29"^^xsd:dateTime ; + earl:outcome earl:passed + ] ; + earl:subject ; + earl:test . + +[] a earl:Assertion ; + earl:assertedBy ; + earl:result [ + a earl:TestResult ; + dc:date "2014-02-13T11:45:29"^^xsd:dateTime ; + earl:outcome earl:passed + ] ; + earl:subject ; + earl:test . + diff --git a/corese-unit-test/src/test/resources/data/earl/manifest-az.ttl b/corese-unit-test/src/test/resources/data/earl/manifest-az.ttl new file mode 100644 index 0000000000..241fd36984 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/earl/manifest-az.ttl @@ -0,0 +1,194 @@ +# Unapproved RDF Schema and Semantics tests +## Distributed under both the W3C Test Suite License[1] and the W3C 3- +## clause BSD License[2]. To contribute to a W3C Test Suite, see the +## policies and contribution forms [3] +## +## 1. http://www.w3.org/Consortium/Legal/2008/04-testsuite-license +## 2. http://www.w3.org/Consortium/Legal/2008/03-bsd-license +## 3. http://www.w3.org/2004/10/27-testcases + +@prefix rdf: . +@prefix rdfs: . +@prefix mf: . +@prefix rdft: . +@prefix xsd: . + +<> rdf:type mf:Manifest ; + rdfs:comment "Unapproved RDF Semantics tests" ; + mf:entries ( + <#horst-complete-rules> + <#ill-formed-string> + <#inconsistent-recognizing-integer> + <#langstring-disjoint-string> + <#langstring-not-subclassof-string> + <#langstring> + <#manifest> + <#only-one-class> + <#only-one-property> + <#only-two-classes> + <#only-two-properties> + <#rdf11-tautology> + <#resource-is-literal> + <#same-as-one> + <#unrecognized-datatype001> + <#unrecognized-datatype002> + <#unrecognized-datatype003> + <#well-formed-html> + ) . + +<#ill-formed-string> a mf:PositiveEntailmentTest; + mf:name "ill-formed-string"; + rdfs:comment """ + XSD Strings do not allow the null code point \0000. + """; + mf:entailmentRegime "Simple" ; + mf:recognizedDatatypes ( xsd:string ) ; + mf:unrecognizedDatatypes ( ) ; + mf:action ; + mf:result false . + +<#well-formed-html> a mf:NegativeEntailmentTest; + mf:name "well-formed-html"; + rdfs:comment """ + rdf:HTML does allow the null code point \0000. + """; + mf:entailmentRegime "Simple" ; + mf:recognizedDatatypes ( rdf:HTML ) ; + mf:unrecognizedDatatypes ( ) ; + mf:action ; + mf:result false . + +<#langstring-disjoint-string> a mf:PositiveEntailmentTest; + mf:name "langstring-disjoint-string"; + rdfs:comment """ + langStrings are not strings. + """; + mf:entailmentRegime "RDFS" ; + mf:recognizedDatatypes ( xsd:string rdf:langString ) ; + mf:unrecognizedDatatypes ( ) ; + mf:action ; + mf:result false . + +<#langstring-not-subclassof-string> a mf:PositiveEntailmentTest; + mf:name "langstring-not-subclassof-string"; + rdfs:comment """ + rdf:langString not a subclass of xsd:string. + """; + mf:entailmentRegime "RDFS" ; + mf:recognizedDatatypes ( xsd:string rdf:langString ) ; + mf:unrecognizedDatatypes ( ) ; + mf:action ; + mf:result false . + +<#unrecognized-datatype001> a mf:NegativeEntailmentTest; + mf:name "unrecognized-datatype001"; + rdfs:comment """ + Literals typed with unrecognized datatypes may denote anything, including another datatype's value. + """; + mf:entailmentRegime "RDFS" ; + mf:recognizedDatatypes ( xsd:integer ) ; + mf:unrecognizedDatatypes ( ex:dt ) ; + mf:action ; + mf:result false . + +<#unrecognized-datatype002> a mf:NegativeEntailmentTest; + mf:name "unrecognized-datatype002"; + rdfs:comment """ + Unrecognized datatypes may denote anything. + Literals typed with unrecognized datatypes will not be inferred to be + member of the datatype. + """; + mf:entailmentRegime "RDFS" ; + mf:recognizedDatatypes ( ) ; + mf:unrecognizedDatatypes ( ex:dt ) ; + mf:action ; + mf:result . + +<#rdf11-tautology> a mf:PositiveEntailmentTest; + mf:name "rdf11-tautology"; + rdfs:comment """ + In RDF 1.1, all IRIs denote. + """; + mf:entailmentRegime "RDFS" ; + mf:recognizedDatatypes ( ) ; + mf:unrecognizedDatatypes ( ) ; + mf:action ; + mf:result . + +<#langstring> a mf:PositiveEntailmentTest; + mf:name "langstring"; + rdfs:comment """ + Language-tagged strings are now typed with rdf:langString. + """; + mf:entailmentRegime "RDF" ; + mf:recognizedDatatypes ( rdf:langString ) ; + mf:unrecognizedDatatypes ( ) ; + mf:action ; + mf:result . + +<#horst-complete-rules> a mf:PositiveEntailmentTest; + mf:name "horst-complete-rules"; + rdfs:comment """ + Entailment that was not captured by the rules in RDF 1.0 Semantics. + """; + mf:entailmentRegime "RDFS" ; + mf:recognizedDatatypes ( ) ; + mf:unrecognizedDatatypes ( ) ; + mf:action ; + mf:result . + +<#inconsistent-recognizing-integer> a mf:PositiveEntailmentTest; + mf:name "inconsistent-recognizing-integer"; + rdfs:comment """ + If everything is an integer and another datatype is recognized (such as xsd:string) + then there is an inconsistency. + """; + mf:entailmentRegime "RDFS" ; + mf:recognizedDatatypes ( xsd:integer xsd:string ) ; + mf:unrecognizedDatatypes ( ) ; + mf:action ; + mf:result false . + +<#resource-is-literal> a mf:PositiveEntailmentTest; + mf:name "resource-is-literal"; + rdfs:comment """ + In RDF 1.1, all IRIs denote, so if something applies to all resources, it applies to all IRIs. + """; + mf:entailmentRegime "RDFS" ; + mf:recognizedDatatypes ( ) ; + mf:unrecognizedDatatypes ( ) ; + mf:action ; + mf:result . + +<#only-one-property> a mf:PositiveEntailmentTest; + mf:name "only-one-property"; + rdfs:comment """ + This forces all interpretations to have only one property, which has strange consequences. + """; + mf:entailmentRegime "RDFS" ; + mf:recognizedDatatypes ( xsd:nonNegativeInteger xsd:nonPositiveInteger ) ; + mf:unrecognizedDatatypes ( ) ; + mf:action ; + mf:result false . + +<#only-one-class> a mf:PositiveEntailmentTest; + mf:name "only-one-property"; + rdfs:comment """ + This forces all interpretations to have only one class, which has strange consequences. + """; + mf:entailmentRegime "RDFS" ; + mf:recognizedDatatypes ( xsd:nonNegativeInteger xsd:nonPositiveInteger ) ; + mf:unrecognizedDatatypes ( ) ; + mf:action ; + mf:result false . + +<#same-as-one> a mf:PositiveEntailmentTest; + mf:name "same-as-one"; + rdfs:comment """ + This forces two names to denote the number 1, so everything that applies to one name applies to the other. + """; + mf:entailmentRegime "RDFS" ; + mf:recognizedDatatypes ( xsd:nonNegativeInteger xsd:nonPositiveInteger ) ; + mf:unrecognizedDatatypes ( ) ; + mf:action ; + mf:result . \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/earl/pattern.txt b/corese-unit-test/src/test/resources/data/earl/pattern.txt new file mode 100644 index 0000000000..ac62de69e4 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/earl/pattern.txt @@ -0,0 +1,10 @@ +[] a earl:Assertion ; + earl:assertedBy ; + earl:result [ + a earl:TestResult ; + dc:date %3$s ; + earl:outcome %2$s + ] ; + earl:subject ; + earl:test <%1$s> . + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/earl/prefix.txt b/corese-unit-test/src/test/resources/data/earl/prefix.txt new file mode 100644 index 0000000000..aed81ca673 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/earl/prefix.txt @@ -0,0 +1,9 @@ +@prefix dc: . +@prefix earl: . +@prefix foaf: . +@prefix dct: . +@prefix xsd: . +@prefix rdf: . +@prefix dawg: . +@prefix doap: . + diff --git a/corese-unit-test/src/test/resources/data/engine/data/test.rdf b/corese-unit-test/src/test/resources/data/engine/data/test.rdf new file mode 100644 index 0000000000..ecb03b0935 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/engine/data/test.rdf @@ -0,0 +1,123 @@ + + + + + + + +]> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/corese-unit-test/src/test/resources/data/engine/ontology/test.rdfs b/corese-unit-test/src/test/resources/data/engine/ontology/test.rdfs new file mode 100644 index 0000000000..7ad74086e5 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/engine/ontology/test.rdfs @@ -0,0 +1,83 @@ + + + + + + + + +]> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/corese-unit-test/src/test/resources/data/engine/rule/meta.rul b/corese-unit-test/src/test/resources/data/engine/rule/meta.rul new file mode 100644 index 0000000000..2a1f2abf78 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/engine/rule/meta.rul @@ -0,0 +1,99 @@ + + + + + + + + +]> + + + + + + + + + + +prefix c: <http://www.inria.fr/acacia/comma#> +prefix w3c: <http://www.w3.org> + +construct { +?x ?p1 ?y +} +where { +filter(! strstarts(?p1 , w3c:) ) +?p2 rdfs:subPropertyOf ?p1 +?x ?p2 ?y +} + + + + + + + + +prefix c: <http://www.inria.fr/acacia/comma#> +construct { +?x rdf:type ?c2 +} +where { +filter(! strstarts(?c2, owl:)) +?c1 rdfs:subClassOf ?c2 +?x rdf:type ?c1 +} + + + + + + + + + + +prefix c: <http://www.inria.fr/acacia/comma#> +construct { +?y ?p ?x +} +where { +filter(! strstarts(?p , rdf:)) +?p rdf:type owl:SymmetricProperty +?x ?p ?y +} + + + + + + +prefix c: <http://www.inria.fr/acacia/comma#> +construct { +?x ?p ?z +} +where { +filter(! strstarts(?p , rdf:)) +?p rdf:type owl:TransitiveProperty +?x ?p ?y +?y ?p ?z +} + + + + + + diff --git a/corese-unit-test/src/test/resources/data/engine/rule/test2.brul b/corese-unit-test/src/test/resources/data/engine/rule/test2.brul new file mode 100644 index 0000000000..391662b702 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/engine/rule/test2.brul @@ -0,0 +1,220 @@ + + + + + + + + +]> + + + + + + +prefix c: <http://www.inria.fr/acacia/comma#> +construct +{ +?x c:hasBrother ?z +} +where +{ +filter(?x != ?z) +?x c:hasParent ?y +?z c:hasParent ?y +?z rdf:type c:Man + +} + + + + + +prefix c: <http://www.inria.fr/acacia/comma#> +construct +{ +?x c:hasSister ?z +} +where +{ +filter(?x != ?z) +?x c:hasParent ?y +?z c:hasParent ?y +?z rdf:type c:Woman + +} + + + + + +prefix c: <http://www.inria.fr/acacia/comma#> +construct +{ +?x c:hasUncle ?z +} +where +{ +?x c:hasParent ?y +?y c:hasBrother ?z + +} + + + + + + +prefix c: <http://www.inria.fr/acacia/comma#> +construct +{ +?x c:hasAunt ?z +} +where +{ +?x c:hasParent ?y +?y c:hasSister ?z + +} + + + + + + + +prefix c: <http://www.inria.fr/acacia/comma#> +construct +{ +?x c:hasGrandParent ?z +} +where +{ +?x c:hasParent ?y +?y c:hasParent ?z + +} + + + + + + +prefix c: <http://www.inria.fr/acacia/comma#> +construct +{ +?x c:hasCousin ?t +} +where +{ +?x c:hasParent ?y +?y c:hasParent ?a + +?t c:hasParent ?z +?z c:hasParent ?a + +filter(?z != ?y) +filter(?x != ?t) +} + + + + + + + + + +prefix c: <http://www.inria.fr/acacia/comma#> +construct +{ +?x c:hasBrotherSister ?y +} +where +{ +?x c:hasParent ?z +?y c:hasParent ?z +filter(?x != ?y) +} + + + + + + + + +prefix c: <http://www.inria.fr/acacia/comma#> +construct +{ +?z c:hasRelation ?y +} +where +{ +?z c:hasParent ?y +} + + + + + + +prefix c: <http://www.inria.fr/acacia/comma#> +construct +{ +?z c:hasRelation ?y +} +where +{ +?z c:hasCousin ?y +} + + + + + + +prefix c: <http://www.inria.fr/acacia/comma#> +construct +{ +?z c:hasRelation ?y +} +where +{ +?z c:hasParent ?t ?t c:hasParent ?y + +} + + + + + + +prefix c: <http://www.inria.fr/acacia/comma#> +construct +{ +?z c:hasRelation ?y +} +where +{ +?z c:hasBrotherSister ?y +} + + + + + + + + + diff --git a/corese-unit-test/src/test/resources/data/owlrule/owlrllite-junit.rul b/corese-unit-test/src/test/resources/data/owlrule/owlrllite-junit.rul new file mode 100644 index 0000000000..82e1c8b724 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/owlrule/owlrllite-junit.rul @@ -0,0 +1,1062 @@ + + + + + + + +]> + + + + + + + +CONSTRUCT { + owl:Thing a owl:Class . + owl:Nothing a owl:Class . +} +WHERE {} + + + + + + + + + + + +prefix sp: <http://spinrdf.org/spin#> +CONSTRUCT { + _:b0 a sp:ConstraintViolation . + _:b0 sp:arg1 ?x ; sp:arg2 ?y . + _:b0 sp:violationPath owl:sameAs . + _:b0 rdfs:label "Violates owl:differentFrom" . +} +WHERE { + ?x owl:sameAs ?y . + ?x owl:differentFrom ?y . +} + + + + + + + + +prefix sp: <http://spinrdf.org/spin#> +CONSTRUCT { + _:b0 a sp:ConstraintViolation . + _:b0 sp:violationRoot ?x . + _:b0 sp:arg1 ?zi ; sp:arg2 ?zj . + _:b0 rdfs:label "Violation of owl:AllDifferent" . +} +WHERE { + ?x a owl:AllDifferent . + ?x owl:members ?list1 . + ?list1 rdf:rest* ?list2 . + ?list2 rdf:first ?zi . + ?list2 rdf:rest+ ?list3 . + ?list3 rdf:first ?zj . + ?zi owl:sameAs ?zj . +} + + + + + + + +prefix sp: <http://spinrdf.org/spin#> +CONSTRUCT { + _:b0 a sp:ConstraintViolation . + _:b0 sp:violationRoot ?x . + _:b0 rdfs:label "Violation of owl:AllDifferent" . + _:b0 sp:arg1 ?zi ; sp:arg2 ?zj . +} +WHERE { + ?x a owl:AllDifferent . + ?x owl:distinctMembers ?list1 . + ?list1 rdf:rest* ?list2 . + ?list2 rdf:first ?zi . + ?list2 rdf:rest+ ?list3 . + ?list3 rdf:first ?zj . + ?zi owl:sameAs ?zj . +} + + + + + + + +CONSTRUCT { + ?x a ?c . +} +WHERE { + ?p rdfs:domain ?c . + ?x ?p ?y . +} + + + + + + + +CONSTRUCT { + ?y a ?c . +} +WHERE { + ?p rdfs:range ?c . + ?x ?p ?y . filter(! isLiteral(?y)) +} + + + + + +CONSTRUCT { + ?y1 owl:sameAs ?y2 . +} +WHERE { + ?p a owl:FunctionalProperty . + ?x ?p ?y1 . + ?x ?p ?y2 . + FILTER (?y1 != ?y2) . +} + + + + + +CONSTRUCT { + ?x1 owl:sameAs ?x2 . +} +WHERE { + ?p a owl:InverseFunctionalProperty . + ?x1 ?p ?y . + ?x2 ?p ?y . + FILTER (?x1 != ?x2) . +} + + + + + +prefix sp: <http://spinrdf.org/spin#> +CONSTRUCT { + _:b0 a sp:ConstraintViolation . + _:b0 sp:violationRoot ?x . + _:b0 sp:violationPath ?p . + _:b0 rdfs:label "Irreflexive property" . +} +WHERE { + ?p a owl:IrreflexiveProperty . + ?x ?p ?x . +} + + + + + +CONSTRUCT { + ?y ?p ?x . +} +WHERE { + ?p a owl:SymmetricProperty . + ?x ?p ?y . +} + + + + + +prefix sp: <http://spinrdf.org/spin#> +CONSTRUCT { + _:b0 a sp:ConstraintViolation . + _:b0 sp:violationPath ?p . + _:b0 rdfs:label "Antisymmetric property" . + _:b0 sp:arg1 ?x ; sp:arg2 ?y . +} +WHERE { + ?p a owl:AsymmetricProperty . + ?x ?p ?y . + ?y ?p ?x . +} + + + + + + + +CONSTRUCT { + ?x ?p ?z . +} +WHERE { + ?p a owl:TransitiveProperty . + ?x ?p ?y . + ?y ?p ?z . +} + + + + + + + +CONSTRUCT { + ?x ?p2 ?y . +} +WHERE { + ?p1 rdfs:subPropertyOf ?p2 . filter(?p1 != ?p2) + ?x ?p1 ?y . +} + + + + + + + + +prefix c: <http://www.inria.fr/acacia/comma#> +CONSTRUCT { + ?u ?p ?v . +} +WHERE { + ?p owl:propertyChainAxiom ?x . + {select + (group_concat(concat('<', ?pi, '>'); separator = '/') as ?exp) + (concat('select * where { ?u ', ?exp, ' ?v }') as ?query) + where { + ?x rdf:rest*/rdf:first ?pi + } + } + {select (unnest(kg:sparql(?query)) as (?u, ?v)) where {}} +} + + + + + + + + +CONSTRUCT { + ?x ?p2 ?y . +} +WHERE { + ?p1 owl:equivalentProperty ?p2 . filter(?p1 != ?p2) + ?x ?p1 ?y . +} + + + + + + +CONSTRUCT { + ?x ?p1 ?y . +} +WHERE { + ?p1 owl:equivalentProperty ?p2 . filter(?p1 != ?p2) + ?x ?p2 ?y . +} + + + + + + +prefix sp: <http://spinrdf.org/spin#> +CONSTRUCT { + _:b0 a sp:ConstraintViolation . + _:b0 sp:violationPath ?p1, ?p2 . + _:b0 rdfs:label "Property declared disjoint with" . + _:b0 sp:arg1 ?x ; sp:arg2 ?y . +} +WHERE { + ?p1 owl:propertyDisjointWith ?p2 . + ?x ?p1 ?y . + ?x ?p2 ?y . +} + + + + + + +prefix sp: <http://spinrdf.org/spin#> +CONSTRUCT { + _:b0 a sp:ConstraintViolation . + _:b0 sp:violationRoot ?x . + _:b0 sp:violationPath ?pi . + _:b0 rdfs:label "Violation of owl:AllDisjointProperties" . + _:b0 sp:arg1 ?u ; sp:arg2 ?v . +} +WHERE { + ?x a owl:AllDisjointProperties . + ?x owl:members ?list1 . + ?list1 rdf:rest* ?list2 . + ?list2 rdf:first ?pi . + ?list2 rdf:rest+ ?list3 . + ?list3 rdf:first ?pj . + ?u ?pi ?v . + ?u ?pj ?v . +} + + + + + + +CONSTRUCT { + ?y ?p2 ?x . +} +WHERE { + ?p1 owl:inverseOf ?p2 . + ?x ?p1 ?y . +} + + + + + + +CONSTRUCT { + ?y ?p1 ?x . +} +WHERE { + ?p1 owl:inverseOf ?p2 . + ?x ?p2 ?y . +} + + + + + + +prefix sp: <http://spinrdf.org/spin#> +CONSTRUCT { + _:b0 a sp:ConstraintViolation . + _:b0 sp:violationPath ?p . + _:b0 rdfs:label "Negative Property Assertion" . + _:b0 sp:arg1 ?i1 ; sp:arg2 ?i2 . +} +WHERE { + ?x owl:sourceIndividual ?i1 . + ?x owl:assertionProperty ?p . + ?x owl:targetIndividual ?i2 . + ?i1 ?p ?i2 . +} + + + + + + +prefix sp: <http://spinrdf.org/spin#> +CONSTRUCT { + _:b0 a sp:ConstraintViolation . + _:b0 sp:violationPath ?p . + _:b0 rdfs:label "Negative Property Assertion" . + _:b0 sp:arg1 ?i ; sp:arg2 ?lt . +} +WHERE { + ?x owl:sourceIndividual ?i . + ?x owl:assertionProperty ?p . + ?x owl:targetValue ?lt . + ?i ?p ?lt . +} + + + + + + + + +prefix sp: <http://spinrdf.org/spin#> +CONSTRUCT { + _:b0 a sp:ConstraintViolation . + _:b0 sp:violationRoot ?x . + _:b0 rdfs:label "There exists an instance of owl:Nothing" . +} +WHERE { + ?x a owl:Nothing . +} + + + + + + + +prefix c: <http://www.inria.fr/acacia/comma#> +CONSTRUCT { + ?y a ?c . +} +WHERE { + ?c owl:intersectionOf ?x . + ?x rdf:first ?f + ?y a ?f + filter not exists { + ?x rdf:rest+/rdf:first ?ci + filter not exists { ?y a ?ci } + } +} + + + + + + +CONSTRUCT { + ?y a ?ci . +} +WHERE { + ?c owl:intersectionOf ?x . + ?x rdf:rest*/rdf:first ?ci . + ?y a ?c . +} + + + + + + + + +CONSTRUCT { + ?y a ?c . +} +WHERE { + ?c owl:unionOf ?x . + ?x rdf:rest*/rdf:first ?ci . + ?y a ?ci . +} + + + + + + + + +prefix sp: <http://spinrdf.org/spin#> +CONSTRUCT { + _:b0 a sp:ConstraintViolation . + _:b0 sp:violationRoot ?x . + _:b0 rdfs:label "ComplementOf Violation" . + _:b0 sp:arg1 ?c1 . + _:b0 sp:arg2 ?c2 . +} +WHERE { + ?c1 owl:complementOf ?c2 . + ?x a ?c1 . + ?x a ?c2 . +} + + + + + + +CONSTRUCT { + ?u a ?x . +} +WHERE { + ?x owl:someValuesFrom ?y . + ?x owl:onProperty ?p . + ?u ?p ?v . + ?v a ?y . +} + + + + + + +CONSTRUCT { + ?u a ?x . +} +WHERE { + ?x owl:someValuesFrom owl:Thing . + ?x owl:onProperty ?p . + ?u ?p ?v . +} + + + + + + +CONSTRUCT { + ?v a ?y . +} +WHERE { + ?x owl:allValuesFrom ?y . + ?x owl:onProperty ?p . + ?u a ?x . + ?u ?p ?v . +} + + + + + + +CONSTRUCT { + ?u ?p ?y . +} +WHERE { + ?x owl:hasValue ?y . + ?x owl:onProperty ?p . + ?u a ?x . +} + + + + + + +CONSTRUCT { + ?u a ?x . +} +WHERE { + ?x owl:hasValue ?y . + ?x owl:onProperty ?p . + ?u ?p ?y . +} + + + + + + +prefix sp: <http://spinrdf.org/spin#> +CONSTRUCT { + _:b0 a sp:ConstraintViolation . + _:b0 sp:violationRoot ?x . + _:b0 sp:violationPath ?p . + _:b0 rdfs:label "owl:maxCardinality of 0" . + _:b0 sp:arg1 ?u ; sp:arg2 ?u . +} +WHERE { + ?x owl:maxCardinality "0"^^xsd:nonNegativeInteger . + ?x owl:onProperty ?p . + ?u a ?x . + ?u ?p ?y . +} + + + + + + +CONSTRUCT { + ?y1 owl:sameAs ?y2 . +} +WHERE { + ?x owl:maxCardinality "1"^^xsd:nonNegativeInteger . + ?x owl:onProperty ?p . + ?u a ?x . + ?u ?p ?y1 . + ?u ?p ?y2 . +} + + + + + + +prefix sp: <http://spinrdf.org/spin#> +CONSTRUCT { + _:b0 a sp:ConstraintViolation . + _:b0 sp:violationRoot ?c . + _:b0 sp:violationPath ?p . + _:b0 rdfs:label "Maximum qualified cardinality of 0" . + _:b0 sp:arg1 ?u ; sp:arg2 ?y . +} +WHERE { + ?x owl:maxQualifiedCardinality "0"^^xsd:nonNegativeInteger . + ?x owl:onProperty ?p . + ?x owl:onClass ?c . + ?u a ?x . + ?u ?p ?y . + ?y a ?c . +} + + + + + + +prefix sp: <http://spinrdf.org/spin#> +CONSTRUCT { + _:b0 a sp:ConstraintViolation . + _:b0 sp:violationRoot owl:Thing . + _:b0 sp:violationPath ?p . + _:b0 rdfs:label "Qualified max cardinality 0" . + _:b0 sp:arg1 ?u ; sp:arg2 ?y . +} +WHERE { + ?x owl:maxQualifiedCardinality "0"^^xsd:nonNegativeInteger . + ?x owl:onProperty ?p . + ?x owl:onClass owl:Thing . + ?u a ?x . + ?u ?p ?y . +} + + + + + + +CONSTRUCT { + ?y1 owl:sameAs ?y2 . +} +WHERE { + ?x owl:maxQualifiedCardinality "1"^^xsd:nonNegativeInteger . + ?x owl:onProperty ?p . + ?x owl:onClass ?c . + ?u a ?x . + ?u ?p ?y1 . + ?y1 a ?c . + ?u ?p ?y2 . + ?y2 a ?c . +} + + + + + + +CONSTRUCT { + ?y1 owl:sameAs ?y2 . +} +WHERE { + ?x owl:maxQualifiedCardinality "1"^^xsd:nonNegativeInteger . + ?x owl:onProperty ?p . + ?x owl:onClass owl:Thing . + ?u a ?x . + ?u ?p ?y1 . + ?u ?p ?y2 . +} + + + + + + +CONSTRUCT { + ?yi a ?c . +} +WHERE { + ?c owl:oneOf ?x . + ?x rdf:rest*/rdf:first ?yi . +} + + + + + + + + + + +CONSTRUCT { + ?x a ?c2 . +} +WHERE { + ?c1 rdfs:subClassOf ?c2 . filter(?c1 != ?c2) + ?x a ?c1 . +} + + + + + +CONSTRUCT { + ?x a ?c2 . +} +WHERE { + ?c1 owl:equivalentClass ?c2 . filter(?c1 != ?c2) + ?x a ?c1 . +} + + + + + + +CONSTRUCT { + ?x a ?c1 . +} +WHERE { + ?c1 owl:equivalentClass ?c2 . filter(?c1 != ?c2) + ?x a ?c2 . +} + + + + + + +prefix sp: <http://spinrdf.org/spin#> +CONSTRUCT { + _:b0 a sp:ConstraintViolation . + _:b0 sp:violationRoot ?x . + _:b0 rdfs:label "Shared instance of disjoint classes" . + _:b0 sp:arg1 ?c1 ; + sp:arg2 ?c2 +} +WHERE { + ?c1 owl:disjointWith ?c2 . + ?x a ?c1 . + ?x a ?c2 . +} + + + + + + +prefix sp: <http://spinrdf.org/spin#> +CONSTRUCT { + _:b0 a sp:ConstraintViolation . + _:b0 sp:violationRoot ?x . + _:b0 rdfs:label "Shared instance of classes from an AllDisjointClasses block" . + _:b0 sp:arg1 ?ci ; + sp:arg2 ?cj + } +WHERE { + ?y a owl:AllDisjointClasses . + ?y owl:members ?list1 . + ?list1 rdf:rest* ?list2 . + ?list2 rdf:first ?ci . + ?list2 rdf:rest+ ?list3 . + ?list3 rdf:first ?cj . + ?x a ?ci . + ?x a ?cj . +} + + + + + + + + + +CONSTRUCT { + ?c rdfs:subClassOf ?c . + ?c owl:equivalentClass ?c . + ?c rdfs:subClassOf owl:Thing . + owl:Nothing rdfs:subClassOf ?c . +} +WHERE { + ?c a owl:Class . +} + + + + + + + +CONSTRUCT { + ?c1 rdfs:subClassOf ?c3 . +} +WHERE { + ?c1 rdfs:subClassOf ?c2 . + ?c2 rdfs:subClassOf ?c3 . +} + + + + + + + + +CONSTRUCT { + ?c1 rdfs:subClassOf ?c2 . + ?c2 rdfs:subClassOf ?c1 . +} +WHERE { + ?c1 owl:equivalentClass ?c2 . filter(?c1 != ?c2) +} + + + + + + +CONSTRUCT { + ?c1 owl:equivalentClass ?c2 . +} +WHERE { + ?c1 rdfs:subClassOf ?c2 . filter(?c1 != ?c2) + ?c2 rdfs:subClassOf ?c1 . +} + + + + + + +CONSTRUCT { + ?p rdfs:subPropertyOf ?p . + ?p owl:equivalentProperty ?p . +} +WHERE { + ?p a owl:ObjectProperty . +} + + + + + + +CONSTRUCT { + ?p owl:equivalentProperty ?p . +} +WHERE { + ?p a owl:DatatypeProperty . +} + + + + + + +CONSTRUCT { + ?p1 rdfs:subPropertyOf ?p2 . + ?p2 rdfs:subPropertyOf ?p1 . +} +WHERE { + ?p1 owl:equivalentProperty ?p2 . filter(?p1 != ?p2) +} + + + + + + +CONSTRUCT { + ?p1 owl:equivalentProperty ?p2 . +} +WHERE { + ?p1 rdfs:subPropertyOf ?p2 . filter(?p1 != ?p2) + ?p2 rdfs:subPropertyOf ?p1 . +} + + + + + + +CONSTRUCT { + ?p1 rdfs:subPropertyOf ?p3 . +} +WHERE { + ?p1 rdfs:subPropertyOf ?p2 . + ?p2 rdfs:subPropertyOf ?p3 . +} + + + + + + + +CONSTRUCT { + ?p rdfs:domain ?c2 . +} +WHERE { + ?p rdfs:domain ?c1 . + ?c1 rdfs:subClassOf ?c2 . filter(?c1 != ?c2) +} + + + + + + +CONSTRUCT { + ?p1 rdfs:domain ?c . +} +WHERE { + ?p2 rdfs:domain ?c . + ?p1 rdfs:subPropertyOf ?p2 . filter(?p1 != ?p2) +} + + + + + + + + +CONSTRUCT { + ?p rdfs:range ?c2 . +} +WHERE { + ?p rdfs:range ?c1 . + ?c1 rdfs:subClassOf ?c2 . filter(?c1 != ?c2) +} + + + + + + + + +CONSTRUCT { + ?p1 rdfs:range ?c . +} +WHERE { + ?p2 rdfs:range ?c . + ?p1 rdfs:subPropertyOf ?p2 . filter(?p1 != ?p2) +} + + + + + + + + + +CONSTRUCT { + ?c1 rdfs:subClassOf ?c2 . +} +WHERE { + ?c1 owl:hasValue ?i . + ?c1 owl:onProperty ?p1 . + ?c2 owl:hasValue ?i . + ?c2 owl:onProperty ?p2 . +} + + + + + + +CONSTRUCT { + ?c1 rdfs:subClassOf ?c2 . +} +WHERE { +#here + ?y1 rdfs:subClassOf ?y2 . filter(?y1 != ?y2) + ?c1 owl:someValuesFrom ?y1 . + ?c1 owl:onProperty ?p . + ?c2 owl:someValuesFrom ?y2 . + ?c2 owl:onProperty ?p . +} + + + + + + +CONSTRUCT { + ?c1 rdfs:subClassOf ?c2 . +} +WHERE { + ?p1 rdfs:subPropertyOf ?p2 . filter(?p1 != ?p2) + ?c1 owl:someValuesFrom ?y . + ?c1 owl:onProperty ?p1 . + ?c2 owl:someValuesFrom ?y . + ?c2 owl:onProperty ?p2 . +} + + + + + + +CONSTRUCT { + ?c1 rdfs:subClassOf ?c2 . +} +WHERE { + ?y1 rdfs:subClassOf ?y2 . filter(?y1 != ?y2) + ?c1 owl:allValuesFrom ?y1 . + ?c1 owl:onProperty ?p . + ?c2 owl:allValuesFrom ?y2 . + ?c2 owl:onProperty ?p . +} + + + + + + +CONSTRUCT { + ?c2 rdfs:subClassOf ?c1 . +} +WHERE { + ?p1 rdfs:subPropertyOf ?p2 . filter(?p1 != ?p2) + ?c1 owl:allValuesFrom ?y . + ?c1 owl:onProperty ?p1 . + ?c2 owl:allValuesFrom ?y . + ?c2 owl:onProperty ?p2 . +} + + + + + + +CONSTRUCT { + ?c rdfs:subClassOf ?ci . +} +WHERE { + ?c owl:intersectionOf ?x . + ?x rdf:rest*/rdf:first ?ci . +} + + + + + + +CONSTRUCT { + ?ci rdfs:subClassOf ?c . +} +WHERE { + ?c owl:unionOf ?x . + ?x rdf:rest*/rdf:first ?ci . +} + + + + + diff --git a/corese-unit-test/src/test/resources/data/owlrule/owlrllite.rul b/corese-unit-test/src/test/resources/data/owlrule/owlrllite.rul new file mode 100644 index 0000000000..5dd8c468a6 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/owlrule/owlrllite.rul @@ -0,0 +1,1066 @@ + + + + + + + +]> + + + + + + + +CONSTRUCT { + owl:Thing a owl:Class . + owl:Nothing a owl:Class . +} +WHERE {} + + + + + + + + + + + +prefix sp: <http://spinrdf.org/spin#> +CONSTRUCT { + _:b0 a sp:ConstraintViolation . + _:b0 sp:arg1 ?x ; sp:arg2 ?y . + _:b0 sp:violationPath owl:sameAs . + _:b0 rdfs:label "Violates owl:differentFrom" . +} +WHERE { + ?x owl:sameAs ?y . + ?x owl:differentFrom ?y . +} + + + + + + + + +prefix sp: <http://spinrdf.org/spin#> +CONSTRUCT { + _:b0 a sp:ConstraintViolation . + _:b0 sp:violationRoot ?x . + _:b0 sp:arg1 ?zi ; sp:arg2 ?zj . + _:b0 rdfs:label "Violation of owl:AllDifferent" . +} +WHERE { + ?x a owl:AllDifferent . + ?x owl:members ?list1 . + ?list1 rdf:rest* ?list2 . + ?list2 rdf:first ?zi . + ?list2 rdf:rest+ ?list3 . + ?list3 rdf:first ?zj . + ?zi owl:sameAs ?zj . +} + + + + + + + +prefix sp: <http://spinrdf.org/spin#> +CONSTRUCT { + _:b0 a sp:ConstraintViolation . + _:b0 sp:violationRoot ?x . + _:b0 rdfs:label "Violation of owl:AllDifferent" . + _:b0 sp:arg1 ?zi ; sp:arg2 ?zj . +} +WHERE { + ?x a owl:AllDifferent . + ?x owl:distinctMembers ?list1 . + ?list1 rdf:rest* ?list2 . + ?list2 rdf:first ?zi . + ?list2 rdf:rest+ ?list3 . + ?list3 rdf:first ?zj . + ?zi owl:sameAs ?zj . +} + + + + + + + +CONSTRUCT { + ?x a ?c . +} +WHERE { + ?p rdfs:domain ?c . + ?x ?p ?y . +} + + + + + + + +CONSTRUCT { + ?y a ?c . +} +WHERE { + ?p rdfs:range ?c . + ?x ?p ?y . filter(! isLiteral(?y)) +} + + + + + +CONSTRUCT { + ?y1 owl:sameAs ?y2 . +} +WHERE { + ?p a owl:FunctionalProperty . + ?x ?p ?y1 . + ?x ?p ?y2 . + FILTER (?y1 != ?y2) . +} + + + + + +CONSTRUCT { + ?x1 owl:sameAs ?x2 . +} +WHERE { + ?p a owl:InverseFunctionalProperty . + ?x1 ?p ?y . + ?x2 ?p ?y . + FILTER (?x1 != ?x2) . +} + + + + + +prefix sp: <http://spinrdf.org/spin#> +CONSTRUCT { + _:b0 a sp:ConstraintViolation . + _:b0 sp:violationRoot ?x . + _:b0 sp:violationPath ?p . + _:b0 rdfs:label "Irreflexive property" . +} +WHERE { + ?p a owl:IrreflexiveProperty . + ?x ?p ?x . +} + + + + + +CONSTRUCT { + ?y ?p ?x . +} +WHERE { + ?p a owl:SymmetricProperty . + ?x ?p ?y . +} + + + + + +prefix sp: <http://spinrdf.org/spin#> +CONSTRUCT { + _:b0 a sp:ConstraintViolation . + _:b0 sp:violationPath ?p . + _:b0 rdfs:label "Antisymmetric property" . + _:b0 sp:arg1 ?x ; sp:arg2 ?y . +} +WHERE { + ?p a owl:AsymmetricProperty . + ?x ?p ?y . + ?y ?p ?x . +} + + + + + + + +CONSTRUCT { + ?x ?p ?z . +} +WHERE { + ?p a owl:TransitiveProperty . + ?x ?p ?y . + ?y ?p ?z . +} + + + + + + + +CONSTRUCT { + ?x ?p2 ?y . +} +WHERE { + ?p1 rdfs:subPropertyOf ?p2 . filter(?p1 != ?p2) + ?x ?p1 ?y . +} + + + + + + + + +CONSTRUCT { + ?u ?p ?v . +} +WHERE { + { + select ?p + (group_concat(concat('<', ?pi, '>'); separator = '/') as ?exp) + (concat('select * where { ?u ', ?exp, ' ?v }') as ?query) + where { + ?p owl:propertyChainAxiom ?x . + ?x rdf:rest*/rdf:first ?pi + } + group by ?p + } + bind(unnest(kg:sparql(?query)) as (?u, ?v)) +} + + + + + + +CONSTRUCT { + ?x ?p2 ?y . +} +WHERE { + ?p1 owl:equivalentProperty ?p2 . filter(?p1 != ?p2) + ?x ?p1 ?y . +} + + + + + + +CONSTRUCT { + ?x ?p1 ?y . +} +WHERE { + ?p1 owl:equivalentProperty ?p2 . filter(?p1 != ?p2) + ?x ?p2 ?y . +} + + + + + + +prefix sp: <http://spinrdf.org/spin#> +CONSTRUCT { + _:b0 a sp:ConstraintViolation . + _:b0 sp:violationPath ?p1, ?p2 . + _:b0 rdfs:label "Property declared disjoint with" . + _:b0 sp:arg1 ?x ; sp:arg2 ?y . +} +WHERE { + ?p1 owl:propertyDisjointWith ?p2 . + ?x ?p1 ?y . + ?x ?p2 ?y . +} + + + + + + +prefix sp: <http://spinrdf.org/spin#> +CONSTRUCT { + _:b0 a sp:ConstraintViolation . + _:b0 sp:violationRoot ?x . + _:b0 sp:violationPath ?pi . + _:b0 rdfs:label "Violation of owl:AllDisjointProperties" . + _:b0 sp:arg1 ?u ; sp:arg2 ?v . +} +WHERE { + ?x a owl:AllDisjointProperties . + ?x owl:members ?list1 . + ?list1 rdf:rest* ?list2 . + ?list2 rdf:first ?pi . + ?list2 rdf:rest+ ?list3 . + ?list3 rdf:first ?pj . + ?u ?pi ?v . + ?u ?pj ?v . +} + + + + + + +CONSTRUCT { + ?y ?p2 ?x . +} +WHERE { + ?p1 owl:inverseOf ?p2 . + ?x ?p1 ?y . +} + + + + + + +CONSTRUCT { + ?y ?p1 ?x . +} +WHERE { + ?p1 owl:inverseOf ?p2 . + ?x ?p2 ?y . +} + + + + + + +prefix sp: <http://spinrdf.org/spin#> +CONSTRUCT { + _:b0 a sp:ConstraintViolation . + _:b0 sp:violationPath ?p . + _:b0 rdfs:label "Negative Property Assertion" . + _:b0 sp:arg1 ?i1 ; sp:arg2 ?i2 . +} +WHERE { + ?x owl:sourceIndividual ?i1 . + ?x owl:assertionProperty ?p . + ?x owl:targetIndividual ?i2 . + ?i1 ?p ?i2 . +} + + + + + + +prefix sp: <http://spinrdf.org/spin#> +CONSTRUCT { + _:b0 a sp:ConstraintViolation . + _:b0 sp:violationPath ?p . + _:b0 rdfs:label "Negative Property Assertion" . + _:b0 sp:arg1 ?i ; sp:arg2 ?lt . +} +WHERE { + ?x owl:sourceIndividual ?i . + ?x owl:assertionProperty ?p . + ?x owl:targetValue ?lt . + ?i ?p ?lt . +} + + + + + + + + +prefix sp: <http://spinrdf.org/spin#> +CONSTRUCT { + _:b0 a sp:ConstraintViolation . + _:b0 sp:violationRoot ?x . + _:b0 rdfs:label "There exists an instance of owl:Nothing" . +} +WHERE { + ?x a owl:Nothing . +} + + + + + + + +CONSTRUCT { + ?y a ?c . +} +WHERE { + ?c owl:intersectionOf ?x . + ?x rdf:first ?f + ?y a ?f + filter not exists { + ?x rdf:rest+/rdf:first ?ci + filter not exists { ?y a ?ci } + } +} + + + + + + +CONSTRUCT { + ?y a ?ci . +} +WHERE { + ?c owl:intersectionOf ?x . + ?x rdf:rest*/rdf:first ?ci . + ?y a ?c . +} + + + + + + + + +CONSTRUCT { + ?y a ?c . +} +WHERE { + ?c owl:unionOf ?x . + ?x rdf:rest*/rdf:first ?ci . + ?y a ?ci . +} + + + + + + + + +prefix sp: <http://spinrdf.org/spin#> +CONSTRUCT { + _:b0 a sp:ConstraintViolation . + _:b0 sp:violationRoot ?x . + _:b0 rdfs:label "ComplementOf Violation" . + _:b0 sp:arg1 ?c1 . + _:b0 sp:arg2 ?c2 . +} +WHERE { + ?c1 owl:complementOf ?c2 . + ?x a ?c1 . + ?x a ?c2 . +} + + + + + + +CONSTRUCT { + ?u a ?x . +} +WHERE { + ?x owl:someValuesFrom ?y . + ?x owl:onProperty ?p . + ?u ?p ?v . + ?v a ?y . +} + + + + + + +CONSTRUCT { + ?u a ?x . +} +WHERE { + ?x owl:someValuesFrom owl:Thing . + ?x owl:onProperty ?p . + ?u ?p ?v . +} + + + + + + +CONSTRUCT { + ?v a ?y . +} +WHERE { + ?x owl:allValuesFrom ?y . + ?x owl:onProperty ?p . + ?u a ?x . + ?u ?p ?v . +} + + + + + + +CONSTRUCT { + ?u ?p ?y . +} +WHERE { + ?x owl:hasValue ?y . + ?x owl:onProperty ?p . + ?u a ?x . +} + + + + + + +CONSTRUCT { + ?u a ?x . +} +WHERE { + ?x owl:hasValue ?y . + ?x owl:onProperty ?p . + ?u ?p ?y . +} + + + + + + +prefix sp: <http://spinrdf.org/spin#> +CONSTRUCT { + _:b0 a sp:ConstraintViolation . + _:b0 sp:violationRoot ?x . + _:b0 sp:violationPath ?p . + _:b0 rdfs:label "owl:maxCardinality of 0" . + _:b0 sp:arg1 ?u ; sp:arg2 ?u . +} +WHERE { + ?x owl:maxCardinality "0"^^xsd:nonNegativeInteger . + ?x owl:onProperty ?p . + ?u a ?x . + ?u ?p ?y . +} + + + + + + +CONSTRUCT { + ?y1 owl:sameAs ?y2 . +} +WHERE { + ?x owl:maxCardinality "1"^^xsd:nonNegativeInteger . + ?x owl:onProperty ?p . + ?u a ?x . + ?u ?p ?y1 . + ?u ?p ?y2 . +} + + + + + + +prefix sp: <http://spinrdf.org/spin#> +CONSTRUCT { + _:b0 a sp:ConstraintViolation . + _:b0 sp:violationRoot ?c . + _:b0 sp:violationPath ?p . + _:b0 rdfs:label "Maximum qualified cardinality of 0" . + _:b0 sp:arg1 ?u ; sp:arg2 ?y . +} +WHERE { + ?x owl:maxQualifiedCardinality "0"^^xsd:nonNegativeInteger . + ?x owl:onProperty ?p . + ?x owl:onClass ?c . + ?u a ?x . + ?u ?p ?y . + ?y a ?c . +} + + + + + + +prefix sp: <http://spinrdf.org/spin#> +CONSTRUCT { + _:b0 a sp:ConstraintViolation . + _:b0 sp:violationRoot owl:Thing . + _:b0 sp:violationPath ?p . + _:b0 rdfs:label "Qualified max cardinality 0" . + _:b0 sp:arg1 ?u ; sp:arg2 ?y . +} +WHERE { + ?x owl:maxQualifiedCardinality "0"^^xsd:nonNegativeInteger . + ?x owl:onProperty ?p . + ?x owl:onClass owl:Thing . + ?u a ?x . + ?u ?p ?y . +} + + + + + + +CONSTRUCT { + ?y1 owl:sameAs ?y2 . +} +WHERE { + ?x owl:maxQualifiedCardinality "1"^^xsd:nonNegativeInteger . + ?x owl:onProperty ?p . + ?x owl:onClass ?c . + ?u a ?x . + ?u ?p ?y1 . + ?y1 a ?c . + ?u ?p ?y2 . + ?y2 a ?c . +} + + + + + + +CONSTRUCT { + ?y1 owl:sameAs ?y2 . +} +WHERE { + ?x owl:maxQualifiedCardinality "1"^^xsd:nonNegativeInteger . + ?x owl:onProperty ?p . + ?x owl:onClass owl:Thing . + ?u a ?x . + ?u ?p ?y1 . + ?u ?p ?y2 . +} + + + + + + +CONSTRUCT { + ?yi a ?c . +} +WHERE { + ?c owl:oneOf ?x . + ?x rdf:rest*/rdf:first ?yi . + filter (! isLiteral(?yi)) +} + + + + + + + + + + + + + + +CONSTRUCT { + ?x a ?c2 . +} +WHERE { + ?c1 owl:equivalentClass ?c2 . filter(?c1 != ?c2) + ?x a ?c1 . +} + + + + + + +CONSTRUCT { + ?x a ?c1 . +} +WHERE { + ?c1 owl:equivalentClass ?c2 . filter(?c1 != ?c2) + ?x a ?c2 . +} + + + + + + +prefix sp: <http://spinrdf.org/spin#> +CONSTRUCT { + _:b0 a sp:ConstraintViolation . + _:b0 sp:violationRoot ?x . + _:b0 rdfs:label "Shared instance of disjoint classes" . + _:b0 sp:arg1 ?c1 ; + sp:arg2 ?c2 +} +WHERE { + ?c1 owl:disjointWith ?c2 . + ?x a ?c1 . + ?x a ?c2 . +} + + + + + + +prefix sp: <http://spinrdf.org/spin#> +CONSTRUCT { + _:b0 a sp:ConstraintViolation . + _:b0 sp:violationRoot ?x . + _:b0 rdfs:label "Shared instance of classes from an AllDisjointClasses block" . + _:b0 sp:arg1 ?ci ; + sp:arg2 ?cj + } +WHERE { + ?y a owl:AllDisjointClasses . + ?y owl:members ?list1 . + ?list1 rdf:rest* ?list2 . + ?list2 rdf:first ?ci . + ?list2 rdf:rest+ ?list3 . + ?list3 rdf:first ?cj . + ?x a ?ci . + ?x a ?cj . +} + + + + + + + + + +CONSTRUCT { + ?c rdfs:subClassOf ?c . + ?c owl:equivalentClass ?c . + ?c rdfs:subClassOf owl:Thing . + owl:Nothing rdfs:subClassOf ?c . +} +WHERE { + ?c a owl:Class . +} + + + + + + +CONSTRUCT { + ?c1 rdfs:subClassOf ?c2 . + ?c2 rdfs:subClassOf ?c1 . +} +WHERE { + ?c1 owl:equivalentClass ?c2 . filter(?c1 != ?c2) +} + + + + + +CONSTRUCT { + ?c rdfs:subClassOf ?ci . +} +WHERE { + ?c owl:intersectionOf ?x . + ?x rdf:rest*/rdf:first ?ci . +} + + + + + + +CONSTRUCT { + ?ci rdfs:subClassOf ?c . +} +WHERE { + ?c owl:unionOf ?x . + ?x rdf:rest*/rdf:first ?ci . +} + + + + + + + + +CONSTRUCT { + ?c1 owl:equivalentClass ?c2 . +} +WHERE { + ?c1 rdfs:subClassOf ?c2 . filter(?c1 != ?c2) + ?c2 rdfs:subClassOf ?c1 . +} + + + + + + +CONSTRUCT { + ?p rdfs:subPropertyOf ?p . + ?p owl:equivalentProperty ?p . +} +WHERE { + ?p a owl:ObjectProperty . +} + + + + + + +CONSTRUCT { + ?p owl:equivalentProperty ?p . +} +WHERE { + ?p a owl:DatatypeProperty . +} + + + + + + +CONSTRUCT { + ?p1 rdfs:subPropertyOf ?p2 . + ?p2 rdfs:subPropertyOf ?p1 . +} +WHERE { + ?p1 owl:equivalentProperty ?p2 . filter(?p1 != ?p2) +} + + + + + + +CONSTRUCT { + ?p1 owl:equivalentProperty ?p2 . +} +WHERE { + ?p1 rdfs:subPropertyOf ?p2 . filter(?p1 != ?p2) + ?p2 rdfs:subPropertyOf ?p1 . +} + + + + + + +CONSTRUCT { + ?p1 rdfs:subPropertyOf ?p3 . +} +WHERE { + ?p1 rdfs:subPropertyOf ?p2 . + ?p2 rdfs:subPropertyOf ?p3 . +} + + + + + + + +CONSTRUCT { + ?p rdfs:domain ?c2 . +} +WHERE { + ?p rdfs:domain ?c1 . + ?c1 rdfs:subClassOf ?c2 . filter(?c1 != ?c2) +} + + + + + + +CONSTRUCT { + ?p1 rdfs:domain ?c . +} +WHERE { + ?p2 rdfs:domain ?c . + ?p1 rdfs:subPropertyOf ?p2 . filter(?p1 != ?p2) +} + + + + + + + + +CONSTRUCT { + ?p rdfs:range ?c2 . +} +WHERE { + ?p rdfs:range ?c1 . + ?c1 rdfs:subClassOf ?c2 . filter(?c1 != ?c2) +} + + + + + + + + +CONSTRUCT { + ?p1 rdfs:range ?c . +} +WHERE { + ?p2 rdfs:range ?c . + ?p1 rdfs:subPropertyOf ?p2 . filter(?p1 != ?p2) +} + + + + + + + + + +CONSTRUCT { + ?c1 rdfs:subClassOf ?c2 . +} +WHERE { + ?p1 rdfs:subPropertyOf ?p2 . filter(?p1 != ?p2) + ?c1 owl:hasValue ?i . + ?c1 owl:onProperty ?p1 . + ?c2 owl:hasValue ?i . + ?c2 owl:onProperty ?p2 . +} + + + + + + +CONSTRUCT { + ?c1 rdfs:subClassOf ?c2 . +} +WHERE { +#here + ?y1 rdfs:subClassOf ?y2 . filter(?y1 != ?y2) + ?c1 owl:someValuesFrom ?y1 . + ?c1 owl:onProperty ?p . + ?c2 owl:someValuesFrom ?y2 . + ?c2 owl:onProperty ?p . +} + + + + + + +CONSTRUCT { + ?c1 rdfs:subClassOf ?c2 . +} +WHERE { + ?p1 rdfs:subPropertyOf ?p2 . filter(?p1 != ?p2) + ?c1 owl:someValuesFrom ?y . + ?c1 owl:onProperty ?p1 . + ?c2 owl:someValuesFrom ?y . + ?c2 owl:onProperty ?p2 . +} + + + + + + +CONSTRUCT { + ?c1 rdfs:subClassOf ?c2 . +} +WHERE { + ?y1 rdfs:subClassOf ?y2 . filter(?y1 != ?y2) + ?c1 owl:allValuesFrom ?y1 . + ?c1 owl:onProperty ?p . + ?c2 owl:allValuesFrom ?y2 . + ?c2 owl:onProperty ?p . +} + + + + + + +CONSTRUCT { + ?c2 rdfs:subClassOf ?c1 . +} +WHERE { + ?p1 rdfs:subPropertyOf ?p2 . filter(?p1 != ?p2) + ?c1 owl:allValuesFrom ?y . + ?c1 owl:onProperty ?p1 . + ?c2 owl:allValuesFrom ?y . + ?c2 owl:onProperty ?p2 . +} + + + + + + +CONSTRUCT { + ?c1 rdfs:subClassOf ?c3 . +} +WHERE { + ?c1 rdfs:subClassOf ?c2 . + ?c2 rdfs:subClassOf ?c3 . +} + + + + + + +CONSTRUCT { + ?x a ?c2 . +} +WHERE { + ?x a ?c1 . + ?c1 rdfs:subClassOf ?c2 +} + + + + + + diff --git a/corese-unit-test/src/test/resources/data/rdf-star-main/.github/ISSUE_TEMPLATE/blank.md b/corese-unit-test/src/test/resources/data/rdf-star-main/.github/ISSUE_TEMPLATE/blank.md new file mode 100644 index 0000000000..83be5ba337 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/rdf-star-main/.github/ISSUE_TEMPLATE/blank.md @@ -0,0 +1,8 @@ +--- +name: Standard issue +about: Template for standard issue +title: '' +labels: '' +assignees: '' + +--- diff --git a/corese-unit-test/src/test/resources/data/rdf-star-main/.github/ISSUE_TEMPLATE/use-case.md b/corese-unit-test/src/test/resources/data/rdf-star-main/.github/ISSUE_TEMPLATE/use-case.md new file mode 100644 index 0000000000..f1c75c2cad --- /dev/null +++ b/corese-unit-test/src/test/resources/data/rdf-star-main/.github/ISSUE_TEMPLATE/use-case.md @@ -0,0 +1,12 @@ +--- +name: Use case +about: Template for use case +title: '' +labels: use-case +assignees: '' + +--- + +As an … WHO +I want a … WHAT +So that … WHY diff --git a/corese-unit-test/src/test/resources/data/rdf-star-main/.github/workflows/ci.yml b/corese-unit-test/src/test/resources/data/rdf-star-main/.github/workflows/ci.yml new file mode 100644 index 0000000000..67ffc6617c --- /dev/null +++ b/corese-unit-test/src/test/resources/data/rdf-star-main/.github/workflows/ci.yml @@ -0,0 +1,47 @@ +# This workflow validates the document for markup and examples. +name: CI + +on: + push: + branches: [ '**' ] + pull_request: + branches: [ main ] + +jobs: + tests: + name: Build and Validate Spec + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v2 + + # Setup python environment + - name: Set up Python + uses: actions/setup-python@v2 + with: + python-version: '3.x' + + # Setup Ruby environment + - name: Set up Ruby + uses: ruby/setup-ruby@v1 + with: + ruby-version: 2.7 + + - name: Install Gemfile bundles + run: bundle install --jobs 4 --retry 3 + + - name: Build test manifests + run: (cd tests; make) + + - name: Build implementation report + run: (cd reports; bundle exec rake clean default) + + # Validate via ReSpec + # See https://github.com/w3c/spec-prod/blob/main/docs/examples.md + - name: ReSpec Checker + uses: w3c/spec-prod@v2 + with: + TOOLCHAIN: respec + SOURCE: cg-spec/editors_draft.html + VALIDATE_LINKS: false + VALIDATE_MARKUP: true + \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/rdf-star-main/.gitignore b/corese-unit-test/src/test/resources/data/rdf-star-main/.gitignore new file mode 100644 index 0000000000..970bda4744 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/rdf-star-main/.gitignore @@ -0,0 +1,8 @@ +## Backup files +*~ +*.bak +*.backup +.*.swp +\#*# +reports/manifests.nt +.DS_Store diff --git a/corese-unit-test/src/test/resources/data/rdf-star-main/.pr-preview.json b/corese-unit-test/src/test/resources/data/rdf-star-main/.pr-preview.json new file mode 100644 index 0000000000..0494dbb5e3 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/rdf-star-main/.pr-preview.json @@ -0,0 +1,4 @@ +{ + "src_file": "cg-spec/editors_draft.html", + "type": "respec" +} \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/rdf-star-main/CONTRIBUTING.md b/corese-unit-test/src/test/resources/data/rdf-star-main/CONTRIBUTING.md new file mode 100644 index 0000000000..a4b2e85e7b --- /dev/null +++ b/corese-unit-test/src/test/resources/data/rdf-star-main/CONTRIBUTING.md @@ -0,0 +1,23 @@ +# RDF-DEV Community Group + +This repository is being used for work in the W3C RDF-DEV Community Group, governed by the [W3C Community License +Agreement (CLA)](http://www.w3.org/community/about/agreements/cla/). To make substantive contributions, +you must join the CG. + +If you are not the sole contributor to a contribution (pull request), please identify all +contributors in the pull request comment. + +To add a contributor (other than yourself, that's automatic), mark them one per line as follows: + +``` ++@github_username +``` + +If you added a contributor by mistake, you can remove them in a comment with: + +``` +-@github_username +``` + +If you are making a pull request on behalf of someone else but you had no part in designing the +feature, you can remove yourself with the above syntax. diff --git a/corese-unit-test/src/test/resources/data/rdf-star-main/Gemfile b/corese-unit-test/src/test/resources/data/rdf-star-main/Gemfile new file mode 100644 index 0000000000..20c2cbe41e --- /dev/null +++ b/corese-unit-test/src/test/resources/data/rdf-star-main/Gemfile @@ -0,0 +1,12 @@ +source "https://rubygems.org" + +gem 'rdf-turtle' +gem 'rdf-ordered-repo' +gem 'rdf-isomorphic' +gem 'rdf-normalize' +gem 'json-ld' +gem 'earl-report' +gem 'colorize' +gem 'rake' +gem 'redcarpet' +gem 'byebug' diff --git a/corese-unit-test/src/test/resources/data/rdf-star-main/Gemfile.lock b/corese-unit-test/src/test/resources/data/rdf-star-main/Gemfile.lock new file mode 100644 index 0000000000..1666274566 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/rdf-star-main/Gemfile.lock @@ -0,0 +1,107 @@ +GEM + remote: https://rubygems.org/ + specs: + amazing_print (1.4.0) + builder (3.2.4) + byebug (11.1.3) + colorize (0.8.1) + concurrent-ruby (1.1.9) + connection_pool (2.2.5) + earl-report (0.7.1) + haml (~> 5.2) + json-ld (~> 3.1) + kramdown (~> 2.3) + rdf (~> 3.1) + rdf-ordered-repo (~> 3.1) + rdf-turtle (~> 3.1) + rdf-vocab (~> 3.1, >= 3.1.13) + sparql (~> 3.1) + ebnf (2.2.1) + amazing_print (~> 1.2) + htmlentities (~> 4.3) + rdf (~> 3.1) + scanf (~> 1.0) + sxp (~> 1.1) + unicode-types (~> 1.6) + haml (5.2.2) + temple (>= 0.8.0) + tilt + hamster (3.0.0) + concurrent-ruby (~> 1.0) + htmlentities (4.3.4) + json-canonicalization (0.3.0) + json-ld (3.1.10) + htmlentities (~> 4.3) + json-canonicalization (~> 0.2) + link_header (~> 0.0, >= 0.0.8) + multi_json (~> 1.14) + rack (~> 2.0) + rdf (~> 3.1) + kramdown (2.3.1) + rexml + link_header (0.0.8) + logger (1.4.4) + multi_json (1.15.0) + net-http-persistent (4.0.1) + connection_pool (~> 2.2) + rack (2.2.3) + rake (13.0.6) + rdf (3.1.15) + hamster (~> 3.0) + link_header (~> 0.0, >= 0.0.8) + rdf-aggregate-repo (3.1.0) + rdf (~> 3.1) + rdf-isomorphic (3.1.1) + rdf (~> 3.1) + rdf-normalize (0.4.0) + rdf (~> 3.1) + rdf-ordered-repo (3.1.1) + rdf (~> 3.1) + rdf-turtle (3.1.3) + ebnf (~> 2.1) + rdf (~> 3.1, >= 3.1.8) + rdf-vocab (3.1.14) + rdf (~> 3.1, >= 3.1.12) + rdf-xsd (3.1.1) + rdf (~> 3.1) + rexml (~> 3.2) + redcarpet (3.5.1) + rexml (3.2.5) + scanf (1.0.0) + sparql (3.1.8) + builder (~> 3.2) + ebnf (~> 2.1) + logger (~> 1.4) + rdf (~> 3.1, >= 3.1.14) + rdf-aggregate-repo (~> 3.1) + rdf-xsd (~> 3.1) + sparql-client (~> 3.1, >= 3.1.2) + sxp (~> 1.1) + sparql-client (3.1.2) + net-http-persistent (~> 4.0, >= 4.0.1) + rdf (~> 3.1) + sxp (1.1.0) + rdf (~> 3.1) + temple (0.8.2) + tilt (2.0.10) + unicode-types (1.7.0) + +PLATFORMS + ruby + x86_64-darwin-20 + x86_64-linux + +DEPENDENCIES + byebug + colorize + earl-report + json-ld + rake + rdf-isomorphic + rdf-normalize + rdf-ordered-repo + rdf-turtle + redcarpet + +BUNDLED WITH + 2.2.33 diff --git a/corese-unit-test/src/test/resources/data/rdf-star-main/LICENSE.md b/corese-unit-test/src/test/resources/data/rdf-star-main/LICENSE.md new file mode 100644 index 0000000000..ca197c04a7 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/rdf-star-main/LICENSE.md @@ -0,0 +1,10 @@ +All Reports in this Repository are licensed by Contributors +under the +[W3C Software and Document License](http://www.w3.org/Consortium/Legal/2015/copyright-software-and-document). + +Contributions to Specifications are made under the +[W3C CLA](https://www.w3.org/community/about/agreements/cla/). + +Contributions to Test Suites are made under the +[W3C 3-clause BSD License](https://www.w3.org/Consortium/Legal/2008/03-bsd-license.html) + diff --git a/corese-unit-test/src/test/resources/data/rdf-star-main/Minutes/2020-11-13.html b/corese-unit-test/src/test/resources/data/rdf-star-main/Minutes/2020-11-13.html new file mode 100644 index 0000000000..c6c92bd88d --- /dev/null +++ b/corese-unit-test/src/test/resources/data/rdf-star-main/Minutes/2020-11-13.html @@ -0,0 +1,543 @@ + + + + RDF* -- 13 Nov 2020 + + + + + + + + +

W3C +

+ + +

RDF*

+

13 Nov 2020

+ +

Agenda

+ + + + +

Attendees

+ +
+
+
Present
+
Pierre-Antoine Champin, James Anderson, Peter Patel-Schneider, Ruben Taelman, Jerven Bolleman, Andy Seaborne, Pete Rivett, Pavel Klinov, Thomas Lörtsch
+
Regrets
+
+
Chair
+
pchampin
+
Scribe
+
rubensworks
+
+
+ +

Contents

+ +
+
+

+<pchampin> Meeting: RDF* +

+ +

+<pchampin> Agenda: https://lists.w3.org/Archives/Public/public-rdf-star/2020Nov/0009.html +

+ +

+<pchampin> scribenick: rubensworks +

+ +

+pchampin: In the agenda we said to start with a round of introductions.
+... I am an associate professor in Uni Lyon. +

+ +

+<Jerven> pchampin is associate professor in Lyon. +

+ +

+<Jerven> is currently on sabatical and helps olaf getting organized +

+ +

+pchampin: Currently in a sabattical. I proposed to Olaf to get things organized around RDF*. +

+ +

+<Jerven> already in a few working groups +

+ +

+pchampin: I was part of a few WGs, such as RDF 1.1, and JSON-LD 1.1. +

+ +

+<Jerven> Andy Seaborne, is involved in several standards. +

+ +

+AndyS: I am Andy Seaborne, involved in several RDF standard. +

+ +

+<Jerven> Trying to understand usecases and long term benefit +

+ +

+<Jerven> Sorry for also scribing, hope it helps +

+ +

+AndyS: Not with a specific technical agenda. One interest I have is how to make the tech acceptable, so we can deploy it. +

+ +

+Pavel_Klinov: I am an engineer at Stardog. Focus on query evaluation in RDF, and was involved in the RDF* implementation. +

+ +

+james: I am with Datagraph/Dydra, a ... and SPARQL service. I'm here for the use cases. I hope to not only focus on the open-source world, but also our implementation. +

+ +

+Jerven: I work on uniprot at university of ?. I want to implement RDF* in Python and ?. My main focus is compact in ecosystem. +

+ +

+<Pavel_Klinov> Sorry, will try to speak louder, the mic settings seem ok +

+ +

+Pete Rivett: I work for Agnos AI. We build business solution around KG technology. I'm very much a user, and interested in acceptability and consistency among different platforms. +

+ +

+<Jerven> Jerven <- I work at the SIB Swiss Institute of Bioinformatics. I work on providing data in RDF such as UniProt, Rhea and Swisslipids. I worked on implementing rdf* in Python rdflib, and my worry is comatiablity in the ecosyttem +

+ +

+Peter Patel-Schneider: I work for PARC (Palo Alto Research Center)(?) (part of Xerox). I hope this will all turn out well. Interested in whether RDF* is just a surface syntax, or if it needs something new, and if this is reasonable to provide. +

+ +

+<pchampin> scribenicks: pchampin +

+ +

+<pchampin> rubensworks: researcher at Gent Univesity (Belgium). Focusing on decentralized query execution. RDF +

+ +

+<pchampin> ... Interested in RDF* and SPARQL*, and its impact on the research world +

+ +

+<rubenswork> scribenick: rubensworks +

+ +

+Thomas Lortsch: Student at Hagen(?) in Germany. Focusing on data modeling techniques. Observer for RDF*. My concern is that the scope is ?. I want to know how it fits together with other annotation approaches. +

+ +

Issue #15: CG Report scope : document alternatives or only make one proposal

+ +

+<pchampin> https://github.com/w3c/rdf-star/issues/15 +

+ +

+pchampin: Olaf already gave his position in this issue, so I can talk for him on that.
+... Goal is to make something that looks like a standard.
+... As a CG, we don't have the power to make a REC. But we can draft one with the goal for a future WG.
+... Via this way, we can move things faster than discussing things on the mailinglist.
+... Side-note, adding yourself to the speaking queue is done by typing 'q+' in IRC. +

+ +

+AndyS: I raised this issue here because there are alternatives. We could have a draft spec, or an overview of the possibilities. W3C would benefit to have a solid spec from a CG. This would allow implementations to start early in the community. +

+ +

+pchampin: Agree, since implementations already started, we need a draft spec to avoid divergence. +

+ +

+pfps: I want to vote to go for one solution instead of several. This avoids people having to implement other options and later on change things. +

+ +

+AndyS: I have the feeling we want to get to tech work asap. Before we can do this, we need a consensus on the approach. For this, we need to have an overview of the use cases.
+... Use cases such as providence, waiting for links, ... I am interested to hear what people are using RDF* for. +

+ +

+<pchampin> https://github.com/w3c/EasierRDF/blob/master/RDFstar/RDFStarUCandRequirements.html +

+ +

+pchampin: There was a document started with use cases, but it doesn't seem complete. +

+ +

+AndyS: I will make an issue and send a mail to collect them in there. +

+ + +

+<AndyS> ACTION: AndyS: Open issue for UC&R, email list to highlight and invite UCs +

+ +

+pchampin: We have to make sure the use cases are recorded somewhere. Still, the current report aims to become something like a spec. There are impls, and we don't want everyone to go in their preferred direction. +

+ +

+<pchampin> PROPOSED: close issue #15, the current report should be a single proposal +

+ +

++1 +

+ +

+<Jerven> +1 +

+ +

+<pchampin> +1 +

+ +

+<pfps> +1 +

+ +

+<AndyS> +1 +

+ +

+<rat10> +1 +

+ +

+<rivettp> +1 +

+ +

+<Pavel_Klinov> +1 +

+ +

+<james> +1 +

+ +

+RESOLUTION: close issue #15, the current report should be a single proposal +

+ +

+<pfps> I don't think it is *necessary* to capture all potential use cases. +

+ +

+pchampin: Someone mentioned opening the wiki on GH. We don't have to create a deliverable, so the wiki might be a good medium. +

+ +

+<pfps> ... or even all actual use cases. +

+ +

+pfps: If you are obligated to capture all potential use cases, then you'll have something very complicated, which may not be what we want. So we have to define what types of use cases we want to capture. +

+ +

+pchampin: Agreed, not all use cases need to be handled by the spec, we just need to have discussed/seen them. +

+ +

+<pfps> Several use cases I've seen appear to need a mulit-modal logic, which, in my view, is out of scope for RDF*. +

+ +

+<rat10> use cases could be a good way to clear what RDF* is and what it isn't +

+ +

+<rat10> or doesn't want to be +

+ +

Issues tagged with 'help-wanted'

+ +

+<AndyS> and we don't have to solve all UC. What it isn't is v important. +

+ +

+<pchampin> https://github.com/w3c/rdf-star/issues?q=is%3Aopen+is%3Aissue+label%3A%22help+wanted +

+ +

+pchampin: I've tagged several issues with the tag help-wanted.
+... There are three of them.
+... They could be implemented in a PR. +

+ +

+https://github.com/w3c/rdf-star/issues?q=is%3Aopen+is%3Aissue+label%3A%22help+wanted%22 +

+ +

+<pchampin> https://github.com/w3c/rdf-star/labels/help%20wanted +

+ +

+<Jerven> Did my sound go or is everyone quiet? +

+ +

+pchampin: Two of them were proposed by Jeen, who could not join today.
+... These are about result set in JSON and XML as response by SPARQL endpoints. They are implemented in different variants already, so we need to do this to avoid heterogeneity. +

+ +

+<Jerven> Sorry missed a bit, as sound stoped working. +

+ +

+pfps: I'm not sure if it's clear this is actually needed. +

+ +

+<pchampin> SELECT * { ?x :createdBy :alice } +

+ +

+pfps: If RDF* is a shorthand for some form of RDF, then output could just be RDF, like before. +

+ +

+AndyS: If RDF* is just syntax, then we wouldn't need to do anything. +

+ +

+pfps: Indeed, not saying this is a good idea. We just need to determine this first.
+... It's fine if someone is willing to do the work, just as long as we're clear there is a chance this may not end up in the original report, otherwise people may get annoyed. +

+ +

+pchampin: You're right. The next issue about referential transparency will determine whether or not RDF* is just syntax.
+... I don't fully agree, for example in the case of my query above. In this case, ?x can be an embedded triple, and it would be desired that the full triple would be returned. +

+ +

+<rivettp> could you not have a syntactic sugar for the results also? As an option +

+ +

+pfps: SPARQL output formats are pretty canonical. So doing "something extra" sounds very ... for clients that understand. +

+ +

+pchampin: Some clients do indeed understand the returned triple format.
+... So perhaps this issue is not trivial indeed. +

+ +

+<pfps> The issue is that consumers of SPARQL output need to be able to understand this "enhanced" output. Right now this is fairly simple, and making it non-simple is not a good idea. +

+ +

+AndyS: pfps: how should we proceed then? +

+ +

+pfps: As a first step, we need to figure out what RDF* is. Only then can we define what SPARQL* is.
+... Someone can independently to produce a report for SPARQL*, but it should not be final yet, because it may become irrelevant. +

+ +

+pchampin: In order to determine what RDF* is, we have to wait until people give use feedback on use cases.
+... I propose to discuss the referential opacity issue. +

+ +

Issue #22: Do you need referential opacity?

+ +

+<pchampin> https://github.com/w3c/rdf-star/issues/22 +

+ +

+pchampin: This is about one of the most challenging parts of the current spec. This is what prevents us from standard reification as an underlying model for RDF*. Reification is not referentially opaque, i.e., they talk about the statement, not the things in the statements. +

+ +

+<pfps> Here is where the multi-modal logic creeps in. Someone is going to have to very carefully delimit what is supposed to happen and what can be done. +

+ +

+pchampin: If Lois believes supermand can fly. If we believe Superman==Clark kent, we should not believe Clark Kent can fly. (scribe: I hope I wrote this down right...) +

+ +

+james: I vote -1 +

+ +

+<pfps> A better example is < susan says << john height 6.0 >> > vs < susan says << john height 6.00 >> > +

+ +

+Jerven: I didn't have the feeling that without sameAs reasoning, the problem doesn't disappear. I was wondering if this wasn't a problem. sameAs isn't the source of the problem, but multiple people may say things about the same things. +

+ +

+pchampin: Problem is about the fact that two IRIs may reference the same thing, owl:sameAs is the easiest way to do this. Same thing can happen with literals, so you don't need owl for that, just datatype-aware inference.
+... We are not interested in the referent of the terms, just the terms themselves. +

+ +

+<rivettp> what if we have lois believes Superman owl:sameAs ClarkKent? +

+ +

+Jerven: What is missing, if you put the same problem, but put ClarkKent everywhere, then you still have the same problem.
+... I don't have the feeling the proposed solution solves the problem we're having. I will write it down in an email, because this is hard via a call. +

+ +

+<pfps> the problem here is that RDF is not a modal logic. Using it for that purpose is not going to work. +

+ +

+pfps: There are lots of cases where you can say things in RDF and RDF* that look nice. Anything that assumes there being a there there, is not correct. There is not modal reasoning in RDF. If you want to solve this, go to N3. +

+ +

+<pfps> Not that I'm recommending going to N3. +

+ +

+pchampin: I understand that the belief thing may lead to modal logic, but I'm not asking RDF* to be modal logic.
+... Provenance is a use case that is less slippery.
+... It may benefit from ref opacity as well.
+... We may be interested in not only what was said, but also how it was said. +

+ +

+pfps: Trouble is that now, provenance has a different kind of problem.
+... Every act of asserting prov is an interpreation of what happened. It is not about what actually happened. To see this, go to any political situation. +

+ +

+<pfps> I agree that provenance is *less* slippery, but it is not completely non-slippery. +

+ +

+pchampin: Isn't this an argument to not overinterpret those prov annotated triples? +

+ +

+pfps: Problem there is not overinterpretation, but actually getting the tokens correct. +

+ +

+<Jerven> \q? +

+ +

+rat10: I'm not decided on what's best. There have been long discussions on that the interpretation of named graphs.
+... If you want to be faithful, you use a datatype string for what you want to annotate, but you can't sparql that, and can't have bnodes. +

+ +

+Pavel_Klinov: I'm missing in this discussion, whether this depends on SA/PG mode. +

+ +

+<pfps> I don't see that assertion changes an opaque semantics to a transparent one. +

+ +

+pchampin: I'm not sure. This feels orthogonal to me. +

+ +

+<pfps> And here we are again with multi-modal reasoning. +

+ +

+Jerven: If you run OWL inference, you want to run it. You *do* say these explicit things. Sometimes you may not want to run it. +

+ +

+pchampin: I disagree that this would be a requirement for OWL reasoning.
+... We won't solve this today.
+... I did some experiments, and most systems I tested have ref opacity at the moment. +

+ +

+<pchampin> and thanks to ruben for scribing! +

+ +

+<AndyS> pchampin - I just did a PR to copy the UC&R doc from EasierRDF so it wil be (if I got it oight) visible as ... HTML appearance, not HTML tags. +

+ +

+<pchampin> @AndyS good idea, thx +

+ +

+<AndyS> https://github.com/w3c/rdf-star/issues/29 +

+ +

+<AndyS> UC&R issue +

+ + +
+

Summary of Action Items

+ +[NEW] ACTION: AndyS: Open issue for UC&R, email list to highlight and invite UCs

+ +

Summary of Resolutions

+ +
  1. close issue #15, the current report should be a single proposal
  2. +
+ + +[End of minutes]
+
+ +
+ Minutes manually created (not a transcript), formatted by David Booth's + scribe.perl version (CVS log)
+ $Date$ +
+
+ +
+ + diff --git a/corese-unit-test/src/test/resources/data/rdf-star-main/Minutes/2020-11-20.html b/corese-unit-test/src/test/resources/data/rdf-star-main/Minutes/2020-11-20.html new file mode 100644 index 0000000000..4ba005c820 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/rdf-star-main/Minutes/2020-11-20.html @@ -0,0 +1,400 @@ + + + + RDF* -- 20 Nov 2020 + + + + + + + + +

W3C +

+ + +

RDF*

+

20 Nov 2020

+ +

Agenda

+ + + + +

Attendees

+ +
+
+
Present
+
pchampin, Gregg_Kellogg, AndyS, Doerthe, pfps, rivettp, pavel, gatemezing, thomas, Blake Regalia
+
Regrets
+
+
Chair
+
pchampin
+
Scribe
+
AndyS
+
+
+ +

Contents

+ +
+
+

+Please advertise the UC&R work to your networks and ask them to add to https://github.com/w3c/rdf-star/issues/. Don't worry about duplication - better to get more input and sort out later. +

+ +

+<scribe> scribe: AndyS +

+ +

+<pchampin> Meeting: RDF* +

+ +

+<pchampin> Chair: pchampin +

+ +

+<pchampin> Agenda: https://lists.w3.org/Archives/Public/public-rdf-star/2020Nov/0031.html +

+ +

Issue #22: Do you need referential opacity?

+ +

+<pchampin> https://github.com/w3c/rdf-star/issues/22 +

+ +

+pchampin: issue 22: "Do you need referential opacity?" +

+ +

+<scribe> ... done some testing existing implementations +

+ +

+pfps: Several choices here - impls seem to be doing what was easiest at the time. +

+ +

+<pfps> I think it is unlikely that there are implementations of the partial opacity that is not specific to blank nodes. +

+ +

+pchampin: Can a system replace one ground term by another if they know the terms entail.
+... do blank nodes work like they do outside <<>> +

+ +

+<pchampin> << :s :p :o >> :p2 :o2. +

+ +

+<pchampin> ASK { << _:x :p :o >> :p2 :o2. } +

+ +

+andys: people find it difficult to engage in this discussion
+... what would be good is to have a set of test cases +

+ +

+<pavel> +1 to test cases +

+ +

+<pfps> test cases might help, but you have to be very careful to not pull in intended semantics of the terms used +

+ +

+<gatemezing> +1 also to have test cases, hopefully we can agree on the different test case +

+ +

+AndyS: Blank nodes in SPARQL(*) will be variable-like. +

+ +

+<pfps> yes, one has to be very careful when using SPARQL(*) for this because of the status of blank nodes in queries +

+ +

+<pfps> asking entailment queries gives better answers (as long as the RDF store supports entailment questions) +

+ +

+gkellogg: Rerential f opacity : my impl does not do entailment
+... regimes. Don't understand what the implications are for the abstract syntax level. +

+ +

+pchampin: need a semantics for the abstract syntax. +

+ +

+gkellogg: RDF semantics does not speak to owl:sameAs. +

+ +

+pchampin: literals are the similar
+... D-entailment +

+ +

+<pchampin> "01"^^xsd:integer and "1"^^xsd:integer +

+ +

+pchampin: so two URIs will not be deduced to denote the same thing in RDF (only). +

+ +

+gkellogg: different terms (different lexical form). Causes two triples. Some places in SPARQL take account of values [ed: expressions] +

+ +

+pchampin: some systems store the value rather than the different lexical forms.
+... like test cases idea. +

+ +

+AndyS: tests to define the decisions we have to make. +

+ +

+Blake_Regalia: javascript implementation +

+ +

+<pavel> graphy +

+ +

+<gatemezing> Graphy by Blake_Regalia +

+ +

+Blake_Regalia: how does ref opaque relate to RDF* is "just" syntactic sugar and what are the combinations of choices. +

+ +

+pchampin: hard to answer the other questions before answering this for encoding RDF* in RDF.
+... if we decide it is not opaque then it may be possible to use reification.
+... (superman example) +

+ +

+<pchampin> _:x rdf:subject :superam; :superman owl:same :clark |= _:x rdf:subject :clark +

+ +

+<pfps> it is entirely possible to have an opaque semantics using RDF reification +

+ +

+<pchampin> << :lifeUniverseAndEverything :anwser "042"^^xsd:integer >> :accordingTo :deepThought. +

+ +

+<pchampin> AndyS: can we in parallel make progress for RDF* in the no-entailment case +

+ +

+<pfps> a simple way to have a very strong notion of referential opacity is simply to use a fresh IRI for each occurrence of a triple +

+ +

+<pchampin> << :lifeUniverseAndEverything :anwser "042"^^xsd:integer >> :accordingTo :deepThought. +

+ +

+<pchampin> ASK { << :lifeUniverseAndEverything :anwser "42"^^xsd:integer >> :accordingTo :deepThought. } +

+ +

+Data: :lifeUniverseAndEverything :anwser "042"^^xsd:integer and ASK { :lifeUniverseAndEverything :anwser "42"^^xsd:integer } +

+ +

+AndyS: Why would it be different to what the system does outside RDF*? +

+ +

+<pavel> it wouldn't. normally systems deal with this via some sort of literal canonicalisation +

+ +

+gkellogg: If we are using an abstract syntax where embedded triples are treated different, need an extended D-entailment. +

+ +

++1 to pavel +

+ +

+Doerthe: collect examples of how we want is use RDF*
+... work on N3 and RDF* - theoretical interest. +

+ +

+gkellogg: Gets back to original motivation. PG mode - graph includes triples. Can refer to that triple.
+... would expect that entailment happens as it does to triple.
+... could allow for different semantics and extend to work over entailed triples. +

+ +

+Olaf: original intention was use of RDF* to make statements about triples in a provenance sense => opaque
+... query semantics more important to me.
+... test case: voting on result may lead to inconsistent/un-consensus outcomes +

+ +

+pchampin: may be we focus on query
+... how would it work under simple entailment and also other entail regimes. +

+ +

+<gatemezing> Are we talking about this document https://www.w3.org/TR/sparql11-entailment/#DEntRegime when referencing D-Entailment? +

+ +

+Olaf: under simple entailment none of these show up? +

+ +

+<pfps> but simple entailment isn't useful - even SPARQL does more than simple entailment +

+ +

+<pfps> ooh, my mistake then +

+ +

+AndyS: SPARQL triple matching is simple-entailment with values in expressions only. +

+ +

+gkellogg: Use graph isomorphism for tests so not SPARQL dependent +

+ +

+pchampin: I will start the setup for a test suite +

+ + +

+<pchampin> ACTION: pchampin to start a test suite, similar to the rdf-mt suite +

+ + +

+<pchampin> ACTION: Olaf to write a first draft of the query semantics in the report +

+ +

+Olaf: offer to put draft of query semantic into the spec. There is a GH issue. +

+ +

+<Olaf> https://github.com/w3c/rdf-star/issues/8 +

+ +

+<rivettp> FYI next Friday is Thanksgiving weekend in the US and I will not be able to attend the call +

+ +

+<Olaf> Who can be here next week? +

+ +

+<pchampin> +1 +

+ +

+<Olaf> +1 +

+ +

+<gkellogg> +1 +

+ +

+<gatemezing> +1 +

+ +

+<thomas> +1 +

+ +

+<blake> +1 +

+ +

+<pavel> +1 +

+ +

+<james> +1 +

+ +

++1 +

+ +

+<pchampin> ok, let's keep next week call +

+ +

+<gatemezing> thanks all! bye +

+ +

+<Doerthe> thank you pierre-antoine :) +

+ +

+<pchampin> and thanks to AndyS for scribing +

+ + +
+

Summary of Action Items

+ +[NEW] ACTION: Olaf to write a first draft of the query semantics in the report
+[NEW] ACTION: pchampin to start a test suite, similar to the rdf-mt suite

+ +

Summary of Resolutions

+ +
    + + +[End of minutes]
    +
    + +
    + Minutes manually created (not a transcript), formatted by David Booth's + scribe.perl version (CVS log)
    + $Date$ +
    +
    + +
    + + diff --git a/corese-unit-test/src/test/resources/data/rdf-star-main/Minutes/2020-11-27.html b/corese-unit-test/src/test/resources/data/rdf-star-main/Minutes/2020-11-27.html new file mode 100644 index 0000000000..96a9880397 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/rdf-star-main/Minutes/2020-11-27.html @@ -0,0 +1,665 @@ + + + + RDF* -- 27 Nov 2020 + + + + + + + + +

    W3C +

    + + +

    RDF*

    +

    27 Nov 2020

    + +

    Agenda

    + + + + +

    Attendees

    + +
    +
    +
    Present
    +
    pchampin, pfps, AndyS, thomas, Olaf, pavel, jerven, gkellogg, blake, gatemezing, Doerthe
    +
    Regrets
    +
    +
    Chair
    +
    SV_MEETING_CHAIR
    +
    Scribe
    +
    gatemezing, pchampin
    +
    +
    + +

    Contents

    + +
    +
    +

    +<gatemezing> hi all +

    + +

    +<pchampin> scribe: gatemezing +

    + +

    +<scribe> scribe: gatemezing +

    + +

    +<pchampin> https://lists.w3.org/Archives/Public/public-rdf-star/2020Nov/0057.html +

    + +

    +<scribe> Agenda: https://lists.w3.org/Archives/Public/public-rdf-star/2020Nov/0057.html +

    + +

    introduction

    + +

    +<pchampin> scribe: pchampin +

    + +

    +gatemezing: I am Ghislain Atemezing, working for Mondeca (Paris), a SemWeb company.
    +... I have been in data-related groups at W3C.
    +... We have to manage metadata, so we are interested in RDF*. +

    + +

    +<scribe> scribe: gatemezing +

    + +

    +pchampin: specifies how to use the IRC to ask question..
    +... the next point is about the pending actions +

    + +

    pending actions

    + +

    +<pchampin> https://github.com/w3c/rdf-star/issues?q=is%3Aopen+is%3Aissue+label%3Aaction +

    + +

    +pchampin: which are available here https://github.com/w3c/rdf-star/issues?q=is%3Aopen+is%3Aissue+label%3Aaction
    +... we have 2 exactly +

    + +

    +<Doerthe> p+ +

    + +

    +<Doerthe> no +

    + +

    +pchampin: creates a test suites available here https://github.com/w3c/rdf-star/issues?q=is%3Aopen+is%3Aissue+label%3Aaction +

    + +

    +<AndyS> Great to see the test suite forming! +

    + +

    +gkellogg: suggest to use the manifest (..) +

    + +

    +<Olaf> https://github.com/w3c/rdf-star/issues/8#issuecomment-734258118 +

    + +

    +Olaf: had another action related to the semantics... and sent an email with the github issue
    +... where people need to review and discuss it
    +... the new version is SA mode, different from the one in the paper is PG mode +

    + +

    +pchampin: this will need to be added in the test suite.. something to decide within the group
    +... could be need more time for people to review? next week? +

    + +

    +<Olaf> To clarify: the action was on the query semantics +

    + +

    +Olaf: It sounds good to postpone the discussion next week +

    + +

    query result format

    + +

    +<pchampin> https://github.com/w3c/rdf-star/pull/39 +

    + +

    +<pchampin> http://champin.net/tmp/rdf-star-pr39.html#query-result-formats +

    + +

    +Olaf: proposed by jeenbroekstra
    +... need a vote if to merge in the document
    +... that would give more confidence in the stability of the proposal +

    + +

    +AndyS: putting things in the document is not a sign of agreement of the entire content...
    +... even if the vote is positive today
    +... the vote is just a way for showing a formal decision on our progress
    +... to give a summary: the idea is to extend the result format, a kind of "straithforward" extension
    +... don't think controversal +

    + +

    +gkellogg: Do we want to extend other result format? +

    + +

    +pchampin: that can be a seperate discussion but something to take into account +

    + +

    +<pchampin> PROPOSED: merge pull-request 39 introducing extension of the XML an JSON format for SPARQL results +

    + +

    +<pchampin> +1 +

    + +

    +<gkellogg> +1 +

    + +

    +<Olaf> +1 +

    + +

    ++1 +

    + +

    +<pavel> +1 +

    + +

    +<AndyS> +1 +

    + +

    +<jerven> +1 +

    + +

    +<thomas> +0 +

    + +

    +<james_> +0 +

    + +

    +<blake> +0 +

    + +

    +<Doerthe> +0 +

    + +

    +pchampin: please vote (+1, 0, -1)
    +... asking if pfps has voted +

    + +

    +<pfps_> my computer died so I have no context +

    + +

    +<pfps_> 0 +

    + +

    +<pchampin> APPROVED: merge pull-request 39 introducing extension of the XML an JSON format for SPARQL results +

    + +

    +pchampin: thanking the voters
    +... relating issues regarding separate namespace and so on +

    + +

    test suite

    + +

    +pchampin: A good way to move forward is maybe to propose a test suite with a concrete results to decide on what we agree
    +... or disagree +

    + +

    +<pchampin> https://github.com/w3c/rdf-star/issues/37 +

    + +

    +<pchampin> https://w3c.github.io/rdf-star/tests/semantics/manifest.html +

    + +

    +pchampin: link available here https://w3c.github.io/rdf-star/tests/semantics/manifest.html of the manifest +

    + +

    +<pchampin> https://w3c.github.io/rdf-star/tests/semantics/manifest.html#embeded-triples-everywhere +

    + +

    +AndyS: What are the tests about? +

    + +

    +pchampin: They are entailments tests based on if this happen then... based on some graph databases
    +... used for the tests. There is a thread on the mailing list about the topic +

    + +

    +AndyS: Consider beeing in both direction, and the way you set up the engine, .... +

    + +

    +<pfps_> But isn't SPARQL BGP ASK matching supposed to be the same as simple entailment if there are no variables in the BGP? +

    + +

    +gkellogg: I wondering if we need to update that to reflect ...
    +... I recognize the simple solutions but how to compare them with others? +

    + +

    +pchampin: The tests are not supposed to be the solution but rather discuss the validation in general +

    + +

    +gkellogg: We need a practical guidance of what we expect from the output of the engines
    +... getting out of something that work or correspond to what we have to go
    +... I do agree we can separate the examination from the methodology +

    + +

    +<pfps_> If you want to test pieces of the systems, then you have to be careful to isolate that piece, yes. That was the point of my message earlier today. +

    + +

    +pchampin: I suggest we can on the different test
    +... I agree that the results can someone be misleading +

    + +

    +<pchampin> https://w3c.github.io/rdf-star/tests/semantics/manifest.html#embeded-triples-everywhere +

    + +

    +<pfps_> It's puzzling that Stardog fails the very first test +

    + +

    +<pavel> Stardog intentionally does not support annotations on objects +

    + +

    +AndyS: We could discuss on the general way and move forward +

    + +

    +<pavel> that is, embedded triples in the object position +

    + +

    +<Olaf> maybe it should be split into two separate tests then +

    + +

    +pchampin: the first test passed also for EYE. see email
    +... pavel needs to explain? +

    + +

    +<pfps_> Given that there is one system that handles embedded triples differently in subject and object positions, the other tests should include cases where there are embedded triples in object position. +

    + +

    +pavel: We don't support this because we need minimum semantics for now
    +... and it's easy for Stardog to add more features than to retract them +

    + +

    +<pavel> btw we have the exact same position about nested embedded triples +

    + +

    +Who is here? +

    + +

    +jerven: Question: why we don't have emebedded triples in the property position?
    +... we need to put in down somwhere in the proposal +

    + +

    +Olaf: why would it be used for? +

    + +

    +Is that use case somewhere in the use case list? +

    + +

    +<AndyS> There is "generalized RDF" in RDF 1.1 that is more open. +

    + +

    +<AndyS> :-) +

    + +

    +pavel: we would be careful, guided by the use cases
    +... no issue from the technical part +

    + +

    +<pfps_> Indeed, if the meaning of RDF* is defined as just a vocabulary extension to RDF, and embedded triples are IRIs, then embedded triples should be allowed in predicate position in surface syntaxes. However, it looks as if embedded triples have to be blank nodes in this definition of RDF*, so they can't be in predicate position. +

    + +

    +pchampin: We should stick for now with the restrictions +

    + +

    +<gkellogg> +1 to restricting the predicate position to IRIs +

    + +

    +<pchampin> PROPOSED: mark embeded-triples-everywhere as approved +

    + +

    +pchampin: we vote on each issue or group of issue +

    + +

    +<pchampin> +1 +

    + +

    +<james_> +1 +

    + +

    +blake: I want to inquire a bit to see the aspects of embedded graph, embedded quad +

    + +

    +<thomas> +1 to blake: keeping the possibility open to have embedded quads in the future +

    + +

    +pchampin: A very good question by blake. There should be an issue for that in the repo. Yet another separate question
    +... that need to be checked and discussed
    +... Anyone wants to react? +

    + + +

    +<pchampin> ACTION: blake to submit an issue on embedded quads +

    + +

    +james_: Embeded quad is actually in one of the use case. I react on the the point of using embedded triples in the predicate
    +... Describing a use case. +

    + +

    +<pfps_> I don't see how embedded triples as predicates advances similarity to property graphs. I would need an example of a property graph to see how this might work. +

    + +

    +Could james_ add that use case somewhere? +

    + +

    +<Olaf> I don't understand +

    + +

    +<pchampin> PROPOSED RDF* will allow embedded triples in subject and object position +

    + +

    +<jerven> +1 if we rename the test to embeded-triples as subject and object (think about named graph for sparql*) +

    + +

    +<pchampin> +1 +

    + +

    +<Olaf> +1 +

    + +

    ++1 +

    + +

    +<james_> +1 +

    + +

    +<pfps_> +1 +

    + +

    +<pavel> +1 (but i'd prefer 2 separate tests) +

    + +

    +<Doerthe> +1 +

    + +

    +<AndyS> +1 +

    + +

    +<thomas> +1 +

    + +

    +pchampin: we have two missing voters +

    + +

    +<gkellogg> +1 +

    + +

    +<blake> +1 +

    + +

    +<AndyS> Agree - 2 tests would be nice. +

    + +

    +<pchampin> APPROVED: RDF* will allow embedded triples in subject and object position +

    + + +

    +<pchampin> ACTION: pchampin to split and rename test embeded-triple-everywhere +

    + +

    +<pavel> we are not going to have time to vote on each test individually :) +

    + +

    +sure pavel +

    + +

    +<pchampin> https://w3c.github.io/rdf-star/tests/semantics/manifest.html#all-identical-embedded-triples-are-the-same +

    + +

    +pchampin: next test on identical embedded triples
    +... prefix : <http://example.com/ns#> << :a :b :c >> :p1 :o1. << :a :b :c >> :p2 :o2. MUST entail prefix : <http://example.com/ns#> << :a :b :c >> :p1 :o1; :p2 :o2.
    +... this use case can be viewed in neo4j or wikidata
    +... there are ways to go around them, since there are discussions +

    + +

    +<pchampin> a? +

    + +

    +gkellogg: I don't know if it's meaningful the test as it is
    +... it depends too much on how your parser acts not the abstract data model +

    + +

    +pchampin: the abstract syntax is perfectly clear on that... see def of embedded triple
    +... I agree that the way is presented it can be misleading +

    + +

    +AndyS: If you have the same line twice, what should happen? +

    + +

    +<AndyS> << :a :b :c >> :p :o . << :a :b :c >> :p :o . ==> one triple or two? +

    + +

    +<AndyS> c.f. [] :p :o . [] :p :o . ==> one triple or two? +

    + +

    +Olaf: this is my understanding since the begining and I don't want to change that +

    + +

    +pfps_: Whether is possible to construct embedded triples by other mean?
    +... if you define RDF* as a mapping to RDF, that definitively an issue +

    + +

    +<blake_> << :a :b :c >> :p1 :o1. +

    + +

    +<blake_> << << :a :b :c >> :p3 :o3 >> :p2 :o2 . +

    + +

    +<blake_> ==== MUST entail? ===== +

    + +

    +<blake_> << :a :b :c >> :p1 :o1; :p3 :o3 . +

    + +

    +blake_: what bout the above examples? +

    + +

    +pchampin: a mix of variation of PG and SA mode +

    + +

    +<pfps_> A big question for RDF* is whether you can construct embedded triples by means other than the <<>> syntax. If you can, then the uniqueness of embedded triples becomes much more complex. +

    + +

    +pchampin: that's one test done
    +... hope once the core questions are off the way, the rest will follow
    +... please use the mailing list to discuss as well +

    + +

    +<AndyS> Thank you pchampin for chairing. +

    + +

    +pchampin: thanks everyone
    +... thanks the chairs and pchampin +

    + +

    +<Olaf> Thx all! +

    + +

    +<jerven> Bye +

    + +

    +pchampin: talk to you next week +

    + +

    +<thomas> bye +

    + +

    +bye +

    + + +
    +

    Summary of Action Items

    + +[NEW] ACTION: blake to submit an issue on embedded quads
    +[NEW] ACTION: pchampin to split and rename test embeded-triple-everywhere

    + +

    Summary of Resolutions

    + +
      + + +[End of minutes]
      +
      + +
      + Minutes manually created (not a transcript), formatted by David Booth's + scribe.perl version (CVS log)
      + $Date$ +
      +
      + +
      + + diff --git a/corese-unit-test/src/test/resources/data/rdf-star-main/Minutes/2020-12-04.html b/corese-unit-test/src/test/resources/data/rdf-star-main/Minutes/2020-12-04.html new file mode 100644 index 0000000000..9460cb400d --- /dev/null +++ b/corese-unit-test/src/test/resources/data/rdf-star-main/Minutes/2020-12-04.html @@ -0,0 +1,615 @@ + + + + RDF* -- 03 Dec 2020 + + + + + + + + +

      W3C +

      + + +

      RDF*

      +

      03 Dec 2020

      + +

      Agenda

      + + + + +

      Attendees

      + +
      +
      +
      Present
      +
      pfps, pavel, Olaf, pchampin, thomas, AndyS, rivettp, Doerthe, blake_, james, gkellogg
      +
      Regrets
      +
      gatemezing
      +
      Chair
      +
      pchampin
      +
      Scribe
      +
      pavel, pchampin
      +
      +
      + +

      Contents

      + +
      +
      +

      +<pchampin> pchampin: this is a test +

      + +

      +<pchampin> ... this is a continuation +

      + +

      +<pchampin> scribe: pavel +

      + +

      +pchampin: explains to pavel how to scribe
      +... any new folks here? +

      + +

      Open actions

      + +

      +<pchampin> https://github.com/w3c/rdf-star/issues?q=is%3Aopen+is%3Aissue+label%3Aaction +

      + +

      +pchampin: starting with the test cases +

      + +

      +<pchampin> https://github.com/w3c/rdf-star/issues/46 +

      + +

      +pchampin: that one is done, yaya +

      + +

      +<pchampin> https://github.com/w3c/rdf-star/issues/45 +

      + +

      +pchampin: next issue, embedded quads
      +... there was discussion +

      + +

      +<rivettp> I'm not hearing anything (did when I first joined) will rejoin the call +

      + +

      +blake_: this was about opening a discussion, not advocating for anything, just to have it on the table
      +... do we need t consider embedded quads? what does it mean? +

      + +

      +pchampin: we will have some time for open discussion at the end, we can have it then if we want +

      + +

      +<pchampin> https://github.com/w3c/rdf-star/issues/40 +

      + +

      +pchampin: README included in the HTML output
      +... empty sceleton for SPARQL* test suite is there, so more progress!
      +... still need more tests. please open PRs with manifest entries, test data. expected results, etc. +

      + +

      +<pchampin> https://github.com/w3c/rdf-star/issues/8 +

      + +

      +pchampin: next action on Olaf, semantics of BGP* and BIND/FIND +

      + +

      +pavel: i looked, seems fine +

      + +

      +Olaf: let's keep it on the agenda for the next time +

      + +

      +pchampin: let's add tests for it, even if they don't pass yet +

      + +

      +Olaf: shall we split the tests on query answering and parsing? +

      + +

      +pchampin: there're subsets already +

      + +

      +Olaf: it's parsing vs execution, not answering +

      + + +

      +<pchampin> ACTION: pchampin to put the discussion on action #8 in the next agenda +

      + +

      +AndyS: can we have a syntax test suite for Turtle* +

      + +

      +<pchampin> action andys to add a test-suite for Turtle* +

      + + +

      +<AndyS> ACTION: andys to add a test-suite for Turtle* +

      + +

      Continue discussing the tests cases in the proposed semantics test-suite

      + +

      +<pchampin> https://w3c.github.io/rdf-star/tests/semantics/manifest.html#all-identical-embedded-triples-are-the-same +

      + +

      +pchampin: last time we stopped there ^^
      +... at the moment this is how the definitions in the Olaf's paper define RDF*
      +... and also how it's implemented right now
      +... embedded triples are one and the same thing as long as all SPO components are the same
      +... there was a concern about that (in the mailing list)
      +... could make it difficult to address some use cases, eg. Wikidata
      +... where we need to represent diff occurrences of the same statement
      +... since same statement can be said by different people and then they could be different
      +... some PG databases can have multi-edges and different attributes
      +... it's a known limitation, my position is these complicate things (though not impossible) +

      + +

      +<pfps> It's not just the Wikidata use case. The examples related to provenance point to having multiple embedded triples with the same s,p,o. +

      + +

      +pchampin: extending RDF* to more complex examples would require to distinguish occurrences of the same triple +

      + +

      +gkellogg: are 2 triples in different NGs, are they the same? +

      + +

      +pchampin: yeah +

      + +

      +<pfps> And it's not just the provenance examples - belief is another place where one might want to distinguish between different embedded triples with the same s,p.o. +

      + +

      +gkellogg: if a triple exists in multiple NGs, does it exist only in the NG where it's stated? +

      + +

      +pchampin: the meaning of the named graph isn't formalised
      +... so it's not easy +

      + +

      +gkellogg: Wikidata semantics could be resolved ins ome interpretation of named graphs, no?
      +... at least it'd make sense to me
      +... it should allow you to speak differently depending on named graph +

      + +

      +thomas: do we speak about triples as extensions or occurrences in graphs/document? i tried to discuss that in my long email +

      + +

      +<pfps> I don't see how named graphs help in expressing Wikidata. WIkidata has one "ground" but that ground can have multiple statements with the same s,p.o. +

      + +

      +thomas: if 2 people want to say different things about the same triple, you have to differentiate in the semantics
      +... but defining semantics about all triples of the same type(?) makes it impossible +

      + +

      +pchampin: 2 embedde triples in 2 NGs represents the same thing
      +... but: i can describe some thing in a NG, e.g. rdf-star a :great-idea and in a different graph rdf-star a :broken
      +... i can do that, and the triple is still the same
      +... if someone merges the graphs then we get a contradiction. but they don't have to merge those graphs +

      + +

      +thomas: i'd be interested in how it works +

      + +

      +AndyS: what we should try is enabling the basic building blocks are there to solve use cases
      +... it might need something else
      +... you could have RDF* triples as defined in the papers and be able to make statements
      +... statings vs statements (the former being the action of making the statement)
      +... the triple term right now can be annotated itself +

      + +

      +pfps: if we enable basic blocks then RDF reification works +

      + +

      +AndyS: nope?
      +... agree with pfps that many UCs can be solved with reification
      +... but it's more on users than us +

      + +

      +pfps: evidence that we have that users use RDF, ie those documents, and as i pointed out, those documents are in bad shape
      +... either someone needs to fix them up and provide good evidence +

      + +

      +AndyS: there's absemce of evidence for the use of RDF reification
      +... i want to get to a point where we can make progress without boiling the ocean +

      + +

      +pchampin: Jerven do you want to say anything about reification +

      + +

      +jerven: yes. reification solves our problem (to talk about the triple)
      +... i.e. talking about a relationship, it works fine as-is.
      +... but it's soo ugly
      +... and blows up data
      +... and queries!
      +... lots of joins too. that's problematic on large scale data.
      +... semantics is fine. but join performance and verbosity are problematic +

      + +

      +<pfps> I wonder whether embedded triples would help at all in SPARQL performance. +

      + +

      +<thomas> so RDF* with the RDF reification semantics would be fine for you, Jerven? +

      + +

      +pchampin: want to add what RDF* buys us re: reification, it adds atomicity +

      + +

      +jerven: we'd like to have that +

      + +

      +<pfps> It would be nice to have some experiments on how fast SPARQL* queries are over embedded triples. +

      + +

      +jerven: then the question is: do we constraint the rdf reification to say that your RDF reification graphs must be complete
      +... if you want RDF* enabled, you cannot have invalid/incomplete reification statements
      +... at some point semantics faces the practicality issue +

      + +

      +blake: to respond re: reification verbosity
      +... i don't think any of those issues are necessarily
      +... those can be implementation details
      +... stores can have special treatments for RDF reification triples
      +... constraints can be enforced
      +... performance gains with RDF* are not a given +

      + +

      +<Olaf> Blake, Jena did have such special treatment but they took it out +

      + +

      +<pfps> +1 to blake +

      + +

      +AndyS: there was some experience with that
      +... experience wasn't very good
      +... first problem is partials
      +... a lot of low-level work needed to deal with reification
      +... maybe it's not such a big issues these days since hardware is better +

      + +

      +<pchampin> scribe: pchampin +

      + +

      +<pfps> And what is the burden of implementing triples as a new node type? +

      + +

      +pavel: in theory, it is true that performance issues of reification can be optimized away,
      +... but in practice, it proved very hard
      +... It is difficult to not leak those ugly reification triples to the user. +

      + +

      +<AndyS> Work by Kevin Wilkinson and others: https://www2.cs.uic.edu/~ifc/SWDB/papers/Wilkinson_etal.pdf +

      + +

      +<scribe> scribe: pavel +

      + +

      +thomas: i don't know anyone saying that we should keep the standard reification. but its semantics is fine.
      +... i think we should keep that semantics, if RDF* would conform that'd be great +

      + +

      +pchampin: the syntax of Turtle* and SPARQL* would make it hard
      +... one could imagine that every occurrence in <<>> identifies a new occurrence..
      +... but it'd make it very complex
      +... lots of practical issues will arise +

      + +

      +thomas: by default i'd suggest that an annotation refers to the triple in the same named graph (?)
      +... others may have totally different opinions +

      + +

      +pchampin: so you'd not object to the test as written? +

      + +

      +thomas: no idea :) +

      + +

      +pchampin: ok, we need to make progress in one way or another
      +... but the more we agree on, the better +

      + +

      +blake: re: reification, it sounds like everyone is not against RDF* being syntactic sugar
      +... maybe with a better syntax and query patterns +

      + +

      +<pfps> +1 for blake's comment that implementing embedded triples is hard too +

      + +

      +<pchampin> [] rdf:subject :a, :b. +

      + +

      +blake: all the points re: implementation, they're muted because the same would be required when embedded statements are first-class citizens
      +... so we can get away with syntactic sugar +

      + +

      +jerven: in Uniprot we generate statement IDs which aren't quite valid in RDF/XML, so each statement gets an ID when we reify it
      +... and that works fine
      +... so we never have to generate reification quads again +

      + +

      +<Zakim> AndyS, you wanted to suggest a strawpoll +

      + +

      +jerven: i feel RDF* should be compatible with reification but we don't have to require it being as expressive +

      + +

      +AndyS: what does everyone think? +

      + +

      +pchampin: same idea +

      + +

      +<AndyS> +1 to Jerven +

      + +

      +pfps: still don't know what RDF* is supposed to be good for. how can i approve any test then? +

      + +

      +<thomas> +1 to Jerven +

      + +

      +pchampin: agree, good question. strawpoll here +

      + +

      +<pchampin> STRAWPOLL: would you be happy with RDF* being syntactic sugar for standard reification (possibly with more constraints)? +

      + +

      +<blake> +1 +

      + +

      +<thomas> +1 +

      + +

      +<jerven> +1 +

      + +

      +<pfps> +1 +

      + +

      +<rivettp> +1 +

      + +

      +<gkellogg> -0 +

      + +

      +<pchampin> -0 +

      + +

      +<AndyS> +1 "with more constraints" +

      + +

      +<james> +0 +

      + +

      +<jerven> +1 "with more constraints" +

      + +

      +<Doerthe> -0 +

      + +

      +<Olaf> Do you mean in terms of semantics? +

      + +

      +0 (cannot answer) +

      + +

      ++1 to AndyS! +

      + +

      +<pfps> There are lots of sins that can be covered by syntactic sugar. +

      + +

      +AndyS: it depends on what we mean by syntactic sugar (and pavel agrees) +

      + +

      +<Olaf> +1 +

      + +

      +pchampin: i mean that Turtle* docs can be rewritten into reification and that'd make no difference +

      + +

      +<thomas> I interpreted "syntactic sugar for RDF reofication" as keeping the RDF refication semantics +

      + +

      +<pchampin> scribe: pchampin +

      + +

      +pavel: I couldn't answer the strawpoll. +

      + +

      +<pfps> I'm generally in favour of the syntactic sugar solution, particularly as it allows for other kinds of reification. +

      + +

      +pavel: should the system return the reification triples? that would not be good +

      + +

      +<pavel> scribe: pavel +

      + +

      +blake: sugar should not disallow synthetic URIs or triples +

      + +

      +<pfps> But the problem is if you have mixed syntax - some [[...]] and some rdf:subject. +

      + +

      +blake: that could be another form of syntactic sugar? +

      + +

      ++1 to pfps +

      + +

      +pchampin: this needs to be explored, let's see if we have a ticket on it. but there seems to be no strong opposition so it's a serious option +

      + +

      +<pfps> But there is no gain without pain, and it is completely unclear to me as to even the magnitude of the pains for the various approaches. +

      + +

      +pchampin: but not there are some different expectations from syntactic sugar
      +... gotta think till next week
      +... thanks everyone, no formal decision for now, but feels like progress nonetheless
      +... bye +

      + +

      +<pfps> One pain would be to allow embedded triples to be incomplete and transform rdf:subject etc into embedded triples. +

      + +

      +<jerven> Thank you all. +

      + + +
      +

      Summary of Action Items

      + +[NEW] ACTION: andys to add a test-suite for Turtle*
      +[NEW] ACTION: pchampin to put the discussion on action #8 in the next agenda

      + +

      Summary of Resolutions

      + +
        + + +[End of minutes]
        +
        + +
        + Minutes manually created (not a transcript), formatted by David Booth's + scribe.perl version (CVS log)
        + $Date$ +
        +
        + +
        + + diff --git a/corese-unit-test/src/test/resources/data/rdf-star-main/Minutes/2020-12-11.html b/corese-unit-test/src/test/resources/data/rdf-star-main/Minutes/2020-12-11.html new file mode 100644 index 0000000000..8d31394a5f --- /dev/null +++ b/corese-unit-test/src/test/resources/data/rdf-star-main/Minutes/2020-12-11.html @@ -0,0 +1,745 @@ + + + + RDF* -- 11 Dec 2020 + + + + + + + + +

        W3C +

        + + +

        RDF*

        +

        11 Dec 2020

        + + + + + +

        Attendees

        + +
        +
        +
        Present
        +
        pchampin, gatemezing, rivettp, olaf, AndyS, TallTed, thomas, pavel, gkellogg, ora, doerthe, pfps
        +
        Regrets
        +
        +
        Chair
        +
        pchampin
        +
        Scribe
        +
        gkellogg, pchampin
        +
        +
        + +

        Contents

        + +
        +
        +

        +<AndyS> Hi all +

        + +

        +<thomas> thomas+ +

        + +

        +<AndyS> meeting: #rdf-star telecon / 2020-12-11 +

        + +

        +<gkellogg> scribe: gkellogg +

        + +

        +<pchampin> scribe: gkellogg +

        + +

        upcoming calls

        + +

        +pchampin: No call on December 25th or January 1st. +

        + +

        +<gatemezing> +1 +

        + +

        +<olaf> +1 +

        + +

        +pchampin: are people okay for next week? +

        + +

        +<pchampin> +1 +

        + +

        ++1 +

        + +

        +<ora> +1 +

        + +

        +<TallTed> +1 +

        + +

        +<doerthe> +1 +

        + +

        +<pavel> +1 +

        + +

        +<rivettp> +1 +

        + +

        +<AndyS> December 25 / January 1 +

        + +

        +<AndyS> +1 +

        + +

        +<thomas> +1 +

        + +

        +scribe: Last call of the year next week. +

        + +

        Introductions

        + +

        +ora: I’m a member of the Amazon graph DB team. Ora Lassa. +

        + +

        +<ora> Correct spelling: Ora Lassila +

        + +

        +TallTed: I’m with OpenLink Software, maker of Virtuoso and many other things, and I've been on many W3 groups since about 2000. +

        + +

        +<olaf> Welcome Ora and Ted!! +

        + +

        open actions

        + +

        +<pchampin> https://github.com/w3c/rdf-star/issues?q=is%3Aopen+is%3Aissue+label%3Aaction +

        + +

        +pchampin: Two actions, one about creating a test suite. Andy has created Turtle* syntax tests.
        +... I’ve created a skelleton for SPARQL*
        +... I think we can close the action, although the test suites aren’t (and may never by) complete.
        +... I’d like to suggest … The tests are very abstract, and based on my understanding on RDF*.
        +... pfps has suggested that it may be premature.
        +... I’d like to ask people that have run the test cases to translate examples into test cases.
        +... It may help to make a link from practical issues without loosing track of what people have proposed. +

        + +

        +<pavel> SPARQL* test cases? +

        + +

        +<gatemezing> Is there a way to map those UCs using the manifest file? +

        + +

        +<pchampin> scribe: pchampin +

        + +

        +gkellogg: syntax tests are not about interpretation
        +... we need to set a line where N-Triple* is, so that we can write syntax tests with their *meaning*
        +... I'm concern that people think that annotations and pointy brackets are different things +

        + +

        +<gkellogg> AndyS: I put some notes in the annotation discussion about that. N-Triples* is a key to understanding this. +

        + +

        +<scribe> scribe: gkellogg +

        + +

        +UNKNOWN_SPEAKER: Jos’ EYE has been reporting trnslations, and I’d like to create evaluation tests based on those. +

        + +

        +<Jerven> (sorry I am late and can only stay a bit) +

        + +

        +pchampin: I agree with the need for N-Triples*, and things are held up on that. +

        + +

        +TallTed: I’m seeing a lot of bluring in whats being discussed to date. I’ve been out of date for the last year. +

        + +

        +<AndyS> AndyS: Offer to write some evaluation tests starting with the EYE translation. +

        + +

        +TallTed: Much of what’s been discussed is focusing on Quads and not talking about N-Triples. The “Star” has got to go. If it’s an evolution of RDF it needs to be treated as such.
        +... We can’t use RDF+ or RDF#, because they’re used. Punctuation naming breaks things. +

        + +

        +<pchampin> ack: gkellogg +

        + +

        +<pchampin> scribe: pchampin +

        + +

        +gkellogg: same problem with the JSON-LD WG, when working on JSON-LD 1.1
        +... should we go as WHATWG? I don't think so for RDF* +

        + +

        +<TallTed> "RDF Annotation task force" would put it under the umbrella, without using a version that might be overrun by another group +

        + +

        +gkellogg: it is more than RDF, a proposal for what a future WG might do +

        + +

        +<gkellogg> scribe: gkellogg +

        + +

        +pchampin: We’re drifting off the action list. I’d like to keep a slot at the end of the meeting for open issues.
        +... I agree that it might be important for outreach, but we can make progress in parallel. +

        + +

        SPARQL*

        + +

        +olaf: I copied over definitions from some old papers into the spec to define query standards.
        +... What needs to be adjusted is recursion.
        +... I don’t think there’s anything suprising. I’ve defined it assuming “SA” mode.
        +... If we have a nested triple and a pattern that my match it, it would not be a match unless the embedded triple is also asserted. +

        + +

        +pavel: I was reading through evaluation semantics. I’m not quite sure how it works with SA mode. If you can’t match an embedded pattern against a database. +

        + +

        +olaf: We changed it in the sense that in the original papers, the BIND could match something that was embedded, but that would not be a triple itself in the graph.
        +... That was possible in the original definitions, but now the triple needs to be explicitly in the graph. +

        + +

        +pavel: If you have BIND and an embedded pattern with variables that iss not in the graph, you can’t use BIND to create embedded triples. +

        + +

        +<pavel> bind(<< :a :p :b >> as ?var) <-- no match here +

        + +

        +olaf: This is a separate issue to be discussed. I’ve created another issue to address differences between SA and PG mode, as it’s different.
        +... You can’t create new triples that aren’t in the graph.
        +... AndyS suggested renaming BIND to FIND accordingly. But, it’s still open if it matches triples in the graph or embedded triples.
        +... Issue #6. We’re not talking about issue #8.
        +... We can discuss #6 next week. +

        + +

        +AndyS: Using BIND in this way also … If triples are terms they can also be used in expressions.
        +... You might need to replicate the expression with and without to handle both modes.
        +... You should be able to ask what the subject of the value of a variable is +

        + +

        +olaf: Are you talking about additional builtin functions? +

        + +

        +AndyS: By deciding one particular way, we might end up blocking that. +

        + +

        +olaf: Getting to issue #6, I like renaming BIND to FIND. +

        + +

        +AndyS: I just wanted to make clear that there are other consequnces of the decision. +

        + +

        +<pavel> fwiw, Stardog does provide additional builtin functions e.g. subject(), to decompose embedded triples +

        + +

        +pchampin: We need to put issue #6 on the agenda for next time. +

        + +

        +<gatemezing> Happy also to use another keyword like FIND +

        + +

        +olaf: Can we have a straw poll? +

        + +

        +<AndyS> FWIW so does Jena including construction triple-terms +

        + +

        +<pchampin> PROPOSED: close issue #8, the current state of section 4 SPARQL* is satisfying +

        + +

        +<pchampin> +1 +

        + +

        +<pfps> 0 +

        + +

        +<pavel> +1 +

        + +

        +<rivettp> 0 +

        + +

        +<olaf> +1 +

        + +

        +<TallTed> It is helpful to make clear the PRs relevant to an Issue +

        + +

        +<AndyS> +1 +

        + +

        ++1 +

        + +

        +<gatemezing> +1 +

        + +

        +<thomas> 0 +

        + +

        +<ora> 0 ("enthaltung" ;-) +

        + +

        +<doerthe> +1 +

        + +

        +AndyS: We’re creating quite a lot of material. Just because we agree, doesn’t mean they can’t become discussion items later +

        + +

        +<olaf> TallTed, next time -- I did not put this one through a PR +

        + +

        +<james> 0 +

        + +

        +<TallTed> (and rather than just making commits directly, to go through the PR mechanism) +

        + +

        +<olaf> Sorry! +

        + +

        +<TallTed> +0 +

        + +

        +RESOLUTION: close issue #8, the current state of section 4 SPARQL* is satisfying +

        + +

        +pchampin: As AndyS said, just because we’ve resolved an issue, doesn’t mean we can’t come back to discuss it. We’re not a WG, but we’re mimmicking the process. +

        + +

        annotation syntax

        + +

        +<TallTed> trying to extend *all* of RDF, Turtle, N3, N4, SPARQL, TriG, etc. in one whack is a rather large undertaking, given that each of those has had its own WG for updates +

        + +

        +<pchampin> https://github.com/w3c/rdf-star/pull/58 +

        + +

        +<olaf> Preview with diff: https://pr-preview.s3.amazonaws.com/w3c/rdf-star/58/2160503...7479002.html#turtle-star-grammar +

        + +

        +pchampin: This is an extension of Turtle* that’s been discussed for a while. Some people use it in discussions, but it’s not properly documented. It would be useful to have in the document.
        +... It’s not just about the syntax, but can help us to move forward on SA vs. PG.
        +... The question is if an embedded triple is also asserted. There have been different interpretations of << … >>. The idea is to have two different syntaxes, one which asserts, and one which doesn’t That way, we don’t need different modes.
        +... I think getting rid of SA and PG modes would help discussions.
        +... That’s why I added a non-normative paragraph to explain the history. +

        + +

        +<pchampin> scribe: pchampin +

        + +

        +gkellogg: I have implemented it, it is straighforward
        +... I think we should get rid of PG mode
        +... a provisional N-Triple* would not have the annotation syntax, only the poiny bracket syntax
        +... thus you would need to explicitly assert a triple that is also embedded +

        + +

        +<AndyS> +1 to gkellogg -- "one line, one triple"-ish. +

        + +

        +<gkellogg> scribe: gkellogg +

        + +

        +<thomas> so only Turtle* would get the sytactic sugar of PG mode? +

        + +

        +pchampin: Is anyone unhappy with the notion of having an annotation syntax?
        +... To answer thomas, not just Turtle*, but perhaps TriG*, SPARQL*.
        +... But, N-Triples and N-Quads want to keep one asserted triple per line, which is why they wouldn’t have an annotation syntax. +

        + +

        +<thomas> okay, thanks. +1 to that +

        + +

        +pchampin: Basically, one “asserted” triple per line. +

        + +

        +<TallTed> I'm not sure I see a strong utility of the annotation syntax, but I don't (yet) see a strong argument against allowing it. Implementation may be problematic, but I can't speak to that at this point. +

        + +

        +james: This may be a minority view, but as implicit in my use case, I’m opposed to anything that changes the elementary syntax. It runs against the general intent of RDF.
        +... I believe this should be a consequence of iinterpretation and not of encoding.
        +... I don’t think there should be two different encodings. +

        + +

        +<ora> Clarify "encoding" +

        + +

        +pchampin: The standard does specify how you interpret the syntax. +

        + +

        +james: N-Triples encodes triples, which are all in graphs. Anything else is going out on thin ice. I can’t see a purpose to ratifying different interpretation of the syntax. +

        + +

        +pchampin: Are you saying you just want PG mode? +

        + +

        +james: I don’t want a mode at all. +

        + +

        +<pfps> I'm confused. It seems to me that this proposal is requiring that :a :b "<a b c>" requires that the triple (a, b, c) be in the graph. +

        + +

        +<Jerven> Sorry for the noise, I need to go already +

        + +

        +TallTed: I think you’re saying that the interpretation is modal, because you want to have one interpretation for embedded triples, and wheither it’s treated as its own term or another triples. +

        + +

        +james: I’m not asserting that there are modes, or there may be three modes, but it should be after the fact and not as a consequence of the encoding. +

        + +

        +<AndyS> Isn't this like entailment? Specifically D-entailment -- entailment being an external mechanism. +

        + +

        +james: It could be that SA and PG are the interpretations, but I don’t want to presume them. +

        + +

        +pchampin: I agree with AndyS, perhaps this relates more to entailment? +

        + +

        +james: That would be a way to frame it. +

        + +

        +pchampin: I see that SA mode is less committing of the two modes. +

        + +

        +james: The eproblem of saying SA mode is that there is no PG mode. I’d like to avoid that.
        +... My feeling is that both have reasonable use cases. +

        + +

        +pchampin: The idea is that the need for PG mode was a problem of redundancy, because SA mode is more redundant.
        +... Maybe, in other cases, it could be a matter of inferrence. +

        + +

        +TallTed: I want to be able to say “Mary said Bob is stupid”, but I don’t want to say “Bob is stupid”.
        +... They can interpret my notation as if it’s asserting it, because it may come around to say something I didn’t mean to say. +

        + +

        +pchampin: To be clear, is the annotation syntax a problem? +

        + +

        +TallTed: I don’t see a problem with the syntax, but it may not be easy to implement. +

        + +

        +AndyS: To james, the problem is that “mode” puts things as either/or, which was useful at the time, but if we have a system where we have a fundamental rule to unify them… +

        + +

        +james: The concern I have with mode is that it is exclusive. +

        + +

        +<pchampin> scribe: pchampin +

        + +

        +gkellogg: my interpretation of this discussion is to get rid of the notion of mode
        +... everyone would interpret the syntax the same way
        +... the notion of modes was useful before, because we didn't have the appropriate syntax
        +... any further matter of interpretation may be a matter of entailment +

        + +

        +<gkellogg> scribe: gkellogg +

        + +

        +<pchampin> STRAWPOLL: do you agree to merge PR58 Annotation syntax +

        + +

        ++1 +

        + +

        +<olaf> +1 +

        + +

        +<pchampin> +1 +

        + +

        +<TallTed> +1 (I did add one more tweak to the language a few minutes ago) +

        + +

        +<pavel> +1 +

        + +

        +<AndyS> +1 +

        + +

        +<thomas> +1 +

        + +

        +pchampin: I think the discussion of modes is hindering our discussions, and I’d like to get this out of the way. +

        + +

        +<doerthe> +1 +

        + +

        +<gatemezing> +1 +

        + +

        +<ora> 0 +

        + +

        +<james> 0 +

        + +

        +<gatemezing> Question: Based on the james' comments, could we add an issue on merging modes? +

        + +

        +<pfps> 0 +

        + +

        +pchampin: I think we have a use case which is a point of discussion, but if James thinks it’s necessary,, please feel free to create a new issue. +

        + +

        +<gatemezing> Thanks pchampin ! +

        + +

        +<rivettp> 0 +

        + +

        +<pchampin> PROPOSED: merge PR58 Annotation syntax +

        + +

        ++1 +

        + +

        +<thomas> +1 +

        + +

        +<TallTed> +1 +

        + +

        +<gatemezing> +1 +

        + +

        +<pchampin> +1 +

        + +

        +<doerthe> +1 +

        + +

        +<pfps> 0 +

        + +

        +<olaf> +1 (including TallTed's tweak from a few mins ago ;) +

        + +

        +<james> 0 +

        + +

        +<rivettp> 0 +

        + +

        +RESOLUTION: merge PR58 Annotation syntax +

        + +

        +<ora> 0 +

        + +

        +pchampin: Of course, any other changes would be editorial and aren’t an issue. +

        + +

        +<gatemezing> Thanks all! +

        + +

        +<thomas> bye +

        + + +
        +

        Summary of Action Items

        + + +

        Summary of Resolutions

        + +
        1. close issue #8, the current state of section 4 SPARQL* is satisfying
        2. +
        3. merge PR58 Annotation syntax
        4. +
        + + +[End of minutes]
        +
        + +
        + Minutes manually created (not a transcript), formatted by David Booth's + scribe.perl version (CVS log)
        + $Date$ +
        +
        + +
        + + diff --git a/corese-unit-test/src/test/resources/data/rdf-star-main/Minutes/2020-12-18.html b/corese-unit-test/src/test/resources/data/rdf-star-main/Minutes/2020-12-18.html new file mode 100644 index 0000000000..10ff4f213e --- /dev/null +++ b/corese-unit-test/src/test/resources/data/rdf-star-main/Minutes/2020-12-18.html @@ -0,0 +1,405 @@ + + + + RDF* -- 18 Dec 2020 + + + + + + + + +

        W3C +

        + + +

        RDF*

        +

        18 Dec 2020

        + + + + + +

        Attendees

        + +
        +
        +
        Present
        +
        AndyS, pfps, pchampin, gkellogg, blake, thomas, gatemezing, olaf, Doerthe_
        +
        Regrets
        +
        Pavel, Klinov
        +
        Chair
        +
        pchampin
        +
        Scribe
        +
        AndyS, pchampin
        +
        +
        + +

        Contents

        + +
        +
        +

        +<blake> p? +

        + +

        +<gkellogg> Has Zakim arived? +

        + +

        +<pchampin> gkellogg: yes +

        + +

        +<AndyS> scribe: AndyS +

        + +

        Review pending actions

        + +

        +<pchampin> https://github.com/w3c/rdf-star/issues/40 +

        + +

        +pchampin: test suite ... SPARQL* "in-progress" +

        + +

        +AndyS: Can start some SPARQL* syntax tests. +

        + +

        +<pfps> successfully? you mean that you have all the desired results or that you have results for all of them? +

        + +

        +gkellogg: Notes JSON-LD for one set of tests.
        +... have both kinds +

        + +

        Discuss the SPARQL* annotation syntax proposed by Olaf

        + +

        +Andy: Key piece of work was extending isomorphism to handle nested <<>> +

        + +

        +<pchampin> https://github.com/w3c/rdf-star/pull/65 +

        + +

        +<gkellogg> AndyS notes that there are changes necessary for isomorphsim checks. +

        + +

        +olaf: work ongoing for annotation with regard to SPARQL paths. +

        + +

        +<gatemezing> +1 to postpone the resolution for this proposal +

        + +

        +olaf: just copying over from Turtle has impacts wider than intended
        +... property paths e..g ":s :(:p|:q) ?o {| ... |}" +

        + +

        +<pfps> +1 for annotating property path patterns :-) +

        + +

        Discuss the overview section proposed by Bob

        + +

        +<pchampin> https://github.com/w3c/rdf-star/pull/69 +

        + +

        +pchampin: bobdc has contributed an overview and introduction +

        + +

        +pfps: current example needs to be changed
        +... suggests no ^^ use
        +... (datatype) +

        + +

        +pchampin: document is not fixed by a PR. Can have later discussion.
        +... prefer to have some text rather than none. +

        + +

        +<pchampin> ack: gkellogg +

        + +

        +gkellogg: It is non-normative text. +

        + +

        +<pfps> My initial complaint was that strings were used as dates, but using the date dataype brings in the irrelevant issue of which datatypes need to be supported. +

        + +

        +gkellogg: need to motivate RDF* +

        + +

        +<pchampin> scribe: pchampin +

        + +

        +AndyS: this should not be just a blunt specification for implemters
        +... this should be accessible to anyone +

        + +

        +<gkellogg> +1 to what Andy said +

        + +

        +<AndyS> scribe: AndyS +

        + +

        +<pchampin> PROPOSED: merge PR 69 after removing the xsd:date literals from the example +

        + +

        +<gkellogg> +1 +

        + +

        +<pchampin> +1 +

        + +

        ++1 +

        + +

        +<pfps> 0 +

        + +

        +<gatemezing> +1 +

        + +

        +<olaf> +1 +

        + +

        +<ora> +1 +

        + +

        +<james> +0 +

        + +

        +<thomas> 0 +

        + +

        +RESOLUTION: merge PR 69 after removing the xsd:date literals from the example +

        + +

        +pchampin: please continue to raise comments and issues on doc text
        +... continuous improvement +

        + +

        "unique triples"

        + +

        +<pchampin> https://github.com/w3c/rdf-star/issues/64 +

        + +

        +<pchampin> https://github.com/w3c/rdf-star/pull/69 +

        + +

        +<olaf> Isn't this PR https://github.com/w3c/rdf-star/pull/75? +

        + +

        +pchampin: removed text about "type" (different meaning to computer science)
        +... tried to articulate common understanding (discussions, implementations) +

        + +

        +pfps: people are sloppy in use of language but sometimes need to be exact.
        +... lots of levels : interpretations, models, abstract syntax, graphs, surface syntax.
        +... embedded triples are at several levels.
        +... e.g. replace "embedded triple" by "literal"and text should level-correct.
        +... unlike [] which is not the same term on each use in a Turtle file.
        +... We agree that <<>> are not like []
        +... section 2.1 - unclear about "embedded triple" - as surface syntax? as a term in a graph? as in model theory? +

        + +

        +pchampin: I see the point here. +

        + +

        +<gatemezing> Based on the previous discussion, are we going to clearly separate those three "context" of embedded triple? +

        + +

        +pchampin: embedded triples in the abstract syntax denote themselves.
        +... occurrences of the same term. +

        + +

        +<pfps> The point here is that the proposed addition of 2.1 needs to be clear as to what is what. If 2.1 is talking about abstract syntax it should do so throughout (and be very careful about using concrete syntax), as the mapping from concrete syntax to abstract syntax may create multiple triples that "share" something derived from one piece of the concrete syntax document. +

        + +

        +<james> "occurrences of the same term" just that does not make sense +

        + +

        +olaf: embedded triple - confusion from examples - for me, mathematical concept of 3 terms - like a literal +

        + +

        +ora: clarifying question - embedded triple is a identifier - opaque to make statements about it ? +

        + +

        +gkellogg: Q about Embedded triple and blank node. +

        + +

        +<pchampin> << :s :p _:x >> +

        + +

        +<pfps> Hmm. What about << :a :b [] >> in Turtle? +

        + +

        +pchampin: several ways to consider it.
        +... blank node is like plain RDF
        +... existential variable +

        + +

        +<ora> Does this go away if we replace each blank node with a new identifier? +

        + +

        +pchampin: complex discussion
        +... SPARQL(*) bnodes are variables. +

        + +

        +<pfps> Blank node labels are part of concrete syntaxes, and are not part of RDF graphs. +

        + +

        +<pfps> A blank node is a blank node, not a variable. +

        + +

        +pchampin: If a blank node is a variable, then embedded triple is no longer completely opaque. +

        + +

        +<gatemezing> Why do we need blank nodes here? - +

        + +

        +<pchampin> :alice :father [ :name "bob" {| :asserted :alice |} ]. +

        + +

        +<james> the statement would have to be in the context of a question +

        + +

        +<pchampin> scribe: pchampin +

        + +

        +<pfps> Well, there is nowhere the triple with subject :a, as triples can't have CURIES as subjects. +

        + +

        +AndyS: difference btw blank node appearing only in an embedded triple +

        + +

        +<ora> I assume <<:a :b []>> and <<:a :b []>> are not the "same" triple. +

        + +

        +AndyS: and bnode appearing both inside and outside embedded triples +

        + +

        +<pfps> GTGN +

        + +

        +AndyS: the former may have a meaning, but not very useful +

        + +

        +<gatemezing> +1 ora - they are different here +

        + +

        +<ora> Hyvää joulua! +

        + +

        +<AndyS> Next telecon: 2020-01-08 +

        + +

        +<gatemezing> Bye all! Happy end of year! +

        + + +
        +

        Summary of Action Items

        + + +

        Summary of Resolutions

        + +
        1. merge PR 69 after removing the xsd:date literals from the example
        2. +
        + + +[End of minutes]
        +
        + +
        + Minutes manually created (not a transcript), formatted by David Booth's + scribe.perl version (CVS log)
        + $Date$ +
        +
        + +
        + + diff --git a/corese-unit-test/src/test/resources/data/rdf-star-main/Minutes/2021-01-08.html b/corese-unit-test/src/test/resources/data/rdf-star-main/Minutes/2021-01-08.html new file mode 100644 index 0000000000..f4060052a2 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/rdf-star-main/Minutes/2021-01-08.html @@ -0,0 +1,465 @@ + + + + RDF* -- 08 Jan 2021 + + + + + + + + +

        W3C +

        + + +

        RDF*

        +

        08 Jan 2021

        + + + + + +

        Attendees

        + +
        +
        +
        Present
        +
        gkellogg, pchampin, thomas, TallTed, AndyS, pfps
        +
        Regrets
        +
        gatemezing, olaf
        +
        Chair
        +
        pchampin
        +
        Scribe
        +
        andys, pchampin, pfps
        +
        +
        + +

        Contents

        + +
        +
        +

        +<pfps> present* +

        + +

        +<pchampin> ora, do you have problem connecting your audio? +

        + +

        +<ora> Yep, hold on... +

        + +

        +<pchampin> no problem +

        + +

        +<ora> Now works! +

        + +

        +<AndyS> Achievement unlocked. +

        + +

        +<ora> :-) +

        + +

        +<pfps> I'll scribe if I can get someone to scribe for the bits I will be involved in. +

        + +

        +<AndyS> We can tag team. +

        + +

        +<pchampin> scribe: andys +

        + +

        +<pfps> I guess Andy and I could cover scribe duties +

        + +

        New people on the call introduce themselves

        + +

        +Intro mielvds +

        + +

        +Interests --KG, provenance, rights +

        + +

        Review pending actions

        + +

        +<pchampin> https://github.com/w3c/rdf-star/issues?q=is%3Aopen+is%3Aissue+label%3Aaction +

        + +

        +<pchampin> scribe: pchampin +

        + +

        +AndyS: syntax test suites for Turtle* and Sparql* have good coverage
        +... easy to amend based on future changes
        +... Did some cleanup to make it easier for other to work on the test suite.
        +... Conversion btw TTL and JSON-LD manifests.
        +... There are also some evaluation tests for Turtle*, mapping TTL files to NT files.
        +... Needs for tests. +

        + +

        +<scribe> scribe: AndyS +

        + +

        +<scribe> scribe: AndyS +

        + +

        +gkellogg: passes all the tests at the moment +

        + +

        +<TallTed> Create a test suite -- https://github.com/w3c/rdf-star/issues/40 +

        + +

        +gkellogg: and add SPARQL syntax if missing forms +

        + +

        sections on "triples vs occurences"

        + +

        +Tidied up material +

        + +

        +pchampin: Tidied up material +

        + +

        +thomas: Changed the example not text referring to example.
        +... not enough about occurrences vs types.
        +... reification applies to the triple type +

        + +

        +<TallTed> Add material in the spec about the triple-occurrence distinction -- https://github.com/w3c/rdf-star/pull/75 +

        + +

        +thomas: reference to reification is 1999 spec not RDF 1.0 (2004), RDF 1.1 (2013) +

        + +

        +<pchampin> https://github.com/w3c/rdf-star/pull/75 +

        + +

        +pchampin: agenda has bad link: should be https://github.com/w3c/rdf-star/pull/75
        +... intro is intended to be high level and concise, not all detail
        +... about reification is indeed to 1999 REC. +

        + + +

        +<pchampin> ACTION: thomas submit an issue about the link to the 1999 spec about reification +

        + +

        +<pchampin> ack: gkellogg +

        + +

        +<ora> Hmm... I wrote the original 1999 part, oh goodness... +

        + +

        +gkellogg: RDF 1.1 WG downplayed reification
        +... as were RDF containers +

        + +

        +<ora> There were earlier discussions with references to modal logics as well... +

        + +

        +gkellogg: issues about transformation to base RDF for reification
        +... vs single blank node for all uses +

        + +

        +pchampin: Intention is one blank node per triple term --- not on agenda today to give time for people to read it +

        + +

        Annotation syntax

        + +

        +<pchampin> scribe: pfps +

        + +

        +<TallTed> annotation syntax for SPARQL* -- https://github.com/w3c/rdf-star/pull/65 +

        + +

        +AndyS: proposal for annotations - as in property graphs - asserting the statement and also decorating it
        +... some proposals clash with other parts of RDF syntax +

        + +

        +<pchampin> current syntax: :s :p :o {| :q1 :r1; :q2 :r2 |} +

        + +

        +AndyS: {| was as popular as any other, but the stuff inside the curly braces is not triples, but property values +

        + +

        +mielvds: there should be a real discussion about the syntax - maybe not now +

        + +

        +<AndyS> Also mentioned :s :p :o @{ .... } +

        + +

        +mielvds: should this stay within the triple structure
        +... is this what is pretty or what is most usable +

        + +

        +AndyS: there have been comments by others
        +... no particular rush, I can try out various versions quite easily as I have an easy-to-change Turtle* parse
        +... to have annotations inside annotations there needs to be a trailing delimiter +

        + +

        +mielvds: < vs { is an issue +

        + +

        +AndyS: yes, but they do do different things
        +... someone suggested using << >> but this may not work
        +... the annotation syntax is for convenience so maybe nesting is not needed +

        + +

        +pchampin: there is no rush, the item is on the agenda because of the recent activity
        +... another issue is the position of the annotation - after object or after pedicate +

        + +

        +<james> "dropping down" would be nice, except that, andy, is it not the intent, that are not interchangable? +

        + +

        +<TallTed> not exactly meaning to put a rush on this, but without at least a well-considered proposed notation, we can't discuss things well through email or github or much else... and significant changes later in the process are only likely to increase confusion in an already confusing topic +

        + +

        +pchampin: after predicate is close to property graphs and Neo4J
        +... after object appears to work better in Turtle +

        + +

        +AndyS: there are also complications in N3 with after predicate and certain delimiters +

        + +

        +<gkellogg> Perhaps “before the object”, rather than “after the predicate”, which allows for “,” +

        + +

        +pchampin: two separate issues - bracket style and position
        +... after the object works better in Turtle +

        + +

        +pfps: nesting is allowed everywhere else so non-nesting annotations is a significant new thing +

        + +

        +AndyS: yes, and the grammar will be complicated a lot +

        + +

        +<AndyS> pfps: there was proposal (mention) to have no nesting in annotation +

        + +

        +<pchampin> sf +

        + +

        +gkellogg: there should be a test for nested annotations
        +... using "before the object" will allow for more uses than "after the predicate"
        +... yarspg might be a nicer syntax - it's more like what PG users might expect +

        + +

        +mielvds: maybe annotations are not so useful in Turtle but more useful in SPARQL +

        + +

        +AndyS: these parts of the syntax are very similar in Turtle and SPARQL +

        + +

        +thomas: ...
        +... embedded triples are whole triples so it seems better to have the annotation after the object +

        + +

        +pchampin: but in shorthands the entire triple is not beforehand
        +... no rush, but can we reach some agreement now +

        + +

        +mielvds: annotations after the embedded triples looks like quads +

        + +

        +AndyS: all this is for Turtle, so there are no quads +

        + +

        +<TallTed> "annotation of a triple" is roughly "description of a triple", which seems more applicable to inscription (e.g., Turtle) than query (e.g., SPARQL). +

        + +

        +<TallTed> Also, in RDF(-plain), Turtle and SPARQL graph patterns have been built to be copy-pasteable +

        + +

        +mielvds: should the syntax go outside the triple syntax - annotations in both styles do this +

        + +

        +AndyS: annotation syntax does not add anything +

        + +

        +pchampin: I concur +

        + +

        +AndyS: the Turtle* syntax examples show annotations, please take a look +

        + +

        +mielvds: the question is whether Turtle* should go outside triple syntax +

        + +

        +AndyS: shall we just let this lie for now? +

        + +

        +pchampin: sounds like a plan +

        + + +

        +<pchampin> ACTION: AndyS to gather in one place the proposals about the annotation syntax +

        + +

        +AndyS: picking the best answer may be difficult +

        + +

        open-ended discussions

        + +

        +<AndyS> BTW -- Good point to leave open possibility of n-ary syntax in some future +

        + +

        +<AndyS> scribe:AndyS +

        + +

        +<pfps> pfps: it would be useful to have some rationale for the proposal for the proposed semantics +

        + +

        +<pfps> pfps: I'm having problems figuring out why the semantics is the way it is so I can't figure out why it is good or not +

        + +

        new semantics (open discussion)

        + +

        +<ora> I have to drop, sorry. +

        + +

        +pchampin: Use current RDF semantic by mapping RDF* to abstract RDF and hence leverage semantics.
        +... has been an idea embedded triples are literal-like (self-denote in every interpretation) +

        + +

        +pfps: rdf:S* -- why not rdf:subject? (Similarly for P* and O*)
        +... RDF* has every URI/bnode/literal as a node in the RDF* graph (scribe: ????)
        +... no rationale why it is this way
        +... could have used existing reification vocabulary +

        + +

        +pchampin: will think it through +

        + +

        +<TallTed> perhaps instead of `<< :s :p :o >>` as a new object type, we might should consider `" :s :p :o "^^rdfstar:embed` as a new typed literal +

        + +

        +<pfps> I had a proposal for using RDF reification plus a couple of other properties that appears to capture the intended meaning of RDF* +

        + + +
        +

        Summary of Action Items

        + +[NEW] ACTION: AndyS to gather in one place the proposals about the annotation syntax
        +[NEW] ACTION: thomas submit an issue about the link to the 1999 spec about reification

        + +

        Summary of Resolutions

        + +
          + + +[End of minutes]
          +
          + +
          + Minutes manually created (not a transcript), formatted by David Booth's + scribe.perl version (CVS log)
          + $Date$ +
          +
          + +
          + + diff --git a/corese-unit-test/src/test/resources/data/rdf-star-main/Minutes/2021-01-15.html b/corese-unit-test/src/test/resources/data/rdf-star-main/Minutes/2021-01-15.html new file mode 100644 index 0000000000..2c253ac794 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/rdf-star-main/Minutes/2021-01-15.html @@ -0,0 +1,569 @@ + + + + RDF* -- 15 Jan 2021 + + + + + + + + +

          W3C +

          + + +

          RDF*

          +

          15 Jan 2021

          + + + + + +

          Attendees

          + +
          +
          +
          Present
          +
          AndyS, gkellogg, TallTed, pchampin, thomas, gatemezing, pfps
          +
          Regrets
          +
          +
          Chair
          +
          pchampin
          +
          Scribe
          +
          gkellogg
          +
          +
          + +

          Contents

          + +
          +
          +

          +<pchampin> scribe: gkellogg +

          + +

          Review pending actions

          + +

          +<pchampin> https://github.com/w3c/rdf-star/issues/40 +

          + +

          +pchampin: Just the long-standing action the test suite… +

          + +

          +afs: I have an action on summarizing the syntax issues. +

          + +

          +pchampin: I’ll add an issue so it shows up in the list.
          +... There was a PR on the test suite, but it was merged, as it didn’t seem to require call time.
          +... There were some new tests around combinations of embedding. Further PRs are welcome. +

          + +

          sections on "triples vs occurrences"

          + +

          +<pchampin> https://github.com/w3c/rdf-star/pull/75 +

          + +

          +<gatemezing> s/Present + / present+ +

          + +

          +pchampin: I’ve seen some comments on the PR discussions. pfps has raised a number of issues, and thomas one I haven’t seen yet. +

          + +

          +thomas: I like that it’s more prominent in 2.1 and not just the appendix. I think the seminal example should be explained at the top in 2.1 and why it doesn’t work.
          +... There’s also the relationship to RDF refication, which should be more prominant in sect 2.
          +... So that people coming to RDF* thinking it solves their problem will be well informed without needing to fully understand the semantics.
          +... It took a while to understand these bits, and the spec should be clear. +

          + +

          +pchampin: The overview section now has an example, and another in 2.1.
          +... As pfps pointed out, the spec doesn’t require people to have read the initial papers, and should be self-suficcient. Starting with a bad example and explaining why it is bad doesn’t seem like a good way to start. +

          + +

          +thomas: I think 2.1 is fine, just make it clear where rdf* stands WRT reification. +

          + +

          +pfps: I disagree with thomas and think the semanal example should be relegated. The Appendix is far to kind to the seminal example, and it should be stated as such. The example was wrong and misleading.
          +... Lets say that and move on. +

          + +

          +pchampin: I’m sorry olaf can’t be hear to make a case. I’ve stated that I’m not as harsh on the example. +

          + +

          +pfps: THere’s evidence to bvack up my statement: multiple people are confused if RDF* has unique triples. +

          + +

          +pchampin: But, there are a number of people that were not so misled.
          +... The so-called “seminal-example” is the running example used in the original papers. It’s copied into the current spec. +

          + +

          +<pchampin> https://pr-preview.s3.amazonaws.com/w3c/rdf-star/pull/75.html#the-seminal-example +

          + +

          +<pfps> The example is the one in http://ceur-ws.org/Vol-1912/paper12.pdf +

          + +

          +pchampin: The problem with the example is that it gives the impression that the <<…>> embedded triples represent ocurances of triples. Not an occurance of the triple in some document.
          +... IMO, the definitions say it’s the abstract triple, and not the ocurance. +

          + +

          +ora: iin writing a spec, our goal should be confusion-free. WIthout expressing my opinion, I agree that it’s confusing. +

          + +

          +<TallTed> Perhaps we could just say "The world has turned. Original documents were problematic in various ways. We have not reproduced the problematic parts here because they were problematic and we don't want to continue those problems." and then actually leave out the problematic parts... +

          + +

          +<pchampin> STRAWPOLL: change the wording in appendix A.2 to more clearly disqualify the seminal example as "bad" +

          + +

          +<pfps> +1 +

          + +

          +<thomas_> -1 +

          + +

          ++1 +

          + +

          +<pchampin> -0.5 +

          + +

          +<AndyS> +0 +

          + +

          +ora: you want the example to not only not be in any future spec, but characterize the previous use as “bad”. +

          + +

          +<james> +1 : present and indicating the meaning +

          + +

          +<gatemezing> gatemezing: q+ +

          + +

          +pchampin: I thought it was important to acknowledge that the previous documents were misleading. THe idea was to try to fix the damage that was done and that the community has evolved. +

          + +

          +TallTed: I noted on one of the issues that the original document should be relegated to history. It was a solo effort and made some errors. We don’t need to reproduce anything from it, other that to say it’s historical. +

          + +

          +pchampin: That’s the title of the appendix. I think it’s better to have this recorded near the spec, rather than burried in an archive. +

          + +

          +<gatemezing> +1 to TallTed, without any mention of "bad" or whatever +

          + +

          +TallTed: Olaf agreed. We shouldn’t reproduce anything problemantic, other than to say that something previous was problemantic. +

          + +

          +ora: I agree, let’s not reproduce it or signal it out. Historical documents are exactly that and shouldn’t be given additional relevance. +

          + +

          +TallTed: The spec is a produce of a group, where we can strive for perfection. +

          + +

          +james: I oppose this; the document will be found and will be misleading unless there’s another document that repudiates it, +

          + +

          +TallTed: Iagree to have a reference to another document which repudiates the previous doc. +

          + +

          +james: As long as it’s clear that we say these documents don’t agree. If there’s another document that says why it is wrong, you’re accounting for it. +

          + +

          +thomas_: The appendix was a way to understand the relationship with reification. We’ll need to come back to that and explain how this relates to other versions such as RDF reification. +

          + +

          +pchampin: I’m a bit unconfortable with the way we’re going. I don’t feel the spec is fundmentally different from the original paper. I still think that the core of the paper is aligned with the spec.
          +... I understand the arguments, but the problems didn’t prevent this group from happending.
          +... The example is misleading, but there is much else in the paper which is relevant. +

          + +

          +thomas_: The original paper has two different versions, the semantics and the example. THis was just until recently. +

          + +

          +ora: once the new spec is out, does one need to read the older papers? W3C has a long history of publishing new, sometimes very different versions and that it supercedes the previous work.
          +... I don’t think we need to do more than that. +

          + +

          +AndyS: I’m in the same place as Ora; we should say it is superceded and we don’t need to explain it. +

          + +

          +TallTed: This supercedes what came before. It was an input and we don’t need to re-explain anything in it.
          +... We can’t put warnings on the old documents, because they are PDFs. We need to make this document solid. +

          + +

          +james: I want to reiterate that because you think you need to refer to it, is wrong. If I see a document with new semantics, I ignore the old semantics. You shouldn’t require the previous document in order to understand the spec. +

          + +

          +<thomas_> +1 to james +

          + +

          +pchampin: I agree on that. That being said, we can say that it is superceded. +

          + +

          +james: “Don’t read this paper!” +

          + +

          +pchampin: Don’t expect to find consistency between the paper and the spec. +

          + + +

          +<pchampin> ACTION: pchampin to get back admin priviledge on BBB, or find another platform +

          + +

          +gatemezing: Another option would be to say that someone could write a paper that states that there was something misleading before we get to the output of this group. +

          + +

          +<pchampin> STRAWPOLL: replace appendix A.2 by a sentence in the introduction explaining that seminal papers are not entirelt aligned with the spec +

          + +

          +<james> -1 +

          + +

          +<pchampin> -0.5 +

          + +

          +<thomas_> -0.5 +

          + +

          +AndyS: Just say that the editor understands the concerns and move on. +

          + +

          +<ora> 0 (just not sure yet) +

          + +

          +<TallTed> +0 strawpoll +

          + +

          +<TallTed> +1 AndyS +

          + +

          +<gatemezing> gatemezing: +0 +

          + +

          +pchampin: I’ll keep the appendix and try to make the language more explicit without being dismissive.
          +... Otherwise, we have a point by thomas_ to improve 2.1. +

          + +

          Discuss the new semantics proposal

          + +

          +pchampin: I understand that this is a technical topic that not everone wan’t to go into in too much detail.
          +... To make the call time more productive, I wanted to validate by closing some issues. +

          + +

          +<pchampin> https://github.com/w3c/rdf-star/issues/37 +

          + +

          +pchampin: This is a syntactice sugar issue. There are some choices in the proposal.
          +... There was an agreement to make RDF* syntactic sugar on RDF reification, so that the semantics is not something new, by mapping RDF* syntax to RDF syntax.
          +... it’s ot possible to map RDF* syntax to RDF syntax.
          +... We can say there exist IRIs to do the mappings, but we don’t give them. +

          + +

          +AndyS: I like the approach, and not to be able to write it “raw” in RDF Turtle. +

          + +

          +thomas_: Is this an optimization? Shouldn’t we do that for lists and other complex constructs. +

          + +

          +pchampin: I think the same approach could have been taken for Lists. The idea is to alow implementors to optimize it without having to handle the bad implications. +

          + +

          +AndyS: If the users can break the assumptions, they will do so. +

          + +

          +pfps: I disagree with both: I prefer the semantic approach in the original “ash can” document, partly because it relates back to RDF reification.
          +... I like the ability to describe parts of triples and have more freedom to fidle with it using RDF reification. +

          + +

          +pchampin: That freedom is what we’re trying to avoid :)
          +... There was not a 1-1 mapping between RDF* and reification. +

          + +

          +pfps: You could use the nice new syntax if it was useful, but you could also go from that to other kinds of RDF reification and have them inter-relate. The new syntax gives us two different styles. One is wide-open, but the other is a useful subset; you can’t easily go from one to the other.
          +... You could, if you wanted to relate the two. +

          + +

          +pchampin: Is that something you’d like to include in the spec +

          + +

          +pfps: If it turns out that the new view of reification is what’s in RDF*, it would be good to relate it back to the old view; but, I don’t think it’s necessary. +

          + +

          +AndyS: I think mapping from RDF* into “full reification” is the way to do it. Whether from new semantics or directly embedded semantics.
          +... We might want to write something about transforming from one to the other. +

          + +

          +pchampin: There’s also an issue about named graphs, and we should have an appendix exploring the relations and differences. +

          + +

          +<pchampin> STRAWPOLL: are you ok with "abstract syntactic sugar", i.e. being unable to serialize RDF* in plain Turtle / RDF-XML / etc... +

          + +

          +<pchampin> +1 +

          + +

          +<AndyS> +1 +

          + +

          +<ora> +1 +

          + +

          ++1 +

          + +

          +<gatemezing> +1 +

          + +

          +<james> -1 +

          + +

          +<pfps> +0.5 I would prefer not extending the abstract syntax but I'm OK with an abstract-to-abstract mapping +

          + +

          +<thomas_> -0 +

          + +

          +<TallTed> this does appear to force new MIME types and file extensions... +

          + +

          +<TallTed> +0 +

          + +

          +<AndyS> Disagree - as per issue discussion. +

          + +

          +<pchampin> https://github.com/w3c/rdf-star/issues/43 +

          + +

          +TallTed: It’s important to cover the rough implications of a decision such as this. +

          + +

          +<pfps> But doesn't RDF* itself require a new MIME type? Isn't just the <<>> syntax enough for a new MIME type? +

          + +

          +james: I’m turning out to be the oly RDF purist, apparently. I don’t think you should have to chase afte rnew mime types.
          +... If at some point there is a clear semanics, I’m willing to consider new mime types. But not until I understand that. +

          + +

          +<AndyS> MIME types are not automatically strict - c.f.XML, HTML. +

          + +

          +<james> pfps: YES +

          + +

          +pchampin: Do you consider that the current semantics is not clear enough? +

          + +

          +james: If there were clear semantics I could implement it. If it does entail a new mime-type, I’d be comfortable if it could be represented using existing mime-types. +

          + +

          +pchampin: There is a clear way. We say there is an IRI, but don’t give it, then you can implement it that way. You can’t expect anyone else to understand it. +

          + +

          +james: Then you undercut interoperability. +

          + +

          +AndyS: Mime-types don’t guarantee semantic interoperation.
          +... There is a translation that can be made to RDF. +

          + +

          +<pchampin> ack: pfps +

          + +

          +pfps: I’m confused: <<>> requires a new MIME type, right? +

          + +

          +AndyS: It’s not automatic, it’s one option.
          +... Old data is not invalidated. +

          + +

          +<gatemezing> Re AndyS : that's why there are people working on syntaxis interoperability +

          + +

          +AndyS: If we’re going to anticipate that it will change again we might not create a mime-type. +

          + +

          +<TallTed> IANA might beg to differ +

          + +

          +AndyS: TallTed I think that’s a big claim. Profiles are one way this has been done. +

          + +

          +<thomas_> still I'm not sure this whole thing is not premature optimization +

          + +

          +AndyS: You haven’t changed the meaning of a document by adding new syntax, because the worst that can happen is that you fail. Two implementations won’t interpret differently.
          +... If you have old data, what is the mime type? You might need to look at the entire document before you assign a mime type, +

          + +

          +ora: Before supporting RDF* and I see the mime type, I think I can parst it, but I can’t. +

          + +

          +AndyS: Who’s responsibility is it? +

          + +

          +ora: if there’s a new syntax there should be a new mime-type. +

          + +

          +AndyS: Then you have the consideration if you don’t know. Are you going to lock out old clients because somewhere it may happen.
          +... Please give feedback on the issues. +

          + +

          +<TallTed> Regrettable decisions were made a long while back about not including any info within the file about what it is, e.g., `Turtle 1.0` vs `Turtle 1.1` vs `Turtle* 1.0` +

          + +

          +<TallTed> JSON-LD now has a declaration within the file about being 1.0 vs 1.1 +

          + + +
          +

          Summary of Action Items

          + +[NEW] ACTION: pchampin to get back admin priviledge on BBB, or find another platform

          + +

          Summary of Resolutions

          + +
            + + +[End of minutes]
            +
            + +
            + Minutes manually created (not a transcript), formatted by David Booth's + scribe.perl version (CVS log)
            + $Date$ +
            +
            + +
            + + diff --git a/corese-unit-test/src/test/resources/data/rdf-star-main/Minutes/2021-01-22.html b/corese-unit-test/src/test/resources/data/rdf-star-main/Minutes/2021-01-22.html new file mode 100644 index 0000000000..d0e2285cc8 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/rdf-star-main/Minutes/2021-01-22.html @@ -0,0 +1,519 @@ + + + + RDF-Star * -- 22 Jan 2021 + + + + + + + + +

            W3C +

            + + +

            RDF-Star *

            +

            22 Jan 2021

            + + + + + +

            Attendees

            + +
            +
            +
            Present
            +
            AndyS, rivettp, pchampin, gkellogg, olaf, pfps, TallTed
            +
            Regrets
            +
            +
            Chair
            +
            pchampin
            +
            Scribe
            +
            olaf
            +
            +
            + +

            Contents

            + +
            +
            +

            +<ora> I have to drop at 15 past, because of a family commitment. +

            + +

            +<ora> Also, I volunteer to scribe in our next meeting. Perhaps I will be sufficiently " +

            + +

            +<ora> "up to speed" to do a decent job. ;-) +

            + +

            +<pchampin> scribe: olaf +

            + +

            pending actions

            + +

            +<pchampin> https://github.com/w3c/rdf-star/issues?q=is%3Aopen+is%3Aissue+label%3Aaction +

            + +

            +<pchampin> https://lists.w3.org/Archives/Public/public-rdf-star/2021Jan/0065.html +

            + +

            +pchampin: actions can be closed
            +... test suite
            +... only missing item is about SPARQL* syntax
            +... this may be left open for the moment +

            + +

            N-Triples*: call for volunteers

            + +

            +pchampin: no spec test for N-Triples*
            +... however, we are using this syntax already in the test suites
            +... anyone interested in writing/drafting this part of the spec?
            +... please chime in on the github issue
            +... shouldn't be too difficult to write that +

            + +

            +<pchampin> ack: gkellogg +

            + +

            +pchampin: the parsing may be more difficult b/c it has to recursive
            +... gkellogg: can write it
            +... don't think the recursion makes it difficult
            +... what will be harder will be to extend this for quads +

            + +

            +<pchampin> https://www.w3.org/TR/n-triples/#h2_sec-parsing +

            + +

            +pchampin: there is already something about triple construction +

            + +

            +AndyS: NTriples grammar is just text
            +... so the task is to simply copy the right pieces from that +

            + +

            +gkellogg: we need a separate discussion for NQuads +

            + + +

            +<gkellogg> ACTION: gkellogg to contribute N-Trnples* section +

            + +

            Continue last week's interrupted discussion on Syntactic Sugar / Mime types

            + +

            +pchampin: discussion last week started about syntactic sguar
            +... then it moved on to mime types
            +... (do we need to extend them / new ones)
            +... any more comments on this now? +

            + +

            +ora: want to confirm, is there an impliciation that there may be docs that are Turtle* but
            +... do not use any of the new RDF* features? +

            + +

            +pchampin: yes +

            + +

            +AndyS: does not work +

            + +

            +ora: ACCEPT header may come into play in a client-server setting? +

            + +

            +AndyS: yes, but then the server has to change its current behavior
            +... whole result needs to be inspected before responding to ACCEPT
            +... tried to find definitive text on mime types
            +... couldn't find
            +... some examples in which the syntax has changed but the mime type did not
            +... XML
            +... it's difficult to change mime types
            +... old counterexample is Turtle itself +

            + +

            +<ora> (Unfortunately I have to drop. Bummer, interesting conversation.) :-( +

            + +

            +AndyS: and SPARQL
            +... for these no change of mime type but the specs changed/evolved +

            + +

            +gkellogg: raised examples of HTML and ??
            +... it would be an exception to make an incompatible change and then change the mime type +

            + +

            +<pchampin> HTML is not a good example IMO, because browser have a history of "accepting" invalid HTML anyway +

            + +

            +gkellogg: we are not authorized the spec for Turtle
            +... so, reference for text/turtle would still be to the Turtle doc
            +... proposal to extend the mime type
            +... difficult to find examples of groups who have done something like this +

            + +

            +james: would take Turtle and NTriples as example
            +... if a client says it understand Turtle
            +... would not return something that the client cannot understand +

            + +

            +AndyS: danger of locking out old clients +

            + +

            +gkellogg: how was the transition for SPARQL? +

            + +

            +AndyS: took years to happen
            +... for SPARQL 1.1, SPARQL 1.0 works
            +... still systems out there that only speak RDF 1.0
            +... semantics are different
            +... different triples may come out by parsing the same doc +

            + +

            +pchampin: to james' concern, I agree
            +... not comfortable for the server to break the contrast
            +... contract
            +... but maybe we are overinterpreting mime type as a strong contract +

            + +

            +james: how else to interpret it?
            +... 500 error should be return +

            + +

            +AndyS: a robust client should read the whole doc in
            +... before passing it on to the application software +

            + +

            +james: okay, but what's the effect of this on the contract? +

            + +

            +AndyS: our group cannot change the mimetype +

            + +

            +james: if you have a process in which the client has given ACCEPT with SPARQL with SELECT
            +... but then sends a CONSTRUCT query +

            + +

            +AndyS: correct answer is you do not have to respect ACCEPT field
            +... server may still send back something in a different format
            +... no evidence in the doc about mimetypes that a change of the mimetypes is necessary
            +... what about */*? +

            + +

            +james: in this case, the server can elect +

            + +

            +AndyS: but then the server has to cache the whole response to figure out the media type before responding +

            + +

            +james: agrees with greg's suggestion to have a profile +

            + +

            +pchampin: but then the client has to be aware
            +... that the profile may break the content +

            + +

            +AndyS: cannot do that because profiles are subset not supersets
            +... instead , parameter is needed +

            + +

            +gkellogg: requiring a parameter is a way to solve james' concern +

            + +

            +AndyS: parameters are not part of the registration
            +... profiles are +

            + +

            +<pchampin> STRAWPOLL: keep the old content-types, but augment them with a profile or parameter to make it explicit that the content MAY contain RDF*-specific features +

            + +

            +<pchampin> +1 +

            + +

            +<AndyS> "MAY augment" +

            + +

            +<gkellogg> +1 +

            + +

            +<pchampin> STRAWPOLL: keep the old content-types, but provide a way to augment them with a profile or parameter to make it explicit that the content MAY contain RDF*-specific features +

            + +

            +<james> +1 +

            + +

            +<pchampin> +1 +

            + +

            ++0 +

            + +

            +<thomas> -1 +

            + +

            +<AndyS> +0.5 +

            + +

            +<TallTed> +0.5 seems like the minimum possible +

            + +

            +<pfps> +0 +

            + +

            +thomas: as long as this is just a CG, I feel bad about changing Turtle and not being explicit about it
            +... publishing something as Turtle but that is not actually (pure) Turtle is not a good idea +

            + +

            +<TallTed> all old Turtle is also new Turtle-star, but some new Turtle-star is not also old Turtle +

            + +

            Discuss the new semantics proposal

            + +

            +pchampin: things are moving on the front of the new proposed semantics
            +... it build on the RDF semantics
            +... in current proposal the semantic of embedded triples is rigid and close to literals
            +... difference between literals and IRIs is that literals are constraint to mean the same in all possible interpretations
            +... their meaning is defined by the datatype
            +... embedded triples in the current semantics are a bit like that
            +... i.e., their meaning is the same in all possible interpretation
            +... their meaning is essentially the triples themselves
            +... Are we okay with embedded triples acting as something like a literal? +

            + +

            +<thomas> is this a strawpoll? +

            + +

            +pfps: discomfort with triples as literals is that
            +... this adds lots of additional machinary that's not necessary +

            + +

            +pchampin: understands the reluctance to add machinery
            +... to be clear, it's not a datatype +

            + +

            +pfps: in contrast, there is a new datatype +

            + +

            +pchampin: but this datatype is not for triples +

            + +

            +pfps: it is a hidden datatype
            +... and hidden predicates +

            + +

            +pchampin: if we didn't want to have bnodes inside embedded triples,
            +... (i.e., only ground emb. triples), then
            +... things would be much easier.
            +... however, the emb.triples have an internal structure
            +... that we want to preserve in some wa<
            +... way +

            + +

            +pfps: yet, is this extra stuff necessary? +

            + +

            +pchampin: what cannot be ensured otherwise is that
            +... emb.triples with different, say, subject are different things. +

            + +

            +pfps: where is that in the things that are written down?
            +... have to stop adding desiderata at some point +

            + +

            +pchampin: just trying to explain
            +... didn't want to sound like it must be like that +

            + +

            +<pchampin> STRAWPOLL: should << :s :p :o >> and << :s2 :p :o >> always denote different things? +

            + +

            +pchampin: question to others ...strawpoll +

            + +

            +thomas: do not understand the question +

            + +

            +<AndyS> FYI: Stardog has an opinion in this area. +

            + +

            +<james> do :s and :s2 denote different things +

            + +

            +<pfps> If they always do, then how can extensions make them the same thing if :s and :s2 are the same? +

            + +

            +thomas: problem with the semantics, it is so specific
            +... specific to special problem +

            + +

            +<Zakim> TallTed, you wanted to say Embedded-triples-as-subjects can't be simple literals, because literals aren't allowed as subjects in RDF. At minimum, they have to be treated as +

            + +

            +thomas: it's not for the use cases that people will use it for +

            + +

            +TallTed: emb.triples cannot be literals
            +... would have to be treated as synt.sugar for single-triple named graphs
            +... and special treatment needed because things may not be meant to be asserted +

            + +

            +thomas: reification is just one way to go about adding statements about statements +

            + +

            +AndyS: there were very long discussions about reification in the RDF WG +

            + +

            +thomas: we can have a different semantics for embedded triples
            +... how to get from the ref.opacity to ref.transparency
            +... why go from a mainstream semantics to a specific one? +

            + +

            +pchampin: why don't you go to standard reification if you want ref.transparency? +

            + +

            +thomas: the proposed semantic have nothing to do with reification +

            + +

            +<TallTed> There seem to be conflicting beliefs about what "everyone" wants to get from RDF-star. It might be worthwhile to open a large-scale poll on just that -- is it somehow easier/better reification/annotation; is it a bridge between RDF Graphs and Property Graphs; is it something else? +

            + +

            +thomas: doesn't make sense as a general solution +

            + +

            +pchampin: thanks for the lively discussion +

            + +

            +<pfps> It is possible to get referential opacity by adding extra properties to standard reification. Then RDF* is just sugar for five (or so) triples. +

            + +

            +pchampin: better understand the arguments of people +

            + + +
            +

            Summary of Action Items

            + +[NEW] ACTION: gkellogg to contribute N-Trnples* section

            + +

            Summary of Resolutions

            + +
              + + +[End of minutes]
              +
              + +
              + Minutes manually created (not a transcript), formatted by David Booth's + scribe.perl version (CVS log)
              + $Date$ +
              +
              + +
              + + diff --git a/corese-unit-test/src/test/resources/data/rdf-star-main/Minutes/2021-02-05.html b/corese-unit-test/src/test/resources/data/rdf-star-main/Minutes/2021-02-05.html new file mode 100644 index 0000000000..8ba859ddbd --- /dev/null +++ b/corese-unit-test/src/test/resources/data/rdf-star-main/Minutes/2021-02-05.html @@ -0,0 +1,576 @@ + + + + RDF* -- 05 Feb 2021 + + + + + + + + +

              W3C +

              + + +

              RDF*

              +

              05 Feb 2021

              + + + + + +

              Attendees

              + +
              +
              +
              Present
              +
              TallTed, pchampin, AndyS, gkellogg, rivettp, olaf, thomas, pfps
              +
              Regrets
              +
              Ora_Lassila
              +
              Chair
              +
              pchampin
              +
              Scribe
              +
              AndyS, pchampin
              +
              +
              + +

              Contents

              + +
              +
              +

              +<AndyS> OK +

              + +

              +<pchampin> scribe: AndyS +

              + +

              Review pending actions

              + +

              +<pchampin> https://github.com/w3c/rdf-star/issues?q=is%3Aopen+is%3Aissue+label%3Aaction +

              + +

              +Please "present+" if you are here and not on the list above. +

              + +

              +<pchampin> https://github.com/w3c/rdf-star/issues/16 +

              + +

              +<pfps> presetn+ +

              + +

              +pchampin: Action on NT*. Gregg can claim success. +

              + +

              +<pfps> Close it. +

              + +

              Discuss Gregg's PR on N-Triples* and N-Quads*

              + +

              +<pchampin> https://github.com/w3c/rdf-star/pull/87 +

              + +

              +gregg: Nothing surprising.
              +... recursive parsing on <<>> triple terms.
              +... NQ is informative : NT*+graph label. +

              + +

              +pchampin: any other inputs? +

              + +

              +<TallTed> Maybe we change these names sooner than later? N-Triples-star and N-Quads-star? (or, hey, what about N-star-Triples and N-star-Quads?) +

              + +

              +olaf: happy +

              + +

              +gatemezing: why NQ* not normative? +

              + +

              +gregg: section does not make any normative statements +

              + +

              +pchampin: seems substantive enough to implement an NQ* +

              + +

              +gregg: will update with a normative sentence. +

              + +

              +<pchampin> PROPOSED: merge PR 87 in the CG report, after making the N-Quads* section normative (with the appropriate normative statement) +

              + +

              +<TallTed> +1 modulo 2 fixes I just submitted... +

              + +

              +<pchampin> +1 +

              + +

              +<gkellogg> +1 +

              + +

              ++1 +

              + +

              +<olaf> +1 +

              + +

              +<james_> +1 +

              + +

              +<gatemezing> +1 +

              + +

              +<thomas> 0 +

              + +

              +<pfps> +1 +

              + +

              +<rivettp> +1 +

              + +

              +RESOLUTION: merge PR 87 in the CG report, after making the N-Quads* section normative (with the appropriate normative statement) +

              + +

              Discuss the naming issue

              + +

              +<pchampin> https://github.com/w3c/rdf-star/issues/20 +

              + +

              +pchampin: proposal is "RDF-star" for our work, "RDF* " is Olaf+Bryan's work. +

              + +

              +<pfps> Isn't * a Latin character (and even an ASCII character)? It's just a character that some search engines appear to attach special meaning to. +

              + +

              +<TallTed> "RDFstar" may be better than "RDF-star", especially but not only for web searching +

              + +

              +pfps: RDFStar +

              + +

              +<pfps> RDFStar is RDFS tar +

              + +

              +<olaf> RDFstar then? +

              + +

              +<TallTed> (ah, yes, the eternal "PenIsland.com" quandary) +

              + +

              +<pfps> RDFstar is somewhat better +

              + +

              +<TallTed> all lowercase is super ... rdfstar +

              + +

              +gregg: other related terms. N-Triples etc. +

              + +

              +<TallTed> RDFTNG, TurtleTNG, N-TriplesTNG, N-QuadsTNG, RDFTNG/XML, TriGTNG +

              + +

              +gregg: use with SPARQL (SPARQL-star) +

              + +

              +<TallTed> this kool aid is bad. +

              + +

              +gregg: existing practice N-Triples. +

              + +

              +ted: forking is not doing any good. +

              + +

              +TallTed: evolution of RDF
              +... fork in the road. +

              + +

              +AndyS: name is the work of this group - no further implication +

              + +

              +<gkellogg> RDF 1.1* +

              + +

              +pchampin: input for future working group. +

              + +

              +<TallTed> RDFbis ... RDFfuture ... RDFpossibilities +

              + +

              +<gkellogg> RDF 1.1 + Embedding +

              + +

              +<TallTed> RDFembed +

              + +

              +gregg: subgroup for the concerns +

              + +

              +<thomas_> staRDF +

              + +

              +<gkellogg> RDF 1.1a +

              + +

              +<thomas_> the initial criticism was searchability and that is probably justified. evereything else, like forkig etc, seems premature optimization to me +

              + +

              +<TallTed> substituting "-star" (or "star") for all suffixes of "*" sort-of works, at least insofar as it fixes search engine issues and removes the regex(etc) wildcard, and within the cabal who know of this work +

              + +

              +<TallTed> if it's *not* a fork, then "*"/"star" suffix is more painful. "RDF-DEV" +

              + +

              +<pchampin> STRAWPOLL: replace "*" with "-star" +

              + +

              +<TallTed> RDF-DEV-embedding +

              + +

              +<TallTed> it's super long, but clear as a bell +

              + +

              +<pchampin> +1 +

              + +

              +<TallTed> +1 +

              + +

              ++1 to strawapoll +

              + +

              +<gkellogg> + +

              + +

              +<gatemezing> +1 +

              + +

              +<olaf> +1 (to the strawpoll) +

              + +

              +<james_> +1 for "-star" universally +

              + +

              +<thomas_> 0 +

              + +

              +<gkellogg> Corralary might be JSON-LD CG-embedding +

              + +

              +<rivettp> +1 +

              + +

              +<thomas_> staRDF might actually be not such a bad idea... +

              + +

              +RESOLUTION: replace "*" with "-star" +

              + +

              +pchampin is a star. +

              + + +

              +<pchampin> ACTION: pchampin to update the current draft, replacing "*" with "-star" +

              + +

              +<TallTed> worth noting -- https://www.google.com/search?q=rdf-star 1.7M results vs https://www.google.com/search?q=rdfstar 0.1M results +

              + +

              publishing of a "first public working draft"

              + +

              +<james_> "rdf-star" yields 44.9k +

              + +

              +pchampin: As in a WG, put out work-in-progress documents.
              +... at a URL with date (see normal WG process).
              +... send link to RDF-DEV ML. +

              + +

              +<james_> ... the first one being the rdf* community group github site. +

              + +

              +(and twitter and the rest) +

              + +

              +<pchampin> scribe: pchampin +

              + +

              +AndyS: this does not imply that we all agree about what's in the document
              +... let the world know what's going on, attract interested people
              +... avoid getting stuck in our private "loops" +

              + +

              +<AndyS> thomas_: disagreement on semantics +

              + +

              +<gatemezing> +1 to Andy's points to reach out and attracj more people out there +

              + +

              +<AndyS> pchampin: text on main branch is a long way off discussions. +

              + +

              +<AndyS> ... pull request in progress +

              + +

              +<AndyS> thomas_: removing it gives the wrong impression +

              + +

              +<AndyS> pchampin: new text is closer to current discussions +

              + +

              +<TallTed> +1 major change PRs should be merged before FPWD is announced +

              + +

              +<AndyS> +1 to merge PR - "editors working draft" is work-in-progress +

              + +

              +<AndyS> james_: need a stable doc +

              + +

              +<AndyS> pchampin: In a WG, a "Last Call" doc is that. +

              + +

              +<scribe> scribe: pchampin +

              + +

              +<AndyS> scribe: AndyS +

              + +

              +<scribe> scribe: AndyS +

              + +

              +<gkellogg> From W3C process, I think it would be a “CG Draft” publication. +

              + +

              +gregg: common practice is a "publications" area for a CG (dated links, immutable)
              +... Community Groups have "CG draft", and "CG report". Drafts form a one-way linked list. +

              + +

              +<gatemezing> FCGD - First Community Group Draft with time stamp version - according to gregg +

              + +

              +gregg: Landing page refers to most recent draft and also a live doc. +

              + +

              +<olaf> https://w3c.github.io/rdf-star/ +

              + +

              +rivettp: have a clear home page
              +... tag in GH +

              + +

              +<gkellogg> yes, the current page is a good starting point. +

              + +

              +rivettp: READ as to status of docs +

              + +

              +tallted: pipeline of technologies +

              + +

              +<gatemezing> Yes, the current page https://w3c.github.io/rdf-star/ by renaming RDF-* by RDF-star :) +

              + +

              +<pchampin> PROPOSED: release a first CG draft after the merge of PR87 +

              + +

              +<TallTed> "RDF 1.1 star 0.5b" +

              + +

              +<gkellogg> +1 +

              + +

              +<pchampin> +1 +

              + +

              +<TallTed> +1 +

              + +

              +<gatemezing> +1 +

              + +

              ++1 to the proposal +

              + +

              +<olaf> +1 +

              + +

              +<james_> +1 +

              + +

              +<thomas_> -1 +

              + +

              +<gkellogg> Perhaps add some editors notes on missing sections. +

              + +

              +<gatemezing> ok +

              + +

              +<TallTed> maybe publish current Editors Draft *with* addition of links in "Status of Document", to previews with (competing?) semantics PRs +

              + +

              +<gatemezing> Thanks all! +

              + + +
              +

              Summary of Action Items

              + +[NEW] ACTION: pchampin to update the current draft, replacing "*" with "-star"

              + +

              Summary of Resolutions

              + +
              1. merge PR 87 in the CG report, after making the N-Quads* section normative (with the appropriate normative statement)
              2. +
              3. replace "*" with "-star"
              4. +
              + + +[End of minutes]
              +
              + +
              + Minutes manually created (not a transcript), formatted by David Booth's + scribe.perl version (CVS log)
              + $Date$ +
              +
              + +
              + + diff --git a/corese-unit-test/src/test/resources/data/rdf-star-main/Minutes/2021-02-12.html b/corese-unit-test/src/test/resources/data/rdf-star-main/Minutes/2021-02-12.html new file mode 100644 index 0000000000..b255989c9f --- /dev/null +++ b/corese-unit-test/src/test/resources/data/rdf-star-main/Minutes/2021-02-12.html @@ -0,0 +1,453 @@ + + + + RDF-star -- 12 Feb 2021 + + + + + + + + +

              W3C +

              + + +

              RDF-star

              +

              12 Feb 2021

              + + + + + +

              Attendees

              + +
              +
              +
              Present
              +
              pchampin, AndyS, gkellogg, TallTed, gatemezing, olaf, thomas, rivettp_, pfps, (browser, crashed), twomas
              +
              Regrets
              +
              +
              Chair
              +
              pchampin
              +
              Scribe
              +
              @gatemezing
              +
              +
              + +

              Contents

              + +
              +
              +

              +<scribe> scribe: @gatemezing +

              + +

              pending actions

              + +

              +<pchampin1> https://github.com/w3c/rdf-star/issues?q=is%3Aopen+is%3Aissue+label%3Aaction +

              + +

              +pchampin1: we have to discuss on the pending actions
              +... on more work on SPARQL* and s/rdf*/rdf-star
              +... missing to do the same for the use case documents. We also have to rename them in the UC docs +

              + +

              +pchampin: AndyS can you work on those changes? +

              + +

              +<AndyS> AndyS: yes +

              + +

              +pchampin: will assign an action to AndyS to help for the record +

              + +

              Discuss the new PR for semantics

              + +

              +pchampin: Next topic - discussing the semantics +

              + +

              +<scribe> chair: pchampin +

              + +

              +pchampin: We have to solve some concerns regarding the semantics and if it can be added in the public draft
              +... Great summary by pfps on the mailing list on the current state of the affairs. see pfps message +

              + +

              +<pchampin> https://lists.w3.org/Archives/Public/public-rdf-star/2021Feb/0039.html +

              + +

              +pchampin: asking pfps if he can summarize his points for non technical people here +

              + +

              +pfps: Tried to find out the differences in the current proposals in the maling list and PRs on github
              +... only 3 of the 4 seem more important.
              +... A difference is one you generate RDF graph, do you do something special?
              +... The other importance is whether you use a hidden vocabulary o can't be assess except by using RDF-star
              +... If a scheme depends on the embedded semantics, there might be some issues..
              +... Differences can occur when merging before/after two RDF-star graphs
              +... The question is whether an embedded triple with illed form litteral is clearly stated or not? +

              + +

              +pchampin: I agree that special datatype is a detail, and it could be done without..
              +... Also agree that cornor case can be adapted in the proposal +

              + +

              +<pchampin> SELECT * { ?x rdf:subject ?y } +

              + +

              +pchampin: Do we expect RDF-star to retrieve embedded triples for that query? +

              + +

              +<pfps> If the RDF* vocabulary is not hidden, then the SPARQL(*) query above will return something in the presence of embedded triples. +

              + +

              +AndyS: There are specific rdf terms... +

              + +

              +<AndyS> And "SELECT * { ?s ?p ?o }" and similarly count queries. +

              + +

              +olaf: The hidden vocab will allow systems to be more flexible +

              + +

              +<gkellogg> Ruby RDF also uses a special term for an RDF triple (RDF::Statement). +

              + +

              +olaf: I'm in favour of hidden vocabularies and not see any convincing arguments to introduce specific URIs.
              +... Are they any arguments for that introduction? +

              + +

              +pfps: It is to come up with variations of RDF-star and transparent embedded triples
              +... even though RDF-star are mostly (semi) transparent +

              + +

              +<pchampin> SELECT * { ?s ?p ?o } +

              + +

              +<pfps> Ah, yes, that's an issue. +

              + +

              +pchampin: Maybe have 2 levels of compliance +

              + +

              +<pfps> I'm not in favour of "splitting" implementation. +

              + +

              +pchampin: implementations that can operate also at level of interoperability/exchange +

              + +

              +james: There's no reason that an implementation would have to create it separetly
              +... if you have a syntatic distinction, then you can do that. But if it's on the term, then it's more complicated +

              + +

              +<Zakim> AndyS, you wanted to note a consequence of triples with real vocab. +

              + +

              +AndyS: One of the consequence, it's that it could be partial...
              +... one of the possibility is to define a mapping from RDF triple terms into say reification
              +... adding an extra term was not an easy way of going +

              + +

              +pchampin: I saw that pfps is not in favor of splitting the implementations
              +... The goal is to give flexibility to get things done in one way or another +

              + +

              +<AndyS> AndyS: A new RDF term was not as problematic as dealing with reification quads (which can be partial AKA broken). +

              + +

              +<pchampin> STRAWPOLL: 2 levels of compliance +

              + +

              +<olaf> -1 +

              + +

              +pchampin: What about having 2 levels of compliance +

              + +

              +<pfps> -0.7 +

              + +

              +<gkellogg> -1 +

              + +

              +<AndyS> 0 (not sure I fully grok the details) +

              + +

              +<pchampin> +0 +

              + +

              +<twomas> 42 +

              + +

              ++0 +

              + +

              +<TallTed> -0.5 (also not sure I fully grok, but to the extent I do, it doesn't seem a good path) +

              + +

              +olaf: It would introduce for mapping from RDF to RDF-star graph? IMHO, I don't think so
              +... If we really consider as a mean to define semantics, we need to avoid complications by having 2 compliance levels +

              + +

              +<pfps> But aren't all RDF* and SPARQL* implementations non-conformant to every published description of RDF* and SPARQL*? +

              + +

              +james: understanding RDF-star is not really 2 level of compliance +

              + +

              +pchampin: There is no much tractions for the idea +

              + +

              +<AndyS> pfps - Blazegraph? +

              + +

              +pfps: The original semantics of SPARQL-star was a mapping to RDF? +

              + +

              +<pfps> The original paper has two semantics, and they diverge. Implementations appear to implement the direct semantics, not the indirect one. +

              + +

              +pchampin: We have discussed a lot the hidden vocabulary, but not if we want to keep the abstract syntax and define a mapping ? +

              + +

              +pfps: yes. Remember it was an answer to different ways to create RDF-star
              +... we should have to figure out this thing is supposed to work
              +... it seems like we don't have a common understanding how RDF-star should work. +

              + +

              +pchampin: we really need a huge rework of everything including SPARQL-star...
              +... the abstract syntax is something we did not argue a lot here
              +... I would like to hear others +

              + +

              +olaf: I agree with pierre.
              +... I would claim for implementers to give them a big picture of what should come out when querying RDF-star +

              + +

              +pchampin: Are we ready to deal without abstract semantics?
              +... seem no strong opinion +

              + +

              +james: I do agree with olaf that the semantics should be based on the abstract syntax.
              +... it should not prevent the editors to stop the publication +

              + +

              +pchampin: put something in the doc so that people can respond +

              + +

              +<pchampin> PROPOSAL: include PR88 in the first public draftbefore publishing, with a link to an issue summarizing Peter's email about the altnatives +

              + +

              +<pfps> +1 +

              + +

              +<twomas> +1 +

              + +

              +<pchampin> +1 +

              + +

              ++1 +

              + +

              +<TallTed> +1 +

              + +

              +<james> +1 +

              + +

              +<olaf> +1 +

              + +

              +<gkellogg> +1 +

              + +

              +<AndyS> +1 +

              + +

              +<pfps> I'll create an issue. +

              + +

              +RESOLUTION: include PR88 in before publishing, with a link to an issue summarizing Peter's email about the altnatives +

              + +

              publishing first draft

              + +

              +<olaf> Given that we have a few mins left, can we do a strawpoll on the question of whether we want to keep the abstract syntax? +

              + +

              +pchampin: I found no way to make links to previous draft
              +... having the links in the header generated by respec. It seems to work for WG. +

              + +

              +gkellogg: It is manually done +

              + +

              +pchampin: We have 5 minutes left. What are the best way to have more attractions?
              +... We have something in the community blog
              +... Any other ideas?
              +... The semantic web mailing list as well +

              + +

              +gkellogg: Also something in the CG, the RDF list and pchampin to give a talk
              +... in the next month or so... +

              + +

              ++1 to also present a summary in some events by the chairs +

              + +

              +gkellogg: We are finishing the work in the JSON-LD CG in one or 2 weeks +

              + +

              +pchampin: anyhing else? +

              + +

              +Zamik, who is present? +

              + +

              +<gkellogg> https://json-ld.github.io/json-ld-star/ +

              + +

              +pchampin: thank you very much. We made some progress and congrats for the next coming first public draft +

              + +

              +olaf: I would like to add the contributions in the draft +

              + +

              +pchampin: how do we suggest we proceed? +

              + +

              +olaf: create an issue and ask everybody. It should be a short term without delaying the draft +

              + +

              +pchampin: It should be a short term without delaying the draft +

              + +

              +bye +

              + +

              +<olaf> bye +

              + + +
              +

              Summary of Action Items

              + + +

              Summary of Resolutions

              + +
              1. include PR88 in before publishing, with a link to an issue summarizing Peter's email about the altnatives
              2. +
              + + +[End of minutes]
              +
              + +
              + Minutes manually created (not a transcript), formatted by David Booth's + scribe.perl version (CVS log)
              + $Date$ +
              +
              + +
              + + diff --git a/corese-unit-test/src/test/resources/data/rdf-star-main/Minutes/2021-02-19.html b/corese-unit-test/src/test/resources/data/rdf-star-main/Minutes/2021-02-19.html new file mode 100644 index 0000000000..98de61da67 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/rdf-star-main/Minutes/2021-02-19.html @@ -0,0 +1,463 @@ + + + + RDF-star -- 19 Feb 2021 + + + + + + + + +

              W3C +

              + + +

              RDF-star

              +

              19 Feb 2021

              + +

              Agenda

              + + + + +

              Attendees

              + +
              +
              +
              Present
              +
              gkellogg, gatemezing, james, pchampin, AndyS, olaf, thomas, TallTed, pfps
              +
              Regrets
              +
              +
              Chair
              +
              pchampin
              +
              Scribe
              +
              gatemezing
              +
              +
              + +

              Contents

              + +
              +
              +

              +<scribe> scribe: gatemezing +

              + +

              +<scribe> chair: pchampin +

              + +

              +<AndyS> Do we need a rota? (from next meeting) +

              + +

              +pchampin: Agenda: https://lists.w3.org/Archives/Public/public-rdf-star/2021Feb/0061.html +

              + +

              open actions

              + +

              +pchampin: we don't have new people today +

              + +

              +<pchampin> https://github.com/w3c/rdf-star/issues?q=is%3Aopen+is%3Aissue+label%3Aaction +

              + +

              +pchampin: RDF* was substituted to rdf-star. Time to close the related issue
              +... Next ACTION: we need it open +

              + +

              GH management

              + +

              +AndyS: how best to use the GH tools for a workflow that is minimal overhead for both reviewer and editor. +

              + +

              +pchampin: opinions? james ? +

              + +

              +james: Joined for the grammar's discussion +

              + +

              +pchampin: The discussion was to use the same tools than the one use by the SPARQL group
              +... so that to generate full grammar more efficiently
              +... so that we reuse those existing tools +

              + +

              +james: Having a complete grammar is useful +

              + +

              +pchampin: james can you create an issue for that? +

              + +

              +james: Will create an issue +

              + +

              +olaf: can it be based on sections? issues?
              +... the same as we do for PR? +

              + +

              +AndyS: Probably yes. +

              + +

              +olaf: We need to figure out the issue +

              + +

              +gkellogg: In the case of JSON-LD CG, single issue from a receiver's comment so that to construct a PR ...
              +... based on the comments received. We can't require people to have access to access - git features of Github
              +... We need to accept feedback from email lists +

              + +

              +AndyS: We don't have an email address in the FPCG's draft +

              + +

              +<james> grammar https://github.com/w3c/rdf-star/issues/104 +

              + +

              +AndyS: we need to find a way to figure it out +

              + +

              +pchampin: The list to the mailing-list is not visible in the first draft
              +... agree with gkellogg to have one issue by income email's comment +

              + +

              +olaf: Sounds good! +

              + +

              +<AndyS> JSON-LD : The mailing list is in the Status section +

              + +

              +pchampin: gkellogg could you make a PR? - Agreed by gkellogg +

              + +

              SPARQL-star update

              + +

              +<pchampin> https://github.com/w3c/rdf-star/pull/98 +

              + +

              +pchampin: We have a PR at https://github.com/w3c/rdf-star/pull/98 +

              + +

              +olaf: This PR puts the content in Section 5 of the document
              +... splitted in two parts - overview and features and second part with definition part
              +... Now, this version is basically easier than a PG mode +

              + +

              +pchampin: the introduction is very nice. Any comments from the work?
              +... We can merge this PR +

              + +

              +<pchampin> PROPOSAL: merge PR 98 about SPARQL-star Update +

              + +

              +<pchampin> +1 +

              + +

              +<gkellogg> +1 +

              + +

              +<olaf> +1 +

              + +

              ++1 +

              + +

              +<AndyS> +1 +

              + +

              +<james> +1 +

              + +

              +<thomas> 0 +

              + +

              +<pfps> +0 +

              + +

              +<TallTed> +0 +

              + +

              +RESOLUTION: merge PR 98 about SPARQL-star Update +

              + +

              +pchampin: We can now merge this section - thanks @olaf!
              +... Any implementations already exist? +

              + +

              +olaf: Ontotext GraphDB +

              + +

              +gkellogg: We have to solve the issue of the annotation syntax in the query part +

              + +

              +<pchampin> https://github.com/w3c/rdf-star/pull/65 +

              + +

              +olaf: And then come back to this issue +

              + +

              PR at https://github.com/w3c/rdf-star/pull/65

              + +

              +pchampin: olaf could you remind us what it is about? +

              + +

              +olaf: This PR #65 is about annotation syntax for SPARQL* that I proposed some times ago +

              + +

              +<james> please explain again why this is undesirable. +

              + +

              +pchampin: james which details do you expect? +

              + +

              +james: I don't understand what can be a problem +

              + +

              +olaf: a property with a concatenation of two predicates
              +... Sometimes is difficult to figure out which path we are considering - in the case of a simple example like :ASK { s :p/:q :o {| :a :b |} } +

              + +

              +pchampin: See this example ASK { ?x :p* ?y {| :a :b |} } - so nothing to annotate +

              + +

              +<AndyS> ASK { ?s :p :o } +

              + +

              +AndyS: there is no path in SPARQL - there are just syntax +

              + +

              +james: I don't see an error in the syntax but to be interpret in the semantics +

              + +

              +AndyS: We are talking about path, so not obvious - +

              + +

              +gkellogg: There is no ways in the embedded syntax like the annotation - embedded triples are in the BGP +

              + +

              +olaf: The expansion in the query side needs rewriting in the syntax level +

              + +

              +gkellogg: maybe we need a section with the expansion part +

              + +

              +olaf: There is a rule for the expansion in my PRs +

              + +

              +pchampin: If we choose to forbid annotations on patterns that are not triple part, could that be rejected by the grammar? +

              + +

              +AndyS: it does not make a difference in terms of evaluation +

              + +

              +<olaf> ;-) +

              + +

              +AndyS: paths work by calculating BGP... +

              + +

              +pchampin: Is this created by the annotation syntax issue? +

              + +

              +AndyS: Yes, the issue brings it up. +

              + +

              +pchampin: My expectation was to expand by adding more constraints not necessarily in the grammar ... +

              + +

              +olaf: That is exactly what we have in the PR. +

              + +

              +AndyS: pfps brought the issue of the semantics
              +... so the ones with hidden triples
              +... There is a section on extended matching that will be affected +

              + +

              +<pfps> I view the ability to see the reification triples as a feature, not a bug. +

              + +

              +pfps: RDF-star would be more useful if tied with other things... +

              + +

              +pchampin: you mean in particular reification when mentioning by the "rest of RDF" +

              + +

              +<pfps> For example, it is very useful to be able to have different versions of "embedded triples" that are more or less transparent. +

              + +

              +olaf: I'd not expect such results in the simple entailment regime +

              + +

              +AndyS: I agree with olaf.
              +... I'd very nice to define an entailment regime where we can see the mapping +

              + +

              +<olaf> Exactly! +

              + +

              +<pfps> Well that depends on what a "triple" is? +

              + +

              +pfps: how many triples in the embedded triple? +

              + +

              +<pchampin> with RDF*, we have to be clear about "asserted triples" and "embedded triples" +

              + +

              +<pfps> How many formulae are there in p & q? Not one, but three! +

              + +

              +<pfps> How many triples are in << a b c>> d e. Two! One asserted triple and one embedded triple. +

              + +

              +<james> +1 -> rdf-star entailment routine as integral to the final report +

              + +

              +olaf: SPARQL-star query is to query RDF-star graph not the mapping +

              + +

              +<pfps> So, contratrary to previous statements, SPARQL is not based on simple entailment. +

              + +

              +Can we create an issue? +

              + +

              +or send an email to continue the discussion? +

              + +

              +<AndyS> https://www.w3.org/TR/sparql11-query/#BasicGraphPattern +

              + +

              +<thomas> I'd like to ask 2 more things: 1) will the draft be announced on semantic-web@w3.org? and 2) can we put a discussion about the relation between N3 and RDF* on the agenda for next friday? +

              + +

              +pchampin: thanks everyone +

              + +

              +<pfps> I'm not sure whether SPARQL BGP matching is or can be defined in terms of simple entailment. +

              + + +
              +

              Summary of Action Items

              + + +

              Summary of Resolutions

              + +
              1. merge PR 98 about SPARQL-star Update
              2. +
              + + +[End of minutes]
              +
              + +
              + Minutes manually created (not a transcript), formatted by David Booth's + scribe.perl version (CVS log)
              + $Date$ +
              +
              + +
              + + diff --git a/corese-unit-test/src/test/resources/data/rdf-star-main/Minutes/2021-02-26.html b/corese-unit-test/src/test/resources/data/rdf-star-main/Minutes/2021-02-26.html new file mode 100644 index 0000000000..a2461fda79 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/rdf-star-main/Minutes/2021-02-26.html @@ -0,0 +1,711 @@ + + + + RDF-star -- 26 Feb 2021 + + + + + + + + +

              W3C +

              + + +

              RDF-star

              +

              26 Feb 2021

              + + + + + +

              Attendees

              + +
              +
              +
              Present
              +
              pchampin, AndyS, thomas, ora, gkellogg, TallTed, olaf, gatemezing, james
              +
              Regrets
              +
              +
              Chair
              +
              pchampin
              +
              Scribe
              +
              ora
              +
              +
              + +

              Contents

              + +
              +
              +

              +<pchampin> scribe: ora +

              + +

              Review pending actions

              + +

              +<pchampin> https://github.com/w3c/rdf-star/issues?q=is%3Aopen+is%3Aissue+label%3Aaction +

              + +

              +phampin: Test suites +

              + +

              +andys: work in progress
              +... we can close the action, for now +

              + +

              +<pchampin> https://github.com/w3c/rdf-star/pull/114 +

              + +

              +gkellogg: test suites can be difficult +

              + +

              SPARQL-star

              + +

              +pchampin: outstanding pull requests and issues +

              + +

              +phampin: (not too controversial, mostly) +

              + +

              +<pchampin> Subtopic: annotation syntax +

              + +

              +<pchampin> https://github.com/w3c/rdf-star/pull/106 +

              + +

              +pchampin: annotation syntax +

              + +

              +<olaf> https://pr-preview.s3.amazonaws.com/w3c/rdf-star/pull/106.html#sparql-star-grammar +

              + +

              +olaf: propose not to extend the grammar
              +... put a note in the spec, call it a restriction
              +... counterexample (example 5) +

              + +

              +<pchampin> https://pr-preview.s3.amazonaws.com/w3c/rdf-star/pull/106.html#example-5 +

              + +

              +olaf: cleaned up the grammar a bit, ready to be merged +

              + +

              +gkellogg: there is a specific class of illegal examples, will add
              +... changes rendering subtly +

              + +

              +<pchampin> PROPOSED: merge PR 106 after gkellogg adds the specific class on example 5 +

              + +

              +<AndyS> The syntax test suite has an "bad syntax" test for the path ":p/:q" case. +

              + +

              +<gkellogg> +1 +

              + +

              +<AndyS> +1 +

              + +

              +<olaf> +1 +

              + +

              +<pchampin> +1 +

              + +

              +<gatemezing> +1 +

              + +

              ++1 +

              + +

              +<james> +1 +

              + +

              +<thomas> +1 +

              + +

              +<TallTed> +1 +

              + +

              +<gkellogg> the class name is “illegal-example”. I added a change note to the PR. +

              + +

              +RESOLUTION: merge PR 106 after gkellogg adds the specific class on example 5 +

              + +

              +<pchampin> SubTopic: allowing for triples in the VALUES clause +

              + +

              +<pchampin> https://github.com/w3c/rdf-star/issues/108 +

              + +

              +olaf: VALUES clause allows to bind values to variables; should extend to cover triples
              +... can create a pull request for this +

              + +

              +<AndyS> Good idea. +

              + +

              +pchampin: should we have a formal vote once the pull request is there? +

              + +

              +gkellogg: there should be a vote for every pull request, but that can be a burden
              +... we can merge some time after the pull request is there, that gives folks time to comment +

              + +

              +olaf: post on mailing list, leave three days to comment +

              + +

              +<pchampin> PROPOSED: olaf to implement the proposal in issue 108 into a PR, and merge its after 3 days if no objection +

              + +

              +<gkellogg> +1 +

              + +

              ++1 +

              + +

              +<olaf> +1 +

              + +

              +<pchampin> +1 +

              + +

              +<thomas> +1 +

              + +

              +<TallTed> +1 +

              + +

              +<AndyS> +1 +

              + +

              +<gatemezing> +1 +

              + +

              +<james> 1+ +

              + +

              +<mielvds> +0 +

              + +

              +RESOLUTION: olaf to implement the proposal in issue 108 into a PR, and merge its after 3 days if no objection +

              + +

              +ghislain: are we allowing the use of the shortcut 'a' in the grammar? (scribe did not understand) +

              + +

              +<olaf> https://github.com/w3c/rdf-star/issues/108#issuecomment-782853946 +

              + +

              +olaf: these are the parts of the grammar we propose to change +

              + +

              +<olaf> https://pr-preview.s3.amazonaws.com/w3c/rdf-star/pull/106.html#expand-syntax-forms +

              + +

              +gatemezing: this is fine +

              + +

              +<pchampin> SubTopic: build-in functions to (de-)construct triples +

              + +

              +<pchampin> https://github.com/w3c/rdf-star/issues/109 +

              + +

              +<pchampin> https://github.com/w3c/rdf-star/issues/27 +

              + +

              +pchampin: duplicate issues +

              + +

              +olaf: built-in functions to allow us to access the components of a triple, and to test whether a bound value is a triple +

              + +

              +(thanks gatemezing) +

              + +

              +olaf: these should be like any standard built-ins +

              + +

              +pchampin: should using a specific namespace be cleaner? +

              + +

              +(pchampin hears voices in his head ;-) +

              + +

              +gkellogg: this is an unofficial extension, should not co-opt an existing namespace; maybe we need a RDF*/SPARQL* namespace? +

              + +

              +andys: these are like keywords +

              + +

              +<AndyS> https://www.w3.org/ns/sparql# +

              + +

              +pchampin: symmetry argument can be made, makes sense +

              + +

              +james: symmetry argument is paramount
              +... where will you ultimately put these, that's where they should go now +

              + +

              +olaf: upper case or lower case? No clear pattern in the SPARQL spec +

              + +

              +andys: they are case-insensitive
              +... except for "a", "true", and "false" +

              + +

              +olaf: propose to create a pull request, leave it open for a couple of days for folks to comment +

              + +

              +<pchampin> PROPOSED: olaf to implement the proposal in issue 109 into a PR, and merge its after 3 days if no objection +

              + +

              +<pchampin> +1 +

              + +

              ++1 +

              + +

              +<olaf> +1 +

              + +

              +<thomas> +1 +

              + +

              +<gatemezing> +1 +

              + +

              +<james> 1+ +

              + +

              +<AndyS> +1 +

              + +

              +<james> 1+ +

              + +

              +<mielvds> +1 +

              + +

              +<TallTed> +1 +

              + +

              +RESOLUTION: olaf to implement the proposal in issue 109 into a PR, and merge its after 3 days if no objection +

              + +

              +<pchampin> SubTopic: removing the old version of the BIND operator +

              + +

              +<olaf> BIND(<<:bob ?p ?o>> AS ?t) +

              + +

              +<AndyS> FYI-- 1.1 spec Grammar note 1 is about case-sensitivity +

              + +

              +olaf: meaning of this is that every triple that matches has to be bound to ?t
              +... this is for matching, not for construction
              +... should this be called something else, since the standard BIND can construct +

              + +

              +<olaf> :bob ?p ?o . BIND(<<:bob ?p ?o>> AS ?t) +

              + +

              +olaf: this would be a way to construct
              +... proposal is to remove this from the spec +

              + +

              +pchampin: asserted triples only? +

              + +

              +olaf: no, any triples
              +... in the draft, it is now only for asserted triples, unlike in the original version
              +... original draft assumed PG mode +

              + +

              +gkellogg: this is much more complex than I thought +

              + +

              +olaf: implementation complexity: agreed, it can be used in both directions (find or construct) +

              + +

              +pchampin: the symmetry made it counter-intuitive +

              + +

              +olaf: propose to remove it from the draft +

              + +

              +<olaf> https://github.com/w3c/rdf-star/issues/6#issuecomment-783305045 +

              + +

              +gkellogg: it would be nice to capture related use cases +

              + +

              +andys: consequence of this is that we do not need the bracket syntax (?) +

              + +

              +<pchampin> bob ?p ?o . BIND(Triple(:bob, ?p, ?o) AS ?t) +

              + +

              +<olaf> +1 +

              + +

              +andys: that would be preferable +

              + +

              +<olaf> bob ?p ?o . BIND(Triple(:bob, ?p, LANG(?o)) AS ?t) +

              + +

              +andys: bracket syntax may be convenient, but not necessary +

              + +

              +<pchampin> BIND(<<:bob a :Person>> AS ?t) +

              + +

              +pchampin: strange
              +... embedded triples are just terms +

              + +

              +andys: this is an expression
              +... variables would be required to be bound
              +... could add it as a special case to BIND syntax, or it could be an expression that could be used anywhere +

              + +

              +<AndyS> BIND(SUBJEC(<<:bob a :Person>>) AS ?t) +

              + +

              +<AndyS> BIND(SUBJECT(<<:bob a :Person>>) AS ?t) +

              + +

              +<AndyS> BIND(<<?s a :Person>> AS ?t) +

              + +

              +<pchampin> BIND("a"^^?dt AS ?t) +

              + +

              +andys: move to issues +

              + +

              +<pchampin> PROPOSED: remove the old BIND (a.k.a. FIND) construct from SPARQL-star +

              + +

              +<olaf> +1 +

              + +

              +<pchampin> +1 +

              + +

              +<james> +1 +

              + +

              +<gkellogg> +1 +

              + +

              +<gatemezing> +1 +

              + +

              +<AndyS> +1 +

              + +

              +0 +

              + +

              +<TallTed> +1 +

              + +

              +<thomas> 0 +

              + +

              +<mielvds> +0 +

              + +

              +RESOLUTION: remove the old BIND (a.k.a. FIND) construct from SPARQL-star +

              + + +

              +<AndyS> ACTION: AndyS Raise new issue for the BIND(<<:bob a :Person>> AS ?t) discussions +

              + +

              +pchampin: the new BIND needs some more discussion +

              + +

              relationship between RDF-star and Notation3

              + +

              +thomas: Notation3 has formulae +

              + +

              +<mielvds> +q +

              + +

              +thomas: embedded triples would be similar?
              +... blank nodes? +

              + +

              +pchampin: Notation3 scopes bnodes within the formula +

              + +

              +<mielvds> I was just going to say +

              + +

              +<mielvds> that i'' comment on this later, because I can't typ that fast +

              + +

              +<mielvds> anyway, the people really involved are not on the call +

              + +

              +<mielvds> N3 semantics hasn't been decided, but atm I would say thomas's interpretation is correct with the addition of the blank node thing +

              + +

              +<mielvds> yes yes, I know, but the deep semantics people +

              + +

              +<mielvds> the chairs I mean +

              + +

              +<mielvds> but nesting in RDFstar is different from citing a graph +

              + +

              +thomas: it is possible to have different IRIs for the same thing
              +... this is what formulae enable +

              + +

              +pchampin: co-reference is not part of "core RDF" +

              + +

              +thomas: "unique name assumption" +

              + +

              +<mielvds> can we open a ticket on the relation w. N3? (Sorry for the mic thing) +

              + +

              +pchampin: let's open a ticket +

              + + +

              +<pchampin> ACTION: pchampin to open an issue on he relation btw N3 and RDF-star +

              + +

              +thomas: this is not the appropriate semantics for embedded triples
              +... cf. occurrences +

              + +

              +<mielvds> I see N3 as a strict superset of RDF-star, so whatever semantics RDF-star would influence those in N3 (IMHO) +

              + +

              +pchampin: I may disagree +

              + +

              +<mielvds> bye +

              + +

              +bye, stay safe +

              + +

              +<gatemezing> bye! +

              + +

              +<olaf> Thanks me if I have implemented them ;-) +

              + +

              +<AndyS> bye all +

              + +

              +<AndyS> rssagent, please leave +

              + + +
              +

              Summary of Action Items

              + +[NEW] ACTION: AndyS Raise new issue for the BIND(<<:bob a :Person>> AS ?t) discussions
              +[NEW] ACTION: pchampin to open an issue on he relation btw N3 and RDF-star

              + +

              Summary of Resolutions

              + +
              1. merge PR 106 after gkellogg adds the specific class on example 5
              2. +
              3. olaf to implement the proposal in issue 108 into a PR, and merge its after 3 days if no objection
              4. +
              5. olaf to implement the proposal in issue 109 into a PR, and merge its after 3 days if no objection
              6. +
              7. remove the old BIND (a.k.a. FIND) construct from SPARQL-star
              8. +
              + + +[End of minutes]
              +
              + +
              + Minutes manually created (not a transcript), formatted by David Booth's + scribe.perl version (CVS log)
              + $Date$ +
              +
              + +
              + + diff --git a/corese-unit-test/src/test/resources/data/rdf-star-main/Minutes/2021-03-05.html b/corese-unit-test/src/test/resources/data/rdf-star-main/Minutes/2021-03-05.html new file mode 100644 index 0000000000..e6fe8d6708 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/rdf-star-main/Minutes/2021-03-05.html @@ -0,0 +1,220 @@ + + + + +RDF-star – 05 March 2021 + + + + + + + + + + +
              +

              W3C

              + +

              RDF-star

              +

              05 March 2021

              + + +
              + +
              +
              +

              Attendees

              +
              +
              Present
              AndyS, gatemezing, gkellogg, james, olaf, ora, pchampin, rivettp, TallTed, thomas
              +
              Regrets
              -
              +
              Chair
              pchampin
              +
              Scribe
              gatemezing, gkellogg, pchampin
              +
              +
              + + +
              + +
              +

              Meeting minutes

              +
              + +
              +

              Announcements and newcomers

              +

              william: I’m William Van Woensel, currently a research associate in Canada, currently involved with standardizing Notation-3.
              +… Obviously a bit of overlap with RDF-star. Cited-formulae are a similar construct, and would like to hear about crossover ideas.
              +… I’ve tried keeping up with the mailing list and hope I can be enlightened.

              +
              + +
              +

              PR on SPARQL-star built-in functions

              +

              <pchampin> https://github.com/w3c/rdf-star/pull/118

              +

              pchampin: I also put in a couple of related issues I’d like to close out.

              +

              olaf: When the PR is merged the related issues can be closed.

              +

              <james> audio is very sporadic

              +

              <gatemezing> I have issue to hear olaf

              +

              olaf: The PR brings in the 5 built-in functions for constructing and accessing triple components and to see if a term is a triple or not.

              +

              <thomas> me too

              +

              pchampin: There has been some discussions on the mailing list and in te PR.

              +

              pchampin: I understnad james’ questions, but I don’t see how they relate to the PR

              +

              james: This is the first time there’s an explicit operator to construct such a term. It’s the first term in RDF, which in other parts of RDF has a behavior relating to the graph within which the statement is made.
              +… It’s the first itme it can include a blank node which has such behavior. It depends on the relationship between the label and the designated node which is problemative.

              +

              <AndyS> A previous case - BNODE().

              +

              james: This constructed triple term may have a behavior which is different and deserves to be described inline.

              +

              pchampin: Your concern is that the blank node constituents of a triple change the semantics.

              +

              james: I sent an answer about them being opaque terms. The document should be supportive of users and not require they understand all the implications.

              +

              olaf: I understand the concern, but I don’t think it’s that different from the SPARQL BNODE function.

              +

              james: I think readers would appreciate the reference.

              +

              AndyS: I don’t understand why you say it creates BNodes, as it contains them but not creates them.

              +

              james: I’m not saying it creates BNodes, but it’s the first time you can construct a statement containing bnodes. The behavior differs (slightly) from the way that statements are known in RDF.

              +

              pchampin: It creates a triple as a term.

              +

              pchampin: I think it’s an important distinction that it is not asserted, but embedded.

              +

              james: I’m trying to understand how blank nodes behave.

              +

              gkellogg: I can imagine systems where the bnode identity is key to its relationship with other nodes
              +… relevant to isomorphism, normalization
              +… Does adding an embedded triple change the relations of a bnode?
              +… I think it does.

              +

              gkellogg: it’s worth stating, as it could violate some assumptions.

              +

              AndyS: When the tirple function creates an embedded triple, it’s not putting it in the graph. It would be not different than if you put annotation syntax into a CONSTRUCT.
              +… The function does not affect the data.

              +

              <gatemezing> good point AndyS

              +

              AndyS: As the subject of the PR, I don’t see a connection.

              +

              pchampin: Maybe the clarification james asked for would be welcome.

              +

              AndyS: I think it would be a good example that showed different behavior. We don’t know which is right and which is wrong.

              +

              gkellogg: it is true that an embedded triple does not put anything in the graph
              +… but two graphs differing only by the embedded triples they use are not isomorphic

              +

              AndyS: but that does not concern this function
              +… the function does not change the data; and you don't need the function to add embedded triples into the graph

              +

              <pchampin> ... If there are different beheviours, let's enumerate them

              +

              AndyS: I don’t think Isomorphism is strictly defined in RDF.

              +

              pchampin: It is defined.

              +

              james: I reiterate my concerns as a reader; this is the place where things of this type are produced.

              +

              AndyS: There are other places it’s created.

              +

              james: Yes, but this is the place in the document where you actually construct one.

              +

              AndyS: I’d think it would be in the definition of RDF-star terms.
              +… Parsing also produces them. I’m worried that focusing on the TRIPLE function misses the wider context.

              +

              pchampin: The creation of the term is not what causes problems. It’s when that created term gets used, either by CONSTRUCT or ...

              +

              james: That is true, but you can describe in each location, or have a summary in the place where you create one. If I want to understand what a parser does, I need to look somewhere.
              +… I’d rather not to have to delve into the definition of a parser to understand this.
              +… I thought everyplace that produces an embedded triple produces this type of thing, so this is where you would look.

              +

              olaf: Before the call, I was thinking about a discussion section to describe their context.
              +… I can add some examples along the lines we’ve discussed, including constructing blank nodes within constructed triples.

              +

              james: I’d like to see that kind of text.

              +

              TallTed: I was going to suggest just that. The differing behavior should be called out with a cross-reference to the places where the effect differs. Point out the different places where it is described.

              +

              <gatemezing> Yes, agree

              +

              <james> +1

              +

              pchampin: I think olaf has enough information to amend the PR. Once the modifications are done olaf can inform and we’ll give it a few days before merging.

              +

              <olaf> +1

              +

              <TallTed> +1

              +

              <gatemezing> +1

              +

              <pchampin> PROPOSAL: leave it to olaf to amend the PR, and merge it afer an announce on the mailing list

              +

              <rivettp_> +1

              +

              +1

              +

              <ora> +1

              +

              <pchampin> +1

              +

              <AndyS> +1

              +

              <gatemezing> +1

              +

              <olaf> +1

              +

              <TallTed> +1 for the typed which echoed the spoken

              +

              <william> +0

              +

              <thomas> +1

              +

              Resolution: leave it to olaf to amend the PR, and merge it afer an announce on the mailing list

              +
              + +
              +

              Should <<>> syntax be added to SPARQL-star expressions?

              +

              pchampin: We now have a way to build a triple as a term using the TRIPLE function. There was discussion about also using the << >> syntax.

              +

              <pchampin> BIND(Triple(?s,?p?o) as ?t)

              +

              <pchampin> BIND(<<?s ?p ?o>> as ?t)

              +

              pchampin: The idea would be to allow either way of creating an expression, but that requires some additions to the SPARQL-star grammar.

              +

              <thomas> that looks natural and intuitive. I woud expect this to be possible

              +

              pchampin: The TRIPLE function would still be required for complex expressions. But this might be more natural in some cases.

              +

              AndyS: It’s quite doable and doesn’t really change parsing requirements.
              +… You can’t put expressions inside << >> because of grammar considerations (e.g. “+1”)
              +… I’d rather have them added as a Primary Expression, so that it can be used anywhere such an expression can be used. It could create some odd legal usages, but better than a lot of special cases.

              +

              olaf: I understand it works from the grammar perspective, but whatabout from the evaluation semantics?
              +… It could be interpreted as syntactic sugar and turn << >> into TRIPLE()

              +

              AndyS: That would do for the definition of it s evaluation, but it’s not syntactic sugar.
              +… Users typicalliy want to be sure that what they type in will come out again, and if you do a simple substitution it won’t. But the definition of evaluation would be the same.

              +

              olaf: An alternative would be to extend all the definitions of such expressions to define it explicitly.

              +

              AndyS: It makes little difference.
              +… We don’t have things like COALESCE, which are more difficult.

              +

              <pchampin> https://github.com/w3c/rdf-star/issues/117

              +

              olaf: Working on this in a separate branch will be a bit tricky due to the other PRs. This will require overlapping changes.
              +… Similar to the extension of VALUES, which overlaps.
              +… I’d like to postpone working on this until we’ve merged the PR we talked about before.
              +… Perhaps we can merge that PR and open a new ticket to satisfy james’ issues.

              +

              james: I’m happy that my point has been understood.

              +

              AndyS: You could just merge everything into one PR.

              +

              olaf: I thought about that, but I think it’s better to keep separate.
              +… If we can merge the main PR and create a new issue, I can move forward more easily.

              +

              <james> +1

              +

              <pchampin> PROPOSAL: merge PR 118 now, james will open an issue on the question he asked

              +

              +1

              +

              <pchampin> +1

              +

              <ora> +1

              +

              <AndyS> +1

              +

              <olaf> +1

              +

              <gatemezing> +1

              +

              <william> +0

              +

              <TallTed> +1

              +

              <thomas> 0

              +

              Resolution: merge PR 118 now, james will open an issue on the question he asked

              +
              + +
              +

              Define a URI for the class of embedded triples

              +

              pchampin: AndyS suggested we added an IRI to describe the domain or range or properties which are embedded triples.
              +… There’s been some discussion,, particularly regarding the namespace. AndyS suggested we define it in the RDF space (RDFS?). We can’t change the document, but a future WG could and we don’t want to add to namespace proliferation.

              +

              <gatemezing> link to issue https://github.com/w3c/rdf-star/issues/102

              +

              pchampin: If we did another temporarily, it would end up becoming permanent.

              +

              AndyS: The main thing is the difficulty of changing the URIs down the road.

              +

              <AndyS> Literal is in RDFS, Resource is RDFS, Property in RDF. Hmm.

              +

              gkellogg: the JSON-LD WG has already augmented the rdf: NS (rdf:JSON, rdf:direction)
              +… there are some precedents

              +

              <ora> Apart from "namespace proliferation", I don't see why it would be terrible to add a new namespace.

              +

              <ora> The distinction between RDF and RDFS namespaces has to do with how the work was done, it is not technical.

              +

              gatemezing: I wanted to understand the updates in an earlier namespace. The update was in 2019, so my concern is that there’s no metadata regarding the changes and the Turtle file doesn’t describe changes.

              +

              AndyS: There’s an isDefineBy link; it’s not directly there, but we’re not changing, only adding.

              +

              <thomas> I find it rather daring to define that term in the RDF namespace

              +

              pchampin: Everything is managed through CVS (or was), so there is some history somewhere.

              +

              <gatemezing> Thanks pchampin

              +

              pchampin: Technically, I’m now part of the W3C Team :)
              +… I’ll discuss with Ivan.

              +

              <AndyS> As part of RDF-DEV CG, in some sense we have >0 authority but <1.

              +

              <pchampin> EmbTriple

              +

              pchampin: We need to discuss the term name itself, but that’s bikeshedding.
              +… We’ll take that to the mailing list.

              +
              +
              + + + + +
              Minutes manually created (not a transcript), formatted by scribe.perl version 127 (Wed Dec 30 17:39:58 2020 UTC).
              + + + diff --git a/corese-unit-test/src/test/resources/data/rdf-star-main/Minutes/2021-03-12.html b/corese-unit-test/src/test/resources/data/rdf-star-main/Minutes/2021-03-12.html new file mode 100644 index 0000000000..2ec3f7f345 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/rdf-star-main/Minutes/2021-03-12.html @@ -0,0 +1,232 @@ + + + + +RDF-star – 12 March 2021 + + + + + + + + + + +
              +

              W3C

              + +

              RDF-star

              +

              12 March 2021

              + + +
              + +
              +
              +

              Attendees

              +
              +
              Present
              AndyS, gatemezing, gkellogg, james, olaf, ora, pchampin, rivettp, TallTed, thomas
              +
              Regrets
              -
              +
              Chair
              pchampin
              +
              Scribe
              ora, pchampin
              +
              +
              + + +
              + +
              +

              Meeting minutes

              +
              + +
              +

              Announcements and newcomers

              +
              + +
              +

              Daylight Saving Time (US) and Summertime (EU)

              +

              pchampin: switch happens at different times in the US and in Europe

              +

              pchampin: what would be the reference time zone?

              +

              <TallTed> typical practice for w3 work is Boston/New York, but it won't make a lot of difference for me

              +

              <TallTed> US would be an hour later (as it would be noon where it is now 11am)

              +

              <pchampin> if we stick to UTC: https://www.timeanddate.com/worldclock/fixedtime.html?msg=RDF%2A+call&iso=20210319T16&p1=1440&ah=1

              +

              gkellogg: W3C uses Boston time

              +

              pchampin: using European time, would be noon for Boston, 9 am for SF

              +

              pchampin: gkellogg's argument is valid, though, not to interfere with other W3C meetings

              +

              <TallTed> this just impacts the next two weeks, correct?

              +

              pchampin: yes

              +

              <thomas> gregg has the only argument, so why not take taht?

              +

              pchampin: propose to stick with US time

              +

              <pchampin> PROPOSED: stick to US time to avoid conflict with other W3C meetings

              +

              <pchampin> pchampin: +1

              +

              <thomas> +1

              +

              <gkellogg> +1

              +

              +1

              +

              <TallTed> +1

              +

              <william> +1

              +

              <olaf> +1

              +

              <rivettp> +1

              +

              <AndyS> +1

              +

              <james> +0

              +

              gkellogg: strong push in the US to eliminate DST

              +

              pchampin: we will stick with the US time

              +

              Resolution: stick to US time to avoid conflict with other W3C meetings

              +

              pchampin: next week 1 hr earlier for Europeans

              +
              + +
              +

              SPARQL-eval test suite

              +

              <pchampin> PR: https://github.com/w3c/rdf-star/pull/114

              +

              andys: no such things as finished test suite

              +

              andys: generally good coverage now

              +

              andys: syntax tests updated

              +

              pchampin: we must reach out to implementors

              +

              <gkellogg> My implementations pass all the tests.

              +

              andys: I would like to merge now

              +

              <pchampin> PROPOSED: merge PR 114 befor advertising the test suite to implementers

              +

              <gkellogg> +1

              +

              <pchampin> +1

              +

              <TallTed> +1

              +

              +1

              +

              <AndyS> +1

              +

              <thomas> +1

              +

              <james> +1

              +

              <olaf> +1

              +

              <rivettp> +1

              +

              <william> +

              +

              <william> (sorry)

              +

              <william> +

              +

              <william> +1

              +

              Resolution: merge PR 114 befor advertising the test suite to implementers

              +

              <william> (numlock was off :-)

              +

              gkellogg: we might consider publishing an implementation report early

              +

              gkellogg: I have tooling to check

              +

              <pchampin> example: https://w3c.github.io/json-ld-api/reports/

              +

              andys: if we get good coverage we should publish

              +

              pchampin: sounds like a good idea

              +

              pchampin: will add a link to the spec

              +

              <TallTed> EARL is common (probably best, probably not only) practice for implementation reports these days.

              +

              <TallTed> per-test results are optimal for CR->PR->TR, and probably also for CG->Report->WG

              +

              Action: gkellogg to make a PR for the implementation report

              +

              pchampin: we should make an announcement

              +

              andys: could someone check the HTML manifest?

              +

              gkellogg: to check that the HTML manifest covers all?

              +

              andys: yes, the HTML manifest is generated from Turtle

              +

              andys: set of tests does not prove your implementation

              +

              pchampin: we should be careful to avoid any statements about completeness

              +

              pchampin: this is work in progress

              +

              pchampin: raise awareness on the mailing list

              +

              pchampin: any other channels?

              +

              andys: give people the chance to look before we go to a wider audience

              +

              <james> i do not necessarily intend to exercise the test suite before the report is complete

              +

              gkellogg: other groups' impl. reports are not necessarily frozen, late entries are accepted

              +

              pchampin: nothing is frozen

              +

              pchampin: why not use it early?

              +

              pchampin: I will email the list

              +

              pchampin: there are discussions on the list about function descriptions, should we discuss?

              +

              james: we can use the list

              +
              + +
              +

              Define a URI for the class of embedded triples

              +

              pchampin: what namespace?

              +

              not ideal to proliferate namespaces

              +

              changing an IRI later does not work well

              +

              we do not, however, have the authority to change RDF

              +

              ora: why is proliferation of namespaces bad?
              +… easy to create an RDF-star namespace

              +

              andys: how much would go to a new namespace?

              +

              andys: if it is very few things, might not be worth it

              +

              gkellogg: comes down to the question about the purpose of this CG

              +

              gkellogg: if we are creating a new spec, makes sense to have a new namespace

              +

              gkellogg: if it is to advise other groups, then maybe not

              +

              gkellogg: if there is going to be a new RDF WG, then our work is considered an experiment

              +

              gkellogg: we can invent new IRIs, we just don't have the authority change RDF, etc.

              +

              thomas: semantics not stable

              +

              thomas: so perhaps not a good idea to use the RDF namespace

              +

              thomas: more prudent to use an RDF* namespace

              +

              pchampin: the whole spec is unstable

              +

              pchampin: nothing will be fixed until we reach a stable state

              +

              thomas: semantics unproven for now

              +

              ora: the rdf vs.rdfs issue is historical
              +… there was 2 different groups
              +… retrospectiveley, it was unfortunate

              +

              andys: missed thomas' point: what is tied to semantics

              +

              andys: i am looking at the effect on users

              +

              andys: I suggest we say "we propose that..."

              +

              gkellogg: RDFa added stuff

              +

              ora: RDF namespaces are fixed

              +

              gkellogg: any WG is authorized to update namespaces

              +

              gkellogg: CG is input WGs

              +

              ora: I doubt that it's true that any WG is authorized to change the RDF namespace

              +

              gkellogg: we did in the JSON-LD WG, figured this out with Ivan Herman

              +

              <TallTed> WGs can change W3 namespaces, *upon approval by W3 Management*, which is not automatic but is typically granted with suitable justification from the WG

              +

              gkellogg: we did discuss whether the JSON datatype should be in the RDF NS

              +

              ora: feels strange; changing the NS is invalidating the spec

              +

              AndyS: this is an addition, not a change

              +

              ora: but implementation may enforce the notion that RDF and RDFS namespaces are fixed

              +

              TallTed: enforcing something that is not fixed is an implementation error

              +

              gkellogg: JSON-LD process was to ask for comments from the community first

              +

              gkellogg: very little feedback

              +

              gkellogg: no evidence of implementations breaking

              +

              thomas: what if semantics change? We define a new term/

              +

              gkellogg: RDF 1.1 does not have plain literals

              +

              william: Notation3 CG made the decision to reuse old namespaces

              +

              william: we did not want to add namespaces

              +

              william: TimBL said to go ahead

              +

              <pchampin> STRAWPOLL: put our IRI(s) in the RDF namespace

              +

              <gkellogg> +1

              +

              <pchampin> +1

              +

              -1

              +

              <rivettp> +1

              +

              <james> +1

              +

              <thomas> -1

              +

              <AndyS> +1

              +

              <william> +0

              +

              <olaf> +0

              +

              <TallTed> +0

              +

              no consensus

              +

              pchampin: polite thing to do is to seek broader feedback

              +

              andys: if something is controversial it is a good idea to make sure people pay attention

              +

              andys: (anecdote about John McCarthy)

              +
              +
              + + + + + + +
              Minutes manually created (not a transcript), formatted by scribe.perl version 127 (Wed Dec 30 17:39:58 2020 UTC).
              + + + diff --git a/corese-unit-test/src/test/resources/data/rdf-star-main/Minutes/2021-03-19.html b/corese-unit-test/src/test/resources/data/rdf-star-main/Minutes/2021-03-19.html new file mode 100644 index 0000000000..b9221612b4 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/rdf-star-main/Minutes/2021-03-19.html @@ -0,0 +1,211 @@ + + + + +RDF-star – 19 March 2021 + + + + + + + + + + +
              +

              W3C

              + +

              RDF-star

              +

              19 March 2021

              + + +
              + +
              +
              +

              Attendees

              +
              +
              Present
              AndyS, gatemezing, gkellogg, olaf, ora, pchampin, rivettp, TallTed, thomas
              +
              Regrets
              -
              +
              Chair
              pchampin
              +
              Scribe
              AndyS, pchampin
              +
              +
              + + +
              + +
              +

              Meeting minutes

              +
              + +
              +

              Announcements and newcomers

              +

              pchampin: pchampin and olaf holding a Lotico event on RDF-star (March 25, 16:00 UTC))

              +

              <TallTed> email announcement of the Lotico event - https://lists.w3.org/Archives/Public/public-rdf-star/2021Mar/0039.html

              +
              + +
              +

              Open actions

              +

              <pchampin> https://github.com/w3c/rdf-star/issues?q=is%3Aopen+is%3Aissue+label%3Aaction

              +

              pchampin: Action to ask community about adding a URI to the RDF namespace

              +

              olaf: actions on me
              +… (1) respond to james
              +… (2) PR for <<>> for primaryExpressions
              +… in-progress

              +

              AndyS: Gregg+Andy -- Getting nice URIs for tests in manifests

              +
              + +
              +

              Implementation reports

              +

              <pchampin> PR: https://github.com/w3c/rdf-star/pull/131

              +

              <gkellogg> https://raw.githack.com/w3c/rdf-star/a8080d301f37c28636b3e99336cf9c242252d53f/reports/index.html

              +

              gkellogg: Infrastructure for handling EARL report and creating HTML for all impl reports.
              +… WG process is 2 impls per feature.
              +… Link off the RDF-star site from spec to external reports.
              +… Andy asked that infra is one PR and then PR's per impl report to show how to do it and track the reports we receive
              +… part of our CI
              +… catch errors in incoming reports early.
              +… stretch goal: GH Actions

              +

              <AndyS> +1 to gkellogg's work to automate

              +

              <gatemezing> +1 to the report. Great work.

              +

              gkellogg: may be ask previous implementations who have mentioned they support RDF*

              +

              pchampin: Could be a good point to do a 2nd draft report.

              +

              gkellogg: Manifests sorting out first, then PRs from #131 (reports)

              +

              <pchampin> PROPOSED: once the manifests are sorted out, merge the Impl Report infrastructure

              +

              pchampin: Can we get the manifests committed?

              +

              <AndyS> +1

              +

              <pchampin> +1

              +

              <gkellogg> +1

              +

              <gatemezing> +1

              +

              <ora> +1

              +

              <william> +1

              +

              <olaf> +1

              +

              <TallTed> +1

              +

              <rivettp> +1

              +

              Resolution: once the manifests are sorted out, merge the Impl Report infrastructure

              +
              + +
              +

              What do we need to release our 2nd public draft?

              +

              pchampin: Reaching a (meta)stable point
              +… some open issues
              +… some can be closed

              +

              AndyS: good idea to publish, and to pick some issues
              +… gives us a clock tick, allow us to focus

              +

              olaf: Good idea. Suggestion to include:
              +… <<>> in expressions
              +… extend the overview with more examples - becoming tutorial/primer style.

              +

              <ora> +1 for Olaf's primer/tutorial section idea

              +

              pchampin: agree

              +

              <thomas> +1 to Olaf's proposal

              +

              olaf: Reads better for new readers.

              +

              <gatemezing> +1 to have such a primer section

              +

              pchampin: SPARQL operators
              +… low hanging fruit. Examples in issue and tests.

              +

              <pchampin> https://github.com/w3c/rdf-star/issues/121

              +

              <olaf> +1

              +

              Action: pchampin: Will write some text WRT RDF-star merge

              +

              <gkellogg> +1

              +

              Also https://github.com/w3c/rdf-star/pull/129

              +

              pchampin: proposed alt semantics - not getting much pull so withdraw PR.
              +… semantic test suite needs updating to align with semantics defn.

              +

              Action: pchampin to align the Semantics test suite with the current content of the Semantics section

              +

              pchampin: Overview; functions&operators; merge; impl reports
              +… for 2nd draft.

              +

              <pchampin> PROPOSED: release 2nd public draft once {Overview; functions&operators; merge; impl reports} are included

              +

              <gkellogg> +1

              +

              <pchampin> +1

              +

              <thomas> 0

              +

              <olaf> +1

              +

              <AndyS> +1 -- and happy if less rather than push too far out

              +

              <gatemezing> +1 if possible at least 3 months after the 1st report

              +

              <ora> +1

              +

              "publish early, publish often"

              +

              <rivettp> +1

              +

              <TallTed> +1

              +

              <william> +1

              +

              Resolution: release 2nd public draft once {Overview; functions&operators; merge; impl reports} are included

              +

              <gatemezing> Who is the author AndyS ?

              +

              me

              +
              + +
              +

              Open-ended discussions

              +

              gkellogg: Industry input. Is this SA a possible barrier? Should we explain how RDF* -> RDF-star ?

              +

              pchampin: Pavel was active we settled on this.

              +

              <pchampin> AndyS: explaining how to use current RDF-star (e.g. annotation) to "emulate" PG-mode

              +

              <olaf> ontotext

              +

              <gkellogg> https://github.com/w3c/rdf-star#preliminary-implementations

              +

              New UC on uncertainty is definitely PG

              +

              thomas: Clarification Q: stop talking about PG but was decision to drop it?
              +… is it a layer over SA?

              +

              pchampin: IIRC modes became confusing
              +… need to check exactly what we decided

              +

              thomas: Does PG differ in a way that is not a layer over PG.

              +

              gkellogg: some systems may need to be PG - by either annotation or auto "infer" assert triple. Getting ahead of ourselves maybe.
              +… some impls might have an index consideration.
              +… impl reports may help highlight this

              +

              olaf: agree - systems have been built RDF* and states Property Graph-like.
              +… annotation syntax. For them, change of syntax.

              +

              <pchampin> annotation syntax: {| ... |}

              +

              thomas: Q: no statements about not-asserted triple?

              +

              pchampin: change is not claim full support?
              +… media type may be involved

              +

              <william> well I believe that's what Eye does

              +

              <pchampin> AndyS: another way of providing PG features would be to pre-process << >> to also assert them

              +

              <pchampin> ... and maintain consistency for deletion

              +

              <pchampin> ... some kind of inferencing

              +

              <thomas> RDF-star and RDF-STAR

              +

              pchampin: PG-mode only tests will fail.

              +

              thomas: How many people need unasserted triples?

              +

              <TallTed> unasserted are vital. `Mary says "the_moon is green_cheese".`

              +

              william: SA related to reification?

              +

              pchampin: Thanks everyone - meeting closed

              +

              <william> thanks! bye

              +

              <olaf> Thanks!

              +

              <gatemezing> bye!

              +

              <thomas> bye!

              +
              +
              + + + + + + +
              Minutes manually created (not a transcript), formatted by scribe.perl version 127 (Wed Dec 30 17:39:58 2020 UTC).
              + + + diff --git a/corese-unit-test/src/test/resources/data/rdf-star-main/Minutes/2021-03-26.html b/corese-unit-test/src/test/resources/data/rdf-star-main/Minutes/2021-03-26.html new file mode 100644 index 0000000000..10bf177f0e --- /dev/null +++ b/corese-unit-test/src/test/resources/data/rdf-star-main/Minutes/2021-03-26.html @@ -0,0 +1,100 @@ + + + + +RDF-star – 26 March 2021 + + + + + + + + + + +
              +

              W3C

              + +

              RDF-star

              +

              26 March 2021

              + + +
              + +
              +
              +

              Attendees

              +
              +
              Present
              AndyS, gkellogg, pchampin, TallTed, thomas
              +
              Regrets
              -
              +
              Chair
              pchampin
              +
              Scribe
              AndyS
              +
              +
              + + +
              + +
              +

              Meeting minutes

              +
              + +
              +

              Announcements and newcomers

              +

              <gkellogg> https://gitter.im/lotico/rdf-star

              +

              pchampin: Talk about RDF-star. Went well.
              +… high attendance.

              +

              <gkellogg> http://www.lotico.com/index.php/Metadata_for_RDF_Statements:_The_RDF-star_Approach

              +

              pchampin: video published via Lotico event page.

              +

              thomas: semantics issue
              +… need to be clear what is right and wrong use.

              +

              pchampin: Referential opacity does not preclude transparent interpretation (app can choose to use it transparently) but the reverse is not true - can't go opaque from transparent.

              +

              <TallTed> nitpick, CGs emit "reports" not necessarily "final reports"

              +
              + +
              +

              Open actions

              +

              <pchampin> https://github.com/w3c/rdf-star/issues?q=is%3Aopen+is%3Aissue+label%3Aaction

              +

              <pchampin> https://github.com/w3c/rdf-star/issues/134

              +

              gkellog: we can have minority opinions.

              +

              gkellog: The URIs may change or go away. This group is "suggesting" an appraoch.
              +… have a time limit on URIs.

              +

              <TallTed> minting rdf:embeddedTriple would indeed be very bullying on a future WG that didn't want to include that in their amendment of rdf: ...

              +

              <TallTed> That doesn't feel like a strong argument to me.

              +

              <pchampin> https://github.com/w3c/rdf-star/issues/136

              +

              <gkellogg> We need people to implement and report on the semantics test suite.

              +

              <pchampin> https://github.com/w3c/rdf-star/issues/135

              +

              pchampin: Will do PRs in future for all by editorial fixes.

              +

              pchampin: Merge text - explains how to deal with blank nodes

              +

              PR https://github.com/w3c/rdf-star/pull/143

              +
              + +
              +

              Explanation about Merge

              +

              https://www.w3.org/TR/rdf11-concepts/#section-blank-nodes

              +

              pchampin: Merge vs union :: dataset default graph may be a union of named graphs.

              +

              thomas: Next week is Good Friday.

              +

              gkellog: Roadmap to "done".

              +
              +
              + + +
              Minutes manually created (not a transcript), formatted by scribe.perl version 127 (Wed Dec 30 17:39:58 2020 UTC).
              + + + diff --git a/corese-unit-test/src/test/resources/data/rdf-star-main/Minutes/2021-04-09.html b/corese-unit-test/src/test/resources/data/rdf-star-main/Minutes/2021-04-09.html new file mode 100644 index 0000000000..19e54a6d3f --- /dev/null +++ b/corese-unit-test/src/test/resources/data/rdf-star-main/Minutes/2021-04-09.html @@ -0,0 +1,241 @@ + + + + +RDF-star – 9 April 2021 + + + + + + + + + + +
              +

              W3C

              + +

              RDF-star

              +

              9 April 2021

              + + +
              + +
              +
              +

              Attendees

              +
              +
              Present
              AndyS, gkellogg, james, ora, pchampin, rivettp, TallTed
              +
              Regrets
              -
              +
              Chair
              pchampin
              +
              Scribe
              ora, pchampin
              +
              +
              + + +
              + +
              +

              Meeting minutes

              +
              + +
              +

              Announcements and newcomers

              +

              new member: Julián

              +

              pchampin: I will take some time off next week, will not be on next call

              +

              pchampin: who will be the chair?

              +

              pchampin: propose we skip next week

              +

              pchampin: new pull request from gkellogg

              +

              pchampin: Trig-star

              +

              gkellogg: still some questions to be worked out

              +

              gkellogg: e.g., ordering

              +

              pchampin: examples in abstract syntax is a good idea

              +

              andys: prefer Turtle* first

              +

              gkellogg: will do a PR for ordering

              +

              Action: gkellogg to reorder the concrete sections: Turtle-star, TriG-star, N-Triples-star, N-Quads-star

              +

              <Zakim> AndyS, you wanted to say that there is a TriX-star implementation (!!)

              +

              andys: I did a TriX-star implementation, for no reason whatsoever

              +

              <gkellogg> I updated my TriX implementation too :)

              +
              + +
              +

              Open actions

              +

              pchampin: no open actions

              +
              + +
              +

              publishing a new draft

              +

              <AndyS> The 2nd draft discussion -- https://w3c.github.io/rdf-star/Minutes/2021-03-19.html#t04

              +

              pchampin: canonicalization will probably not make it to the next draft

              +

              pchampin: we discussed that a new draft sooner rather than later would be a good thing

              +

              pchampin: publish often and early

              +

              pchampin: some things are pending...

              +

              pchampin: 5 PRs

              +

              pchampin: some have no impact on the draft

              +

              pchampin: test suite

              +

              <pchampin> https://github.com/w3c/rdf-star/pull/149

              +

              pchampin: does not stop us from publishing

              +

              (audio weirdness, did not capture everything...)

              +

              now fine again...

              +

              <pchampin> https://github.com/w3c/rdf-star/pull/129

              +

              pchampin: long standing PR: clarification of SPARQL functions

              +

              james: that's what I wanted to add

              +

              pchampin: olaf wanted to remove some examples

              +

              pchampin: recommend merging anyway

              +

              <pchampin> https://github.com/w3c/rdf-star/pull/155

              +

              pchampin: recent PR: extending the overview with examples using annotation syntax

              +

              pchampin: propose we leave a few days for people to react, merge next week

              +

              pchampin: after these merges we should publish

              +

              <pchampin> PROPOSAL: merge PR 129 and 155 after a few days, and then release next public draft

              +

              <pchampin> +1

              +

              <william> +1

              +

              <gkellogg> +1

              +

              <ora> +1

              +

              <james> +1

              +

              <rivettp> +1

              +

              <AndyS> +1

              +

              <TallTed> +1

              +

              <Julian> +1

              +

              pchampin: reminding we are not a formal group, wrt. voting

              +

              Resolution: merge PR 129 and 155 after a few days, and then release next public draft

              +

              andys: what is the most pressing issue to close?

              +

              pchampin: I will be back the week after next

              +

              pchampin: several active issues

              +

              pchampin: we are in pretty good shape overall

              +

              pchampin: but still: introducing a new IRI

              +

              pchampin: mime-type

              +

              pchampin: do we want to include something about SHACL, possible SHEX?

              +

              andys: I think no need to do that

              +

              andys: once there is a CG report (our target), then the SHACL group can react

              +

              andys: similarly for SHEX

              +

              gkellogg: we did not address JSON-LD either

              +

              andys: label open issues as "discussion items"...?

              +

              pchampin: Notation3, semantics (at least) belong there

              +

              <pchampin> STRAWPOLL: we won't include anything in our report about SHACL not SHEX

              +

              <gkellogg> +1

              +

              <william> +0

              +

              <james> +1

              +

              <ora> +1

              +

              <AndyS> +1 (better to come from those communities)

              +

              <Julian> +1

              +

              <rivettp> I think we should at least mention SHACL and OWL with an outline of possible impact

              +

              <pchampin> +1

              +

              <rivettp> -1

              +

              pchampin: I did not mean to not mention at all

              +

              pchampin: the idea is not to ignore, we can give some "leads"

              +

              rivettp: should be fine

              +

              <AndyS> FYI: OWL-star https://w3c.github.io/rdf-star/UCR/rdf-star-ucr.html#compact-serialization-of-owl-graphs -- from https://github.com/w3c/rdf-star/issues/148

              +

              <rivettp> +1

              +

              pchampin: next public draft is very close to a final report

              +

              pchampin: editorial changes notwithstanding

              +
              + +
              +

              RDF-star and dataset canonicalization

              +

              pchampin: this was raised by gkellogg

              +

              pchampin: there is a W3C WG charter proposed, linked data signature

              +

              pchampin: standard way of signing RDF datasets

              +

              pchampin: hence canonicalization

              +

              pchampin: question was raised about RDF* during preparation

              +

              pchampin: RDF-star included in the proposed charter

              +

              pchampin: understanding that RDF-star will not be a Rec by then

              +

              (thank you AndyS)

              +

              pchampin: dataset defined in terms of triples, nothing about embedded triples

              +

              pchampin: clarification is needed

              +

              gkellogg: canonicalization is challenging (math proofs), extending to RDF-star could be problematic

              +

              gkellogg: RDF-star dataset transformed to RDF dataset could be signed

              +

              gkellogg: but now we would have two versions of the same

              +

              gkellogg: let's not use language that restricts our work too much

              +

              andys: how about a short section about principles (embedded triples, etc.), any future work on RDF will need to deal with these

              +

              andys: that is, set requirements rather than offering solutions

              +

              gkellogg: they may not heed any of that

              +

              gkellogg: solution may involve introduction of a new vocabulary

              +

              gkellogg: make it possible to do a reverse transformation

              +

              andys: RDF-star system understand embedded triples natively, this may be a problem

              +

              pchampin: hidden IRIs...

              +

              andys: my point was that they are not isomorphic

              +

              gkellogg: canonical does not have to imply isomorphic

              +

              andys: what if two different things have the same canonicalization, because we missed something?

              +

              andys: you may need to know that something was originally RDF-star

              +

              <gkellogg> Link to RDF C14N draft: https://json-ld.github.io/rdf-dataset-canonicalization/spec/

              +

              pchampin: introduce reification predicates only for this purpose?

              +

              pchampin: an RDF graph using these would be identified as coming from RDF-star

              +

              gkellogg: canonicalization algorithm should introduce extensible steps [?]

              +

              gkellogg: it is not our job to solve this, but make it possible for future groups to solve it

              +

              gkellogg: this is not simple to implement

              +

              gkellogg: math proof is required, changing the algorithm would invalidate the proof

              +

              andys: IRI spec explains how to turn an IRI into a URI

              +

              pchampin: what do we do after publishing the 2nd draft?

              +

              andys: mention it in the charter...

              +

              andys: we will not be recommending changes to the algorithm

              +

              gkellogg: similar to n3 and lists

              +

              pchampin: we will liaise at some point

              +

              pchampin: not much more we can do

              +

              pchampin: no time to discuss media type this time

              +
              + +
              +

              open-ended discussion

              +

              gkellogg: namespace for hidden triples?

              +

              pchampin: type for hidden triples?

              +

              andys: new extension namespace for all groups to use

              +

              andys: "rdfx"

              +

              pchampin: temporary use?

              +

              andys: that is the idea, but reality may be different

              +

              andys: creating things is easy, getting rid of them not so much

              +

              pchampin: we could create a temporary RDF-star namespace, just as easy to fix (or not)

              +

              pchampin: put a time extent on these

              +

              <AndyS> e.g. https://w3.org/ns/rdfx

              +

              andys: what's under "ns" at W3C?

              +

              ora: I don't understand the need for that NS
              +… namespaces are cheap
              +… the essential thing is that they must be unique
              +… This notion of shared namespace is a misuse of the concept.
              +… It may create clashed, which namespaces were invented to prevent.

              +

              <rivettp> I think rdf namespaces are a mess because we have too many - people don't know when to use rdfs vs rdf

              +

              <william> yes, indeed

              +

              gkellogg: there is a difference between something that is eventually meant for, say, the RDF namespace, as opposed to something that remains separate

              +

              <william> thanks!

              +

              <gkellogg> We need a CG to discuss transitional IRIs :)

              +

              bye

              +
              +
              + + + + + + +
              Minutes manually created (not a transcript), formatted by scribe.perl version 127 (Wed Dec 30 17:39:58 2020 UTC).
              + + + diff --git a/corese-unit-test/src/test/resources/data/rdf-star-main/Minutes/2021-04-23.html b/corese-unit-test/src/test/resources/data/rdf-star-main/Minutes/2021-04-23.html new file mode 100644 index 0000000000..b7c80c818c --- /dev/null +++ b/corese-unit-test/src/test/resources/data/rdf-star-main/Minutes/2021-04-23.html @@ -0,0 +1,194 @@ + + + + +RDF-star – 23 April 2021 + + + + + + + + + + +
              +

              W3C

              + +

              RDF-star

              +

              23 April 2021

              + + +
              + +
              +
              +

              Attendees

              +
              +
              Present
              AndyS, gkellogg, james, pchampin, TallTed, thomas
              +
              Regrets
              Olaf Hartg, William Van Woensel
              +
              Chair
              pchampin
              +
              Scribe
              gkellogg, pchampin
              +
              +
              + + +
              + +
              +

              Meeting minutes

              +
              + +
              +

              Announcements and newcomers

              +

              pchampin: Not too much feedback from the tweets and anouncements of the updated draft.

              +
              + +
              +

              Open actions

              +

              <pchampin> https://github.com/w3c/rdf-star/issues?q=is%3Aopen+is%3Aissue+label%3Aaction

              +

              pchampin: No open actions at the moment

              +

              gkellogg: I had an action to reorganize the concrete syntaxes, which is done.

              +

              Open PR #149 - splitting manifets

              +

              andys: not really technical, just organizational

              +
              + +
              +

              Old or new media-types for RDF-star

              +

              pchampin: I want to discuss the media-type issue.

              +

              <pchampin> https://github.com/w3c/rdf-star/issues/43

              +

              <pchampin> https://github.com/w3c/rdf-star/issues/43#issuecomment-814772066

              +

              pchampin: We need to answer two separat equestions.
              +… first, if we had the authority to update existing media types, would we want to update them with rdf-star features, or would it be better to have a new separate media type.
              +… If we think the right way is to update existing media types, would we want to create an interim media type?

              +

              james: Or, do we want to be in a position to flagrantly abuse the exising media types.
              +… There’s nothing in the process that permits us to do it, but nothing to stop us.

              +

              pchampin: I’ve been assuming that our answer to the first question is “yes”

              +

              james: If it gets to be a TR, it has the authority to claim the space. Until then, it can’t.
              +… My answer to the first question is that if there were a WG that produced a TR, it would be appropriate.

              +

              pchampin: Some people might disagree.

              +

              <pchampin> STRAWPOLL: do we consider that eventually, text/turtle (and other media-type covered by our CG-spec) should be update to include RDF-star features?

              +

              <gkellogg> +1

              +

              <pchampin> +1

              +

              <AndyS> +1

              +

              <james> +1

              +

              <pchampin> "eventually" meaning "by a WG having this authority"

              +

              <TallTed> "text/star+turtle"... except that Turtle is not a viable fallback, because Turtle-star is not a subset of Turtle

              +

              <TallTed> text/turtle was unfortunately written not to include a version declaration, and adding one now would break existing tools as much as including Turtle-star data in text/turtle

              +

              <TallTed> -0.8

              +

              gkellogg: Groups abuse media types all the time, whill in progress.

              +

              TallTed: The problem starts with groups that don’t have a statement about dispersing datatypes.
              +… Putting turtle-star into text/turtle will break things.
              +… THe only good answer is to presume there will be a new mediatype and act that way.
              +… You build it in the spec and send it in for registration.
              +… The only good thing is to register a new media type.

              +

              AndyS: Postel’s law on production and consumption.
              +… Note that text/turtle was not done by the WG, but precedes that. so what came out as Turtle is different than the originally proposed registration.
              +… Registrations can be changed, which might not be what expected, but it happens.
              +… PREFIX/@prefix, charset, ...
              +… THere are people who extend sparql, and still use the regular media type.

              +

              AndyS: Is there a use case where an updated processor would not want to receive turtle-star data?
              +… On the discussions, this has been posed, but noone’s described a use case.
              +… Whatever we do, there are going to be pain points.

              +

              james: I agree with Andy that it’s possible to change things. THis requires the authority to change the document which defined it.

              +

              AndyS: The only thing we can do is propose changes.
              +… The entire document has no standing in process.

              +

              james: When there was a transition from SPARLQ 1.0 to 1.1, the language changed. There weren’t any requests to distinguish between them.

              +

              AndyS: There was never a discussion of changing the mime-type.

              +

              james: Going back to the question about breaking things. it’s concieveable that we could have proposed enodings which conform to text/turtle, but we didn't.
              +… We might want to say why we didn’t chose to conform with the existing syntax.

              +

              pchampin: We could have encoded RDF-star in something which is still valid Turtle. (proposition)

              +

              james: The group decided that the turtle-star encoding has advantages that overweigh this. That should be mentioned somewhere.
              +… Why didn’t we just use the reification vocabulary?

              +

              <TallTed> Eric Prud'hommeaux, the contact person for text/turtle, is in this group (regularly comments on github, though he doesn't often if ever join calls) -- https://www.iana.org/assignments/media-types/text/turtle

              +

              <TallTed> and he has failed to update that doc from pointing to https://www.w3.org/TeamSubmission/2008/SUBM-turtle-20080114/ to http://www.w3.org/TeamSubmission/2011/SUBM-turtle-20110328/ nor to http://www.w3.org/TR/2014/REC-turtle-20140225/

              +

              pchampin: Given that Turtle has no “extension-points”, that could have been the place to do it.
              +… We might have considered that theoretically.

              +

              gkellogg: It’s IANA’s fault. We should have sn IANA section to describe proposed changes and our rationalle.

              +

              thomas: One thought was to base everything in reification.

              +

              <AndyS> Reasons against (one use per triple) reification: (1) too many triples (this is in RDF-star section 2.1) (2) partial ("broken") reifications.

              +

              pchampin: I think that Peter’’s preferred way was to not have a different abstract syntax.

              +

              thomas: The thought was to express the semantics of RDF-star through reification.

              +

              pchampin: I think he would have preferred RDF-star to be another language which is logically equivalent to using reification.

              +

              <AndyS> Also (and is in sec 2.1) - query in SPARQL is cumbersome -- obv can be solved by extending SPARQL syntax only ... which is where the original <<>> came from in DAWG days.

              +

              pchampin: We broke turtle with << >>.

              +

              thomas: We could have formulated it in a way that a standard turtle processor could have understood it.

              +

              pchampin: I really don’t see a way to do that, but we maybe didn’t spend enough time on that.

              +

              thomas: I think we should go for x- mime types to make it clear that this is a proposal.

              +

              pchampin: That’s the second question.
              +… There is a (small) majority that agreed to extend the existing languages.
              +… In the mean-time, what do we suggest people do?

              +

              <pchampin> STRAWPOLL: assuming we recommend to update text/turtle (and other mimetypes), do we recommend people to use the original original mimetype for RDF-star content?

              +

              <pchampin> +1

              +

              <TallTed> straw poll doesn't need to be yes/no question. can be options (1) (2) (3)

              +

              <thomas> -1

              +

              <james> +0

              +

              <gkellogg> +1 but with caution

              +

              <TallTed> -0.9

              +

              <AndyS> +1

              +

              <TallTed> I'm not a full block, but strongly against. I think this question needs to reach a broader audience -- at least all of RDF-DEV CG, beyond rdf-star-cg

              +

              pchampin: It’s fair that we have an IANA section to propose extending the types. It’s what do we do in the mean time?

              +

              gkellogg: there is no good solution, we need to caution people on the use of these format in production systems
              +… while the profile parameter is not normatively ok, it could be a good option
              +… we need to stay away from creating a new text/x-... mimetype; it has been shown to be an anti-pattern

              +

              thomas: How is it not an anti-pattern to publish text/turtle that it’s turtle?

              +

              AndyS: There are two sides to that.

              +

              james: what has the expeirence been with using wild headers? (I.e., that aren’t registered? If a server understool something like X-EXTENSION: turtle-star,
              +… A server that understands that would serve it one way, and if it didn’t it would ignore it.
              +… Servers would ignore an unregistered header.

              +

              AndyS: That would cover the case of clients who are aware of it but don’t want it.
              +… When we went through RDF/SPARQL 1.1, I don’t remember there being particular difficulties.

              +

              <TallTed> text/star-turtle would be legal albeit potentially confusing ... text/turtle-star likewise

              +

              <TallTed> text/star+turtle fails because Turtle-star is not subset of Turtle

              +

              <TallTed> *is* legal to do Link: rel=alt from ttl-star to ttl (or vice-versa)

              +

              <TallTed> or use con-neg preference values ... which requires the different media type

              +

              AndyS: What if you do ACCEPT: */*? If it’s absent, is is presumed?

              +

              TallTed: If you don’t specified, it is assumed.
              +… It’s a tool-specific choice.

              +

              pchampin: I need to think about a special header. It might mitigate the problem in the mean time.
              +… I think I understand how to make a PR that covers these ideas.

              +
              + +
              +

              Attracting more implementation reports

              +

              pchampin: We’d like to have more implementation reports. Any idea how to encourage people to submit them?
              +… At the beginning of the work I created a small python script to test some implementations against semantics test suites? Is it appropriate for me to submit a response for someone else?

              +

              AndyS: You’d get into trouble. If you say it doesn’t pass, then you’re open.

              +

              <AndyS> RFC 2616: not in 7231: "If no Accept header field is present, then it is assumed that the client accepts all media types."

              +

              TallTed: It’s legitimate to run the test suite against any tool, but putting it in the report is a problem.

              +

              <TallTed> ( mentioning @ericprud [ in regards to text/turtle IANA reg, discussed above ] to trigger his eyes on this log when it goes into github )

              +

              james: There was a researcher at INRIA who made an effort to establish a mechanism for uniformly testing SPARQL endpoints.
              +… she didn’t have much success for a variety of reasons.
              +… You have authority, but if you want acceptance, you need support.
              +… If the tool has a community license, you can run it, but not say what the results were.

              +

              TallTed: It’s also legitimate to warn about licensing considerations.

              +

              gkellogg: How do we get people who have expressed support to actually report?

              +

              AndyS: It hasn’t been published long, and it may take some time.

              +

              TallTed: It’s also legitimat to run the test and submit the results to the implementor and ask “what’s up?”

              +

              pchampin: The polite thing is to give it back to then and ask them to submit something.

              +

              gkellogg: It’s never too late to submit an implementation report.

              +

              pchampin: I hope to have one for Rust soon.

              +
              +
              + + +
              Minutes manually created (not a transcript), formatted by scribe.perl version 127 (Wed Dec 30 17:39:58 2020 UTC).
              + + + diff --git a/corese-unit-test/src/test/resources/data/rdf-star-main/Minutes/2021-04-30.html b/corese-unit-test/src/test/resources/data/rdf-star-main/Minutes/2021-04-30.html new file mode 100644 index 0000000000..757e51a742 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/rdf-star-main/Minutes/2021-04-30.html @@ -0,0 +1,245 @@ + + + + +RDF-star – 30 April 2021 + + + + + + + + + + +
              +

              W3C

              + +

              RDF-star

              +

              30 April 2021

              + + +
              + +
              +
              +

              Attendees

              +
              +
              Present
              AndyS, gatemezing, gkellogg, james_, olaf, ora, pchampin, TallTed, thomas
              +
              Regrets
              -
              +
              Chair
              pchampin
              +
              Scribe
              olaf
              +
              +
              + + +
              + +
              +

              Meeting minutes

              +

              <AndyS> Hi

              +

              <pchampin> hi

              +

              <AndyS> "not knowing who has scribed, I nominate Ora"

              +
              + +
              +

              Announcements and newcomers

              +

              pchampin: RDF-star will be presented at the KGC

              +
              + +
              +

              Open actions

              +

              <pchampin> https://github.com/w3c/rdf-star/issues?q=is%3Aopen+is%3Aissue+label%3Aaction

              +

              pchampin: no pending actions on github

              +

              andys: checkup on the issue about the SPARQL-star grammar

              +

              <pchampin> https://github.com/w3c/rdf-star/issues/163

              +

              pchampin: the grammar is not complete
              +… double-pointy brackets for expressions are missing

              +

              <AndyS> I've made it an "action" and assigned it to myself.

              +

              AndyS: wrapped up about organizing the manifests
              +… has been merged

              +
              + +
              +

              PR 161: Media-types

              +

              pchampin: wrote a section based on discussion from last week
              +… including a listing of pros and cons of the different approaches
              +… and clarification that the group didn't reach consensus
              +… Hope that all arguments are captured

              +

              thomas: question: what ways are there to make explicit that an endpoint supports SPARQL-star?

              +

              pchampin: no answer

              +

              <TallTed> https://example.org/sparql-star :-)

              +

              gkellogg: it would be reasonable to add something for a SPARQL-star service description

              +

              <gatemezing> +1 to add a SPARQL service description

              +

              <james_> https://www.w3.org/TR/sparql11-service-description

              +

              <pchampin> https://www.w3.org/TR/sparql11-service-description/#sd-feature

              +

              gkellogg: retrieving the service descr. is not part of the protocol

              +

              <james_> https://www.w3.org/TR/sparql11-service-description/#sd-resultFormat

              +

              gkellogg: it's a machine-readable approach

              +

              <TallTed> It's not currently part of "every client's" activity; more part of advanced client's activity, when they're looking for a specific (typically more advanced) feature

              +

              pchampin: we may define an IRI for a SPARQL-star feature
              +… to be used in such service description
              +… and then encourage providers to include it in their service descr.

              +

              <james_> the "standard" features are described in the service description recommendation

              +

              AndyS: another use of the service descr. ...
              +… used by aggregators

              +

              <TallTed> more details, including example features -- https://www.w3.org/TR/sparql11-service-description/#sd-Feature

              +

              Action: pchampin to add a paragraph on SPARQL service description and sd:feature

              +

              <TallTed> https://www.w3.org/TR/sparql11-service-description/#sd-Language might be more appropriate, i.e., SPARQL-star is a different language than SPARQL 1.0 or SPARQL 1.1

              +

              pchampin: good approach for the optimistic perspective regarding the mimetypes

              +

              <ora> Sorry I was late.

              +

              <TallTed> see also https://www.w3.org/TR/sparql11-service-description/#lang-sparql10query and following

              +

              pchampin: my fear is that having an x-... mimetype may make people use it

              +

              gkellogg: that's orthogonal to the service descr. issue
              +… it's reasonable to have an RDF-star namespace

              +

              pchampin: will keep the PR on media types open for a few days
              +… so that everyone can take a look and react
              +… and if no complaints in a few days, then the PR will be merged

              +
              + +
              +

              PR 162: Semantics

              +

              pchampin: made another PR about the semantics of RDF-star
              +… it's less disruptive than the previous one
              +… Two advantages:

              +

              first, get rid of hidden IRIs

              +

              second, it's consistent with SPARQL-star eval.semantics (at least, PA thinks so)

              +

              pchampin: doesn't change anything in the semantics-related test suites
              +… any opinions about it?

              +

              <Zakim> AndyS, you wanted to ask about simple literals

              +

              AndyS: talking about simple literals causes trouble
              +… they don't exist in RDF but only in the syntax

              +

              pchampin: that's right
              +… it was already in the previous version

              +

              <pchampin> https://w3c.github.io/rdf-star/cg-spec/editors_draft.html#mapping

              +

              pchampin: agree that they way it's phrased is ambiguous
              +… Peter suggested something else
              +… which is probably a better idea
              +… PR will be adapted accordingly
              +… Waiting for Dörthe and others to take a look
              +… if no complaints in a couple of days, then it will be merged
              +… only things it changes are things that none liked before

              +
              + +
              +

              Open-ended discussions

              +

              AndyS: "How do we get out of this" question
              +… how do we get to a finished version?
              +… what time frame?
              +… shall we call the next draft the "last call"?

              +

              <TallTed> "time" isn't the best measurement. "the point where none of us see major issues" would be good.

              +

              AndyS: agrees to TallTed
              +… but there are no more major issues

              +

              TallTed: the point of this task force is to focus on a particular thing
              +… if we don't see no major issues with that thing, then
              +… the report should go to RDF-DEV CG

              +

              AndyS: The last call may go to RDF-DEV CG
              +… Is there a list of remaining major issues?

              +

              <gatemezing> We can tag here https://github.com/w3c/rdf-star/issues "mejor issues" ?

              +

              pchampin: tag issues in github

              +

              AndyS: tie that to the document

              +

              Action: create "outsanding issues" in the CG-report as being the things to complete before we're done

              +

              thomas: want to confirm that he is working on a longish email about the semantics
              +… wants to convince the group of moving to transparency semantics

              +

              gkellogg: in addition to an email, a PR would be great
              +… that PR should capture the alternative proposal

              +

              AndyS: instead of a PR (which freezes it), put it into a separate document

              +

              gkellogg: or on a wiki page

              +

              thomas: my aim is still to change it
              +… I would like to have a discussion first
              +… but, of course, prefer a note

              +

              pchampin: agrees that, at least, the rationale for the decision should be in the report
              +… regarding freezing: we can have both
              +… it's similar to the discussion of the seminal example
              +… it's good to have the report as the single-point of reference

              +

              TallTed: what#s nice here is that we are not an immutable academic paper
              +… we can make it a "snapshot draft"
              +… which may include pointers to the discussions in the github issues, the mailing list, etc

              +

              pchampin: agrees
              +… yet, it would be nicer for the reader of the report to have a summary in the report
              +… rather than just a link to somewhere else

              +

              thomas: yes

              +

              Action: add a section about the rationale for semantic opacity / transparency

              +

              TallTed: may even be marked as a "feature with risk"

              +

              AndyS: this can get out of control
              +… wouldn't have a report with a long discussion of the alternatives
              +… counterproductive opposite the Property Graphs community
              +… may seem as if nothing was agreed

              +

              pchampin: no, instead, intention is to give a rationale for the solution (semantics) that we keep in the end
              +… really only explain the consequences of the semantics

              +

              TallTed: didn't think the focus of this work was to convert PG people to the RDF world
              +… but instead to fill a perceived gap in RDF that might send people from RDF to PGs...

              +

              gkellogg: it provides a formal underpinning
              +… marketing

              +

              pchampin: to Ted: I think it works both ways

              +

              gkellogg: another thing that came up...
              +… difference between relationship and attributes in PGs
              +… there is a distinction that some people see when comparing commercial PGs and RDF triple stores

              +

              pchampin: see how it is related to the PG versus RDF discussion
              +… but not specific to RDF-star
              +… usually, we consider this a representation issue
              +… however, it may also be deeper

              +

              <gkellogg> Discussion is in EasierRDF https://github.com/w3c/EasierRDF/issues/45

              +

              pchampin: for instance, in Cypher the distinction is also in the query expressions
              +… perhaps out of scope

              +

              gkellogg: suggest to take a look at the issue in EasierRDF github
              +… and to chime in

              +

              AndyS: Actually, it is in OWL
              +… datatype properties versus object properties

              +

              pchampin: okay, OWL has this distinction
              +… but rarely any visual representations of RDF graphs
              +… that make this distinction
              +… e.g., by visualizing an RDF graph more in a PG-like manner

              +

              ora: comment on what Ted said earlier about the perceived gap between
              +… PG and RDF
              +… when talking to customers who are just starting
              +… they almost always ask whether they should go for RDF or PG
              +… and it seems to them that there is no going back
              +… RDF-star may help to narrow the gap

              +

              <gatemezing> Ora, that perception is not because you provide both PG and RDF in your tools?

              +

              AndyS: primarily about provenance of (RDF) data
              +… and being able to handle it in a convenient way

              +

              ora: to the question from the chat: it is not only about that
              +… not always the case
              +… instead, more general discussions about graphs

              +

              <gatemezing> Thanks ora! Makes sense

              +

              ora: even before a decision which type of DB to pick

              +

              pchampin: KGC next week, but no overlap with the call

              +

              <gatemezing> Bye!

              +

              <william> bye!

              +

              <ora> Bye

              +
              +
              + + + + +
              Minutes manually created (not a transcript), formatted by scribe.perl version 127 (Wed Dec 30 17:39:58 2020 UTC).
              + + + diff --git a/corese-unit-test/src/test/resources/data/rdf-star-main/Minutes/2021-05-07.html b/corese-unit-test/src/test/resources/data/rdf-star-main/Minutes/2021-05-07.html new file mode 100644 index 0000000000..8d9cc6d0f7 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/rdf-star-main/Minutes/2021-05-07.html @@ -0,0 +1,185 @@ + + + + +RDF-star – 7 May 2021 + + + + + + + + + + +
              +

              W3C

              + +

              RDF-star

              +

              7 May 2021

              + + +
              + +
              +
              +

              Attendees

              +
              +
              Present
              AndyS, gatemezing, gkellogg, james, james_, olaf, ora, pchampin, rivettp, TallTed, thomas
              +
              Regrets
              -
              +
              Chair
              pchampin
              +
              Scribe
              AndyS, jbollema, pchampin
              +
              +
              + + +
              + +
              +

              Meeting minutes

              +
              + +
              +

              Announcements and newcomers

              +

              Knowledge Graph Conference

              +

              ora: Got a Q about RDF-star - request for what's going on.

              +

              olaf: shorter version of Lotico event

              +

              rivettp: There session on GQL and OSI.
              +… is there unification of work going on?

              +

              pchampin: GQL is following a different track.

              +

              AndyS: the process is partially responsible of that
              +… the ISO process makes it hard to share with the public

              +

              rivettp: many people at the conference were asking about RDF-star
              +… the seem to expect it to help a convergence between the two worlds

              +

              AndyS: not sure people expect "convergence"

              +

              rivettp: [something about data interoperability]

              +

              <AndyS> Ditto.

              +

              ora: Interesting results of EKGC survey - interoperation a priority
              +… very positive for standardization
              +… least important "no code" tools.

              +
              + +
              +

              Open actions

              +

              <pchampin> https://github.com/w3c/rdf-star/issues?q=is%3Aopen+is%3Aissue+label%3Aaction

              +

              <AndyS> https://github.com/w3c/rdf-star/issues/163

              +

              <AndyS> PR 167

              +

              AndyS: updated SPARQL grammar to allow << ... >> in expressions
              +… and add corresponding negative test cases
              +… and a short section describing how to evaluate these expressions (refering to TRIPLE(...))

              +

              <gkellogg> +1 to merge

              +

              AndyS: ready to merge in a few days

              +

              pchampin: other actions?
              +… semantics PR in-progress

              +
              + +
              +

              Moving to standard track

              +

              <pchampin> https://lists.w3.org/Archives/Public/public-rdf-star/2021May/0015.html

              +

              pchampin: Summary of email: W3C suggests starting the chartering process soon as possible.
              +… flow from CG(-like) to WG
              +… do not give impression that the WG is a rubber stamp
              +… Q1 : Are we OK with that?

              +

              thomas: Who will participate?

              +

              (This is a W3C process question not specific to this WG)

              +

              pchampin: W3C member organisations nominate individuals.

              +

              phcampin: we can help with the charter text
              +… and we need chairs

              +

              ora: WG may have invited experts

              +

              <pchampin> https://www.w3.org/Consortium/Process/

              +

              gkellogg: IE at chairs' discretion
              +… not bypass your own W3C member org
              +… CG stands on its own. We will have a final report.
              +… (about another WG) ...

              +

              jbollema: Do we need two WGs? - one for RDF, one for SPARQL.

              +

              AndyS: in the past, some WG have modified other WG's documents
              +… there is a preference to have less WGs

              +

              pchampin: Both would be in scope - will check.

              +

              <ora> (Are we not using the queue anymore...?)

              +

              gkellog: Charter will list docs in-scope.

              +

              ora: Original RDF, RDFS got combined.

              +

              ora: There will be a delay - chartering, ramp up, IP review

              +

              <thomas> are we talking months?

              +

              pchampin: because it will take time, is one reason to start chartering soon. And CG can continue while process proceeds.

              +

              <AndyS> thomas - yes

              +

              <Zakim> TallTed, you wanted to say it's all about the charter

              +

              TallTed: Qs: "CG" input can taken at the point of WG-start-up. Wording in charter.
              +… concern is this RDF 1.2, fork, RDF 2.

              +

              <gatemezing> +1 to TallTed on using the input of this work for the next WG

              +

              AndyS: there are RDF systems not supporting bnodes
              +… we can live with RDF systems not supporting embedded triples.
              +… The important point is that what we propose does not invalidated existing data.

              +

              <james> .. but ... it will invalidate applications

              +

              gkellogg: Not so much an either/or -- RDF 1.1 has generalized RDF graph.
              +… key is updating docs for abstract syntax or in "generalized" abstraction
              +… AZ mentioned quoted graphs

              +

              ora: concern what does this do to the wider community
              +… we should pay attention to the adoption and presentation

              +

              AndyS: Would chartering avoid implementers submit implementation reports
              +… hope to make internal implementors experiments public.
              +… so that we can learn of it.

              +

              pchampin: implementation reports might look like we just want to rubber stamp the existing spec

              +

              AndyS: this can be turned into something positive
              +… implementation reports will inform the charter

              +

              thomas: who writes the charter?

              +

              pchampin: Usually W3C team member who will be team contact. Wide review and revision.
              +… general agreement this is the way forward.

              +

              <pchampin> STRAWPOLL: let's write a charter draft

              +

              <jbollema> +1 for starting on a charter for a WG.

              +

              <pchampin> +1

              +

              <thomas> +1

              +

              <ora> +1

              +

              <AndyS> +1

              +

              <olaf> +1

              +

              <gkellogg> +1

              +

              <james> +1

              +

              <rivettp> +1

              +

              <TallTed> +1

              +

              Action: pchampin to create a repo for the charter

              +

              <william> +1

              +

              <pchampin> STRAWPOLL: have a call next week

              +

              <TallTed> +0

              +

              <pchampin> +0

              +

              <thomas> +0

              +

              <james> +0

              +

              <gkellogg> +0

              +

              <william> +0

              +

              <olaf> +0

              +

              <AndyS> +0

              +

              <rivettp> +1

              +

              <jbollema> +1

              +

              <william> thanks

              +

              <ora> bye

              +

              <olaf> bye

              +

              <jbollema> bye and thanks

              +
              +
              + +
              +

              Summary of action items

              +
                +
              1. pchampin to create a repo for the charter
              2. +
              +
              + + +
              Minutes manually created (not a transcript), formatted by scribe.perl version 127 (Wed Dec 30 17:39:58 2020 UTC).
              + + + diff --git a/corese-unit-test/src/test/resources/data/rdf-star-main/Minutes/2021-05-14.html b/corese-unit-test/src/test/resources/data/rdf-star-main/Minutes/2021-05-14.html new file mode 100644 index 0000000000..5619f7a767 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/rdf-star-main/Minutes/2021-05-14.html @@ -0,0 +1,248 @@ + + + + +RDF-star – 14 May 2021 + + + + + + + + + + +
              +

              W3C

              + +

              RDF-star

              +

              14 May 2021

              + + +
              + +
              +
              +

              Attendees

              +
              +
              Present
              AndyS, gkellogg, james, jbollema, olaf, ora, pchampin, rivettp, TallTed, thomas
              +
              Regrets
              -
              +
              Chair
              pchampin
              +
              Scribe
              AndyS, olaf, pchampin
              +
              +
              + + +
              + +
              +

              Meeting minutes

              +

              <jbollema> hi

              +

              <ora> I will not volunteer as a scribe because I know that Zakim prefers me anyway in the lottery. ;-)

              +
              + +
              +

              Announcement

              +

              pchampin: no newcomers
              +… and no announcements

              +
              + +
              +

              Open actions

              +

              <pchampin> https://github.com/w3c/rdf-star/issues?q=is%3Aopen+is%3Aissue+label%3Aaction

              +

              pchampin: unfortunately, didn't find much time to work on open actions
              +… about 166, deferred to today
              +… 168 (charter) no progress because of work on another charter (signatures)
              +… learned a lot during this process, which may come useful for working on our charter
              +… action about service descriptions, no progress here either
              +… we may discuss relevant IRIs to be defined
              +… which means we need our own namespace
              +… which may then contain all these IRIs
              +… another option may be to leave this open for the potential WG to make a decision

              +

              gkellogg: we should record the issues/direction in sections now
              +… because the start of a WG may need a long time
              +… and things may become forgotten

              +

              thomas: about example "has occurrence" - that hasn't been discussed
              +… better leave it out because it hasn't been discussed
              +… or define a property for it because it is an important use case

              +

              pchampin: yes, defining such property may make sense

              +

              thomas: on the other hand, it's incomplete
              +… because there would be no way to state where the occurrence is
              +… or we may add vocabulary for that too

              +

              pchampin: makes sense, please create an issue
              +… last action: create outstanding issues list
              +… did some clean up
              +… in github
              +… but didn't remove any open issues in github

              +

              <pchampin> https://github.com/w3c/rdf-star/issues/121

              +

              pchampin: things that really need to be done before the final report: #121
              +… Andy has text that may be included here
              +… (this text is in the github issue)
              +… additionally, the intro section needs to be tidied up
              +… RDF-star vocab may wait

              +

              <AndyS> Sounds good.

              +

              olaf: sounds good for me too

              +

              pchampin: everyone should look at the open issues in github
              +… and see whether they find some of these important enough

              +

              Action: everyone to check in the issues if they believe one of the need to be addressed before "final report"

              +

              AndyS: merged a text in the doc
              +… regarding comparison for SPARQL
              +… that should be added

              +

              idea: define it recursively
              +… first for S, then P, then O

              +

              jbollema: regarding #121
              +… embedded triples should be last in the comparison order
              +… because it allows for a slight optimization if the data is organized in a specific way

              +

              <AndyS> Assign it to me.

              +

              Action: AndyS to make a PR for issue 121

              +

              james: symmetry should not be applied
              +… (#121)

              +

              <rivettp> question: regarding action 1, HOW should we indicate issues that we think should be addressed?

              +

              AndyS: think james misread
              +… sameTerms is equals but not the other way around

              +

              james: will review it again

              +

              pchampin: the PR will be subject to review as well, of course

              +

              pchampin: anything else?

              +

              pchampin: none

              +

              <AndyS> james - [[ "A = B" is defaults to "sameTerm(A,B)" as it does for URIs. ]] is only stating SPARQL normal for "=". Can you suggest better text?

              +
              + +
              +

              Referential opacity/transperency of embedded triples

              +

              thomas: wrote some emails
              +… hope everyone read them
              +… 5 sec summary may be difficult

              +

              pchampin: stepped back
              +… this group is not an official WG
              +… acting as a chair and editor is tricky here
              +… became less convinced about the current solution
              +… although it is still the best option on the table
              +… it's not constructive to repeat arguments again and again

              +

              pchamin: disappointed that the 2nd strawpoll attracted little participation
              +… didn't want to seem biased by invoking a 6-months old strawpoll as an argument
              +… unfortunately, the new strawpoll has muddied the waters more than cleared it

              +

              thomas: strawpoll is not binding, right?

              +

              pchampin: right - we are not a WG

              +

              olaf: I didn't manage to read the long email, unfortunately.
              +… I skimmed it. I am not totally agains moving towards a transparent semantics.
              +… But I consider the opaque semantics as a better building block.
              +… It allows to add "local transparecy" for dedicated properties.
              +… I can't see how it could work the other way.
              +… You were not convinced by my arguments; that might have been because I was targetting James' question.
              +… It was modelled with SPARQL, but can be modelled otherwise.

              +

              thomas: strong feeling against attaching it to specific properties.
              +… This is not how the semantic web works at the moment.
              +… I understand that SPARQL is not the issue here, but I still find this solution too complex.
              +… It is not how people use RDF.

              +

              olaf: I would like to see more concrete use cases which you think might not be possible.

              +

              thomas: everything does not work. This is not the way RDF-star is adverstised.
              +… The SemWeb works in a transparent way. You can replace an identifier with another one.
              +… Switching in the middle of a sentence from transparency to opacity is confusing.
              +… Better to separate concerns, as proposed by Antoine Zimmermann: using literals for opacity.

              +

              olaf: you are making strong claims about how people use the Semantic Web.
              +… If someone says that A owl:sameAs B, you don't have to accept it.

              +

              gkellogg: I out of my depth on this discussion.

              +

              gkellogg: Peter had reasonable examples in his email
              +… such as the one about the Berlin population

              +

              pchampin: the problem is related; Peter's example shows something that can be confusing
              +… and we need to address that

              +

              AndyS: Peter's example highlights difference between denotation and entailment
              +… choice what to apply are local
              +… entailment is about adding extra believes
              +… local ontology comes into play
              +… Peter argues from a syntax point of view
              +… Also, it uses D-entailment

              +

              it uses the intuition that this entailment regime is usually considered as globally agreed upon
              +… which is different from other entailment regimes

              +

              jbollema: my understanding of opacity ...
              +… it is not permissive
              +… because a query engine must not use owl:sameAs for embedded triples

              +

              <pchampin> transparency is not "allowing", it is "mandating"

              +

              jbollema: second part, having to preserve syntactic form of embedded triples
              +… maybe a practical issue for systems
              +… it may prevent practical optimizations

              +

              AndyS: that#s what I mentioned in my message
              +… what you do locally is up to you
              +… the issue is that the reverse is not possible

              +

              pchampin: to Jerven's question ...
              +… semantic transparency is not just allowing it but mandating it
              +… that's "killing" some use cases
              +… e.g., provenance
              +… opacity is not as restrictive
              +… some things may require additional machinary
              +… but that's the same in RDF

              +

              thomas: that's a bad argument because we are not caring only about RDF

              +

              pchampin: saying that this breaks the SemWeb doesn't make sense either

              +

              thomas: I think I explained in my emails what exactly is breaking the SemWeb
              +… it is a feature if you can rely on what you get form something else

              +

              pchampin: yes but you can add

              +

              thomas: that#s dangerous

              +

              <jbollema> they are dangeling in sparql query behaviour

              +

              thomas: provenance example ship1 versus ship2

              +

              <jbollema> << :a :b :c >> ?x ?y would not be found << :d :b :c >> ?x ?y . even if :a owl:sameAs :d was added to the graph and reasoned about

              +

              AndyS: You make strong statements
              +… entailment is local but denotation is global

              +

              thomas: asking pchampin for the distinction between syntax and interpretation
              +… the problem wouldn't exist if we had an explicit identifier for the embedded triple

              +

              pchampin: it really depends on what you want to identify with an embedded triple -- a triple or a statement
              +… the triple itself is closer to the syntax and allows for more use cases

              +

              william: in N3 we have formulas which have ref.opacity
              +… for quoted graphs
              +… the reasons for choosing it this way is because it allows to add more things on top

              +

              <thomas> but its a different use case

              +

              william: in contrast to having ref.transparency

              +

              <thomas> because they stand for themselves

              +

              william: interpretation of cited formula may differ

              +

              <gkellogg> That’s a pretty convincing argument for defaul opacity.

              +

              william: ref.opacity is the building block that allows for this

              +

              STRAWPOLL: do we keep a referential opacity?

              +

              <gkellogg> +1

              +

              <william> +1

              +

              <olaf> +1

              +

              <pchampin> +1

              +

              <thomas> -1

              +

              <AndyS> +0.9

              +

              <james> -1

              +

              <ora> 0

              +

              <TallTed> +0.5

              +

              <jbollema> -1

              +

              <william> for those who are interested: http://ceur-ws.org/Vol-2438/paper6.pdf

              +

              pchampin: still hardly a consensus ... unfortunately
              +… we have to reflect this lack of consensus in the document

              +

              <ora> Good discussion

              +

              pchampin: other item on the agenda (mimetypes as propsoed by James') postponed to next week

              +

              <william> thanks!

              +

              <jbollema> bye

              +

              Bye!

              +
              +
              + + + + +
              Minutes manually created (not a transcript), formatted by scribe.perl version 127 (Wed Dec 30 17:39:58 2020 UTC).
              + + + diff --git a/corese-unit-test/src/test/resources/data/rdf-star-main/Minutes/2021-05-21.html b/corese-unit-test/src/test/resources/data/rdf-star-main/Minutes/2021-05-21.html new file mode 100644 index 0000000000..cde9f019ba --- /dev/null +++ b/corese-unit-test/src/test/resources/data/rdf-star-main/Minutes/2021-05-21.html @@ -0,0 +1,271 @@ + + + + +RDF-star – 21 May 2021 + + + + + + + + + + +
              +

              W3C

              + +

              RDF-star

              +

              21 May 2021

              + + +
              + +
              +
              +

              Attendees

              +
              +
              Present
              AndyS, gkellogg, james, olaf, ora, pchampin, rivettp, TallTed, thomas
              +
              Regrets
              -
              +
              Chair
              pchampin
              +
              Scribe
              olaf
              +
              +
              + + +
              + +
              +

              Meeting minutes

              +

              <ora> For obvious reasons I will not volunteer...

              +

              pchampin: new people on the call !
              +… but not in IRC

              +

              <pchampin> and no microphone

              +
              + +
              +

              Announcements and newcomers

              +

              pchampin: announcements anyone?
              +… none, it seems

              +

              <TallTed> that's ancient!

              +
              + +
              +

              Open actions

              +

              <pchampin> https://github.com/w3c/rdf-star/issues?q=is%3Aopen+is%3Aissue+label%3Aaction

              +

              pchampin: open actions on me
              +… still late on the charter for a possible WG

              +

              <pchampin> https://github.com/w3c/rdf-star/issues/164

              +

              pchampin: another open one is about SPARQL service description
              +… not addressed yet

              +

              <pchampin> https://github.com/w3c/rdf-star/issues/165

              +

              pchampin: for the following reason
              +… for the first final report we need tidying up the intro and SPARQL ???
              +… propose to close this action

              +

              <pchampin> https://github.com/w3c/rdf-star/issues/121

              +

              <AndyS> For issue #121 : PR https://github.com/w3c/rdf-star/pull/172 Currently "draft" - Direction complete. Presentation and HTML needs attention. Includes tests.

              +

              pchampin: outstanding issue in the report was SPARQL comparison of RDF-star triples

              +

              AndyS: have made a draft
              +… which includes tests
              +… has good coverage
              +… including ordering of embedded triples
              +… because of the use case related to duplicates
              +… the defined ordering is somewhat arbitrary

              +

              <ora> arbitrary, but predictable, yes?

              +

              AndyS: other ways of ordering can be achieved by using the built-in functions

              +

              james: what about stable results?

              +

              AndyS: SPARQL order by has an extension point for unknow data types
              +… hence, not possible to define the ordering
              +… the extension will change the order

              +

              james: agree for unknow datatypes
              +… still useful to provide an order for everything that is known

              +

              AndyS: yes that would be useful
              +… happy to say that implementations should define the ordering

              +

              olaf: is this a general SPARQL issue?

              +

              james: it is broader
              +… but there is a SPARQL-star element to it

              +

              Action: AndyS: Add text on "good practice" to have a stable ordering.

              +

              pchampin: as mentioned by Andy, we don't have the right people in our group to address this
              +… may be added to tthe charter for he WG

              +

              Action: recorded: https://github.com/w3c/rdf-star/pull/172#issuecomment-846030677

              +

              <pchampin> https://github.com/w3c/rdf-star/issues/94

              +

              pchampin: next action is about example in the overview part

              +

              <pchampin> https://github.com/w3c/rdf-star/pull/171

              +

              pchampin: tidied up the intro
              +… split text into backgroun + history section and an overview section
              +… and added missing example about SPARQL-star Update
              +… already got some corrections by TallTed
              +… proposal to leave this PR open for a few workdays for people to comment

              +

              thomas: RDF/XML has an id attribute
              +… which is a shortcut notation to annotate a triple
              +… less verbose than RDF-star
              +… different perspective
              +… but shouldn't just say that RDF/XML has no solution to the problem that is the focus of RDF-star

              +

              pchampin: okay, that mention can be removed
              +… please propose a change in the PR

              +

              pchampin: #94 can be closed once the PR is merged

              +

              <R__Michael> sure!

              +

              <R__Michael> Hello folks!

              +
              + +
              +

              Newcomers

              +

              pchampin: new person on the call (Michael Cary)
              +… unfortunately, sound problems

              +

              <R__Michael> My current role is chief architect at a company called IHS Markit. I'm overseing a new divison that is buiding some exciting stuff

              +

              <R__Michael> I've been passionate about the semantic web for some time, but very interested in participating and giving back to the community here.

              +

              <R__Michael> RDF* is a key requirement for this project and I'm honored to be able to listen in and provide value anywhere I can

              +

              <R__Michael> I also champion semantic concepts and developer conferences around the world

              +

              <R__Michael> We're likely using Stardog

              +

              <R__Michael> Actually just wrapped a call with them

              +

              <AndyS> https://ihsmarkit.com/

              +

              <R__Michael> I have a zoom pro account, happy to host at any time

              +

              <TallTed> "key requirement" suggests there's a Use Case and/or some Requirements that might be added to relevant doc(s)!

              +

              pchampin: maybe we can/should move to Zoom
              +… we could use the Zoom of Olaf's university

              +

              <R__Michael> wonderful :)

              +

              pchampin: Michael, please contribute a use case description

              +

              <R__Michael> Absolutely!

              +
              + +
              +

              Back to open actions

              +

              pchampin: more on open actions ...

              +

              <pchampin> https://github.com/w3c/rdf-star/issues/166

              +

              <pchampin> https://github.com/w3c/rdf-star/pull/173

              +

              pchampin: #166 about a discussion on ref.opacity
              +… PR #173 includes such a discussion
              +… in this discussion, left the semantics as is
              +… i.e., ref.opaque
              +… because that's the least complex option to describe
              +… another thing that was added ...
              +… the other alternatives can be seen as smenatic extensions of the current solution
              +… TallTed proposed some corrections already
              +… will leave this PR open for some working days
              +… everyone, yell if you want things to be changed in that PR

              +

              AndyS: forgot to mention ...
              +… in section about SPARQL-star there were some issues about nesting
              +… changed the indentation in the sections

              +

              pchampin: seems to be a convention when using respec

              +

              AndyS: didn't seem to damage anything

              +

              <TallTed> respec ignores <h#> in place, makes it all work out *if* all the <section> are embedded/closed properly

              +

              AndyS: but the styling has changed

              +

              gkellogg: respec takes care of the rendering and of what ends up in the TOC

              +

              pchampin: another quick one ...

              +
              + +
              +

              move to zoom?

              +

              pchampin: any opinions about moving to Zoom instead?
              +… it may work more smoothly

              +

              <pchampin> PROPOSAL: move away from BBC to Zoom?

              +

              <ora> I am also happy to host the group on Amazon Chime.

              +

              <gkellogg> +1

              +

              <pchampin> +0

              +

              <thomas> +0

              +

              <ora> +1

              +

              <AndyS> Zoom or Google Meet or Chime.

              +

              <AndyS> +1

              +

              <rivettp> +0

              +

              <william> +0

              +

              <james> +0

              +

              <olaf> +0

              +

              <TallTed> fewer steps to join zoom call than BBB ... and standalone app lowers burden on web browsers

              +

              <TallTed> +0.5

              +

              pchampin: so, generally a positive opinion

              +

              <R__Michael> +0 I've managed to make BBB work over LTE (will also work from home office, but not "office" office)

              +

              pchampin: I can set up something via the W3C account

              +
              + +
              +

              Media types

              +

              pchampin: next item on the agenda is about media types
              +… we had discussions about this earlier
              +… but james wanted to add something

              +

              james: concern is that the spec should a more informed stance on the topic
              +… there is a lot of discussion in some github issue
              +… requirements for media types put constraints
              +… idea to do something more like what was done for the memento protocol

              +

              <pchampin> https://www.w3.org/TR/dx-prof-conneg/

              +

              james: profile header?
              +… in any case, as a reader of the report (not as implementer), a better founded discussion should be there
              +… the work would benefit from implementers taking a stance on the issue
              +… for example, the table suggested by ericp should be revisited

              +

              pchampin: I also would like the report to take a clearer stance on this issue
              +… but there was not one stance that felt like consensus by the group

              +

              james: okay, but the group has sufficient experience to include the discussion in the report

              +

              AndyS: a specific item in the discussion resulted in the inclusion of profiles

              +

              james: headers would be sufficient to address the cases
              +… as a reader, I would like to see the report mentioning it

              +

              pchampin: maybe that new document provide new info for the group to make progress on the issue

              +

              james: what it introduces is the notion that info should be included in out of band headers

              +

              gkellogg: it's broader

              +

              <TallTed> Profiles aren't a viable media type solution, because the media type to which such profiles would be applied must be a superset of those profiles (including no profile) -- which isn't so with any RDF-star serialization media type.

              +

              gkellogg: there is some consideration for when groups update their media types

              +

              <TallTed> It is fine to include things in the report on which we didn't achieve consensus, basically as "open questions", optimally including as much info as we have.

              +

              gkellogg: it is worth highlighting that a future WG should consider this issue
              +… we should not pre-decide for a potential WG

              +

              james: the report should not make an assessment
              +… but it should mention the alternative

              +

              pchampin: yes, agree that it should be mentioned
              +… also reluctant to write how it should be done

              +

              AndyS: if we are going to mention it, we need to mention that it changes the SPARQL protocol

              +

              pchampin: yes

              +

              <pchampin> PROPOSAL: add a ref to https://www.w3.org/TR/dx-prof-conneg/ in the section on media-types

              +

              <pchampin> +1

              +

              <gkellogg> +1

              +

              <AndyS> +0

              +

              <thomas> +1

              +

              <james> +1

              +

              <olaf> +0

              +

              <R__Michael> +1

              +

              <TallTed> +0 haven't read that one yet

              +

              <william> +0

              +

              <ora> +1

              +

              <rivettp> +1

              +

              Resolution: add a ref to https://www.w3.org/TR/dx-prof-conneg/ in the section on media-types

              +

              Action: pchampin to add ref to https://www.w3.org/TR/dx-prof-conneg/ (with warning about SPARQL protocol)

              +
              +
              + + + + + + +
              Minutes manually created (not a transcript), formatted by scribe.perl version 127 (Wed Dec 30 17:39:58 2020 UTC).
              + + + diff --git a/corese-unit-test/src/test/resources/data/rdf-star-main/Minutes/2021-05-28.html b/corese-unit-test/src/test/resources/data/rdf-star-main/Minutes/2021-05-28.html new file mode 100644 index 0000000000..627fa14153 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/rdf-star-main/Minutes/2021-05-28.html @@ -0,0 +1,194 @@ + + + + +RDF-star – 28 May 2021 + + + + + + + + + + +
              +

              W3C

              + +

              RDF-star

              +

              28 May 2021

              + + +
              + +
              +
              +

              Attendees

              +
              +
              Present
              AndyS, gkellogg, james, ora, pchampin, TallTed, thomas
              +
              Regrets
              olaf, william
              +
              Chair
              pchampin
              +
              Scribe
              gkellogg, pchampin
              +
              +
              + + +
              + +
              +

              Meeting minutes

              +

              <AndyS> Don't forget - zoom call today.

              +

              Reminder that we’re on Zoom this week.

              +
              + +
              +

              Announcements and newcomers

              +

              pchampin: Olaf had tweeted about an interview on using RDF-star, but haven’t seen a reference.
              +… Using Ontotext GraphDB?

              +

              <AndyS> https://www.synaptica.com/rdf-star-graphdb-graphite/

              +

              <AndyS> Also - there was a blog from TopQuadrant.

              +
              + +
              +

              Admin

              +

              pchampin: I think we’re narrowing the things we have to discuss, and it’s been more convenient to have calls less frequently. I think we can go to one call every two weeks.

              +

              <james> +0

              +

              AndyS: The next objective is to get a community report done.
              +… I’d think the intro and the SPARQL bits are what remains, both nearlly done.
              +… When do we plan that for?

              +

              pchampin: Maybe we can defer the change of schedule until after the report is published.

              +

              thomas: GitHub has been active lately on semantics and vocabulary. Is there interest in becoming more concrete on semantic extensions?

              +

              pchampin: My understanding was that the vocabulary was not blocking for the publishing of the final report (first).
              +… THe idea is to make it a bit more milestone-ish.

              +

              thomas: I feer it then becomes an afterthought and is left to the WG. I think the extension part should be as concrete as possible.

              +

              pchampin: I made a proposal following my action about what issues are considered to be blocking before “Final Report” milestone.

              +

              thomas: I’m fine with “milestone”.

              +

              pchampin: This was a list of blocking issues, and the vocabulary was not part of it.
              +… My understanding is that we can discuss the vocabulary afterwards and have other milestones before a final final report.
              +… It’s good to show progress before an upcoming charter draft.
              +… I’m not proposing to stop our work after the FR is out. We have some open issues, and my goal is to address them.

              +

              thomas: It’s the fring bits of RDF-star that are left, and intrest will deminish.

              +

              ora: I think the questions of semantics are very important. ONe of the big mistakes with the original RDF spec is that we weren’t very formal, which was rectified later.
              +… I’m in favor of working on semantic questions, but my feer is that we might want to address issues of schema.
              +… At this point, it’s not clear how to write a schema that makes use of RDF-star.

              +

              pchampin: Regarding the vocabulary, it started with an idea to have a term for the “class” of embedded triples, so that we could describe a property to expect and embedded triple.
              +… We also had the idea of having a standard way of expressing that something is an instance of a triple in a graph.
              +… There was a question of what voculary to use, but the key was an IRI expressing the type of an embedded triple.
              +… This opens a can of worms; we agreed not to decide where to put the vocabulary, so this is not low-hanging fruit, which is why I preferred to defer until after the next milestone.

              +

              thomas: THe two properties “occurance of” and “in graph” could be defined informally. THat would show how it can/should be done.

              +

              <pchampin> https://w3c.github.io/rdf-star/cg-spec/editors_draft.html#occurrences-example

              +

              pchampin: The “in” hides it’s own issues. Is the object a graph, or a graph document, …

              +

              thomas: I think it can be solved pragmatically.

              +

              pchampin: I’m not sure something ambiguous is better than nothing.

              +

              ora: I wanted to say I agree with PA, but we have to go there soon. If not now, at least we should have some words to say that something like this is needed.
              +… I don’t want to end up like the PG community, where there is no schema language.

              +

              gkellogg: we have to be careful about talking about graphs.
              +… RDF does not really provides way to talk about graphs,
              +… because the semantics of named graphs is not defined.
              +… Talking about the default graph is sometimes done with <>.

              +

              thomas: If it can be done in SPARQL, that’s good enough for me.

              +

              pchampin: Can we make such a comitment for RDF?

              +

              thomas: We could use mild terms to suggest that it could/should be done.

              +

              gkellogg: some groups (VC) depend on the ability to use the graph name to identify it
              +… If we need to define that, then it needs to be in the charter.
              +… Certainly will attract people.

              +

              pchampin: Back to the final report, I propose to add a chapter on the RDF-star vocabulary, but only reference the open issues plus some non-normative notes about being addressed in the future.

              +

              STRAWPOLL have a "placeholder" section about the RDF-star vocabulary, containing links to the issues

              +

              <gkellogg> +1

              +

              <thomas> +1

              +

              <ora> +1

              +

              <AndyS> +1: Many issues raised are wider than RDF-star. A placeholder seems the way to go. (Separate RDF-DEV group?)

              +

              james: I’m perplexed as to the reluctance for using SPARQL expressions when so much work has been done. Even if you don’t know the consequences, it would help the discourse.
              +… It would be worth to have this discussion in the chapter.

              +

              pchampin: I’m reluctant to make it a blocking condition on the milestone final report. After it’s published, I think we should address it.

              +

              james: Then why not put it in now? I’d like to make it as concrete as possible ASAP.

              +

              pchampin: My feeling is that it may draw us into discussions that will further delay the milestone.

              +

              <pchampin> +1

              +

              <james> +1

              +

              <TallTed> +0

              +

              <thomas> how many "final reports" are there? what differentiates a first "final report" from others? will they be marked as molestones?

              +

              pchampin: I don’t know how many, just that we don’t exclude the possibility of having another one in the future.

              +

              thomas: I see the time pressure, but if it’s named “Final Report”, I don’t see how we have several of them.

              +

              gkellogg: We’re bound by the set of possible W3C document types, “draft” and “final”.

              +

              thomas: We could try to get the vocabulary right as James or I have proposed for the next 2-3 weeks. If we don’t get agreement, then we can defer, otherwise try to include.

              +

              <james> nb. i am not even proposing that we get it "right", just the the document indicates some application of the terms

              +

              thomas: Can we agree to work on it over the next three weeks?

              +

              pchampin: This work is a side-project for all of us, so we don’t have strict deadlines anyway.

              +

              AndyS: We can have multiple final reports, or split it into parts. Delaying on this point ...
              +… I think it will interest other people, and we had an agreement on the process, but if we keep changing it, I lose confidence.

              +

              pchampin: Our first priority is to get a report out, and wanted to mention the section even if it’s not complete.
              +… It’s a question of what the editor’s prorities are in the coming weeks. Merging the current PRs or working on a new PR.

              +

              thomas: I feel that more people want to postpone it, but I feer that it will be postponed for a long time.

              +

              pchampin: That’s reallly not the goal, there is a section that will need to be filled.

              +

              STRAWPOLL change to a call every 2 weeks start now

              +

              <pchampin> +1

              +

              <james> +0

              +

              <ora> +0

              +

              <gkellogg> 0

              +

              <TallTed> +0

              +

              <thomas> -1 for a few more weeks

              +

              <AndyS> +0.8

              +

              <thomas> i could change my vote to -0.5

              +

              <pchampin> let's postpone that decsion

              +
              + +
              +

              Open actions

              +

              https://github.com/w3c/rdf-star/issues?q=is%3Aopen+is%3Aissue+label%3Aaction

              +

              https://github.com/w3c/rdf-star/issues/121

              +

              pchampin: PR #121 has a lot of work done.

              +

              gkellogg: some wordsmithing issues left, but I'm astisfied with the substance
              +… I have always found SPARQL equality challenging
              +… I'm passing all the tests.

              +

              AndyS: There are some more minor changes needed.
              +… It’s important to have a stable ordering.

              +

              https://github.com/w3c/rdf-star/issues/164

              +

              pchampin: Next was #1164 on Sparql Service Description. I’ll reference that in the TBD section.

              +

              https://github.com/w3c/rdf-star/issues/166

              +

              pchampin: The section on the rationale for transparence/opacity. I noticed that PRs fail on CI, while AndyS’s succeeds.

              +

              AndyS: I avoided a lot of ReSpec features and just wrote raw HTML. I didn’t have the energy on how to drop in.
              +… In addition to ARIA, there’s an empty-ID warning.

              +

              pchampin: To be clear, the idea is that the different semantics proposed in the document could be seen as layers of semantic extensions on top of the first one.
              +… I didn’t think that would cause too much discussion,

              +

              thomas: I saw this as marketing. I made a mistake in an answer. I had some things mixed up. I still don’t like what we’re doing.
              +… You’re leaving out common-sense entailments.
              +… I’m not as concerned about it now, but I’d be much happier if we could point to something about semantic extensions, but we don’t have that now.

              +

              pchampin: I don’t want to have the debate about which is best, because we agreed to say that there was no concensus in the group. You might use this as a semantic extension, or as a replacement, but we couldn’t agree.
              +… The term has a precise definition in the RDF spec. The alternative sematncis work on top of the opaque semantics.

              +

              thomas: I’m refering to my discussions with olaf.

              +

              pchampin: I’m just try to get to the point where we can merge the PR.
              +… We’ll need to continue on GitHub. The goal was to see if we can make progress.

              +

              https://github.com/w3c/rdf-star/issues/168

              +

              https://github.com/w3c/rdf-star/issues/175

              +

              pchampin: The charter hasn’t progressed.
              +… We haven’t done anything on the media-type or conneg discussions yet.
              +… AndyS mentioned that it could break some things.

              +

              james: WRT #175, AndyS requested that it introduce an issue in the sparql-12 group, which I have.

              +

              <AndyS> james - thx

              +

              thomas: Any feedback on my proposal?

              +

              pchampin: I see where you’re going. Having an alternative syntax for transparency is interesting, but until we’ve agreed on the vocabulary, I think it’s too early.
              +… I think the issue raised by pfps on non-obvious ramifications is a bit embarassing,
              +… It is dependent on our agreeing on how to add transparency.

              +
              +
              + + +
              Minutes manually created (not a transcript), formatted by scribe.perl version 127 (Wed Dec 30 17:39:58 2020 UTC).
              + + + diff --git a/corese-unit-test/src/test/resources/data/rdf-star-main/Minutes/2021-06-04.html b/corese-unit-test/src/test/resources/data/rdf-star-main/Minutes/2021-06-04.html new file mode 100644 index 0000000000..b369181c0d --- /dev/null +++ b/corese-unit-test/src/test/resources/data/rdf-star-main/Minutes/2021-06-04.html @@ -0,0 +1,207 @@ + + + + +RDF-star – 4 June 2021 + + + + + + + + + + +
              +

              W3C

              + +

              RDF-star

              +

              4 June 2021

              + + +
              + + + +
              +

              Meeting minutes

              +

              <thomas> thomas+

              +

              <TallTed> present

              +

              I'll scribe

              +
              + +
              +

              Announcements and newcomers

              +

              pchampin: rust implementation in progress

              +

              gkellogg: Regenerate EARL tests?

              +

              pchampin: wait until next publication

              +

              ora: Any C++ implementation?
              +… and state of Redland?

              +

              <gatemezing> I'm not aware of any implementation in C++ nor Redland

              +

              AndyS: when we publish next time, maybe we should have a vote saying the test suite is complete

              +
              + +
              +

              Open actions

              +

              <pchampin> https://github.com/w3c/rdf-star/issues?q=is%3Aopen+is%3Aissue+label%3Aaction

              +

              pchampin: charter action open.
              +… SPARQL function/operators action merged

              +
              + +
              +

              Outstanding pull-requests

              +

              Discussion on referential opacity <https://github.com/w3c/rdf-star/pull/173>

              +

              <thomas> i commented today

              +

              <thomas> sorry, i was late

              +

              thomas: suggestion to add section 2.2 that covers transparent vs opaque.

              +

              pchampin: section is focused on the abstract syntax.
              +… so discussion is with "semantics".

              +

              thomas: not visible enough

              +

              pchampin: This PR is about "transparent vs opaque" in dedicated sections.
              +… can we merge this PR?

              +

              gkellogg: this is an abstract issue and may, in a WG, be rolled into RDF semantics and entailments.
              +… so maybe guidance to a future WG on updating RDF.

              +

              <pchampin> q.

              +

              <pchampin> PROPOSAL: merge PR173

              +

              <gkellogg> +1

              +

              <pchampin> +1

              +

              pchampin: propose to merge #173.

              +

              <AndyS> +1

              +

              <ora> +1

              +

              <thomas> +1

              +

              <gatemezing> +1

              +

              <TallTed> +1

              +

              Resolution: merge PR173

              +

              Section on RDF-star vocabulary <https://github.com/w3c/rdf-star/pull/176>

              +

              pchampin: some placeholders for discussion.

              +

              thomas: misses transparency vocabulary - there is an issue.

              +

              <thomas> 170

              +

              thomas: issue #170

              +

              <gkellogg> https://github.com/w3c/rdf-star/issues/170

              +

              Action: pchampin to add issue 170 in the section of PR176

              +

              thomas: add syntax for transparency?

              +

              pchampin: does not define vocabulary.

              +

              <pchampin> PROPOSAL: merge PR176 after issue 170 has been added to it

              +

              <gkellogg> +1

              +

              <AndyS> +1

              +

              <pchampin> +1

              +

              <TallTed> +1

              +

              <thomas> +1

              +

              <gatemezing> +1

              +

              <ora> +1

              +

              Resolution: merge PR176 after issue 170 has been added to it

              +

              Discussion of TR 'Content Negotiation by Profile' <https://github.com/w3c/rdf-star/pull/177>

              +

              TallTed: neither "x." nor "x-" is appropriate

              +

              AndyS: IANA registration is slow, but updating an existing registration can be quicker

              +

              TallTed: there is a combination of facts here, including the fact that text/turtle *currently* does not point to the correct document

              +

              pchampin: the correct text is to leave it as "x."
              +… "x-" is not a subtree

              +

              pchampin: the point of the section is to note there is not consensus in this group.

              +

              <gatemezing> +1 of pchampin solution of not explicitly mentioning the x. or x-

              +

              pchampin: suggest remove mention of "x?"

              +

              <pchampin> STRAWPOLL: do not mention either 'x.' or 'x-'

              +

              <AndyS> +1

              +

              <pchampin> +1

              +

              <thomas> 0

              +

              <gkellogg> +1

              +

              <TallTed> +1

              +

              <gatemezing> +1

              +

              <ora> +1

              +

              <gkellogg> https://www.iana.org/assignments/media-types/application/n-triples

              +

              gkellogg: what is necessary for other media type - eg: n-triples: -> TR/n-triples
              +… then no IANA involvement needed

              +

              <TallTed> Linking from the CGReport to the relevant Issues and/or PRs could keep some of the discussion text out of the report, and make it easier for follow-on work to see how we reached the conclusion(s) in the CGReport

              +

              AndyS: Turtle was registered before it was a REC
              +… it is a special case

              +

              <TallTed> We might suggest to the IANA-listed W3 affiliated maintainers of these media types that their registrations be changed to point to w3id.org URIs which *should* be easier to update going forward, with more maintainers, etc.

              +

              pchampin: bring the "one person" contact issue to W3C team.

              +

              Action: pchampin to raise the IANA issue (specific individual responsible for mediatype) in W3C stategy team

              +

              <TallTed> (or that the IANA-listed maintainers be changed to point to role accounts/addresses)

              +

              <pchampin> PROPOSED: merge PR 177 once the 'x.'/'x-' mentions have been removed

              +

              <pchampin> +1

              +

              <gkellogg> +1

              +

              <gatemezing> +1

              +

              <ora> +1

              +

              <thomas> 0

              +

              <TallTed> +0.75

              +

              <AndyS> +1

              +

              Resolution: merge PR 177 once the 'x.'/'x-' mentions have been removed

              +

              TallTed: suggestion - link to discussions
              +… add links to places location for discussions

              +

              AndyS: discussions tend to be in context

              +

              gkellogg: discussions exist on github.

              +

              pchampin: The section has a link to issue 43.
              +… and telecon discussions noted on issues

              +

              <ora> +1 on Andy's comment

              +
              + +
              +

              Publishing a new report

              +

              pchampin: ted and thomas wish to make proposals.

              +

              TallTed: not a blocker for me.

              +

              pchampin: only choices in W3C process are "draft" and "final"
              +… will add to intro/abstract explaining "final" does not mean no further publication

              +

              pchampin: proposal - we make a decision next week on publication of a "non draft" report.

              +

              thomas: my proposal by Wednesday

              +

              <ora> Bye!

              +
              +
              + + + + + + +
              Minutes manually created (not a transcript), formatted by scribe.perl version 127 (Wed Dec 30 17:39:58 2020 UTC).
              + + + diff --git a/corese-unit-test/src/test/resources/data/rdf-star-main/Minutes/2021-06-11.html b/corese-unit-test/src/test/resources/data/rdf-star-main/Minutes/2021-06-11.html new file mode 100644 index 0000000000..aec7294625 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/rdf-star-main/Minutes/2021-06-11.html @@ -0,0 +1,205 @@ + + + + +RDF-star – 11 June 2021 + + + + + + + + + + +
              +

              W3C

              + +

              RDF-star

              +

              11 June 2021

              + + +
              + +
              +
              +

              Attendees

              +
              +
              Present
              AndyS, gkellogg, james, olaf, ora, pchampin, TallTed, thomas
              +
              Regrets
              -
              +
              Chair
              pchampin
              +
              Scribe
              james, pchampin
              +
              +
              + + +
              + +
              +

              Meeting minutes

              +

              <ora> I never volunteer because Zakim hates me.

              +

              <ora> s/not said/said

              +

              <ora> I know it is just tough love from zakim...

              +
              + +
              +

              Announcements and newcomers

              +

              pchampin: announcement of newcommers, none

              +

              olaf: i did not see mch as eswc. te only one was the same use case inoe of the recent blog posts
              +… using rdfstr to capture access control statement. on top of graphdb and happy with the performance and withthe conciseness of the expression of the policies

              +

              both data and queries

              +

              <thomas> which talk was that?

              +

              pchampin: also mentioned in the industry panel
              +… the paper has "rdf-star" in its title.

              +

              <olaf> The paper title is "Use Case: Ontologies and RDF* for Knowledge Management"

              +

              pchampin: another announcement: completed a rust implementation of the four parsers and intend to publish an earl report

              +
              + +
              +

              Open actions

              +

              <pchampin> https://github.com/w3c/rdf-star/issues?q=is%3Aopen+is%3Aissue+label%3Aaction

              +

              pchampin: open actions. 2 on me. 1. no news about the charter. 2. report on media type registrations, that the contact person should be reachable.
              +… came to the conclusion that there is no issue.

              +

              <pchampin> https://github.com/w3c/rdf-star/issues/186

              +

              pchampin: reported in the action
              +… difference btw contact and change controller as the controller remains the w3c
              +… recommends to close the action

              +

              gkellogg: the issue behind this is that with turtle, where the registration has not been updated.
              +… that w3c is the controller does not provide the actor to actually make the changes

              +

              TallTed: we need a path, the w3c role does not suffice

              +

              pchampin: push it to the w3c.

              +

              TallTed: make that the action

              +

              pchampin: we should take the initial action even if it is orthogonal to the group's task

              +

              TallTed: suggests to consolidate all requests

              +

              <gkellogg> JSON-LD does have W3C as the change controller

              +

              TallTed: esp with regard to the change controller

              +

              pchampin: can we close that action?

              +
              + +
              +

              Publishing a new report

              +

              pchampin: seeing no other actions, next agenda items.

              +

              <pchampin> https://github.com/w3c/rdf-star/pull/185

              +

              pchampin: first, thomas' pull request. that some discussion of distinction btw draft and final report.

              +

              pchampin: it is large, which is a concern.

              +

              thomas: summarizing: it was not intended to be merged. just to give an impression of how to tackle the problem which i see in the draft
              +… it leaves too much out and does not adequately realted to other things in the field.
              +… i would like to discuss it in a general way. among reactions was thai i undercut the effort, whcih was not the intention.
              +… the effort does not do itself a favor if it leaves out the problems which we have discussed.
              +… the general tone of the report should be more balanced.

              +

              <pchampin> q.

              +

              thomas: question, is the general sentimet is that it is a "no go" or if it a start to be improved upon.

              +

              pchampin: having writte most of the sections which are called "unbalanced", they were my understanding of the balance to this point.

              +

              gkellogg: stuck me that "motivations and caveats" is a new section. begins ewith the characterization that the semantics is new and unusual.

              +

              but, in itself it does make reference to issues with semantics which are "important to discuss". muchof what is said there would better appear in an appendix.

              +

              the majority opinoion has supported "opaque" semantics and controversy is better left inan appendiy, ratehr than in themain body.

              +

              <AndyS> s/opionoion/opinion/

              +

              thomas: i do not want to questiona design decision, but the problem is stil not clear and needs to be discussed in order to avoid untoward consequences.
              +… granted, the introduction is too long.
              +… not questioning the decided dirction, but it needs to presented with more care

              +

              TallTed: if i misunderstand "opaque v7s transparent", then your explanation needs more work.
              +… the current goal is towars a working group to work on rdf star. that need a clear problem statement.
              +… all work in progress will be problematic, because none are implementing the propsa in the draft. so we need as clear a solution as possible.

              +

              thomas: we disagree as to whether the proposed solution actually covers the problem space
              +… alot of people are implementing under misconceptions

              +

              <pchampin> https://w3c.github.io/rdf-star/cg-spec/editors_draft.html#ref-opacity

              +

              pchampin: we do have things like "that" in the current draft.
              +… there is a remarks section at the ned of the semantics section, whcih contains different things about the consequence sof the semantics.
              +… esp expalinging the consequences of opacity and describing the alternatives
              +… the text may give too much credit to the current formulation, but the structure with additional information is there already.
              +… reluctant to put the qualification at the beginning of the exposition. that does not provide balance

              +

              thomas: i could make it shorter and move it into the overview
              +… the sections to document the discussion remain valuable.

              +

              AndyS: the structure of the document is correct.

              +

              james: as a reader, I find one point in Thomas' proposal valuable
              +… the semantics section belongs earlier in the document

              +

              pchampin: i do agree that the reorder could be beneficial

              +

              gkellogg: speaking for developers. detailed semantics belongs at the end.
              +… that notwithstanding it is imported to understand what this is, which is not possible without discussing the semantics.
              +… also important is explainable ai
              +… but leave alternative semantics ducsissions to secondary locations so as not to confuse the reader

              +

              AndyS: there was a strong case make earlier, that people would implement wrongly
              +… we have tests which should prevent that

              +

              TallTed: until the document is finalize, it cannot be implemented.

              +

              AndyS: why cannot we turn this into something which is observable

              +

              thomas: I think what I do is important, and you will benefit from it too.

              +

              thomas: test cases is not my world. that is a techcnical problem not soemthing to discuss

              +

              james: I'm sensitive to AndyS's position,
              +… but ask him to consider Thomas' points

              +

              thomas: the concern is that the technical result will break and will benefit no one

              +

              pchampin: it _is_ a technical specification and beyond that people can do other stuff
              +… beyond what is bjectively observeable i am not convinced there is much to do beyond authoring the specification
              +… i invite other opinions

              +

              pchampin: now there are some concrete proposals implicit in the pr.

              +

              considering whether to move the semantics up to precede sparql-star looks more consistent

              +

              AndyS: in the rdf spec there are separate documents : concept and model theory

              +

              TallTed: authored by separate groups

              +

              TallTed: in this document there is one group and one document, which argues for purposeful interleaving.

              +

              gkellogg: we could procde multiple document, but that is not most useful
              +… wait for that to get to the working group(s)
              +… we woud be producing ten different specs, which we could do but the purpose of this groupd to lay out a coherent argument
              +… it serves better to see that in one place

              +

              TallTed: that argues that the order does not matter that much

              +

              TallTed: it might be important to label the implementation reports are preliminary in order to avoid misconstrual

              +

              gkellogg: do not know what to add to an earl report as it just describes the details of execution

              +

              TallTed: general problem with w3c documents as they do not describe their contingencies
              +… there are large efforts to implement this and customers are looking towards it, but that is irresponsible.

              +

              AndyS: does the document's draft status not suffice?

              +

              TallTed: it is intended to do the job, but it is not sufficient

              +

              AndyS: best taken up outside of this group.

              +

              pchampin: there is a w3c community process, ...

              +

              ora: the reason why there are multiple rdf specs to a large part has to doe with the work flow and division fo work.

              +

              responsibility for documents was contingent on working technology
              +… unsure how to qualify the document to limit others's activites.

              +

              AndyS: we should invite implementation reported from enterprise implementers

              +

              gkellogg: concern is that people with look at the final report, where the stauts will say it is neither w3c nor w3c standards track.

              +

              <pchampin> +1

              +

              gkellogg: we could put something in the processor which generate the html to add qualifications

              +

              thomas: wrt gregg's notion of order: semantics is too important to put it at the end.

              +

              gkellogg: user community does not demand an account of relation to the semantics.

              +

              thomas: if semantics is moved up it would be easier to integrate withthe text.

              +

              TallTed: ordering sections: go back to "what is to be solved". more than one. they are not yet clearly statd and eliniated.
              +… because of that suggestions of how to address them cannot be clearly stated.
              +… there is more than one problem, but people focus on their own problems.
              +… people say they want to annotate one triple, but they will actually want to annotate a string of triples.
              +… that maybe work for anotehr group, but that will come.

              +

              <gkellogg> Annotating multiple triples seems to be handled by the N3 group, which has a different theory of operation.

              +

              TallTed: re status: qualification, that "htis is not standards" is not adequate, as it turns out that documents are used in more ways that authorized

              +

              AndyS: w3c is trying to conform to the trend that efforts form around documents and it is difficult to act against the. this wheter that goes well or not. no working on the odcument will chage the way the communtay clusters and acts.
              +… other examples are confusing: working group notes end up in tr space.
              +… we are not exacerbating the situation.

              +

              ora: the importance of semantics
              +… people focus just on concrete things, but that is a w3c failure not to make people appreciate that semantics is concrete
              +… teds' "groups of statements" : that is a complex issue which is much larger than we can address is this group.

              +

              <AndyS> https://w3c.github.io/rdf-star/reports/index.html ==> status section is "This document is merely a W3C-internal document. ...This report describes the state of implementation conformance at the time of publication."

              +

              <TallTed> "How to annotate multiple statements" may well be fodder for another group; worth noting sooner than later as "potential work for future WG"

              +

              pchampin: today was an important dicussion, but disappointment that we didi not get to discuss what to publish next

              +

              <thomas> why not publish a new _draft_?

              +

              pchampin: reconvent next week (not bi-weekly) and the first point should be about publishing a draft
              +… and other quick final word?

              +

              ora: we are not done when a clock runs out. were are done when we are done.

              +

              pchampin: want to signal progress by publishing drafts

              +

              pchampin: thanks to everyone.

              +
              +
              + + +
              Minutes manually created (not a transcript), formatted by scribe.perl version 142 (Tue Jun 1 16:59:13 2021 UTC).
              + + + diff --git a/corese-unit-test/src/test/resources/data/rdf-star-main/Minutes/2021-06-18.html b/corese-unit-test/src/test/resources/data/rdf-star-main/Minutes/2021-06-18.html new file mode 100644 index 0000000000..bfc340742a --- /dev/null +++ b/corese-unit-test/src/test/resources/data/rdf-star-main/Minutes/2021-06-18.html @@ -0,0 +1,261 @@ + + + + +RDF-star – 18 June 2021 + + + + + + + + + + +
              +

              W3C

              + +

              RDF-star

              +

              18 June 2021

              + + +
              + +
              +
              +

              Attendees

              +
              +
              Present
              AndyS, gatemezing, gkellogg, james__, olaf, pchampin, TallTed, thomas
              +
              Regrets
              william
              +
              Chair
              pchampin
              +
              Scribe
              olaf, pchampin
              +
              +
              + + +
              + +
              +

              Meeting minutes

              +
              + +
              +

              Announcements and newcomers

              +

              pchampin: no newcomers
              +… announcements anyone?
              +… none

              +

              <gkellogg> regrets for next week

              +
              + +
              +

              open actions

              +

              <pchampin> https://github.com/w3c/rdf-star/issues?q=is%3Aopen+is%3Aissue+label%3Aaction

              +

              pchampin: only one open action
              +… it has been completed

              +

              <pchampin> https://github.com/w3c/rdf-star-wg-charter

              +

              pchampin: initiate a github repo for charter for future WG
              +… simply took the charter template, currently a lot of boiler plate stuff
              +… plus a bit of content
              +… feedback welcome
              +… currently framed as: writing the new version of RDF RECs
              +… but everything is open at this stage
              +… let#s discuss among us first
              +… and later share with the broader community

              +

              gkellogg: deliverable list not complete
              +… serialization syntaxes not complete
              +… long list of specs
              +… which will be controversial

              +

              pchampin: it's work in progress
              +… out-of-scope section is there
              +… essentially saying that our CG report is a patch on several different specs
              +… scope of it should be kept tightly focused
              +… One possibility mentioned in the draft charter:
              +… by updating the specs, we are making use of a new feature of the W3C process
              +… namely, documents are "living documents"
              +… that can serve as an argument to keep the scope focused

              +

              AndyS: What does it mean to have a "living standard"?

              +

              pchampin: it means: a REC can be marked to be open to new features
              +… which does not require to go through the whole process (working drafts->last draft -> etc)
              +… makes the process more lightweight

              +
              + +
              +

              Community Group Process

              +

              pchampin: Did homework regarding the proposed transition to a final report
              +… CGs are not WGs

              +

              <pchampin> https://www.w3.org/community/about/faq/

              +

              pchampin: but still the process is a bit more formalized than thought
              +… two thing:
              +… first, we are making a mistake with the list of contributors
              +… contributors to a CG report must agree to a license agreement
              +… by joining the CG
              +… While that's the case for the editors and most of the authors, it's not the case for most of the contributors listed on the draft report
              +… easiest way forward: rename that section to Acknowledgements

              +

              <pchampin> PROPOSED: rename the 'contributors' section to 'acknowledgements', to avoid confusion

              +

              <TallTed> +1 though I don't think this requires group resolution

              +

              pchampin: remains in the same place within the doc

              +

              james__: believes that he had to agree the W3C terms
              +… when joining the CG

              +

              pchampin: maybe that was because of a PR

              +

              pchampin: we may also question who is in which section
              +… however, the issue at hand is about the third section

              +

              AndyS: doesn't that make it more a bit more complicated?

              +

              pchampin: when we go to final report, the license changes
              +… currently, everyone is giving license for their own contributions

              +

              TallTed: no issue about being on the calls etc, but about what they have put into the text
              +… we may copy boiler plate text from some other similar report

              +

              pchampin: hoping that the current boiler plate text should be enough
              +… currently just proposing to change the header of the third group of people mentioned on the report
              +… checking whether it's okay with everyone to rename the header

              +

              <pchampin> PROPOSED: rename the 'contributors' section to 'acknowledgement'

              +

              <pchampin> +1

              +

              <thomas> +1

              +

              <AndyS> +1

              +

              <gkellogg> +1

              +

              <olaf> +1 (Acknowledgements ;)

              +

              <gatemezing> +1

              +

              <james__> 1+

              +

              <TallTed> +1 +s

              +

              <pchampin> APPROVED: rename the 'contributors' section to 'acknowledgements'

              +

              pchampin: now to the second point in this context

              +

              <gatemezing> And Bob?

              +

              pchampin: some of the people under "authors" are not in the CG
              +… Peter and Bryan
              +… emailed Peter to asked to join the CG

              +

              gkellogg: believe Peter's affiliation has changed

              +

              pchampin: Bryan?

              +

              olaf: I'm still in contact with Bryan, I can ask him

              +

              AndyS: isn't it important which member orga has signed up?
              +… some other affiliation has changed

              +

              pchampin: another thing:
              +… got confirmation that "final" in final report doesn't have to final

              +

              <gatemezing> Was there a link to sign up to this group? I don't remeber ....

              +

              AndyS: actually, you can join a CG as an individual

              +

              pchampin: final report
              +… some more hoops to jump through
              +… license of the final report is slightly different (final license agreement)
              +… an email will be sent to all participants of the CG asking them to explicitly agree to that final license agreement
              +… Now, there are a lot of people in the CG who are not involved in this work
              +… hence, it may be a bit strange for them
              +… Other issue: the final report will end up on the W3C pages
              +… which will make it a bit more complicated if there will be another "final" version later
              +… The final report may be published even before everyone has signed that final license agreement

              +

              ;-)

              +

              gatemazing: don't see the point about being reluctant about putting this on a W3C page

              +

              pchampin: didn't mean not to do that ever
              +… but still better to wait until we are more convinced that things don't need to be changed
              +… reluctant to end up with many "final" version

              +

              AndyS: another reason for pushing towards final was
              +… to be able to mention it in the charter
              +… but that doesn't seem to be needed anymore

              +

              pchampin: right
              +… the LD license WG charter also points to draft reports
              +… so, that's not a blocking point

              +
              + +
              +

              Publishing a new report

              +

              pchampin: do we agree that it's a good time to publish another version?
              +… maybe not yet marked as "final"
              +… we have some new content, plus several new parts about controversial content
              +… technical work quite mature now
              +… probably a good time now to have a new timestamped version

              +

              <olaf> +1

              +

              <AndyS> +1 to publishing as a draft

              +

              <pchampin> PROPOSED: publish the current editor's draft as a new draft report

              +

              <gkellogg> +1

              +

              <pchampin> +1

              +

              <thomas> +1

              +

              <olaf> +1

              +

              <AndyS> +1

              +

              <james__> +1

              +

              <gatemezing> +1

              +

              <TallTed> +1

              +

              <pchampin> APPROVED: publish the current editor's draft as a new draft report

              +

              pchampin: good, will take care of publishing it
              +… will create PR with the new version

              +

              Action: pchampin to make a PR for the new public draft

              +

              pchampin: and give some time for us to react

              +
              + +
              +

              Admin

              +

              pchampin: more convenient to have these calls less frequent
              +… e.g., every other week
              +… also, considering that the summer break is coming
              +… any objections?

              +

              <gatemezing> +1

              +

              <TallTed> semiweekly == twice a week; biweekly == fortnightly

              +

              gatemezing: regarding summer, should we have a break / a month without calls ?

              +

              pchampin: we have to discuss

              +

              <AndyS> +1 les quinze jours

              +

              pchampin: not clear how things will go in August
              +… generally, yes, we may expect a longer break during summer

              +

              <pchampin> PROPOSED: have our calls every 2 weeks, starting now

              +

              <pchampin> +1

              +

              <gkellogg> +1

              +

              <gatemezing> +1

              +

              <AndyS> +1

              +

              <TallTed> +1

              +

              <thomas> 0

              +

              <olaf> +1

              +

              <james__> +0

              +

              <pchampin> APPROVED: have our calls every 2 weeks, starting now

              +

              gkellogg: August is typically lightly attended
              +… maybe we can survey who will be around when

              +

              <thomas> pause in august

              +

              pchampin: any other ideas how to proceed during summer?
              +… perhaps we can come back to this question in a future call

              +
              + +
              +

              Open-ended discussions

              +

              pchampin: any other business?

              +

              thomas: about my proposal from last week
              +… my idea to remove it and create several separate PRs

              +

              pchampin: took liberty to mark thomas' PR as a draft PR
              +… which indicates that it is not meant to be merged

              +

              thomas: sounds good

              +

              pchampin: to keep the discussion focused it's more practical to have smaller PRs
              +… you can still mark them as draft

              +

              thomas: new branch needed for that?

              +

              pchampin: yes, always a new branch in your own forked repo

              +

              thomas: okay.
              +… try to put something together for the next meeting in two weeks

              +

              pchampin: anything else anyone?
              +… nope -- we can finish early ;-)

              +

              <gatemezing> Thanks pchampin .. thanks all

              +
              +
              + +
              +

              Summary of action items

              +
                +
              1. pchampin to make a PR for the new public draft
              2. +
              +
              + + +
              Minutes manually created (not a transcript), formatted by scribe.perl version 142 (Tue Jun 1 16:59:13 2021 UTC).
              + + + diff --git a/corese-unit-test/src/test/resources/data/rdf-star-main/Minutes/2021-07-02.html b/corese-unit-test/src/test/resources/data/rdf-star-main/Minutes/2021-07-02.html new file mode 100644 index 0000000000..c7fe558187 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/rdf-star-main/Minutes/2021-07-02.html @@ -0,0 +1,180 @@ + + + + +RDF-star – 2 July 2021 + + + + + + + + + + +
              +

              W3C

              + +

              – DRAFT –
              +RDF-star

              +

              2 July 2021

              + + +
              + +
              +
              +

              Attendees

              +
              +
              Present
              AndyS, gkellogg, james, Jay Gray, ora, pchampin, rivettp, TallTed, thomas
              +
              Regrets
              -
              +
              Chair
              pchampin
              +
              Scribe
              AndyS, pchampin
              +
              +
              + + +
              + +
              +

              Meeting minutes

              +
              + +
              +

              Announcements and newcomers

              +

              Jay: using RDF and related tech to create electronic labels (food drugs, cosmetics, household chemicals)
              +… can see along the supply chain as it has labels-in-labels.
              +… looking the RDF-star work to see if it will relate to what we plan to deploy soon

              +

              james: link?

              +

              james: labels-in-labels : is it by inclusion or by reference.

              +

              Jay: large graphs being updated (Shex and SHACL on ingestion). Generates references (may be in (solid) pods).

              +

              pchampin: Announcement -- 3rd public draft published
              +… all contributors now properly registered in the CG.

              +

              pchampin: none :-)

              +
              + +
              +

              Summer schedule

              +

              https://github.com/w3c/rdf-star/issues?q=is%3Aopen+is%3Aissue+label%3Aaction

              +

              pchampin: Can make next call in 2 weeks time. Then time away, back in August.
              +… common practice: gap and reconvene end Aug/early Sept

              +

              pchampin: work areas -- charter and vocab section

              +

              Who is here 16/July?

              +

              <james> +1

              +

              <thomas> +1

              +

              <ora> +1

              +

              <gkellogg> +1

              +

              <rivettp> +1

              +

              <TallTed> +1

              +

              <AndyS> +1

              +

              <pchampin> +1

              +

              <jay> +1

              +

              <pchampin> PROPOSAL: cancel all calls after July 16, and reconvene on Sep 3rd

              +

              <AndyS> +1

              +

              <james> 0

              +

              <pchampin> +1

              +

              <gkellogg> +1

              +

              <rivettp> +1

              +

              <thomas> 0

              +

              <TallTed> +

              +

              <TallTed> +0

              +

              Resolution: cancel all calls after July 16, and reconvene on Sep 3rd

              +
              + +
              +

              CG report

              +

              pchampin: Vocabulary

              +

              AndyS: suggesting we describe "embedded triples" as "quoted triples"
              +… we have used that term on occasions; also used in N3 (quoted formula)
              +… Too late to change "embeded" to "quoted"

              +

              thomas: +ve: useful term but -ve not what it looks like

              +

              <TallTed> Grammar remains the same, but comprehension would rise dramatically.

              +

              AndyS: wholesale change is a change to grammar e.g. embTriple

              +

              james: either replace uses or be careful to mention in one place "behaves as ..."

              +

              pchampin: non-normative language
              +… possibility: "quoted" => not asserted.

              +

              TallTed: I find "quoted" useful - communicates unasserted better than "embedded" -- and I would do so throughout.

              +

              ora: without strong opinion on what specific words we use, now is the time to change terminology - we are not REC track yet.

              +

              <thomas> the embedded triple is unasserted AND quoted

              +

              <rivettp> we want to capture "not necessarily asserted" which is a bit of a mouthful

              +

              james: this qualification makes it complicated - quoted works, "assertion" has extra language to say it is the local usage intended.

              +

              <thomas> quoted to me refers to referential opacity, so is not about assertion

              +

              TallTed: grammar term embTriple will cause embedded in people's mind.
              +… challenge is communicate and express the effect of the <<>>
              +… need care

              +

              ora: original RDF - similar issues - reification examples helped.

              +

              <TallTed> +1000 examples ... and it's helpful to build later examples upon/from earlier examples

              +

              AndyS: suggest to turn this into some action, to see what would be the impact
              +… can work on it during the summer

              +

              pchampin: Notions -- :s :p :o and <<:s :p :o>> -- unchanged.

              +

              james - "quoted" works better than "embedded".

              +

              <TallTed> "embedded" is not clearly distinguished from "asserted" nor "unasserted"

              +

              james: "quoted" works better than "embedded".

              +

              gkellogg: quoted - and may elsewhere be asserted.
              +… "embedded" keep but "quoted" is more accurate to the way people think about it.

              +

              thomas: now prefer "quoted"

              +

              ora: like "quoted" and it's like lisp

              +

              gkellogg: yes - there is a quoted triple there.

              +

              thomas: "embedded" when written, "quoted" in abstract syntax.

              +

              Action: AndyS: continue issue already opened

              +
              + +
              +

              WG draft charter

              +

              https://github.com/w3c/rdf-star-wg-charter/issues/1

              +

              pchampin: several SPARQL RECs to update.
              +… needs updating to RDF 1.1
              +… makes the scope of RDF-star WG much larger

              +

              gkellogg: split makes a coordination problem. Better is one WG with subgroups.
              +… need to coordinate with JSON-LD WG (maintainence)

              +

              TallTed: agree.

              +

              ora: RDF / RDFS turned out to be not the way to work. There was a big overlap.

              +

              jay: wikidata is significant to us (company).

              +

              pchampin: yes, stability is important

              +

              <TallTed> makes some sense ... alignment to an implementation or deployment (e.g., Wikidata, which has broken from the standard in some significant ways), however, as opposed to alignment to a *standard*, less sense

              +

              ora: I agree that stability is significant and important.

              +

              AndyS: I assumed it would be one group, organizing itself as it wants
              +… Once upon the time, there was an RDF coordination group
              +… Of course, we must hope enough people turn up.
              +… There is a danger a scope creep.
              +… The language of the charter must keep the scope focused.

              +
              +
              + +
              +

              Summary of action items

              +
                +
              1. AndyS: continue issue already opened
              2. +
              +
              + + + + +
              Minutes manually created (not a transcript), formatted by scribe.perl version 142 (Tue Jun 1 16:59:13 2021 UTC).
              + + + diff --git a/corese-unit-test/src/test/resources/data/rdf-star-main/Minutes/2021-07-16.html b/corese-unit-test/src/test/resources/data/rdf-star-main/Minutes/2021-07-16.html new file mode 100644 index 0000000000..238bd9e538 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/rdf-star-main/Minutes/2021-07-16.html @@ -0,0 +1,184 @@ + + + + +RDF-star – 16 July 2021 + + + + + + + + + + +
              +

              W3C

              + +

              RDF-star

              +

              16 July 2021

              + + +
              + +
              +
              +

              Attendees

              +
              +
              Present
              AndyS, gkellogg, james, ora, pchampin, rivettp
              +
              Regrets
              william
              +
              Chair
              pchampin
              +
              Scribe
              james, pchampin
              +
              +
              + + +
              + +
              +

              Meeting minutes

              +
              + +
              +

              Announcements and newcomers

              +

              pchampin: announcements?

              +
              + +
              +

              Open actions

              +

              pchampin: next item is open actions...

              +

              <pchampin> https://github.com/w3c/rdf-star/issues?q=is%3Aopen+is%3Aissue+label%3Aaction

              +

              <pchampin> https://github.com/w3c/rdf-star/issues/193

              +

              pchampin: the "quoted triple terminology shift" is addressed in a pull request. let us discuss it.

              +
              + +
              +

              Renaming 'embedded' to 'quoted'

              +

              pchampin: discussion of renaming... greg pull request addresses the spec and the grammars

              +

              greg: initiated pull request is pretty much andy's work. my text is a mechanical translation.
              +… andy can talk abut substance.

              +

              james: I agree with the change,
              +… but I would like to go on the record: "quoting" is not the right operation here.
              +… Cf. the notion of quoting in LISP is blocking the process of interpreting.
              +… Here, it does not prohibit processing, but simply changes it (ref. opacity vs. transparency).

              +

              ora: the difference is only there because you define the process to be 'interpretation'.
              +… For me the process is "asserting", and so this makes sense.

              +

              <pchampin> +1 to what ora says

              +

              james: maybe you should include this explanation in the text

              +

              ora: I will look at the text and change it to that effect

              +

              pchampin: other comments?
              +… : i reached out to olaf, as i felt he should be able to comment on it.
              +… : he said he was ok with the renaming
              +… : reviews the pull request and had concerns with lexical things.
              +… : also feel the sectionon annotation syntax is redundant, confusing where it is.

              +

              <pchampin> https://pr-preview.s3.amazonaws.com/w3c/rdf-star/pull/192.html#annotation-syntax

              +

              pchampin: : and does not add much to the text from the overview.
              +… : reactions?

              +

              AndyS: i will look. have yet to have time

              +

              pchampin: ok. we can move forward?

              +

              <jay-gray> good with me

              +

              STRAWPOLL: for merging once editors are satisfied...

              +

              <james> +1

              +

              <pchampin> +1

              +

              <rivettp> +1

              +

              <TallTed> +1 for merge

              +

              <ora> +1

              +

              <AndyS> +1

              +

              <gkellogg> +1

              +

              <jay-gray> +1

              +

              <TallTed> Section title where this falls is "2. Concepts and Abstract Syntax". Annotation Syntax is definitely a Concept of RDF-star.

              +

              pchampin: TallTed, i note your point.
              +… serves as a valid counter-argument to removing the section

              +

              AndyS: it needs some kind of mention, because people tend to engage the syntax in preference to the abstract data model

              +

              pchampin: agree that the explicit mention is justified. also find other redundancy between overview and other sections. just have to ensure that it does not confuse.

              +

              AndyS: found it difficult to change the overview. mentioning twice is better than neglecting them. as long as nothing is wrong it suffices.
              +… : important is to get to the point where ne need to fiddle, but inprinciple "are done"

              +

              TallTed: usual pattern to review a document is as stand-alone, but for this document it needs to be redundant because no one reads everything.
              +… : people are tolerant because they do not read eveyrthing

              +

              pchampin: agree. only concern is that for the few who read everything, might be confused by reapperance

              +

              pchampin: next, charter

              +
              + +
              +

              WG draft charter

              +

              <pchampin> https://github.com/w3c/rdf-star-wg-charter/issues/1

              +

              pchampin: insufficient time to address the issue since last week. from discussion, most members are more favorable to a single large working group

              +

              pchampin: any objections or continue with that assumption?

              +

              pchampin: no objection. my first concern was that it would appear overambitious to those who must validate the charter.
              +… proposals to address this?

              +

              ora: need to define scope so that there are very few additions and are addressing the ramifications so that the scope is clear

              +

              <AndyS> +1 to ora's comments

              +

              pchampin: i tried to achieve that in the draft. aware that there is a long wish list for "future" rdf.

              +

              <jay-gray> consistent with Andy's point about syntax, as an "application developer" we see the world thru the query language. for that reason we support a broader focus. harmony with SPARQL is important to us

              +

              ora: must be clear that this isnot to be the "fix it all" group

              +

              <TallTed> "RDF 1.2, not RDF 2.0"

              +

              pchampin: not sure whether we discussed it last week: make it possible for recommendations to be open to new features.
              +… : it can authorize new features without the entire draft process.
              +… : the current draft opens that possibility. this would be way to deflect desire to add new things directly to the immediate scope
              +… : that also has an impact on the specification's stability.

              +

              AndyS: related to w3c process changes. on new features. makes one nervous. are the features large or small.
              +… : if it is a small fix, that is not a concern, but how big is a "small" addition?
              +… : another w3c variant is that working groups need not close. this makes it possible for a group to go dormant but return to effect errata in order to keep the documentup to date.

              +

              <TallTed> "RDF 1.2, not RDF 2.0; with (re)alignment of all existing RDF serializations to this RDF 1.2; and SPARQL 1.2 (which bumps the SPARQL 1.2 now under discussion to make SPARQL 1.3 or higher)"

              +

              pchampin: "maintenance" group status. json-ld is a precedent

              +

              AndyS: is there a chair who chair announce "time for maintenance"?

              +

              pchampin: it is comfortable to know that the possibility exists, but an effort is involved to engage the process.

              +

              pchampin: if we say we are an "rdf-star" group, just attending to that one thing, but go into maintenance mode, it might be tricky to argue for that state
              +… : may be difficult to distinguish "too big", but there are criteria, like backward compatibility

              +

              TallTed: difficult to argue for "new feature", because there is no way to turn it an and off. for rdf-star the translation to rdf is not clearly defined

              +

              pchampin: thinking about "new features" as pertaining to rdf-star itself

              +

              <AndyS> https://www.w3.org/2020/Process-20200915/#revised-rec-features

              +

              pchampin: rdf-star itself is too large to be a "new feature"
              +… : this additional process would pertain to the rdf-star specification itself.

              +

              <pchampin> https://www.w3.org/2020/Process-20200915/#allow-new-features

              +

              AndyS: does this pertain to just "at risk" features? this is not clear

              +

              pchampin: notes the relevant section of the process

              +

              AndyS: (discussion about process which requires the document to follow the details...)

              +

              pchampin: the goal is to mimic the "evergreen" standard, but that may make more sense for html than rdf

              +

              AndyS: the process is just to rigid to handle editorial corrections

              +

              pchampin: the maintenance option would be the proper solution for such a thing.

              +

              AndyS: it is not changing content or examples. it is errata

              +

              TallTed: namespace example is just errata

              +

              AndyS: we need more input from outside

              +

              Action: pchampin to find out what are the limitations of "new feature" in the new W3C process

              +
              + +
              +

              AOB

              +

              pchampin: next meeting september third

              +

              <AndyS> Have a good summer everyone!

              +

              <jay-gray> bfn

              +

              <ora> bye

              +
              +
              + + + + +
              Minutes manually created (not a transcript), formatted by scribe.perl version 142 (Tue Jun 1 16:59:13 2021 UTC).
              + + + diff --git a/corese-unit-test/src/test/resources/data/rdf-star-main/Minutes/2021-09-03.html b/corese-unit-test/src/test/resources/data/rdf-star-main/Minutes/2021-09-03.html new file mode 100644 index 0000000000..eee9fc0fdf --- /dev/null +++ b/corese-unit-test/src/test/resources/data/rdf-star-main/Minutes/2021-09-03.html @@ -0,0 +1,185 @@ + + + + +RDF-star – 03 September 2021 + + + + + + + + + + +
              +

              W3C

              + +

              RDF-star

              +

              03 September 2021

              + + +
              + +
              +
              +

              Attendees

              +
              +
              Present
              AndyS, Doerthe, Fabio_Vitali, gatemezing, gkellogg, olaf, ora, pchampin, rivettp, TallTed, thomas
              +
              Regrets
              -
              +
              Chair
              pchampin
              +
              Scribe
              gatemezing, pchampin
              +
              +
              + + +
              + +
              +

              Meeting minutes

              +

              <ora> (Too long of a break to again remember all the chat commands...)

              +
              + +
              +

              Announcements and newcomers

              +

              Introduction of the new comer Fabio Vitali
              +… Prof in Italy and working a lot on semantic technologies
              +… He was also involved in many W3C, like anything around markup

              +

              pchampin: thanks for the introduction

              +

              ora: Should write a comparison for next week. They write a paper for SCG workshop
              +… and they realize there are somethings that are not taken into account by this rdf-star work
              +… thinking to write a use case on that aspect, and apologize before if this is late

              +

              <pchampin> https://w3c.github.io/rdf-star/cg-spec/editors_draft.html#occurrences

              +

              pchampin: Maybe it is related to some discussions we had before @ora joined the group

              +

              <thomas> ora: do you have a link to the paper?

              +

              <pchampin> https://mosaicrown.github.io/scg2021/

              +

              <ora> Paper is not public yet, I will provide a link soon.

              +

              <thomas> ora, thanks! looking forward to it

              +

              pchampin: explain the venue of SCG workshop at SemantiCs2021

              +
              + +
              +

              Open actions

              +

              <pchampin> https://github.com/w3c/rdf-star/issues/196

              +

              pchampin: Issue #196 is still pending

              +

              <pchampin> https://github.com/w3c/rdf-star/issues/195

              +

              pchampin: the process for a "living standard" is possible
              +… check what could be a new feature in the W3C process

              +

              <pchampin> https://github.com/w3c/EasierRDF/issues/88

              +

              pchampin: and sent an email to a boss at W3C awaiting for the response

              +

              ora: I was wondering the impact on product delivery processes

              +

              AndyS: There's must be a public discussion on new features

              +

              AndyS: my gut feeling is that RDF-star would be to big to be considered a "new feature"
              +… It would set a high expectation

              +

              thomas: could it be better to send to the public semantic Web W3C list?

              +

              Action: pchampin to notify semantic.web@w3.org about https://github.com/w3c/EasierRDF/issues/88

              +

              gkellogg: A balance should be reach between the limitations and the features
              +… the charter should limit the types of the group can do or not

              +

              <pchampin> +1 for a feature-annoucement mechanism of some kind

              +

              gkellogg: RDF-star should consider annoucemenent features like MDN with HTML

              +

              ora: a risk to choose what to implement in a living document could be also a risk

              +

              olaf: The concern is to better seperate and consider it

              +

              rivettp: How the ecosystem would evolve with somehow different implementations of the specs

              +

              rivettp: OWL and other standards have not caught up with RDF 1.1
              +… How would that go with RDF being a living standard?

              +

              <rivettp> my concern generally was the challenge of managing the ecosystem as a whole if one standard is "living"

              +

              AndyS: migrations are hard. People will wait until something is a standard to implement it

              +

              +1 with AndyS's point

              +

              <rivettp> maybe you try for synchronized configurations or releases of multiple projects - which is what Eclipse tries to do

              +
              + +
              +

              PR #198: Suggest metadata in manifest turtle file

              +

              pchampin: This discussion should be push forward in the public mailing list

              +

              gatemezing: this PR aims to add more metadata in the manifest files.
              +… AndyS, gatemezing, TallTed commented on it.
              +… There's general agreement that it should be done, more discussion on what to add exactly.

              +

              [discussion on the representation of licenses in RDF]

              +
              + +
              +

              Issue #200: RDF-star and reasoning

              +

              https://github.com/w3c/rdf-star/issues/200

              +

              <olaf> +1

              +

              AndyS: We have to choose which types of discussions and maybe add labels

              +

              <TallTed> ugh. Github discussion "threads" are one-level deep, and don't do well with shifting active conversation in either direction (issue->disc or disc->issue)

              +

              thomas: how to settle some other discussions in our document
              +… can someone put where to write it up so that it's part of the community report
              +… so that that everyone can easily find it

              +

              olaf: I can do it, but I can't do it by next week

              +

              Action: olaf to write a part on "per-property semantics" in the report -- pchampin to help

              +

              TallTed: I'm against using Github discussion since it's not mature for this purpose
              +… Use mailing list for other type of discussion

              +

              pchampin: Not also fan with discussions on Github. There are different special "kind" of issues ...

              +

              <TallTed> Probably for next time, it can be good to review issues (with whatever label) based on oldest last activity -- e.g., https://github.com/w3c/rdf-star/issues?q=is%3Aissue+is%3Aopen+sort%3Aupdated-asc

              +

              pchampin: The mailing list has an archive but still difficult to follow

              +

              <pchampin> STRAWPOLL: use github 'discussions' to replace de 'discussion' label on actions

              +

              AndyS: When do we know we've finished

              +

              <Fabio_Vitali> trivial question by newcomer: how do I let Zakim know I am present?

              +

              <thomas> +1 to ted

              +

              <rivettp> Are we not talking about GH Discussions as opposed to GH Issues - they are distinct things?

              +

              <Fabio_Vitali> Present

              +

              <pchampin> STRAWPOLL: use github 'discussions' to replace de 'discussion' label on actions

              +

              <pchampin> +0.5

              +

              <AndyS> +0.5

              +

              <gkellogg> +0

              +

              <Fabio_Vitali> @gatemezing: thanks

              +

              <TallTed> -0.9

              +

              <ora> +0

              +

              <rivettp> -1

              +

              <thomas> -0

              +

              <olaf> 0 (no experience with the github discussion feature)

              +

              <Doerthe> +0

              +

              +0.56

              +

              <Fabio_Vitali> there was a standard sentence to agree with majority

              +

              <Fabio_Vitali> +0

              +

              thomas: how do we go on this problem? Do we wait for the creator to join?

              +

              pchampin: Once we have the vocabulary added, then we could move forward with that point

              +
              + +
              +

              roadmap

              +

              pchampin: few things regarding the vocab section, do think that all can be done before we send out a "final community report"

              +

              thomas: I proposed to reordoring the sections in the document before the summer..

              +

              AndyS: I'm concerned about the PR on restructuring before having a consensus on it is desirable

              +

              Action: pchampin to draft an introduction paragraph to show the interconnection between the section

              +

              <rivettp> I need to drop

              +

              pchampin: Thanks everyone and see you!

              +

              <gkellogg> Regrets for the next meeting.

              +

              <pchampin> gatemezing, no I'll take care of the rest

              +

              <pchampin> thanks

              +
              +
              + + + + +
              Minutes manually created (not a transcript), formatted by scribe.perl version 142 (Tue Jun 1 16:59:13 2021 UTC).
              + + + diff --git a/corese-unit-test/src/test/resources/data/rdf-star-main/Minutes/2021-09-17.html b/corese-unit-test/src/test/resources/data/rdf-star-main/Minutes/2021-09-17.html new file mode 100644 index 0000000000..19d3e105a9 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/rdf-star-main/Minutes/2021-09-17.html @@ -0,0 +1,228 @@ + + + + +RDF-star – 17 September 2021 + + + + + + + + + + +
              +

              W3C

              + +

              RDF-star

              +

              17 September 2021

              + + +
              + +
              +
              +

              Attendees

              +
              +
              Present
              AndyS, Fabio_Vitali, gatemezing, olaf, ora, pchampin, rivettp, TallTed, thomas
              +
              Regrets
              james
              +
              Chair
              pchampin
              +
              Scribe
              ora, pchampin
              +
              +
              + + +
              + +
              +

              Meeting minutes

              +

              <AndyS> We must be approaching 5 sigma on this by now.

              +

              <thomas> if Ora in room -> scribe Ora

              +
              + +
              +

              Announcements and newcomers

              +

              <pchampin> https://mosaicrown.github.io/scg2021/

              +

              pchampin: Last week's workshop...

              +

              pchampin: It went well, lively discussion, interesting things, papers will be on-line soon.

              +

              pchampin: Presentations were recorded.

              +

              pchampin: It was a hybrid conference, it was great to see people.

              +

              pchampin: There is a lot of interest for RDF-star.

              +

              olaf: Announcing that I have been selected to be an Amazon Scholar, I will work with the Amazon Neptune team. Still associate professor in Linköping too.

              +

              olaf: RDF-star is one of the topics.

              +
              + +
              +

              Open actions

              +

              <pchampin> https://github.com/w3c/rdf-star/issues?q=is%3Aopen+is%3Aissue+label%3Aaction

              +

              <pchampin> https://github.com/w3c/rdf-star/issues/195

              +

              pchampin: Confirmed that process does not limit what a new feature can be. It can be limited by the charter.

              +

              <pchampin> https://github.com/w3c/rdf-star/issues/196

              +

              ora: proposed a text explaining the distinction btw asserted and quoted
              +… made a parallel with evaluated/quoted in LISP

              +

              AndyS: agreeing with what ora is saying
              +… going back to the spec: a triple is a 3-tuple, that's all
              +… there is an infinite set of it, "floating around"
              +… they are asserted once put into a graph
              +… in a given graph, a triple maybe both asserted and quoted

              +

              pchampin: I do not agree that the chevrons are a quoting operator, they are an embedding operator.

              +

              pchampin: In Lisp, you can simply remove the quote. Not so in RDF-star.

              +

              pchampin: Context of use makes a triple quoted or asserted.

              +

              pchampin: I do not disagree with the analogy, but it could be confusing.

              +

              <TallTed> Nitpick: Chevrons are the `«»` glyphs, which are distinct from double angle brackets `<< >>`.

              +

              <AndyS> "A quoted triple is a triple used as the subject or object of another triple."

              +

              <Zakim> AndyS, you wanted to bring in some current spec text

              +

              AndyS: This line from the spec... change it to "...can be used...".

              +

              AndyS: Chevrons are doing the quoting.

              +

              thomas: Aren't we making things too complicated?

              +

              pchampin: I am not making a distinction between quoted and embedded triples.

              +

              pchampin: The main role of the chevrons are to "embed" a triple. You can only do this in a certain context.

              +

              thomas: Also you can only quote in a certain context.

              +

              pchampin: Reluctant to see chevrons as a quoting operator.

              +

              <AndyS> Writing a triple as (:s :p :o) then ( (:s :p :o) :q "abc" )

              +

              AndyS: Everyone has a different background, everyone's viewpoint is different.

              +

              AndyS: Is there anything wrong in the spec?

              +

              AndyS: What do we have to do, to change in the spec?

              +

              pchampin: Thinking was that something might be missing.

              +

              pchampin: I am not against adding Ora's paragraph.

              +

              pchampin: Details can confuse...

              +

              pchampin: If we think this adds to folks' understanding, then why not.

              +

              pchampin: Defer the decision as not everyone has read it.

              +

              <Fabio_Vitali> I can't understand where is the text going to end up...

              +

              pchampin: Ora please make this into a pull request.

              +

              pchampin: Mark as non-normative.

              +

              ora: OK

              +

              AndyS: I particularly like the last sentence.

              +

              Action: ora to turn his proposal in #196 into a PR

              +

              <pchampin> https://github.com/w3c/rdf-star/issues/201

              +

              pchampin: I did this.

              +

              pchampin: Nice side effect was creating some publicity for the Easier RDF repo, https://github.com/w3c/EasierRDF

              +

              pchampin: My feeling is the consensus is "why not, but let's be careful".

              +

              <AndyS> +1

              +

              pchampin: Next two actions are mine...

              +

              pchampin: Not everyone has reviewed the PRs.

              +

              pchampin: Still have to push the other one.

              +
              + +
              +

              PR #204: Classes for RDF-star terminology

              +

              <pchampin> https://github.com/w3c/rdf-star/pull/204

              +

              pchampin: Fleshing out the vocabulary section.

              +

              AndyS: I took existing material, refined a bit.

              +

              AndyS: Discuss classes first, before discussing properties.

              +

              thomas: What is the source?

              +

              pchampin: <scribe missed the answer...>

              +

              thomas: Is that another term for graph?

              +

              pchampin: No, because of mutability.

              +

              thomas: I read it but meaning was not obvious.

              +

              pchampin: This is still bare, just trying to define terms not yet defined (RDF-star source).

              +

              thomas: It is difficult to discuss terms that are a mathematical abstraction but also very concrete.

              +

              thomas: No sense discussing this yet.

              +

              <pchampin> PROPOSED: merge #204

              +

              <pchampin> +1

              +

              <olaf> +1

              +

              <AndyS> +1

              +

              <ora> +1

              +

              <gatemezing> +1

              +

              <TallTed> +1

              +

              <thomas> -1

              +

              <rivettp> +1

              +

              <Fabio_Vitali> My list of issues goes up to #203. Where do I find 204?

              +

              <gatemezing> AndyS: I guess we don't need to add axioms like disjointness between some clases?

              +

              <Fabio_Vitali> anyway +1

              +

              Resolution: merge #204

              +
              + +
              +

              Defining our path

              +

              pchampin: From AndyS' email: we should give ourselves some milestones, we are soon one year old, we have achieved a lot.

              +

              pchampin: Also the next step: chartering a WG.

              +

              pchampin: If all goes well, a future WG will take this up.

              +

              AndyS: I predict the WG will revisit a lot of things.

              +

              AndyS: Limited value in getting into really fine details.

              +

              AndyS: REC-grade doc not needed now.

              +

              AndyS: Early on in the WG there will be discussion by new people about what RDF-star really is.

              +

              <TallTed> and what RDF-star is NOW, vs original and other earlier papers...

              +

              AndyS: We cannot possibly have considered everything.

              +

              thomas: Issue #170, referential opacity, is crucial.

              +

              thomas: Makes a difference in many use cases, such as provenance.

              +

              pchampin: A solution or a discussion?

              +

              thomas: A proposal, a solution.

              +

              <AndyS> 170

              +

              thomas: We should evaluate how much effort this is.

              +

              AndyS: Another source of validation exists.

              +

              thomas: The proposed semantics does not cover usage.

              +

              pchampin: Evidence?

              +

              thomas: Look on the Web.

              +

              thomas: I do not have to provide evidence.

              +

              thomas: Want a proof of how referential opacity is easy.

              +

              thomas: Something that is worked out.

              +

              <olaf> https://github.com/w3c/rdf-star/issues/202 is still an open action on me

              +

              <pchampin> https://github.com/w3c/rdf-star/issues/202

              +

              thomas: I need an answer, then I can comment.

              +

              <pchampin> https://w3c.github.io/rdf-star/cg-spec/2021-07-01.html#alternatives-to-referential-opacity

              +

              pchampin: I did some prototyping in N3. I understand it is not a standard.

              +

              thomas: This is not how it would look in RDF.

              +

              pchampin: I do not share thomas' feeling on this.

              +

              pchampin: Please wait until that section is complete enough.

              +

              pchampin: PR not ready yet.

              +

              thomas: I am waiting, but I want to check how this works with use cases.

              +

              AndyS: We can change how often we have meetings if that helps.

              +

              pchampin: Let's use the tag "later" for some.

              +

              pchampin: Other than those, we can declare we are done.

              +

              Action: pchampin to review issues and propose to tag 'later' all but those necessary to finalize report

              +

              <TallTed> confirming -- current meeting schedule is every 2 weeks, so next is Oct 1?

              +

              <pchampin> https://w3c.github.io/rdf-star/cg-spec/2021-07-01.html#occurrences

              +

              ora: would like to discuss the problem raised in our workshop paper

              +

              <Fabio_Vitali> can we have a link to the paper?

              +

              ora: the uniqueness of triples in RDF-star makes it impossible to model some common PG patterns

              +

              Paper: https://www.lassila.org/publications/2021/scg2021-lassila+etal.pdf

              +

              bye!

              +

              <Fabio_Vitali> @ora thanks

              +

              <Fabio_Vitali> bye

              +

              <thomas> good bye

              +

              <TallTed> ciao

              +

              <olaf> bye

              +

              <gatemezing> bye

              +
              +
              + + + +
              +

              Summary of resolutions

              +
                +
              1. merge #204
              2. +
              +
              + + +
              Minutes manually created (not a transcript), formatted by scribe.perl version 142 (Tue Jun 1 16:59:13 2021 UTC).
              + + + diff --git a/corese-unit-test/src/test/resources/data/rdf-star-main/Minutes/2021-10-01.html b/corese-unit-test/src/test/resources/data/rdf-star-main/Minutes/2021-10-01.html new file mode 100644 index 0000000000..70b31abf83 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/rdf-star-main/Minutes/2021-10-01.html @@ -0,0 +1,232 @@ + + + + +RDF-star – 01 October 2021 + + + + + + + + + + +
              +

              W3C

              + +

              RDF-star

              +

              01 October 2021

              + + +
              + +
              +
              +

              Attendees

              +
              +
              Present
              /-0, AndyS, Doerthe, Fabio, Fabio_Vitali, gatemezing, gkellogg, olaf, ora, pchampin, present, rivettp, TallTed, thomas, william
              +
              Regrets
              -
              +
              Chair
              pchampin
              +
              Scribe
              AndyS, pchampin
              +
              +
              + + +
              + +
              +

              Meeting minutes

              +

              <ora> not me

              +
              + +
              +

              Announcements and newcomers

              +

              <TallTed> New headsets for everyone!

              +

              <Fabio> Hello everybody

              +

              use case - security labels for publishing attribute-based security of data

              +
              + +
              +

              Open actions

              +

              <pchampin> https://github.com/w3c/rdf-star/issues?q=is%3Aopen+is%3Aissue+label%3Aaction

              +

              <pchampin> https://github.com/w3c/rdf-star/issues/196

              +

              ora: work for 196 done; will submit a PR.

              +

              <gkellogg> https://docs.github.com/en/github/collaborating-with-pull-requests/proposing-changes-to-your-work-with-pull-requests/creating-a-pull-request

              +

              <pchampin> https://github.com/w3c/rdf-star/issues/202

              +

              <Fabio> I have problems in understanding the whole concept of "quoted". Is this the right moment in time to express it or did I just loose the magic moment?

              +

              <pchampin> solved by PR https://github.com/w3c/rdf-star/pull/209

              +

              pchampin: per-property semantics -- PR in progress
              +… and in the agenda today

              +

              <Fabio> Ok sure no problem

              +

              <pchampin> https://github.com/w3c/rdf-star/issues/203

              +

              pchampin: intro paragraph - in this meeting

              +

              <pchampin> https://github.com/w3c/rdf-star/issues/207

              +

              <olaf> Fabio, in the meantime, you can find the definition at: https://w3c.github.io/rdf-star/cg-spec/editors_draft.html#dfn-quoted

              +

              pchampin: tag long-term items. Some done, more to do.

              +
              + +
              +

              PR #206 Paragraph and figure in the intro

              +

              <pchampin> https://github.com/w3c/rdf-star/pull/206

              +

              <pchampin> https://pr-preview.s3.amazonaws.com/w3c/rdf-star/pull/206.html#structure

              +

              pchampin: guide for reader - doc is not necessarily linear

              +

              <Fabio> olaf, andy, ok, I have a very clear idea of what are quoted triples and how they came into being. They used to be called "embedded" up until July. I simply fear the concept of "quoting" can be misleading and imprecise and not totally useful.

              +

              TallTed: accessibility for the picture
              +… literal description for each box

              +

              <gatemezing> question: a name or verb for grouping section 2 - ?

              +

              AndyS: highlight "section 2" box in some way as the entry point section

              +

              <thomas> (someone is typing a lot which makes listening to other audio quite hard)

              +

              pchampin: may do SVG - need manual maintenance

              +

              <thomas> (okay, then never mind)

              +

              <ora> Pull request for Issue #196 created: https://github.com/w3c/rdf-star/pull/210

              +

              <Fabio> I have a blind PhD, if that may help

              +

              gkellogg: Diagram adequate - extra text can be added
              +… odd that "section 2" box does not have a title

              +

              <gatemezing> +1 to add a title for "section 2"

              +

              pchampin: will merge, and continue to refine diagram.

              +

              Action: pchampin to make the center bubble more salient and the bold keywords less salient

              +

              <pchampin> PROPOSAL: merge PR #206

              +

              <AndyS> +1

              +

              <TallTed> +1

              +

              <pchampin> +1

              +

              <olaf> +1

              +

              <gkellogg> +1

              +

              <thomas> +1

              +

              <gatemezing> +1

              +

              <Doerthe> +1

              +

              <Fabio> +1

              +

              <william> +1

              +

              <rivettp> +1

              +

              <ora> +1

              +

              Resolution: merge PR #206

              +
              + +
              +

              PR #209: New section about selective referential transparency

              +

              olaf: context - quoted triples are referentially opaque - they are like literals.
              +… vocabulary for declaring that a quoted triple can be treated as referentially transparent
              +… if using an entitlement regime, can derive other nested triples

              +

              pchampin: another way to look at it is if a property holds, that property holds for all ref transparent nest triples from the original quoted triple

              +

              <pchampin> https://github.com/w3c/rdf-star/pull/209

              +

              <pchampin> https://pr-preview.s3.amazonaws.com/w3c/rdf-star/pull/209.html#selective-ref-transparency

              +

              <olaf> https://pr-preview.s3.amazonaws.com/w3c/rdf-star/pull/209.html#selective-ref-transparency

              +

              pchampin: PR#209 adds a non-normative section.

              +

              thomas: why is it not normative?

              +

              pchampin: not sure when starting that it would be mature enough. May be getting there.
              +… now comfortable to make it normative.
              +… (personal opinion)

              +

              olaf: I am happy to make it normative.

              +

              pchampin: to go between 6.3 and 6.4

              +

              olaf: can go in section 7

              +

              pchampin: so sec 7 introduces an entailment regime

              +

              olaf: 6.4.6 can continue to exist for example then refer to sec 7.

              +

              pchampin: makes sense
              +… needs some work for this semantic extension
              +… does not need all vocab in this section, only certain items of the proposed vocabulary
              +… easier to merge as is and keep working in new PR

              +

              <pchampin> PROPOSAL: merge #209, then make a new PR to move the format parts in §7

              +

              <pchampin> +1

              +

              <thomas_> +/-0

              +

              <olaf> +1

              +

              <AndyS> +1

              +

              <rivettp> +1

              +

              <Doerthe> +1

              +

              <gkellogg> +1

              +

              <gatemezing> +1

              +

              <ora> +1

              +

              <TallTed> +1

              +

              <william> +1

              +

              <william> sorry!

              +

              <Fabio> +1

              +

              Resolution: merge #209, then make a new PR to move the format parts in §7

              +

              Action: pchampin to move the TEP entailment regime to §7 and extend it to the rest of the vocabulary

              +
              + +
              +

              Issue #3: 'conformance' section

              +

              <pchampin> https://github.com/w3c/rdf-star/issues/3

              +

              pchampin: some standard boilerplate
              +… test suite

              +

              AndyS: the Conformance section is the place that says "this is RDF-star"
              +… if anyone claims to support RDF-star, this is where they should look
              +… currently, system claiming to support RDF-star have very different notions of RDF-star
              +… following the normative text may still lead to different implementations
              +… This is not to say that all implementations must pass the whole test suite.

              +

              gkellogg: specification makes normative statement and test suite tests the normative statements.

              +

              <gkellogg> "Implementers can partially check their level of conformance to this specification by successfully passing the test cases of the JSON-LD test suite. Note, however, that passing all the tests in the test suite does not imply complete conformance to this specification. It only implies that the implementation conforms to aspects tested by the test suite."

              +

              gkellogg: some normative statements are hard to test
              +… JSON-LD example
              +… JSON-LD example
              +… conformance to a CG note and a proper WG will provide conformance to changes it makes e.g. to Turtle
              +… we have tests for TTL, NT (etc), SPARQL (syntax and eval) and semantics

              +

              <thomas_> +1 to gkellogg

              +

              gkellogg: may be highlight semantics in the conformance section.

              +

              pchampin: semantics is the entailment

              +

              AndyS: if you implemented the syntax for Turtle,
              +… would there be any more work to be compliant?
              +… that would be the practical approach of many implementers

              +

              pchampin: have a python script to test implementation using SPARQL-star to test
              +… approximation to investigate what system did
              +… support inference in a consistent way
              +… e.g. don't some "leak" triples not others

              +

              <rivettp> gotta drop

              +

              olaf: what consequences of semantics does this have?

              +

              pchampin: e.g. rdflib - has D-entailment on literals. Triple stores != exactly the triple retrieved

              +

              (rdflib is not the only system to do that)
              +… tests are tagged with an entailment regime. Some are OWL (uses owl:sameAs), some D-entailment.
              +… conclusion: we need something though still unclear what.

              +

              <Fabio> no no go ahead.

              +

              <Fabio> you can close now,.

              +

              <william> gotta go

              +

              bye all!

              +

              <gatemezing> thanks all!

              +

              <Fabio> thx bye

              +

              <gatemezing> bye

              +

              <ora> bye

              +

              <olaf> Thanks for today! Bye

              +

              <Doerthe> bye

              +

              <thomas_> bye

              +
              +
              + + + + + + +
              Minutes manually created (not a transcript), formatted by scribe.perl version 142 (Tue Jun 1 16:59:13 2021 UTC).
              + + + diff --git a/corese-unit-test/src/test/resources/data/rdf-star-main/Minutes/2021-10-15.html b/corese-unit-test/src/test/resources/data/rdf-star-main/Minutes/2021-10-15.html new file mode 100644 index 0000000000..0eb322c931 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/rdf-star-main/Minutes/2021-10-15.html @@ -0,0 +1,245 @@ + + + + +RDF-star – 15 October 2021 + + + + + + + + + + +
              +

              W3C

              + +

              RDF-star

              +

              15 October 2021

              + + +
              + +
              +
              +

              Attendees

              +
              +
              Present
              AndyS, Doerthe, Fabio_Vitali, gkellogg, olaf, pchampin, rivettp, TallTed
              +
              Regrets
              -
              +
              Chair
              pchampin
              +
              Scribe
              olaf, pchampin
              +
              +
              + + +
              + +
              +

              Meeting minutes

              +
              + +
              +

              Announcements and newcomers

              +

              pchampin: no newcomers
              +… no announcements?

              +
              + +
              +

              Open actions

              +

              <pchampin> https://github.com/w3c/rdf-star/issues?q=is%3Aopen+is%3Aissue+label%3Aaction

              +

              pchampin:

              +

              the open actions are in PRs to be discussed later in this meeting

              +

              pchampin: hence, skip to the next point

              +
              + +
              +

              Pending Pull-Requests

              +

              pchampin: four PRs grouped in one points

              +

              <pchampin> https://github.com/w3c/rdf-star/pull/205

              +

              pchampin: Ghislain not here
              +… any updates on PR 205?

              +

              AndyS: That PR was raised against the wrong branch
              +… one massively squashed commit
              +… at least one comment on the other version of the PR
              +… closed that version
              +… something in the checking was not working

              +

              gkellogg: no the check is okay
              +… might have been something in the JSON manifest

              +

              AndyS: something was not committed

              +

              gkellogg: some issue in terms of equality of the manifests in the different formats

              +

              pchampin: will ping Ghislain
              +… the manifests should be isomorphic

              +

              AndyS: two checks now, haven't there been three earlier?
              +… let's take this offline

              +

              pchampin: That PR has been lingering a while

              +

              figure in §1.3

              +

              pchampin: next subtopic: figure in Sec.1.3
              +… two proposals made
              +… unfortunately, the second one is not rendered properly in the preview

              +

              <pchampin> https://pr-preview.s3.amazonaws.com/w3c/rdf-star/pull/213.html#structure

              +

              pchampin: which might explain why everyone favored the other one
              +… PR 213 tried to capture the links between the bubbles by means of words
              +… with eclipses

              +

              <pchampin> https://pr-preview.s3.amazonaws.com/w3c/rdf-star/pull/214.html#structure

              +

              pchampin: simply uses HTML tables
              +… PR 214 has an SVG in the background
              +… which is not visible in the preview
              +… but in a local clone

              +

              <rivettp> are you able to show the diagrams via Zoom?

              +

              pchampin: i.e., HTML table with SVG in the background

              +

              <Fabio_Vitali> I see no star

              +

              pchampin: somewhat hacky

              +

              <TallTed> I prefer the first (213), even knowing about the background lines (on 214). I would like it even better if 5 could be a bit lower than 4 & 6, to naturally sketch more of an arc from 3 to 7.

              +

              <Fabio_Vitali> Ah I see

              +

              pchampin: a similar figure may also be added as background in the first proposal

              +

              <Fabio_Vitali> I think that in 213 the top bubble (the subject) is too close to the second layer, and seems part of it. Raising it just a little bit could help, I think

              +

              pchampin: perhaps we use 213 if everyone is okay with it - there are more important topics

              +

              AndyS: the one with SVG look good
              +… (just checked it locally)
              +… screensharing now

              +

              TallTed: still prefer 213

              +

              pchampin: agreed, the grouping in 214 is subjective
              +… any strong preference anyone?

              +

              <TallTed> strong 213, lines could help, moving box 5 to the next lower tr would improve things

              +

              pchampin: otherwise will try to merge the results
              +… no objection

              +

              RDF vocabulary

              +

              <pchampin> https://github.com/w3c/rdf-star/pull/215 (RDF vocabulary)

              +

              pchampin: next PR is about the RDF vocab section
              +… posted recently
              +… let's not talk about it too much now, because few people may have had the time to look at it in detail
              +… idea of that PR: moving things around (no new content) but making some things normative
              +… substantive changes is the semantics of TEPs to also cover rdf-star:Triple

              +

              gkellogg: use of TEPs refers to the range of such a TEP, right?

              +

              pchampin: no, it can be used for both, subject and object
              +… there might be corner case in which one would want a TEP that applies only to either the subjects or the objects but not both
              +… we could add something for that but that would make everything more complex (more vocab needed)

              +

              <Fabio_Vitali> TEP?

              +

              <pchampin> Transparency-Enabling Property

              +

              gkellogg: okay, but the design trade-off should be captured as a note

              +

              <Fabio_Vitali> thanks

              +

              olaf: I wouldn't go for seperating domain-wise TEPS and range-wise TEPs
              +… this is too much added complexity.
              +… I discussed the use-case for TEPs with somebody,
              +… and it was not obvious what happened in the examples
              +… (the added leading zero in the literals).
              +… Using different IRIs instead would make the difference more visible.

              +

              AndyS: agree that D-entailment is not so suitable for this example
              +… would have prefered the text to be non-normative

              +

              <Fabio_Vitali> from the outside, I can tell that the Linköping is clear in what it entails, but less so on the rationale (why is this needed?) Superman's example is clearer on the rationale

              +

              AndyS: mixing the discussion of TEPs with the other vocabulary parts is not a good idea
              +… because TEPs is something that people may disagree with, which is not so much the case for the other vocab terms
              +… put the TEP part into a separate (sub)section

              +

              pchampin: yes we could do that
              +… last time we kinda agreed to move the semantics of the TEP vocab into a normative section

              +

              AndyS: Triple, Graph, and Source are minimal; TEP does not fit into a minimal subset of such a vocab

              +

              pchampin: we have many issues related to the vocabulary
              +… some should be considered as: no agreement
              +… the one for the service descriptions are still needed and should be added

              +

              <gkellogg> Perhaps "Conceptual Vocabulary" and "Entailment-enabling Vocabulary"

              +

              <AndyS> +1

              +

              pchampin: regarding the TEP, agreed that it is more controversial than the aforementioned minimal set and, thus, should be presented somewhat separate from the minimal set
              +… rdf-star:Triple is also entailment-enabling
              +… Graph and Source are not
              +… prefer to keep the vocab semantics in one part
              +… hence, split the vocab section

              +
              + +
              +

              Issues we may defer to the future WG

              +

              <pchampin> https://github.com/w3c/rdf-star/issues?q=is%3Aopen+is%3Aissue+label%3Aproposed-later

              +

              pchampin: have marked some issues as "for later"
              +… should we discuss these issues?

              +

              AndyS: 199 is out of scope - Vladimir agreed

              +

              pchampin: so, we can close it? ...or mark as "discussion"

              +

              <pchampin> https://github.com/w3c/rdf-star/issues/170

              +

              pchampin: 170 could be closed
              +… because the problem has been addressed by means of the TEPs
              +… we shouldn't try to do more here but, instead, leave that to the WG

              +

              <pchampin> PROPOSAL: close #170 as addressed by the section on TEPs

              +

              <gkellogg> +1

              +

              <pchampin> +1

              +

              <olaf> +1

              +

              <AndyS> +1

              +

              <TallTed> +0.9

              +

              <Doerthe> +1

              +

              <rivettp> +1

              +

              <Fabio_Vitali> +1

              +

              TallTed: reason for +0.9 is lack of consideration

              +

              Resolution: close #170 as addressed by the section on TEPs

              +

              pchampin: issue about RDF/XML interpretation as RDF-star ...
              +… proposal was to reinterpret the ID in RDF/XML for RDF-star
              +… don't think it should be added to the report

              +

              +1

              +

              AndyS: if we were going there (rather not!), it should actually be more general -- RDF reification to RDF-star

              +

              <pchampin> https://github.com/w3c/rdf-star/issues/104

              +

              pchampin: there was also an issue from James
              +… wants complete grammars for all media types touched by the report
              +… I would rather not do that

              +

              <AndyS> +1 to pchampin.

              +

              gkellogg: yes agree, including it in the report would be burdensome
              +… however, we may include extra EBNF grammar files and link to them from the report

              +

              pchampin: good idea, and that should address James' concern
              +… Gregg, do you have such files already?

              +

              <fabio> yes

              +

              gkellogg: give me an action

              +

              AndyS: at such late stage, make these EBNF files non-normative
              +… EBNF does not include parser actions

              +

              Action: gkellogg to create a PR with text version of the EBNF grammars

              +

              pchampin: will fix the minutes ;-)
              +… What should be done for the future WG?
              +… thanks everyone for today

              +

              <fabio> Thank you

              +

              <AndyS> Thanks!

              +

              <fabio> bye

              +

              pchampin: talk again in two weeks

              +

              <Doerthe> bye

              +

              Bye

              +

              <TallTed> s/ACTION: gkellog to create a PR with text version of the EBNF grammars//

              +

              <TallTed> s/ACTION: gkellog to create a PR with text version of the EBNF grammars/ /

              +
              +
              + + + +
              +

              Summary of resolutions

              +
                +
              1. close #170 as addressed by the section on TEPs
              2. +
              +
              + + +
              Minutes manually created (not a transcript), formatted by scribe.perl version 142 (Tue Jun 1 16:59:13 2021 UTC).
              + + + diff --git a/corese-unit-test/src/test/resources/data/rdf-star-main/Minutes/2021-10-29.html b/corese-unit-test/src/test/resources/data/rdf-star-main/Minutes/2021-10-29.html new file mode 100644 index 0000000000..b63aea2eba --- /dev/null +++ b/corese-unit-test/src/test/resources/data/rdf-star-main/Minutes/2021-10-29.html @@ -0,0 +1,185 @@ + + + + +RDF-star – 29 October 2021 + + + + + + + + + + +
              +

              W3C

              + +

              RDF-star

              +

              29 October 2021

              + + +
              + +
              +
              +

              Attendees

              +
              +
              Present
              AndyS, Doerthe, Fabio_Vitali, gatemezing, gkellogg, olaf, ora, pchampin, rivettp, TallTed
              +
              Regrets
              gkellogg
              +
              Chair
              pchampin
              +
              Scribe
              gatemezing, pchampin
              +
              +
              + + +
              + +
              +

              Meeting minutes

              +

              <fabio_vitali> Hello

              +
              + +
              +

              Announcements and newcomers

              +

              <fabio_vitali> MUCH better

              +

              <fabio_vitali> Thank you

              +

              pchampin: asking for anouncements
              +… quick one: we'll have our next call in 2 weeks, so take care about the the time changing in Europe
              +… It will be at the usual local time for everyone

              +
              + +
              +

              Open actions

              +

              <pchampin> https://github.com/w3c/rdf-star/issues?q=is%3Aopen+is%3Aissue+label%3Aaction

              +

              pchampin: Asking for any other comments. None. So let's move on

              +

              <pchampin> https://github.com/w3c/rdf-star/issues/211 : improve figure

              +

              pchampin: Starting with easy ones see issue #211
              +… made some few changes, added links to blocks.

              +

              pchampin: no objection to close it. So it's closed.

              +

              <pchampin> https://github.com/w3c/rdf-star/issues/207 : marking issues as proposed-later

              +

              <pchampin> https://github.com/w3c/rdf-star/issues/169 : occurence vocabulary

              +

              pchampin: marked one on the occurence vocab

              +

              pchampin: RDF-Triples are unique. There is a section in the report targeting occurences, as well as the vocab section

              +

              <AndyS> +1 esp as a likely discussion in the WG so there is only so much that can be done by this team.

              +

              gatemezing: good question about the semantics of "proposed-later"

              +

              <Zakim> TallTed, you wanted to ask what "proposed-later" label means

              +

              TallTed: What is the proposed-later label means?

              +

              pchampin: This is a temporary label to be submitted to the group as "later"

              +

              olaf: Agreed on not adding this discussion on the report

              +

              gatemezing: no objection as well

              +

              <pchampin> PROPOSED: mark issue 169 as 'later' (defer to future WG)

              +

              <pchampin> +1

              +

              <gatemezing> +1

              +

              <TallTed> +0

              +

              <AndyS> +1

              +

              <fabio_vitali> +1

              +

              <olaf> +1

              +

              <Doerthe> +1

              +

              <ora> +1

              +

              <rivettp> +1

              +

              Resolution: mark issue 169 as 'later' (defer to future WG)

              +

              pchampin: I'll keep my action open and make the change right now.

              +

              pchampin: We have open actions in concrete grammars, moving entailment regimes will be handle in the next agendum

              +
              + +
              +

              Pending Pull-Requests

              +

              <pchampin> https://github.com/w3c/rdf-star/pulls

              +

              pchampin: list of 3 PRs at https://github.com/w3c/rdf-star/pulls

              +

              <fabio_vitali> you guys are too fast for me

              +

              <pchampin> https://github.com/w3c/rdf-star/pull/217 : Metadata

              +

              gatemezing: PR is good for me. Up to you to decide.

              +

              <olaf> Fabio, too fast in what sense?

              +

              pchampin: saw TallTed idea to avoid having the generated files in the repo.

              +

              <fabio_vitali> @olaf: it takes three-four seconds for me to click on the link, read the topic and try to form an opinion, and you are already discussing the next one

              +

              <fabio_vitali> not complaining, just noting

              +

              pchampin: Please fabio_vitali do not hesitate to stop the chairs when they go faster

              +

              <pchampin> https://github.com/w3c/rdf-star/pull/215 : TEPs and RDF-star vocab

              +

              pchampin: Turn to TEPs (Transparency Enabling Properties)

              +

              <fabio_vitali> Stupid questions: why the plural? Why are there properties instead of a single one?

              +

              pchampin: we have now a formal semantics, included IRIs for TPEs,

              +

              <fabio_vitali> Stupid question: why the plural? Why are there properties instead of a single one?

              +

              <fabio_vitali> thank you

              +

              pchampin: proposed to finish the discussion on-line and merge if there is a consensus

              +

              pchampin: olaf is suggesting to change the orders of some sections https://github.com/w3c/rdf-star/pull/215#issuecomment-954706145

              +

              <pchampin> https://pr-preview.s3.amazonaws.com/w3c/rdf-star/pull/215.html#ref-opacity

              +

              olaf: It's not a strong opinion

              +

              olaf proposal: reorder subsubsections as follow: referential opacity, alternatives to ref opacity, TEPs

              +

              pchampin: I hear olaf as if he is far from his phone?!

              +

              <pchampin> https://github.com/w3c/rdf-star/pull/218 : full EBNF of syntaxes

              +

              pchampin: the idea is to have this PR in the html document in the appendices
              +… once the technical issue is solved, this would be nice to have in the report
              +… this PR is also good to be merged

              +

              pchampin: Chartering of the WG will take time anyway

              +
              + +
              +

              WG chartering

              +

              <pchampin> https://github.com/w3c/rdf-star-wg-charter/

              +

              pchampin: The repo for the charter is on github
              +… the new W3C WG will chartered a family of RDF and SPARQL documents
              +… there is still open questions regarding additional features w.r.t. W3C process to avoid all rounds of the normal process,
              +… making it lighter even if it can raised issues on stability and implementations

              +

              <rivettp> has anyone given any thought to including SHACL in the scope of the "family"?

              +

              pchampin: one of the question not yet adressed is that probably I will be the W3C point contact
              +… so I could not continue as chair if that happens
              +… We need to identify potential chair(s) to be involved in the charter

              +

              pchampin: including SHACL? the maturity of the REC, the timing problem and even logistic issues

              +

              AndyS: Agreed not including SHACL

              +

              <Zakim> TallTed, you wanted to suggest listing SHACL-star (and possibly other things not yet discussed) as an optional stretch goal

              +

              AndyS: but it manages to handle it, that's great

              +

              TallTed: Listing it at least in the draft, even if it is not tackle could be fair

              +

              pchampin: Not putting it as requirement, but indeed include it

              +

              AndyS: suggested to propose to write something around that in the document. Thanks AndyS !

              +

              pchampin: This remind me the JSON-LD CG vs RDF WG

              +

              TallTed: The difference here is that SHACL exists compare to the situation some years ago with JSON-LD (not existing at the time)

              +

              ora: anybody working on R2RML-star?

              +

              <ora> R2RML

              +

              <olaf> RML-star

              +

              <olaf> "RML-star: A Declarative Mapping Language for RDF-star Generation" by Thomas Delva, Julián Arenas-Guerrero, Ana Iglesias-Molina, Oscar Corcho, David Chaves-Fraga, Anastasia Dimou

              +

              <olaf> http://ceur-ws.org/Vol-2980/paper374.pdf

              +

              <ora> :-)

              +

              pchampin: let's think about some names for the next calls

              +

              pchampin: conformance section should have to wait
              +… I suggest to discuss it in the next call

              +

              <fabio_vitali> thank you

              +

              pchampin: thanks everyone
              +… find some names for future chairs

              +

              <TallTed> 11/11 == US Veterans Day, UK Remembrance Day. Not typically a day off.

              +

              <Doerthe> bye

              +

              <gatemezing> bye

              +

              <AndyS> bye

              +

              <ora> bye

              +
              +
              + +
              +

              Summary of resolutions

              +
                +
              1. mark issue 169 as 'later' (defer to future WG)
              2. +
              +
              + + +
              Minutes manually created (not a transcript), formatted by scribe.perl version 142 (Tue Jun 1 16:59:13 2021 UTC).
              + + + diff --git a/corese-unit-test/src/test/resources/data/rdf-star-main/Minutes/2021-11-12.html b/corese-unit-test/src/test/resources/data/rdf-star-main/Minutes/2021-11-12.html new file mode 100644 index 0000000000..b81b141e78 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/rdf-star-main/Minutes/2021-11-12.html @@ -0,0 +1,206 @@ + + + + +RDF-star – 12 November 2021 + + + + + + + + + + +
              +

              W3C

              + +

              RDF-star

              +

              12 November 2021

              + + +
              + +
              +
              +

              Attendees

              +
              +
              Present
              AndyS, Doerthe, fabio, gkellogg, ora, pchampin
              +
              Regrets
              olaf
              +
              Chair
              -
              +
              Scribe
              AndyS
              +
              +
              + + +
              + +
              +

              Meeting minutes

              +
              + +
              +

              Announcements and newcomers

              +
              + +
              +

              Open actions

              +

              <pchampin> https://github.com/w3c/rdf-star/issues?q=is%3Aopen+is%3Aissue+label%3Aaction

              +
              + +
              +

              Conformance section

              +

              <pchampin> https://github.com/w3c/rdf-star/issues/3

              +

              Action: AndyS to make a PR to address issue #3

              +
              + +
              +

              Debunking RDF-star myths in the intro

              +

              <fabio> hello

              +

              <pchampin> https://github.com/w3c/rdf-star/issues/64

              +

              <pchampin> https://github.com/w3c/rdf-star/issues/219

              +

              <<>> are unique terms in a graph -- so not a straight replacement for LPG (or all refication usages) - <<>> are a building block.

              +

              PFPS wants earlier mention of opaquacity..

              +

              phcampin: don't want intro to be too long.
              +… but should have longer than we currently have.

              +

              <TallTed> Might it be worth encouraging authors of those now- (possibly always-) erroneous papers to add some sort of note to that effect to (or at least nearby) those papers?

              +

              <gkellogg> +1 to adding such material to the intro.

              +

              <TallTed> +1 for adding to the RDF-star intro, for sure

              +

              pchampin: can suggest to the authors.
              +… some triplestore vendor examples are also misleading.

              +

              <TallTed> Yes, I'm not suggesting a wall-of-shame, but rather reaching out to the authors directly.

              +

              Action: ora to suggest to Olaf and Bryan to amend their paper on arXiv

              +

              Action: pchampin to make a PR to address issues #69 and #219

              +

              <fabio> "Common misunderstandings about RDF*"

              +

              <fabio> It looks more material for a FAQ than a section in the document

              +

              <TallTed> Common misperceptions about...

              +

              <TallTed> *heh* as IRC hiccups and reveals fabio's "Common misunderstandings" :-)

              +

              pchampin: material is already in the report - we are trying to help readers from jumping to a wrong conclusion basd on old material

              +

              <fabio> Excusatio non petita accusation manifesta

              +

              fabio: may be risky to put too early

              +

              <fabio> accusatio

              +

              <fabio> I have it in Latin, sorry

              +

              gkellogg: support adding clarification text.

              +

              <fabio> https://en.wikipedia.org/wiki/Excusatio_non_petita,_accusatio_manifesta

              +

              gkellogg: balance to be struck regarding negatives and positives.

              +

              <TallTed> "Common troublesome misconceptions..." or "Common misperceptions that can lead to failure of interop" or ...

              +

              <TallTed> At least flagging that such exist should be in the intro. Full details may be better placed elsewhere and linked from intro.

              +

              pchampin: will propose text

              +
              + +
              +

              Publishing a final report

              +

              pchampin: these are the only open actions needing work - rest are discussion-ish or "later"

              +

              pchampin: on the path to chartering the WG.
              +… publish at a dated URL

              +

              +1 to final report

              +

              <pchampin> PROPOSED: after the remaining PRs are merged, defer any new issue to the future WG, and publish a final report

              +

              <pchampin> +1

              +

              <TallTed> +1

              +

              <gkellogg> +1

              +

              <AndyS> +1

              +

              <Doerthe> +1

              +

              <fabio> +1

              +

              <ora> +1

              +

              <ora> sorry

              +

              Resolution: after the remaining PRs are merged, defer any new issue to the future WG, and publish a final report

              +

              pchampin: can still update editors draft is necessary.
              +… ideally not updating the final report

              +

              <TallTed> CG Final Report is similar to a NOTE. Can be updated/replaced whenever a group that has control over it wants.

              +

              <fabio> So this is the final meeting of this group?

              +

              pchampin: we need to accept the PRs and vote on the final report.
              +… also charter discussion

              +
              + +
              +

              WG chartering

              +

              <pchampin> https://github.com/w3c/rdf-star-wg-charter/issues

              +

              <pchampin> https://github.com/w3c/rdf-star-wg-charter/issues/1

              +

              pchampin: one or two WGs? touchs on RDF and SPARQL , then maybe split work streams. Closely related anyway so 2 has little advantage.

              +

              ora: multiple WG -- unless there is a clear separation, then one is better.
              +… RDF , RDFS were two WG and was a bit confusing.
              +… bigger WG can have task forces - coordination is the key.

              +

              pchampin: one WG.

              +

              <pchampin> https://github.com/w3c/rdf-star-wg-charter/issues/2

              +

              <TallTed> should note the current understanding of the group, in at least a few words, when closing these issues

              +

              pchampin: RDF/XML - mixed feelings about whether to include or not.

              +

              <gkellogg> RDFa can technically work on XML, not just HTML.

              +

              pchampin: may be "any XML serialization" so TriX-star would be better approach - includes datasets.
              +… addresses the "XML toolchain" even if not update RDF/XML.

              +

              ora: RDF/XML ... pass it's sell-by date. (scribe: +1)
              +… happy to leave it alone

              +

              gkellogg: compatibility issues if reusing existing reification hook.
              +… make RDF/XML "archaic"
              +… trix -- tighten up -- claim is use in stylesheet

              +

              pchampin: some perception that RDF-star "is" reification -- it's not.

              +

              <pchampin> PROPOSAL: mark the updating of RDF/XML as optional in the draft charter

              +

              <pchampin> +1

              +

              <fabio> +1

              +

              <gkellogg> +1

              +

              <AndyS> +1

              +

              <Doerthe> +1

              +

              <TallTed> +1

              +

              <ora> +1

              +

              Resolution: mark the updating of RDF/XML as optional in the draft charter

              +

              Action: pchampin to mark RDF/XML as optional in the charter

              +

              <pchampin> https://github.com/w3c/rdf-star-wg-charter/issues/6

              +

              qkellogg: note CSV, TSV formats
              +… and CSVW
              +… some uptick in interest in CSVW
              +… need a way to give option to update

              +

              AndyS: can we enumerate the "documents in scope" so if the WG has the energy, then they can be done.
              +… (R2RML, SHACL, RDFa, JSON-LD)
              +… and OWL

              +

              pchampin: many possible documents

              +

              AndyS: RIF

              +

              pchampin: will ask team for advice

              +

              Action: pchampin to ask in W3C about how broad the charter could be

              +

              <fabio> thank you!

              +

              <AndyS> Next meeting: December 3rd due to US Thanksgiving.

              +
              +
              + + + + + + +
              Minutes manually created (not a transcript), formatted by scribe.perl version 142 (Tue Jun 1 16:59:13 2021 UTC).
              + + + diff --git a/corese-unit-test/src/test/resources/data/rdf-star-main/Minutes/2021-12-03.html b/corese-unit-test/src/test/resources/data/rdf-star-main/Minutes/2021-12-03.html new file mode 100644 index 0000000000..7ca026ad5e --- /dev/null +++ b/corese-unit-test/src/test/resources/data/rdf-star-main/Minutes/2021-12-03.html @@ -0,0 +1,205 @@ + + + + +RDF-star – 03 December 2021 + + + + + + + + + + +
              +

              W3C

              + +

              RDF-star

              +

              03 December 2021

              + + +
              + +
              +
              +

              Attendees

              +
              +
              Present
              AndyS, fabio_vitali, gkellogg, olaf, ora, pchampin, rivettp
              +
              Regrets
              Doerthe
              +
              Chair
              pchampin
              +
              Scribe
              gkellogg
              +
              +
              + + +
              + +
              +

              Meeting minutes

              +
              + +
              +

              Announcements and newcomers

              +

              <pchampin> https://european-big-data-value-forum.eu/

              +

              pchampin: I gave a presentation on Wednesday at the European data event forum.
              +… Not too much time for questions. Slides on the website.

              +
              + +
              +

              Open actions

              +

              <pchampin> https://github.com/w3c/rdf-star/issues?q=is%3Aopen+is%3Aissue+label%3Aaction

              +

              pchampin: Ora's example was to mach a change to the arXiv paper on the seminal example.

              +

              olaf: Ora hadn't mentioned it.

              +

              pchampin: We discussed the common misconceptions of RDF-star should be avoided as much as possible as soon as possible in publications.
              +… Since people may come from reading that paper, they could come with poor expectations.

              +

              olaf: Something I can do is to put a statement into the PDF that refers to the output of this group.
              +… And that the arXiv document isn't up to date right now.
              +… Regarding the example, it might be tricky in that document to describe the problems.

              +

              pchampin: We have a section in the spec which describes the problem, so a paragraph that would reference people to our report would help.
              +… I'll assign #222 to Olaf.

              +

              pchampin: #64 and #3 were addressed by recent pull requests, so they could be closed.

              +
              + +
              +

              Pending PRs

              +

              <pchampin> https://github.com/w3c/rdf-star/pull/224 Conformance text

              +

              AndyS: There are some minor editorial issues to get to.
              +… What I'm trying to do is not to be too prescriptive. People shouldn't be able to claim that a base RDF 1.1 system is RDF-star.
              +… It talks about systems that may read or write RDF-star in at least one form.
              +… SPARQL-star is easier, as there's a test suite.

              +

              olaf: I agree that it's easier for SPARQL-star than RDF-star.
              +… Regarding the syntaxes, maybe we can talk about reporting RDF-star as input or output.
              +… To say "supports RDF-star" may be over-broad.

              +

              AndyS: This was a heavyweight day of allowing things that only input to conform (or output only).
              +… For the rest, I'm not sure what else we can say other than observing input and output.

              +

              olaf: The question was not to talk about systems supporting RDF-star, but those that support it as input and separately as output.

              +

              pchampin: For me, olaf's proposal doesn't change the conformance classes, but renames them to something less "promising".
              +… What the independent classes don't cover is the ability to output one format given another.

              +

              AndyS: It doesn't say anything about preserving data in the system, and base RDF does not either.

              +

              AndyS: I didn't put anything in about semantics, as it isn't observable.
              +… I don't know of a semantics test of an RDF system.

              +

              pchampin: Somehow, the semantics suite captures a missing part between input and output.
              +… But, not all RDF systems have a way to check for simple entailment.
              +… I think adding the semantics test suite to the conformance section would be a problem.

              +

              pchampin: The 1.1 specs also just list it in the header, but the conformance section is quite general.

              +

              gkellogg: maybe some group would consider entailment regime tests for SPARQL.

              +

              pchampin: I agree, that might not help us finish out work.

              +

              olaf: This is now about the syntax tests, but explicitly requiring a system to pass at least one would rule out a system support JSON-LD-star only.

              +

              gkellogg: we should implicitly include other systems.

              +

              <pchampin> RDF 1.1 Concepts: "Implementations cannot directly conform to RDF 1.1 Concepts and Abstract Syntax, but can conform to such other specifications that normatively reference terms defined here."

              +

              pchampin: That's their way of not restricting to different serializations.

              +

              AndyS: RDF 1.1 concepts has no observable concrete syntaxes.

              +

              <pchampin> https://github.com/w3c/rdf-star/pull/225

              +

              pchampin: The idea was to put something into the introduction to reference important concepts elsewhere in the document.
              +… We noted people coming with some expectations which were wrong, and wanted to signal these early.
              +… I kept it short and just add pointers to in-depth discussions.
              +… But, it seemed important to add more about occurrences and added a new example.
              +… I think it is complementary to other examples and highlights different use cases.

              +

              <pchampin> https://pr-preview.s3.amazonaws.com/w3c/rdf-star/pull/225.html#occurrences-example

              +

              pchampin: This example is about a triple being added by different people, so it is a provenance use case.
              +… It's about the triple itself, but not about a statement itself.

              +

              <pchampin> https://pr-preview.s3.amazonaws.com/w3c/rdf-star/pull/225.html#married-example

              +

              pchampin: The added example is about Liz Taylor marrying Richard Burton twice.
              +… I think the second example nicely complements the first one; it's not strictly provenance related, but can happen in other situations.

              +

              rivettp: My concern is that we're representing marriage as a resource, and a triple is rather fragile.
              +… How would it be describe with Richard Burton as the subject?

              +

              <fabio_vitali> I said that

              +

              pchampin: We need to be precise on if we're describing the wedding or the marriage.
              +… About representing either as resources, I agree. But this answers and expectation by people coming from the PG world about why it's interesting to have properties on edges and to have multiple edges.

              +

              rivettp: My concern is the reverse, normal RDF would a relationship and I'm not sure ...

              +

              pchampin: This doesn't describe the problem of inverting the subject.
              +… We're defining resources to describe the weddings, but the added value is that we still have an arc between the two.
              +… That arc could be inferred by OWL, for example.
              +… But somehow we have the best of both worlds.

              +

              rivettp: Independent of property direction, we don't describe inverse relationships.

              +

              AndyS: The graph database for Neo4J has a section an anti-patterns about annotating arcs.
              +… Even in the PG world, there is recognition that using the graph as a network graph doesn't always get you the patterns you want.
              +… The marriage example is different, as I think legally, these are separate marriages. In natural language we don't refine those details.

              +

              pchampin: I'm interested in the anti-pattern page.
              +… We should be carful to not try to support examples which are anti-patterns.

              +

              AndyS: If you're annotating a first-class thing in the graph ...

              +

              fabio_vitali: I would like to identify the conceptual item that makes my graph true.
              +… In this case that RDF-star identifies something about a triple that makes the graph true. It's about the triple and not the face.
              +… What makes me dubious is that the statement is about the marriage and not the statement. It should be about contextual information.
              +… Is it appropriate to use the "occurrence" keyword rather than trying to identify the truth of a statement based on the information around it.

              +

              pchampin: I think the two examples are at opposite ends of the spectrum of facts vs statements.
              +… I've felt that people using RDF-star needed all of these use cases.
              +… It goes in Andy's point about anti-patterns.

              +

              olaf: I don't have a problem with having the example. But, having it in this section may be misleading and cause more harm than good.
              +… As you notice, this example has some additional assumptions, namely that the occurrence property is transparent.

              +

              pchampin: It should be renamed to remove that false impression.

              +

              olaf: I see the section about the possibility of talking about occurrences of triples and not of the things the triple describe.
              +… There's a difference with the two examples in this regard.

              +

              pchampin: This discussion shows that it may bring more confusion than clarity, so I would be willing to remove the example.

              +

              <fabio_vitali> We could invent a different example dealing with triples rather than relationships

              +

              pchampin: My conclusion is that the new example probably does more harm than good.
              +… It is orthogonal to other things in the introduction.

              +

              olaf: Do we have any other example that speaks to PG peoples use cases?
              +… This question will keep coming up, so it would be good to have such an example.
              +… Even if it's not perfect, but to show that it is possible.

              +

              pchampin: Could this be done elsewhere, perhaps in a blog post? The example in the report may create too much confusion.
              +… We could agree to work on a series of blog posts that describes the relationship between PGs and RDF-star.

              +

              ora: I like the proposal too and would participate.
              +… For this report, I don't think we should rock the boat too much.
              +… Having a separate post might help prevent that.

              +

              pchampin: I'll remove the example from the PR.

              +

              Action: pchampin to remove the "Taylor-Burton" example from the PR

              +
              + +
              +

              Publishing a final report

              +

              pchampin: We have a couple of other minor PRs. That's all we have left for PRs, and it would be nice to be able to publish at least another public draft if not a final report.
              +… I was expecting to have another call in two weeks unless people it's too close to Christmas.

              +

              <rivettp> 17th is fine for me

              +

              <ora> I can do 17th

              +

              <fabio_vitali> Just wondering if it makes sense to use the occurrence pattern as a way not only to count occurrences of the same triple in different datasets, but to evaluate different levels of confidence different people may have about the same statement

              +

              AndyS: How do we declare ourselves finished? (by publishing the report)

              +

              pchampin: We might still meet to discuss the charter or blog post, but after the final report we can claim success.

              +

              AndyS: Further issues can then point to the WG.

              +

              pchampin: So, we have two more weeks to iron up the pending PRs. Other than the example, it's mostly editorial.

              +

              <pchampin> PROPOSED: handle the remaining PRs until the next call (2021-12-17) and publish a final report then

              +

              <gkellogg> +

              +

              <pchampin> +1

              +

              <olaf> +1

              +

              <fabio_vitali> +1

              +

              <ora> +1

              +

              <AndyS> +1

              +

              ora: what do we do about remaining issues?

              +

              <fabio_vitali> I got to go. See you on the 17th

              +

              pchampin: These issues are explicitly things that are open discussions.

              +

              <pchampin> is:issue is:open -label:discussion -label:use-case -label:later

              +

              <AndyS> https://github.com/w3c/rdf-star/issues?q=is%3Aissue+is%3Aopen+-label%3Adiscussion+-label%3Ause-case+-label%3Alater

              +

              pchampin: I'll ping Peter on #220, but it could be labeled "discussion" as we're not likely to change anything now.

              +
              +
              + + + + +
              Minutes manually created (not a transcript), formatted by scribe.perl version 142 (Tue Jun 1 16:59:13 2021 UTC).
              + + + diff --git a/corese-unit-test/src/test/resources/data/rdf-star-main/Minutes/2021-12-17.html b/corese-unit-test/src/test/resources/data/rdf-star-main/Minutes/2021-12-17.html new file mode 100644 index 0000000000..31c8911c8f --- /dev/null +++ b/corese-unit-test/src/test/resources/data/rdf-star-main/Minutes/2021-12-17.html @@ -0,0 +1,177 @@ + + + + +RDF-star – 17 December 2021 + + + + + + + + + + +
              +

              W3C

              + +

              RDF-star

              +

              17 December 2021

              + + +
              + +
              +
              +

              Attendees

              +
              +
              Present
              AndyS, Doerthe, fabio_vitali, gatemezing, gkellogg, olaf, pchampin, rivettp, TallTed
              +
              Regrets
              -
              +
              Chair
              pchampin
              +
              Scribe
              AndyS, pchampin
              +
              +
              + + +
              + +
              +

              Meeting minutes

              +
              + +
              +

              Announcements and newcomers

              +

              pchampin: out of date implementations removed - rust one updated

              +

              gkellogg: changes to test URIs.

              +

              <pchampin> https://twitter.com/MarcelOttoDE/status/1470355460117123074

              +
              + +
              +

              Open actions

              +

              <pchampin> https://github.com/w3c/rdf-star/issues?q=is%3Aopen+is%3Aissue+label%3Aaction

              +

              <pchampin> update RDF* paper on arXiv

              +

              pchampin: Olaf updated the RDF* paper.
              +… action done

              +
              + +
              +

              Publishing a final report

              +

              pchampin: Has a more formal standing as "final"
              +… license is slightly different.
              +… authors will be contacted to agree
              +… report copied to W3C website
              +… needs CG RDF-DEV action (DanBri)

              +

              <pchampin> Final specification agreement

              +

              pchampin: 2 decisions : publish as is ; publish as final report

              +

              <olaf> Apologies for being late!

              +

              <pchampin> PROPOSED: publish a new version of the CG report, as a 'final report'

              +

              <pchampin> +1

              +

              <gkellogg> +1

              +

              <fabio_vitali> +1

              +

              <AndyS> +1

              +

              <TallTed> +1

              +

              <gatemezing> +1

              +

              <Doerthe> +1

              +

              <olaf> +1 (and another +1 from Ora who sends his regrets for today)

              +

              <rivettp> +1

              +

              Resolution: publish a new version of the CG report, as a 'final report'

              +

              <olaf> Yay!

              +

              <fabio_vitali> congratulations!

              +

              tallted: we can still respond with issues and PRs

              +

              pchampin: yes - not immutable

              +

              AndyS: this does apply also to the tests?

              +

              gkellogg: no, the tests are independant

              +
              + +
              +

              WG chartering

              +

              <pchampin> https://github.com/w3c/rdf-star-wg-charter/

              +

              <pchampin> https://github.com/w3c/rdf-star-wg-charter/issues

              +

              <pchampin> RDF/XML

              +

              pchampin: RDF/XML - mark as optional work
              +… a few people have expressed interest in doing the work.

              +

              gatemezing: is there a way to phrase the feedback/interest in RDF/XML.

              +

              pchampin: will have "update that doc if WG has time/volunteers to do the work"

              +

              fabio_vitali: wondering about RDF-star and named graphs

              +

              pchampin: spec allows quoted triples in named graphs
              +… abstract syntax covers graphs and datasets

              +

              AndyS: star-bit aside, named graphs in RDF are just containers
              +… if you want to add a vocabulary, you can
              +… but that adds assumptions that are not shared by everyone using named graphs

              +

              <pchampin> https://www.w3.org/TR/rdf11-datasets/

              +

              doerthe: important but rather broad to tackle here the moment (c.f. N3)

              +

              <fabio_vitali> Thanks Dörthe

              +

              pchampin: our spec refers to note about RDF datasets semantics from RDF 1.1.
              +… let's not make it requirement for the WG

              +

              AndyS: WG have a history of not strictly sticking to their charter
              +… I'm nervous about mentioning it in the charter; may give too high expectations
              +… And anyway I would be suprised if it didn't come up

              +

              <fabio_vitali> I think it is an inteersting + appropriate topic for this specific Wg. I would be surprised if it was proposed by some other ones

              +

              <pchampin> WG practice

              +

              pchampin: F2F meetings
              +… reflect the "new normal"

              +

              <pchampin> https://github.com/w3c/rdf-star-wg-charter/pull/4

              +

              <gatemezing> I don't understand the concept of "synchronize meeting"

              +

              <pchampin> guideline for added features

              +

              <olaf> Have to leave early today. I wish everyone nice and relaxing holidays!

              +

              <gatemezing> Enjoy olaf !

              +

              <pchampin> https://github.com/w3c/rdf-star-wg-charter/pull/7

              +

              pchampin: CSVW and others

              +

              <pchampin> CSVW

              +

              pchampin: RDFa
              +… do not envisage separate WGs for these
              +… may be a lot of work
              +… AC and W3C mgt may be concerned
              +… (advice from IvanH)
              +… idea: plan for recharting as it becomes clear what docs may be touched.

              +

              <gatemezing> The group will probably upgrade the current SemWeb stack https://en.wikipedia.org/wiki/Semantic_Web_Stack

              +

              gkellogg: work on RDFa (is there an active CG?) could be done by WG
              +… something for the recharter point?

              +

              Action: pchampin to implement Ivan Herman's proposal as described in https://github.com/w3c/rdf-star-wg-charter/issues/6#issuecomment-986801681

              +

              <pchampin> liaisons

              +

              17: 00+00:00

              +

              pchampin: Next meeting -- 7th Jan.

              +

              <rivettp> +1 for 7 Jan

              +

              <gatemezing> Thanks all, and thanks the chairs

              +

              <AndyS> Bye!

              +

              <fabio_vitali> Ciao! Have a nice end-of-year period!

              +
              +
              + + + + + + +
              Minutes manually created (not a transcript), formatted by scribe.perl version 142 (Tue Jun 1 16:59:13 2021 UTC).
              + + + diff --git a/corese-unit-test/src/test/resources/data/rdf-star-main/Minutes/2022-01-07.html b/corese-unit-test/src/test/resources/data/rdf-star-main/Minutes/2022-01-07.html new file mode 100644 index 0000000000..9d5328b7b4 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/rdf-star-main/Minutes/2022-01-07.html @@ -0,0 +1,176 @@ + + + + +RDF-star – 07 January 2022 + + + + + + + + + + +
              +

              W3C

              + +

              RDF-star

              +

              07 January 2022

              + + +
              + +
              +
              +

              Attendees

              +
              +
              Present
              AndyS, Doerthe, gkellogg, olaf, ora, pchampin, rivettp
              +
              Regrets
              -
              +
              Chair
              pchampin
              +
              Scribe
              olaf, pchampin
              +
              +
              + + +
              + +
              +

              Meeting minutes

              +
              + +
              +

              Announcements and newcomers

              +

              pchampin: no announcements

              +
              + +
              +

              Open actions

              +

              <pchampin> https://github.com/w3c/rdf-star/issues?q=is%3Aopen+is%3Aissue+label%3Aaction

              +

              pchampin: one open actions on the RDF-star repo

              +

              <pchampin> https://github.com/w3c/rdf-star/issues/231

              +

              gkellogg: all updated

              +

              pchampin: it was about the test suites

              +

              gkellogg: accomplished and Andy found some other issues that were cleared up as well

              +

              <pchampin> https://github.com/w3c/rdf-star-wg-charter/issues?q=is%3Aopen+is%3Aissue+label%3Aaction

              +

              pchampin: there are also actions related to the charter
              +… no progress on these yet
              +… also two open PRs
              +… since no additional feedback on them, they will be merged

              +
              + +
              +

              Publicity of RDF-star

              +

              pchampin: rationale for this iterm: there is a lot going on on the mailing list
              +… most of it is about possible limitations of RDF-star
              +… much noise about the parts that are missing
              +… but not much about the benefits and what we have achieved

              +

              olaf: I see it the same way as pchampin
              +… the mailing list may give the impression that we have failed
              +… some discussions on twitter may give the same impression
              +… what can we do to put more weight on the benefits of what we have achieved?
              +… also, it is hard to follow/respond to those long discussions

              +

              AndyS: parts of these discussion wander off into directions where RDF-star would not be a direct solution anyway
              +… dedicated ontologies would be more appropriate
              +… UK released such an ontology (4D ontology, not using RDF-star)
              +… called IES (Information Exchange Standard)

              +

              gkellogg: the RDF-star got somehow hijacked by RDF wishlists

              +

              gkellogg: unfortunately, the discussion/list of RDF-star got high jacked

              +

              <rivettp> Here's a public presentation about IES https://gateway.newton.ac.uk/sites/default/files/asset/doc/2105/Ian%20Bailey.pdf

              +

              AndyS: maybe too early, but we could gather examples of succesful use of RDF-star

              +

              olaf: some people are claiming that RDF-star is not good for anything

              +

              pchampin: Andy's idea about gathering success stories of RDF-star could be useful

              +

              ora: what could be done about it?
              +… AWS has a database blog
              +… which has a fairly large readership
              +… maybe a blog post there?
              +… about what RDF-star is

              +

              +1

              +

              pchampin: that would be great

              +

              AndyS: solicit more implementation reports
              +… Ontotext?

              +

              pchampin: they may wait for the WG?
              +… reach out to the people who were involved in the early days of our task force

              +

              <AndyS> [off] rivettp - great! (Ian is the IES editor)

              +

              rivettp: more examples needed
              +… not so much examples that focus on edge cases (marriage)
              +… RDF-star gives more rope to hang yourself

              +

              inverse properties may be problematic

              +

              pchampin: the inverse was mentioned in one of the github issues

              +

              <pchampin> https://github.com/w3c/rdf-star/issues/200

              +

              AndyS: impl.report from RDF4J ?

              +

              gkellogg: discussions on the list went off because of the complexity of modelling
              +… ongoing are still questions about the fundamentals of RDF-star

              +

              pchampin: there were also comments by Pat

              +

              Doerthe: I wasn't that active in the discussions b/c of the Christmas break
              +… we may say what the relationship to Property Graphs is.

              +

              ora: maybe reach out to Pat again?

              +

              <gkellogg> +1

              +

              pchampin: I agree to Doerthe's comment about the Property Graphs
              +… present a direct mapping

              +

              <pchampin> https://www.w3.org/TR/swbp-n-aryRelations/

              +

              pchampin: also the design patterns for n-ary relations in RDF may deserve an update
              +… that document may contain cases in which RDF-star is a good means and other in which it is not
              +… back to PGs: the direct mapping would have an indirection

              +

              AndyS: Sounds all like working on a background for the WG

              +

              pchampin: perhaps these things may be listed as deliverables for the WG -- although there is already a long list of deliverables

              +

              AndyS: some write-up of the issue of transparency may be helpful

              +

              rivettp: encourage others in the W3C community to go beyond RDF-star
              +… probably outside the scope of this group here
              +… establish best practices around using RDF-star

              +

              olaf: to summarize: 1) reach out to implementors

              +

              <AndyS> [off] I'll talk to RDF4J

              +

              olaf: I can reach out to Ontotext and Stardog
              +… 2) AWS blog post
              +… 3) add more examples, collect them on the CG blog

              +

              pchampin: any example for point 3?

              +

              AndyS: I recently came about an example in the context of DBpedia

              +

              Action: olaf to reach out to Ontotext and Stardog

              +

              Action: pchampin to reach out to Corese

              +

              Action: AndyS to reach out to RDF4J

              +

              Action: ora to publish a post on the AWS blog

              +

              Action: ora to reach out to Pat Hayes

              +

              olaf: the examples we publish on the CG blog need to be carefully designed

              +

              Action: pchampin to write a CG blog post about different kinds of occurrences

              +

              <rivettp> I'm interested in examples

              +
              + +
              +

              WG chartering

              +

              pchampin: not much to add on the topic of the charter at this point

              +
              +
              + + + + +
              Minutes manually created (not a transcript), formatted by scribe.perl version 142 (Tue Jun 1 16:59:13 2021 UTC).
              + + + diff --git a/corese-unit-test/src/test/resources/data/rdf-star-main/Minutes/2022-01-21.html b/corese-unit-test/src/test/resources/data/rdf-star-main/Minutes/2022-01-21.html new file mode 100644 index 0000000000..3926355f0a --- /dev/null +++ b/corese-unit-test/src/test/resources/data/rdf-star-main/Minutes/2022-01-21.html @@ -0,0 +1,237 @@ + + + + +RDF-star – 21 January 2022 + + + + + + + + + + +
              +

              W3C

              + +

              RDF-star

              +

              21 January 2022

              + + +
              + +
              +
              +

              Attendees

              +
              +
              Present
              AndyS, Dominik, fabio_vitali, gkellogg, olaf, ora, pchampin, rivettp
              +
              Regrets
              -
              +
              Chair
              pchampin
              +
              Scribe
              gkellogg
              +
              +
              + + +
              + +
              +

              Meeting minutes

              +
              + +
              +

              Announcements and newcomers

              +

              Dominik: my first time here. I work in University in Poland. subjects RDF and Property Graphs.
              +… I'm also in the N3 CG, LDBC Schema WG also working on Property Graphs and Schema.

              +

              <ora> RDF and PGs, sounds interesting!

              +
              + +
              +

              Open actions

              +

              <pchampin> https://github.com/w3c/rdf-star/issues?q=is%3Aopen+is%3Aissue+label%3Aaction

              +

              pchampin: Some of these actions were about reaching out to developers.

              +

              ora: I was to write a blog post and to talk to PatH.

              +

              pchampin: I ment Olaf :)

              +

              <pchampin> https://github.com/w3c/rdf-star/issues/240

              +

              olaf: I emailed Ontotext and Pavel from Star Dog. They both responded.
              +… Pavel has to check with the rest of the company, and wants to look again at our report.
              +… In which case many tests may have failed and they may not be excited about publishing.
              +… What they had implemented was for PG mode, so even we have SA mode, most likely many of their tests will fail.
              +… I need to follow up with Pavel.
              +… Ontotext immediately replied that they would be happy to send an implementation report.
              +… Generally, they're positive and we can expect something sometime.
              +… OTOH, he also involved RDF4J as they have a shared implementation, and perhaps it makes sense to have a shared report.

              +

              <pchampin> https://github.com/w3c/rdf-star/issues/243

              +

              ora: I started on the blog post but got side-tracked by work responsibilities.
              +… It will be a blog post on the AWS blog.

              +

              <pchampin> https://github.com/w3c/rdf-star/issues/244

              +

              ora: I also reached out to Pat Hayes (wonderful credentials).
              +… We talked about the Neptune 1G effort to unify RDF and PG.
              +… I explained my take on RDF-star, which I considered to be important, which he understood.
              +… I said my worry is that we don't open the flood-gates for all kinds of changes to RDF and keep it tightly scoped.
              +… THen we ended up speaking about his B-Logic proposal. It was an ISWC Keynote in 2009.

              +

              <pchampin> Pat Haye's BLogic

              +

              pchampin: This pops up regularly, paerticularly in N3 CG

              +

              ora: For due diligence, we should read his slides carefully.
              +… THat said, I want to be sure we keep RDF-star tightly scoped.
              +… It will be very interesting for many people to read his ideas.

              +

              <pchampin> Pat Haye's BLogic talk

              +

              <pchampin> that is, if you have a "modern browser" with flash enabled!!

              +

              ora: It extends RDF semantics, without replacing any.
              +… It basically extends RDF to a full 1st order Predicate Calculus.
              +… It also has an interesting take on Named Graphs.

              +

              pchampin: I also posted a version that requires Flash to view.
              +… The slides are on slideshare, but there was a video lecture where you need flash.
              +… I agree that B-Logic is interesting, although it goes beyond our tight scope.
              +… I have some thoughts on defining RDF-star on top of B-Logic.

              +

              ora: Interesting is what he calls "surfaces", both negative and positive and neutral.
              +… This allows you to reason over things that you might not believe in.

              +

              <pchampin> https://github.com/w3c/rdf-star/issues/241

              +

              pchampin: This action was on my reaching out to Corese implementers. They have an implementation which complies (mostly).
              +… THey're willing to upgrade Corese and implement a submission report.

              +

              <pchampin> https://github.com/w3c/rdf-star/issues/242

              +

              pchampin: Next is RDF4J.

              +

              AndyS: I emailed Jerven, who isn't that keen on submitting a report.
              +… Theirs tracks more the PG mode of the old spec.
              +… I haven't pushed them any further, even if it is via reification, I don't know why they couldn't pass the test suite.

              +

              pchampin: The semantics might pose a problem for them.

              +

              AndyS: I believe they do have an EARL report generator.

              +

              <pchampin> https://github.com/w3c/rdf-star/issues/245

              +

              pchampin: The last issue was to create a draft blog post for the CG blog.

              +

              <pchampin> https://docs.google.com/document/d/1h84N2HnKxc7m-TPH4_Zu4L4ja9NJnKnv70ay6iOLuXo/edit

              +

              pchampin: From my perspective, the post is in good shape. Compared with the initial plan, the scope of the post is smaller.
              +… I thought there was enough content. It focuses on Provenance.
              +… Including simple statements, and more going on to complex.
              +… One point was to have some arguments to bring to the issue raised by PFPS a couple of weeks ago about the examples in the report being broken because they don't use intermediary nodes.
              +… We worked on the Google Doc and not on the mailing list to try to constrain the conversation before it is posted.
              +… I propose we publish it right now.

              +

              <rivettp> looking at it now, I'd liek to chiem in

              +

              <rivettp> give me until end of day please

              +

              <pchampin> PROPOSAL: publish the CG blog post ASAP

              +

              <fabio_vitali> can I have access please? Fvitali@gmail.com

              +

              AndyS: I think we should publish it. It's not designed to be a technical document.

              +

              +1

              +

              <pchampin> +1

              +

              olaf: I didn't have a chance to look at it, but if you're fine with it I say go ahead and publish.

              +

              <AndyS> +1

              +

              <olaf> +0

              +

              <rivettp> are we using US English or British English?

              +

              <AndyS> English English

              +

              <rivettp> in US it's modeling

              +

              <rivettp> I'd vote for publishing Monday

              +

              fabio_vitali: What kind of feedback are you looking for?

              +

              pchampin: The idea was to write it collectively.
              +… On the blog we would credit the RDF-star task force, so everyone has a chance to contribute.

              +

              fabio_vitali: If I have some opinions on the appropriateness would you like comments in the doc, a mail, or what?

              +

              pchampin: We can start the conversation here.

              +

              fabio_vitali: One problem I have is about the negative example.
              +… It may be too early to talk about limitations of RDF-star. I also think there's a more correct solution to prevent the errors from occuring.
              +… The problem may then disappear which could become advice. (using two levels of nesting).

              +

              pchampin: I'm not sure I agree in this situation. The goal isn't to claim that the proposed solution is the only way to do it, but to highlight the use of additional nodes.
              +… A agree that in some cases double-nesting might be a solution.
              +… Do we agree that the negative example is broken?
              +… It's not just about bad modeling, it's "lossy".

              +

              <rivettp> OK I've finished it now and am happy with it - I suggested some changes e.g. to use "SPARQL-star"

              +

              fabio_vitali: I wouldn't say "broken", but yes.

              +

              <fabio_vitali> Sorry about the Latin, but this is a case of "Excutatio non petita, accusatio manifesta": if you make excuses that are not requested, you are accusing yourself of something nobody would have cared about.

              +

              pchampin: Lets continue discussion into the beginning of next week.

              +

              <pchampin> PROPOSAL: publish the CG blog post in the beginning of next week

              +

              <pchampin> +1

              +

              +1

              +

              <AndyS> +1

              +

              <rivettp> +1

              +

              <olaf> +1

              +

              <ora> 1+

              +

              <fabio_vitali> +1

              +

              <ora> +1

              +

              <Dominik> +1

              +

              Resolution: publish the CG blog post in the beginning of next week

              +

              pchampin: We'll continue the conversation on the Google Doc.

              +

              olaf: Since you mention DanBri, I think the final report isn't published on the CG page yet.

              +

              pchampin: Yes, I don't think Dan responded to my email.

              +

              Action: ping Dan for publishing the final report

              +

              <fabio_vitali> I added a comment on the Google Docs message

              +

              AndyS: there is a proposal from Oracle for RDFn that addresses some of the PG issues.

              +

              <AndyS> https://blogs.oracle.com/oraclespatial/post/rdfn-extending-rdf-to-support-named-triples

              +

              AndyS: It's been around for a while, but not sure of its status.

              +

              <AndyS> https://www.linkedin.com/pulse/rdfn-name-every-triple-quad-manually-member-otherwise-das-ph-d-/

              +

              AndyS: It's written more from the PG outlook.
              +… I don't suggest we do anything about it in particular, except that we've noticed it. I don't think its anything more than a theoretical proposal.

              +

              pchampin: Should we mention it?

              +

              AndyS: Unless we do a comprehensive survey, we would have missed other things likelly.

              +

              <fabio_vitali> I have been trying to suggest that rdf-star start thinking about non-asserted named graphs, too

              +

              pchampin: Named graphs are introduced, but not the main point.
              +… It depends on how a property is defined, but ends up with repeated triples.

              +

              pchampin: This could be modeled or emulated on RDF-star, as it gives you the ability to refer to a triple.

              +

              AndyS: It may be a slightly higher-level model, but it has details to be figured out.

              +

              ora: I read Oracle's proposal and found it interesting. I think we should encourage them to join the WG.
              +… I can reach out to the author.

              +

              AndyS: I told them there's going to be a WG.

              +

              ora: We found in original RDF group that the more people you bring in the room, the better.

              +

              olaf: I wanted to say that he'll probably show up in the WG with this proposal as a counter-proposal.
              +… I read it some time ago, but didn't think it really did enough and doesn't have clear definitions.

              +

              pchampin: I think it makes sense to be pro-active.

              +

              fabio_vitali: This article is two years old. I wonder if they've gone on to do something with it, or it just was an arbitrary statement.

              +

              AndyS: It was last updated in 2021-09.

              +

              <pchampin> https://github.com/w3c/rdf-star-wg-charter/issues?q=is%3Aopen+is%3Aissue+label%3Aaction

              +

              pchampin: I created two small PRs to the charter about RDF/XML and additional specifications to be included in the charter.

              +

              <rivettp> regarding implementation reports has anyone reached out to Cambridge Semantics for Anzo? They have a presentation about rdf-star on their website

              +

              pchampin: This will depend on proposals emerging, and then re-charter to include.
              +… But, we keep the door open for producing other normative documents.
              +… We'll focus on the charter in the next call. In the mean time, I'll try to iron out the missing details, but please comment on the issues and PRs.
              +… I think we need to list all the SPARQL documents so that they can be consistent.
              +… I'd like us to discuss the charter and consider submitting it to the semweb mailing list before going to the official process.

              +

              <fabio_vitali> why "next week"? Not in two weeks?

              +

              <fabio_vitali> thanks

              +

              pchampin: We also need to find chairs. Ora said he'd considered (IIRC).

              +

              <ora> I would consider, depending on my employer's opinion on this.

              +

              AndyS: How many chairs are typical now?

              +

              pchampin: Now two chairs are most common.

              +

              pchampin: We also need to consider editors, but Chairs are most important and need to be on the charter.
              +… PhilA is probably going to chair the RDF C14N WG.

              +

              rivettp: I mentioned Cambridge Semantics.

              +

              pchampin: No one has reached out that I know of.

              +

              AndyS: I might have a contact.

              +

              olaf: I have contacts too, I'll reach out.

              +

              Action: olaf to reach out to Cambridge Semantics (Anzo)

              +

              <fabio_vitali> thank you and bye

              +

              pchampin: back in two weeks.

              +
              +
              + + + + + + +
              Minutes manually created (not a transcript), formatted by scribe.perl version 142 (Tue Jun 1 16:59:13 2021 UTC).
              + + + diff --git a/corese-unit-test/src/test/resources/data/rdf-star-main/Minutes/2022-02-11.html b/corese-unit-test/src/test/resources/data/rdf-star-main/Minutes/2022-02-11.html new file mode 100644 index 0000000000..ea478a29c5 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/rdf-star-main/Minutes/2022-02-11.html @@ -0,0 +1,229 @@ + + + + +RDF-star – 11 February 2022 + + + + + + + + + + +
              +

              W3C

              + +

              RDF-star

              +

              11 February 2022

              + + +
              + +
              +
              +

              Attendees

              +
              +
              Present
              AndyS, doerthe, fabio_vitali, gkellogg, olaf, ora, pchampin, TallTed
              +
              Regrets
              -
              +
              Chair
              pchampin
              +
              Scribe
              olaf, pchampin
              +
              +
              + + +
              + +
              +

              Meeting minutes

              +
              + +
              +

              Announcements and newcomers

              +

              pchampin: no newcomers
              +… blog post has been published
              +… feedback on the CG mailing list
              +… additionally, there was a question by Pat Hayes
              +… who asked for a pointer to the RDF-star semantics
              +… which means that we may get some feedback in the future from him

              +
              + +
              +

              Next call

              +

              pchampin: how to deal with our biweekly schedule?

              +

              <AndyS> No opinion. No problem with either.

              +

              olaf: I don't have a strong feeling. I still have weekly meeting in my agenda, deleting entries when appropriate.

              +

              ora: I have a conflict in 2 weeks time.

              +

              pchampin: next 2 weeks not convenient
              +… most of the work/discussion related to the charter can be done offline

              +

              gkellogg: next meeting on March 4, now

              +

              william: that would not work for me

              +

              pchampin: using the other weeks is not working for pete rivett

              +

              <pchampin> PROPOSED: wait 3 weeks until next call, then resume biweekly

              +

              TallTed: I will keep weekly open
              +… because the biweekly meetings hopped to other weeks
              +… therefore, better to keep the weekly meeting open

              +

              gkellogg: idea can be to keep it scheduled weekly, with the option to either keep the weekly meeting short or even cancel on demand

              +

              <pchampin> PROPOSED: wait 3 weeks until next call, then resume to weekly (expecting regular cancellation)

              +

              <olaf> +1

              +

              <pchampin> +1

              +

              <TallTed> +1

              +

              <fabio_vitali> +1

              +

              <doerthe> +1

              +

              <william> +1

              +

              <ora> +1

              +

              <AndyS> +1

              +

              <gkellogg> +1

              +

              Resolution: wait 3 weeks until next call, then resume to weekly (expecting regular cancellation)

              +
              + +
              +

              Open actions

              +

              pchampin: quite a bunch of open actions

              +

              <pchampin> https://github.com/w3c/rdf-star/issues/247

              +

              pchampin: ping DanB about publishing the repüort on the CG Web page
              +… pinged him again today
              +… he was/is on vacation

              +

              <pchampin> https://github.com/w3c/rdf-star/issues/246

              +

              olaf: reach out to Cambridge Semantics (Anzo) action

              +

              <TallTed> I suggest reviewing issues in "least recently updated" order. Typically allows closing (or reviving) the most stale. https://github.com/w3c/rdf-star/issues?q=is%3Aissue+is%3Aopen+sort%3Aupdated-asc

              +

              olaf: I contacted them but they have not responded yet
              +… can send a reminder

              +

              https://github.com/w3c/rdf-star/issues/240

              +

              olaf: we decided to leave this open until we get their report
              +… Ontotext promised a report ; Stardog needs to discuss this in the company

              +

              AndyS: with the charter coming up, we can send a reminder saying that we are going to do this

              +

              <pchampin> https://github.com/w3c/rdf-star/issues/243

              +

              <pchampin> AWS blog

              +

              ora: working on the blog post, not done yet
              +… too many distractions

              +

              <pchampin> https://github.com/w3c/rdf-star/issues/241

              +

              <pchampin> Corese

              +

              pchampin: was left open until we have an impl. report
              +… which will be coming

              +

              <pchampin> https://github.com/w3c/rdf-star/issues/245

              +

              <pchampin> CG blog posts

              +

              pchampin: also more a reminder
              +… scope of the blog post was reduced because the post was already big enough

              +

              AndyS: there is a new PR
              +… it can be merged

              +

              <pchampin> PR https://github.com/w3c/rdf-star/pull/251

              +

              AndyS: There are some tests for annotation syntax in SPARQL-star
              +… but these have been wrong
              +… the PR fixes them

              +

              <pchampin> PR https://github.com/w3c/rdf-star/pull/250

              +

              pchampin: there was another PR
              +… it was merged
              +… it was about relative links in the report, which ended up broken when the final report was published under a different address

              +

              <pchampin> https://github.com/w3c/rdf-star-wg-charter/issues/6

              +

              pchampin: now to open actions on the charter

              +

              <pchampin> https://github.com/w3c/rdf-star-wg-charter/pull/12

              +

              gkellogg: title of the issue is not comprehensive
              +… should be about any other related serialization formats

              +

              pchampin: made a PR, several weeks ago, approved by gkellogg

              +

              <pchampin> https://github.com/w3c/rdf-star-wg-charter/issues/2

              +

              <pchampin> https://github.com/w3c/rdf-star-wg-charter/pull/11

              +

              <pchampin> address RDF/XML conditionnaly

              +

              pchampin: same for this issue about RDF/XML, a PR is available for this one as well
              +… idea is to be flexible in the charter about what we do about RDF/XML

              +
              + +
              +

              WG chartering

              +

              AndyS: Wonder how we can get some tempo going?
              +… there is a 7-point list about the chartering, we are currently at step 1 or 2?

              +

              pchampin: link to that list?

              +

              <AndyS> https://github.com/w3c/rdf-star-wg-charter

              +

              AndyS: there are some external steps there
              +… do we need a complete draft of the charter for them?

              +

              pchampin: no
              +… the W3C strategy team is aware of this ongoing work on RDF-star
              +… part of point 3 has been done already
              +… have to check with Ivan about community input

              +

              pchampin: blocking issue has been that there is some boring work on the charter
              +… include all the missing docs from the SPARQL WG
              +… these should be mentioned in the charter because these will need to point to the updated RECs
              +… it would be efficient if someone could take this action

              +

              AndyS: I can take care of it

              +

              Action: AndyS to add missing SPARQL documents in the charter proposal

              +

              AndyS: and then we can ping the AC

              +

              pchampin: In the meantime, everyone here, please take a look at the draft, in particular the part about Turtle

              +

              AndyS: better to first email the AC before reaching out to the wider community

              +

              pchampin: next call of the strategy team is next Tuesday
              +… notify them in that meeting
              +… and ensure that it is okay to send to the AC

              +

              gkellogg: Did we decide to merge the open PR?

              +

              pchampin: yes
              +… will do right after this call

              +

              AndyS: having seen all the discussion on the mailing list,
              +… wonder if a use case / primer-style doc an early deliverable of the WG?
              +… not REC track, just a Note
              +… as a possible way to get these discussions more focused

              +

              pchampin: indeed, currently the charter only lists the REC track docs
              +… good idea to explicitly list the RDF Primer as an early deliverable

              +

              <fabio_vitali> good for me

              +

              pchampin: as a way to converge the discussions towards a common goal

              +

              Action: pchampin to add an explicit item about RDF primer in the charter

              +

              <Zakim> AndyS, you wanted to ask about another thing

              +

              AndyS: licensing?
              +… It is possible to put all specs under a permissive license

              +

              ora: forking of specs was a long runing nightmare

              +

              pchampin: the new software and document license as mentioned by the charter is considered as permissive
              +… will ask the question at the strategy team meeting
              +… Question of the chairs is still open.
              +… not sure what is the common way to contact/attract potential chairs

              +

              ora: all WGs in which I was, there was no demoncratic process for choosing the chair
              +… the decision came from W3C

              +

              AndyS: more effective to approach people in private

              +

              pchampin: question then is, who is in the position to have this discussion?

              +

              <fabio_vitali> one should first have a feeling if there are willing candidates. Then one should have a feeling if there are TWO or more willing candidates. If we have 0, we have a problem. If there are TWO or more, we have a problem. Otherwise, we do not have a problem.

              +

              pchampin: ora you mention yourself as an option

              +

              ora: yes, still on the table but needs to be confirmed internally

              +

              gkellogg: strong preference for having two chairs
              +… one chair should come from industry
              +… to get larger by-in from vendors

              +

              pchampin: with ora we have someone from industry
              +… which means more flexibility on the second name
              +… We actively need to work on this question. The RDF-star mailing list is probably a too wide forum to have this discussion

              +
              +
              + + + + + + +
              Minutes manually created (not a transcript), formatted by scribe.perl version 142 (Tue Jun 1 16:59:13 2021 UTC).
              + + + diff --git a/corese-unit-test/src/test/resources/data/rdf-star-main/Minutes/2022-03-04.html b/corese-unit-test/src/test/resources/data/rdf-star-main/Minutes/2022-03-04.html new file mode 100644 index 0000000000..bc40a5f9e3 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/rdf-star-main/Minutes/2022-03-04.html @@ -0,0 +1,263 @@ + + + + +RDF-star – 04 March 2022 + + + + + + + + + + +
              +

              W3C

              + +

              – DRAFT –
              +RDF-star

              +

              04 March 2022

              + + +
              + +
              +
              +

              Attendees

              +
              +
              Present
              AndyS, doerthe, gkellogg, olaf, ora, pchampin, rivettp, TallTed
              +
              Regrets
              -
              +
              Chair
              pchampin
              +
              Scribe
              csarven, pchampin
              +
              +
              + + +
              + +
              +

              Meeting minutes

              +
              + +
              +

              Announcements and newcomers

              +

              csarven: have been working on Linked Data stack for a while
              +… chairing the Solid CG, involved in WebID
              +… curious about what's coming from this group

              +
              + +
              +

              Open actions

              +

              <pchampin> https://github.com/w3c/rdf-star/issues?q=is%3Aopen+is%3Aissue+label%3Aaction

              +

              pchampin: we have a number of open actions.. mostly for future reference. long time pending
              +… rather than going through each, does anyone have something to report on one of these actions?
              +… I have one but if anybody else?

              +

              olaf: Just for the record.. I haven't heard from Cambridge Semantics, Ontotext, Stardog

              +

              <pchampin> https://github.com/w3c/rdf-star/issues/247

              +

              pchampin: I do have something for danbri. I have tried reaching out. He did reply. Hope that the final report will be published on the CG page.
              +… We also talked briefly not directly related ot the action, the chartering we are working on.
              +… He has some concerns on the amount of the work the group is taking on.

              +

              AndyS: What were the questions?

              +

              pchampin: Some were.. you'll have describe the semantics of SPARQL.
              +… how do we deal with multiple edges I've also pointed him to the blogpost.
              +… I hope that explains our positions and some patterns dealing with that.
              +… That's basically the concerns that he has raised

              +

              AndyS: I can understand the discussions in the mailing list.
              +… That's an observation. Did he say how they can be resolved so we can go forwards?

              +

              pchampin: This was just ... didn't hav emuch time to develop the discussion
              +… We believe that there is enough interest in the RDF-star in the community. So, that's my position and shared by other people here.
              +… There is enough interest in RDF-star and join the WG.

              +

              gkellogg: The issue was publishing the final report on the CG page.
              +… It sounds like his objections to the charter for the WG is a different issue.

              +

              pchampin: When I asked him again for the report, he didn't object to the report. I think it'll be done soon.

              +

              pchampin: Does that answer the question?

              +

              gkellogg: I'm wondering if there is a need ot take the report wider to the group.

              +

              ^ was AndyS?

              +

              gkellogg: The reason to publish was to get wider review.
              +… but those issues can be separated regarding the charter.
              +… It is like you said, what comes first the cart or the horse.. important to get the report out.
              +… Not sure there is more to do for the report to have it published.

              +

              pchampin: I didn't perceive any concerns or problems with the publishing of the CG report.

              +

              gkellogg: This is input for the WG .. not an invitation to rubber stamp.

              +

              pchampin: Creating the WG was the point. To be transparent, I mentioned the proposed charter and also wrt chairing.
              +… sent a probe to danbri with that respect. Whether this thing was ready to create a WG.. and therefore moving to REC.

              +

              pchampin: I'll probably encourage danbri to have the discussion on the mailing list.
              +… Whether that's the RDF-star mailing list or something else.. we do need ot have it soon to broaden the discussion for the SW community at large.

              +

              pchampin: Another issue? On the CG reports front?
              +… Hearing none.
              +… I propose we move on to chartering and review actions.

              +
              + +
              +

              WG chartering

              +

              <pchampin> https://github.com/w3c/rdf-star-wg-charter/issues

              +

              <pchampin> https://github.com/w3c/rdf-star-wg-charter/issues/13

              +

              <pchampin> Andy to add missing SPARQL documents

              +

              pchampin: Issue 13 was completed. Thank you AndyS. I've merged the PR already.
              +… There is another document (CSV and TSC SPARQL result) that was not added. Was that deliberate?

              +

              AndyS: I can't remember. Remember looking at them.. But there is no problem with TSV or CSV? It is fine.

              +

              pchampin: I did add them as well..
              +… How to best quote triples in teh CSV. Even if it doesn't support it, it should be said. For the group decide.
              +… We can close that one (issue 13)
              +… after the call

              +

              <pchampin> https://github.com/w3c/rdf-star-wg-charter/issues/14

              +

              <pchampin> add explicit reference to RDF primer

              +

              <pchampin> PR: https://github.com/w3c/rdf-star-wg-charter/pull/17

              +

              pchampin: add explicit reference to RDF primer, in the list of non-normative reports.
              +… I pushed this PR shortly before the call. If you can review, please do.

              +

              <pchampin> https://github.com/w3c/rdf-star-wg-charter/issues/10

              +

              <pchampin> liaisons with other groups

              +

              pchampin: Addressed issue 10 for liaison with other groups
              +… with Property Graph schema WG at LDBC. Also related ISO group for Property Graph extension for SQL

              +

              <pchampin> PR: https://github.com/w3c/rdf-star-wg-charter/pull/18

              +

              pchampin: I added the links .. made another PR 18.
              +… Not so much for the CG itself but to include anything that would come up during the chartering process or the lifetime of htis group.
              +… What I had in mind was for the upcoming RDF canonicalization. We can't point yet but hopefully it exists. Starts to exists before/at the time with this WG. So I've put a link in the proposed charter to under the RDF-DEV CG item.
              +… Any questions/comments?

              +

              gkellogg: There seems to be activity in SPARQL 1.2 group.. I'm not sure where it is with regards to a charter. That's something that needs to be coordinated if there is an overalap.

              +

              pchampin: Or the more we claim for the spARQL specification

              +

              TallTed: I haven't seen anything like movement toward a SPARQL 1.2 WG charter. We should say if SPARQL 1.2 happens we should coordinate.

              +

              pchampin: Good point. I'll action myself.

              +

              Action: pchampin to add liaison with Sparql 1.2 CG

              +

              <pchampin> https://github.com/w3c/rdf-star-wg-charter/issues/19

              +

              csarven: may have missed some steps in the creation of the charter,
              +… but I noticed that RDFa 1.2 was not mentioned
              +… while a majority of concrete syntax are mentioned
              +… Was this discussed previously? What are the requirements to have this included?
              +… RDFa 1.0 and 1.1 are widely adopted.

              +

              <gkellogg> https://github.com/w3c/rdf-star-wg-charter/issues/6

              +

              pchampin: We have discussed RDFa and CSVW.
              +… There are so many RDF related specs and we can't possibly commit to all.
              +… We decided to focus on the WGs that RDF and SPARQL.
              +… it'd be a shame not to address this where people are interested in order to progress
              +… ew.g., some of us have worked with JSON-LD-Star.. and managed by another WG

              +

              <gkellogg> https://json-ld.github.io/json-ld-star/

              +

              pchampin: the decision was to leave the door open by mentioning that the group could adopt during its lifetime, requiring re-chartering.
              +… people interested in working on it should come to us.
              +… including it in the initial charter would could make it look unrealistic.

              +

              ora: there are serialization syntaxes and there is almost like a one way dependency
              +… so rdf-star doesn't need to depend on a particular serialization
              +… we work on the model so the key issues give the community at least one serialization syntax
              +… and other people can volunteer on the other stuff
              +… but rdf-star is not held back

              +

              pchampin: csarven's concern was ... indeed that I also agree with this dependency thing as you've put it.

              +

              gkellogg: We did discuss this with regards to JSON-LD
              +… there is a WG active
              +… which could get together to work on JSON-LD to include these features
              +… we also discussed RDFa CSVW.. there is no WG that's active within their scope. It seems like for a new WG to be chartered.

              +

              <Fabio> [leaving]. Will keep on reading the scribe. Sorry. Ciao!

              +

              <TallTed> It may be worth noting that "these serializations were chosen for our focus because..." in the charter doc, and being more explicit about accepting/adopting submissions of specs for other serializations

              +

              gkellogg: they could be included by recharter RDF-star WG.. but there need sto be preliminary work.
              +… JSON-LD-star there is improvements that can be done
              +… I'm interested in seeing what we can do to improve support for RDFa.
              +… There are supports for graph in RDFa
              +… There are serialization formats tha tthe WG did not do.. the best place for that work to happen in a group with intersted people

              +

              pchampin: The idea was to keep the charter tight so that the AC find it realistic

              +

              AndyS: I agree with the discussions so far. Within the charter.. there is a rather ??? with the specs. And ... might be active. When the group picks up too much. Exit from the group ??? RDFa related to RDF-star. It could be added to the RDF-star itself.

              +

              ^ I'm sorry I couldn't scribe that well

              +

              <TallTed> might limit to "editorial errata" which won't require implementation changes so won't put a major gate on exiting CR

              +

              <AndyS> AndyS: The work on RDF Core/SPARQL WG specs includes errata work.

              +

              csarven: is it a requirement that such work should be part of a working group ?

              +

              <ora> RDF/XML should just die.

              +

              csarven: compared to RDF/XML, other syntaxes are more useful.
              +… Again, RDFa is largely used.

              +

              <AndyS> There are people that use and like it. YMMV.

              +

              pchampin: RDF/XML was a deliverable of the RDF group.. so we added notes saying that provided that there is enough involvement
              +… to answer you questoin on the necessity of a WG.. with JSON-LD there is a group that could take care of the JSON-LD star or 1.2
              +… That's not the case for RDFa or CSW..
              +… Our view is that this group will happily adopt if people want to work on it.
              +… and will consider bringing it to REC state.

              +

              AndyS: Could be through RDFa CG

              +

              gkellogg: There is not going to be critical mass behind RDF/XML to put something together but there could easily be for RDFa 1.2. For if CG is established, settle on syntax, publish a report, then that could be a reasonable thing for RDF-star WG to adopt after charter update

              +

              gkellogg: There is language in charters time allowing, the group will consider "these" documents..
              +… .the question is that the type of thing that should be added in rechartering.. or would that complicate what's there
              +… IMO ??? could all obe in that category if time allowed.

              +

              <AndyS> AndyS: There isn't anything blocking RDFa discussion either on RDF-DEV or here.

              +

              gkellogg: There may not be enough time for us to get to RDF/XML /s

              +

              pchampin: We can continue on the github issue.
              +… The choice was a bit arbitrary
              +… Initially for RDF and SPARQL WG
              +… and leave an opening for rechartering
              +… it is arbitrary but it allows us to draw the line
              +… and be open to new stuff if it comes up

              +

              gkellogg: To what AndyS suggested to open up discussion on RDFa and take up call time.. or establish a new group for that?

              +

              AndyS: If they're interested that's fine. Not until now but we don't take up on others' interest

              +

              pchampin: csarven raised that as well
              +… We can see in the community to see if there is more interest.
              +… Just to be clear, this call and "task force" .. there is nothing formal about. We're from the RDF-DEV.. and for more focused discussion on RDF-star.. and this call and people here came up from shared interest to writ eup the report.
              +… the scope of the CG is larger so good to check
              +… we had to focus on getting things done
              +… yes, if people are interested, we can piggyback on this call to discuss
              +… so, bottom line is calling for people interested...

              +
              + +
              +

              Schedule next call

              +

              pchampin: decided no to fix every two weeks.. but adhoc based on requirements.
              +… I have one action that can be handled that doesn't need much discussion. SPARQL group has liasoain on. besides discussing with danbri
              +… do we need to discuss WG chairs than later
              +… otherwise 2-3 weeks from now is ...

              +

              <olaf> let's pencil down two weeks from now

              +

              gkellogg: As I recal there are people that wanted to participate .. if we leave out two weeks that might help

              +

              pchampin: Not sure wha tyou mean by pencil down

              +

              <olaf> okay, then three weeks

              +

              <rivettp> I do have another call every other week

              +

              olaf: suggestion is to put it two weeks from now but three weeks is fine too

              +

              <rivettp> so would not be able t make 3 weeks

              +

              PROPOSED: next call on 25th of march

              +

              +1

              +

              <olaf> +1

              +

              <doerthe> +1

              +

              <Dominik_T> +1

              +

              <ora> +1

              +

              <gkellogg> +1

              +

              <rivettp> -1

              +

              <AndyS> +1

              +

              <csarven> +1

              +

              <TallTed> +1 25th is fine

              +

              rivettp: Mind the daylight changes.

              +

              pchampin: oooooohhhh

              +

              Resolution: next call on 25th of march

              +

              pchampin: will look into it when I do the proper date

              +

              <AndyS> Bye!

              +
              +
              + +
              +

              Summary of action items

              +
                +
              1. pchampin to add liaison with Sparql 1.2 CG
              2. +
              +
              + +
              +

              Summary of resolutions

              +
                +
              1. next call on 25th of march
              2. +
              +
              + + +
              Minutes manually created (not a transcript), formatted by scribe.perl version 142 (Tue Jun 1 16:59:13 2021 UTC).
              + + + diff --git a/corese-unit-test/src/test/resources/data/rdf-star-main/Minutes/2022-03-25.html b/corese-unit-test/src/test/resources/data/rdf-star-main/Minutes/2022-03-25.html new file mode 100644 index 0000000000..8b0eda5571 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/rdf-star-main/Minutes/2022-03-25.html @@ -0,0 +1,155 @@ + + + + +RDF-star – 25 March 2022 + + + + + + + + + + +
              +

              W3C

              + +

              RDF-star

              +

              25 March 2022

              + + +
              + +
              +
              +

              Attendees

              +
              +
              Present
              AndyS, Dominik_T, fabio, gkellogg, olaf, olaf_, ora, pchampin, TallTed
              +
              Regrets
              -
              +
              Chair
              pchampin
              +
              Scribe
              AndyS, olaf
              +
              +
              + + +
              + +
              +

              Meeting minutes

              +

              <fabio> hello everybody

              +
              + +
              +

              Announcements and newcomers

              +

              pchampin: TPAC : September - Vancouver.

              +

              <gkellogg> https://www.w3.org/wiki/TPAC/2022

              +

              pchampin: WG F2F meeting
              +… TPAC will be hybrid

              +

              <pchampin> https://github.com/w3c/strategy/issues/304

              +

              advanced notice to the advisory committee will be sent soonish

              +

              pchampin: after that I will send it to the SemWeb mailing list
              +… expect a lot of feedback / opinions
              +… after some weeks, take the feedback into account and submit the charter to ??
              +… at this point we need the chairs
              +… to know who the chairs will be

              +
              + +
              +

              Open actions

              +

              <pchampin> https://github.com/w3c/rdf-star/issues?q=is%3Aopen+is%3Aissue+label%3Aaction

              +

              <pchampin> https://github.com/w3c/rdf-star/issues/247 Ping Danbri about final report

              +

              pchampin: anything to report on the open action items?
              +… had email conversation with danbri
              +… he responded on a side topic (chartering)
              +… but has still not published our final report on the CG Web page
              +… now sent another email to him this morning, asking him again to click the "publish" button

              +

              ora: no progress on the AWS blog post

              +
              + +
              +

              WG chartering

              +

              <pchampin> https://github.com/w3c/rdf-star-wg-charter/issues

              +

              pchampin: 2 issues: one minor (typo)
              +… and one about RDFa
              +… csarven asked to either add RDFa or remove RDF/XML
              +https://github.com/w3c/rdf-star-wg-charter/issues/19

              +

              gkellogg: do we explain the choice process was for docs mentioned?

              +

              pchampin: some explanation - could say directly that it is RDF WG and SPARQL WG docs.

              +

              Action: pchampin to add an explicit rationale about the choice of documents to include (those coming from the RDF and SPARQL WG)

              +

              AndyS: concern about extra features getting added

              +

              gkellogg: Also text direction. We do have the rechartering point.

              +

              pchampin: i18n commented in the strategy review on text direction.
              +… possible future "living spec". Need to start WG to show it will work.

              +

              Chairs

              +

              pchampin: danbri has concerns re: multiple edges.

              +

              <fabio> I need to go. See you next time!

              +

              <TallTed> It's possible to reply to a tweet, even years later, to ask for things like starting a GitHub issue, statement of the use cases he mentioned, etc.

              +

              https://twitter.com/danbri/status/1505608948191268870

              +
              + +
              +

              Schedule next call

              +

              Action: pchampin to add the data and time of next call on the web page

              +

              Action: pchampin see with Danbri to publish our calls on the RDF-dev calendar

              +

              <pchampin> PROPOSAL: next call in 2 weeks, 8th of April

              +

              <olaf_> +1

              +

              <pchampin> +1

              +

              <AndyS> +1

              +

              <gkellogg> +0

              +

              <TallTed> 8th, 15th, 22nd are all fine by me

              +

              <ora> +1

              +

              <Dominik_T> +1

              +

              <TallTed> +0

              +

              Resolution: next call in 2 weeks, 8th of April

              +
              + +
              +

              Open-ended discussions

              +
              +
              + + + +
              +

              Summary of resolutions

              +
                +
              1. next call in 2 weeks, 8th of April
              2. +
              +
              + + +
              Minutes manually created (not a transcript), formatted by scribe.perl version 142 (Tue Jun 1 16:59:13 2021 UTC).
              + + + diff --git a/corese-unit-test/src/test/resources/data/rdf-star-main/Minutes/2022-04-08.html b/corese-unit-test/src/test/resources/data/rdf-star-main/Minutes/2022-04-08.html new file mode 100644 index 0000000000..87666d6b91 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/rdf-star-main/Minutes/2022-04-08.html @@ -0,0 +1,197 @@ + + + + +RDF-star – 08 Apr 2022 + + + + + + + + + + +
              +

              W3C

              + +

              RDF-star

              +

              08 Apr 2022

              + + +
              + +
              +
              +

              Attendees

              +
              +
              Present
              AndyS, Dominik_T, olaf, ora, pchampin
              +
              Regrets
              Fabio Vitali
              +
              Chair
              pchampin
              +
              Scribe
              olaf, pchampin
              +
              +
              + + +
              + +
              +

              Meeting minutes

              +
              + +
              +

              Open actions

              +

              <pchampin> https://github.com/w3c/rdf-star/issues?q=is%3Aopen+is%3Aissue+label%3Aaction

              +

              <pchampin> RDF-dev calendar

              +

              <pchampin> https://www.w3.org/events/meetings/677cd671-7ce4-41eb-b839-ce605793e943

              +

              pchampin: W3C calendar infrastructure used for the agenda now
              +… advantage is that it allows us to subscribe to the ICS stream
              +… future meetings will be added in that calendar
              +… No answer from danbri about publishing the CG report
              +… might resort to Twitter

              +

              <pchampin> https://github.com/w3c/rdf-star-wg-charter/issues?q=is%3Aopen+is%3Aissue+label%3Aaction

              +

              pchampin: adding an explicit rationale for the (types of) docs included in the charter
              +… will be addressed soon

              +
              + +
              +

              WG chartering

              +

              pchampin: two things about the charter ...
              +… first, advanced notice was emailed to the AC and, then, also to the SemWeb mailing lists
              +… so far no discussion on the list :-/

              +

              ora: informed the Amazon AC rep
              +… who will vote in favor

              +

              AndyS: sentiment on the mailing list is full of CFP

              +

              pchampin: as an aside, the CFP-related issue was discussed
              +… there was an earlier discussion that CFPs are accepted on that mailing list
              +… the list was kept mainly for historical reasons
              +… logical would have been that the traffic would have moved to the RDF-DEV list

              +

              <AndyS> RDF-dev maling list -- https://lists.w3.org/Archives/Public/public-rdf-dev/

              +

              pchampin: one more proposal to gather expressions of interest or disinterest

              +

              <pchampin> https://github.com/w3c/rdf-star-wg-charter/issues

              +

              pchampin: for which an issue will be created

              +

              <pchampin> expression of support tag

              +

              pchampin: such a tag was created in the repo for another charter
              +… with the purpose to enable organizations to create issues that represent their expressions of support
              +… that was a good instrument when bringing the charter in front of the AC
              +… question would be where we ask people for creating their issue

              +

              ora: there is a SemWeb group on LinkedIn

              +

              pchampin: right, there have been some lively discussions there

              +

              <pchampin> STRAWPOLL: create an "expression of interest" label on the charter repo, and ask people to create "issues" with that label

              +

              <pchampin> +1

              +

              <AndyS> +1

              +

              <TallTed> +1

              +

              <Dominik_T> +1

              +

              <olaf> +1 good idea!

              +

              <ora> +1

              +

              Resolution: create an "expression of interest" label on the charter repo, and ask people to create "issues" with that label

              +

              AndyS: expressions of interest happened within six weeks

              +

              Action: pchampin to create the issue template for "expression of interest"

              +

              <pchampin> add text for backward compatibility

              +

              pchampin: Andy suggested to mention backwards compatibility explicitly in the charter

              +

              TallTed: Is it expression of interest or ... support?

              +

              pchampin: support

              +

              AndyS: It is only about support for the WG, not for the currently proposed solution

              +

              pchampin: There was a question of versioning

              +

              <TallTed> "expression of support for WG" a/k/a "expression of interest in potential of RDF-star" a/k/a ...

              +

              <pchampin> Versioning

              +

              pchampin: the deliverables in the charter are called "... v.1.2"

              +

              AndyS: Another option would be to call it "RDF-star, an extension to RDF 1.1"
              +… downside of this idea is that it might exclude taking care of the errata within the WG

              +

              pchampin: another downside is that it would allow implementations to stick to RDF 1.1 and still be "up to date"

              +

              AndyS: it would be nice if there was more RDF work

              +

              pchampin: saying that this is an optional extension may be less controversial, but it may also contribute to the fragmentation of the ecosystem

              +

              olaf: I don't see any reason at the moment why it shouldn't be called RDF 1.2
              +… if a long discussion started, then we may reconsider

              +

              pchampin: question about chairs

              +

              ora: yes, it is okay to put my (Ora's) name as a potential chair

              +

              Action: pchampin to add Ora Lassila as one of the expected chairs

              +

              pchampin: last open issue is about the timeline

              +

              <pchampin> Timeline

              +

              pchampin: typical timeline for WGs is 2-4 years
              +… for this one, it would make sense to go for the higher end
              +… because there are a lot of docs to be updated by this WG
              +… also not sure how the deadlines for the individual deliverables should be set
              +… all at the end? ...or scattered within the overall timeline?

              +

              ora: getting nightmares thinking of 4 years
              +… if properly scoped, it may be possible in 2 years

              +

              pchampin: nowadays start with more mature input than in the early days
              +… so, yes, maybe it's reasonable to schedule it in 2 years
              +… but also required a lot of man power

              +

              <TallTed> Durations below 2 years may make sense when associated CG or similar is able to produce something the broader community accepts as near to CR. I don't think our planned scope will be fully achievable in less than 2 years. We might target 2 years and state up front that we see potential need for recharter/extension because of fairly broad scope.

              +

              ora: establish an optimistic expectation
              +… if we say "4 years", then it will take 4 years

              +

              pchampin: okay, there seems to be some agreement or sentiment that 2 years should be the goal

              +

              <pchampin> STRAWPOLL: plan for a 2 years charter, planning of rechartering if necessary

              +

              <pchampin> +1

              +

              <olaf> +1

              +

              <Dominik_T> +1

              +

              <ora> +1

              +

              <TallTed> +1

              +

              Resolution: plan for a 2 years charter, planing of rechartering if necessary

              +

              pchampin: next question is about setting a deadline for every doc
              +… no point in having a granularity smaller than 6 months

              +

              ora: uncomfortable with the charter specifying such deadlines
              +… because the WG may realize that something comes up
              +… preferrable to have the charter mention such dates more as suggestions rather than mandatory

              +

              pchampin: yes, agree

              +

              <TallTed> "Target timeline" is common in charters, tho rarely satisfied in my experience

              +

              <TallTed> ("Target timeline" might not be the label that's been used, but it's the meaning.)

              +

              pchampin: when will the next call be?

              +
              + +
              +

              Schedule next call

              +

              pchampin: not possible in 3 weeks because of the Web Conf.
              +… weeks before hard as well
              +… so, proposal is to have the next call in 4 weeks from now

              +

              <pchampin> PROPOSAL: have our next call on the 6th of May

              +

              <pchampin> +1

              +

              <TallTed> +1

              +

              <olaf> +1

              +

              <Dominik_T> +0 (I have a scheduled visit to the doctor, I don't know if I will make it)

              +

              <ora> +0

              +

              Resolution: have our next call on the 6th of May (unless something unexpected happens in between)

              +

              <pchampin> HAPPY 10 YEARS RDF* :)

              +
              +
              + + + + + + +
              Minutes manually created (not a transcript), formatted by scribe.perl version 142 (Tue Jun 1 16:59:13 2021 UTC).
              + + + diff --git a/corese-unit-test/src/test/resources/data/rdf-star-main/Minutes/2022-05-06.html b/corese-unit-test/src/test/resources/data/rdf-star-main/Minutes/2022-05-06.html new file mode 100644 index 0000000000..773a0f6e9c --- /dev/null +++ b/corese-unit-test/src/test/resources/data/rdf-star-main/Minutes/2022-05-06.html @@ -0,0 +1,197 @@ + + + + +RDF-star – 06 May 2022 + + + + + + + + + + +
              +

              W3C

              + +

              RDF-star

              +

              06 May 2022

              + + +
              + +
              +
              +

              Attendees

              +
              +
              Present
              Doerthe, Dominik_T, gkellogg, olaf, Pierre-Antoine, TallTed
              +
              Regrets
              AndyS
              +
              Chair
              Pierre-Antoine
              +
              Scribe
              olaf, Pierre-Antoine
              +
              +
              + + +
              + +
              +

              Meeting minutes

              +
              + +
              +

              Announcements and newcomers

              +

              pchampin: new bot on the IRC
              +… ghurlbot
              +… should write of title github issues that are mentioned
              +… Different topic: tried "Matrix" as an alternative to IRC

              +

              <fabio> hello

              +
              + +
              +

              Open actions

              +

              <Pierre-Antoine> https://github.com/w3c/rdf-star/issues?q=is%3Aopen+is%3Aissue+label%3Aaction

              +

              pchampin: still archived open items

              +

              <Pierre-Antoine> https://github.com/w3c/rdf-star/issues/247

              +

              pchampin: about publishing the final report
              +… still on it
              +… but not working to have danbri push the publish button

              +

              <TallTed> ghurlbot, discussing w3c/rdf-star

              +

              <ghurlbot> TallTed, OK

              +

              <TallTed> #247

              +

              <ghurlbot> Issue 247 ping DanBri about publishing the final report on the CG page (pchampin), action

              +

              <TallTed> :-)

              +

              gkellogg: danbri may still wait for opposition against the chartering

              +

              pchampin: suprised that there was no discussion on the SemWeb mailing list in response to the email there, about one month ago

              +

              <Pierre-Antoine> https://github.com/w3c/rdf-star-wg-charter/issues?q=is%3Aopen+is%3Aissue+label%3Aaction

              +

              <Pierre-Antoine> ghurlbot, discussing w3c/rdf-star-wg-charter

              +

              <ghurlbot> Pierre-Antoine, OK

              +

              <Pierre-Antoine> #29

              +

              <ghurlbot> Issue 29 Add Ora Lassila as one of the expected chair (pchampin), action

              +

              pchampin: PR to explicitly add Ora as a possible chair

              +

              <Pierre-Antoine> #27

              +

              <ghurlbot> Issue 27 Add text to clearly state that existing RDF 1.1 data will remain valid in syntax and semantics. (pchampin), action

              +

              pchampin: while Ora agreed during the last call, the PR is still pending, waiting for Ora's approval

              +

              pchampin: next PR, for issue 27
              +… no, oops, the PR still needs to be created

              +

              <Pierre-Antoine> > The group should ensure that any RDF 1.1 data remains valid in this new version. Furthermore, any RDF or RDFS entailment drawn under RDF 1.1 semantics should also remain valid in this new version.

              +

              pchampin: it is actually merged

              +

              <Pierre-Antoine> that was PR #31

              +

              <ghurlbot> Pull Request 31 [closed] make it explicit that the group will aim for backward compatibility (pchampin)

              +

              <Pierre-Antoine> #25

              +

              <ghurlbot> Issue 25 WG timeline ? (pchampin), action

              +

              <Pierre-Antoine> addressed by #33

              +

              <ghurlbot> Pull Request 33 set timeline to 24 months, as resolved for #25 (pchampin)

              +

              pchampin: PR about proposing timeline
              +… editors have approved this PR already

              +

              <Pierre-Antoine> #28

              +

              <ghurlbot> Issue 28 add an explicit rationale about the choice of documents to include (pchampin), action

              +

              pchampin: but it will be left open until begin of next week, in case someone else still wants to chime in

              +

              <Pierre-Antoine> PR #32

              +

              <ghurlbot> Pull Request 32 explain the rationale behing the list of specifications (pchampin)

              +

              pchampin: PR about issue 28, editors have approved that one as well; will be left open until next Monday

              +

              <Pierre-Antoine> #26

              +

              <ghurlbot> Issue 26 Request expressions of support (pchampin), action

              +

              pchampin: and merged then (unless discussion emerges)
              +… To address issue 26, email was sent to the SemWeb mailing list.
              +… some expressions of support have come in already

              +

              <Pierre-Antoine> https://github.com/w3c/rdf-star-wg-charter/labels/expression_of_support

              +

              pchampin: currently five

              +

              olaf: KRBD works on the Ontop system. I found out that they published something about R2RML-star

              +
              + +
              +

              WG chartering

              +

              TallTed: suggestion to create labels for expressions of dissent
              +… and neutrality

              +

              gkellogg: yes some more neutral naming of the tag / type of issue

              +

              pchampin: we decided on "expression of support" because that's what had been done
              +… for the RCH WG

              +

              <TallTed> "opinion about WG ratification" { "neutral about WG ratification", "supports WG ratification", "opposes WG ratification"}

              +

              olaf: I would propose to add another template
              +… makes it easier to filter
              +… "expression_of_opposition" ?

              +

              <TallTed> or { expression_of_support, expression_of_opposition, expression_of_neutrality }

              +

              TallTed: no strong opinion, just to address danbri's concern

              +

              <Pierre-Antoine> PROPOSED: add symmetric label + issue template with 'expression_of_opposition'

              +

              <Pierre-Antoine> +0.5

              +

              <gkellogg> +0.5

              +

              <olaf> +0.75

              +

              <fabio> +1

              +

              <Dominik_T> +0.5

              +

              <TallTed> +1

              +

              <Doerthe> +1

              +

              Resolution: add symmetric label + issue template with 'expression_of_opposition'

              +

              pchampin: charter in good shape (modulo the pending PRs)
              +… want to push it one step further
              +… the advisory committee has been informed one month ago
              +… next, ask opinion from W3C management (?)
              +… W3C meets every Wednesday
              +… could put that one their next agenda
              +… what is blocking still is the lack of chairs
              +… it is generally possible to have only one chair, but not advisable
              +… so, it is urgent to find someone else

              +

              <TallTed> Roles have different concerns: chair shepherds group process; editors shepherd/edit the documents.

              +

              pchampin: is anyone here interested?

              +

              <fabio> you do not want me, but I am available for low-level menial jobs, if I may be useful somehow

              +

              pchampin: Olaf?

              +

              olaf: I have already too little time, and this would be very time consuming
              +… also, I (partily) affiliated with Amazon, like Ora, which might not look good

              +

              gkellogg: Is it necessary for us to have identified chairs now?
              +… maybe the second chair may be identified later

              +

              pchampin: for the vote by the advisory committee there needs to be a well-defined team
              +… not having identified all chairs may send a bad signal to the AC
              +… have chairs from industry is better for the AC
              +… on the other hand, having no chair from academy may be problematic because academics may not want to join
              +… there may also be more than two chairs
              +… with Ora more on the RDF side, it would be good to have someone who is more on the SPARQL
              +… someone from the triple store vendors?

              +

              OpenLink?

              +

              TallTed: no, my plate is more than full

              +

              pchampin: Vladimir from Ontotext?

              +

              olaf: I don't know him that well, but it does not hurt to ask

              +

              <Pierre-Antoine> zazuko.com

              +

              <Pierre-Antoine> Adrian Gschwend

              +

              <fabio> ciao!

              +

              <Pierre-Antoine> PROPOSED: let's have our next call 2 weeks from now: 2022-05-20

              +

              <gkellogg> +1

              +

              <Dominik_T> +1

              +

              <olaf> +1

              +

              <Doerthe> +1

              +

              <fabio> +1

              +

              <Pierre-Antoine> +1

              +

              <TallTed> +0

              +

              Resolution: let's have our next call 2 weeks from now: 2022-05-20

              +

              <fabio> ciao again!

              +
              +
              + + + + +
              Minutes manually created (not a transcript), formatted by scribe.perl version 142 (Tue Jun 1 16:59:13 2021 UTC).
              + + + diff --git a/corese-unit-test/src/test/resources/data/rdf-star-main/Minutes/2022-05-20.html b/corese-unit-test/src/test/resources/data/rdf-star-main/Minutes/2022-05-20.html new file mode 100644 index 0000000000..ca6afd15f8 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/rdf-star-main/Minutes/2022-05-20.html @@ -0,0 +1,178 @@ + + + + +RDF-star – 20 May 2022 + + + + + + + + + + +
              +

              W3C

              + +

              RDF-star

              +

              20 May 2022

              + + +
              + +
              +
              +

              Attendees

              +
              +
              Present
              AndyS, doerthe, Dominik_T, gkellogg, olaf, ora, Pierre-Antoine
              +
              Regrets
              -
              +
              Chair
              Pierre-Antoine
              +
              Scribe
              gkellogg
              +
              +
              + + +
              + +
              +

              Meeting minutes

              +
              + +
              +

              Announcements and newcomers

              +

              olaf: We have a paper accepted in the GRADES Workshop, about mapping graph databases to RDF-star, running querying and seeing the performance impact.

              +

              <olaf> "Converting Property Graphs to RDF: A Preliminary Study of the Practical Impact of Different Mappings" http://olafhartig.de/files/KhayatbashiEtAl_GRADES2022.pdf

              +
              + +
              +

              Open actions

              +

              <Pierre-Antoine> https://github.com/w3c/rdf-star/issues?q=is%3Aopen+is%3Aissue+label%3Aaction

              +

              <Pierre-Antoine> https://github.com/w3c/rdf-star-wg-charter/issues?q=is%3Aopen+is%3Aissue+label%3Aaction

              +

              pchampin: I haven't spoken to danbri since the last call about w3c/rdf-star#247, but nothing more to report.

              +

              <ghurlbot> Action 247 ping DanBri about publishing the final report on the CG page (on pchampin)

              +

              pchampin: On w3c/rdf-star-wg-charter#29, I've been waiting for ora's validation on the PR.

              +

              <ghurlbot> Action 29 Add Ora Lassila as one of the expected chair (on pchampin) As decided during today's call: https://github.com/w3c/rdf-star-wg-charter/issues/29

              +

              ora: Sorry, I missed that. But to be clear, it's okay for me to be a chair, if that's what the group desires.

              +
              + +
              +

              WG chartering

              +

              pchampin: I've sent the charter to W3CM for approval, which is currently in progress.
              +… The current draft doesn't mention chairs, but I've communicated offline.
              +… We've also contacted some other potential chairs, and have some positive answers from Vladimir at Ontotext, and will meet him next week at a Dataspace interoperability workshop.

              +

              olaf: I also reached out to Adrian Gschwend, who is somewhat skeptical about his suitability. But, he'd like to talk about it some more.

              +

              pchampin: Yes, Ora should be there too.

              +

              <olaf> Adrian Gschwend from Zazuko

              +

              Action: olaf to organize a call with Adrian Gschwend

              +

              <ghurlbot> Created action 43 organize a call with Adrian Gschwend (on ) due 27 May 2022

              +

              Dominik_T: Any news about Josh? He was also discussed.

              +

              pchampin: We had some exchange after the last call, but LinkedIn is not a W3C member, which makes it more difficult.
              +… They either need to be part of a member organization, or an Invited Expert.
              +… In the case of Josh, LinkedIn is not a member, and inviting him as an IE is difficult, as he hasn't participated in the group to date.
              +… That said, Zazuko is not a member or either. But, it's a startup, and that might make it easier.

              +

              AndyS: In the past, it was easier to get an IE added, but it's become more difficult.
              +… In the past, it's been hard to be an IE if you work for a company that would be expected to join as a member otherwise.

              +

              pchampin: That might be an issue for Adrian.

              +

              gkellogg: Rates for small companies used to be more afordable.

              +

              pchampin: I'll talk with the communication team about criteria.

              +

              <Pierre-Antoine> https://github.com/w3c/rdf-star-wg-charter/issues/41

              +

              pchampin: We have a number of expressions of support, and no contrary expressions to date.
              +… Some from organizations, some from individuals.

              +

              <AndyS> https://github.com/w3c/rdf-star-wg-charter/issues?q=is%3Aissue+is%3Aopen+label%3Aexpression_of_support

              +

              ora: Two weeks ago at the KG conference, I ran into Souriprya Das from Oracle, and they could join.

              +

              AndyS: He has his head in the space.

              +

              ora: He's interested in the whole PG vs RDF space, and had an interesting presentation on neighborhood aware path queries.

              +

              <ora> Souriprya Das from Oracle

              +

              pchampin: I think we could do with three chairs, but if we have more than two, one should be identified as "head" chair, or the others as co-chairs.
              +… With too many chairs, the responsibilities dilute.
              +… The amount of work justifies more than two chairs.

              +

              AndyS: I think it's a good idea.

              +

              ora: I'm not sure I like the idea of three chairs. It should be possible for things to get done in a WG without a chair having direct responsibility.
              +… But, I do like the idea of not being the _only_ chair.

              +

              pchampin: Most WGs lately have two (or even three) chairs. If we go for three, I think if we go for three, there should be some kind of hierarchy, but your opinion weighs more.

              +

              ora: If we do end up with three chairs, I think it would be good if they're not all Bay Area graph vendors.

              +

              pchampin: Having chairs from the industry strengthen's the proposal from the W3M perspective, but other communities should also be represented.
              +… Chairing the group, it sends a strong signal if a GDB vendor is involved.

              +

              ora: I think two chairs from vendors is fine. If three DB vendors are involved, then it might seem that the group is dominated by industry.

              +

              pchampin: If we ask Souriprya to chair, we might need to choose between him and Vladimir.

              +

              ora: Maybe we just lobby Souriprya to make sure Oracle joins the WG.

              +

              Action: Pierre-Antoine to come back to Vladimir

              +

              <ghurlbot> Created action 42 come back to Vladimir (on ) due 27 May 2022

              +

              pchampin: Thank you ghurlbot!

              +

              pchampin: If you can encourage more people to express support on the repo, please do so. That will all help W3M to decide.

              +
              + +
              +

              Schedule next call

              +

              pchampin: I hope to have some W3M answers next week.
              +… I'm not sure if we need a call before the call for votes goes out. Maybe have a regular call in 2-3 weeks.
              +… A call in three weeks (June 10) may be in the middle of the call for votes.

              +

              <Pierre-Antoine> PROPOSED: have our next call in 3 weeks, 2022-06-10

              +

              <Pierre-Antoine> +1

              +

              <olaf> +1

              +

              <gkellogg> +1

              +

              <Dominik_T> +1

              +

              <AndyS> +1

              +

              <doerthe> +1

              +

              <ora> +1

              +

              Resolution: have our next call in 3 weeks, 2022-06-10

              +

              <ora> (had to check the calendar)

              +
              + +
              +

              Open-ended discussions

              +

              pchampin: TPAC is coming in September, which will be a Hybrid meeting. 12-16 September. It would be nice to have a meeting during TPAC, if a WG is chartered.

              +

              <olaf> W3C TPAC, Sep. 12-16, in Vancouver

              +

              pchampin: It is in Vancouver.

              +

              https://www.w3.org/blog/news/archives/9503
              +… It should be in a convenient time slot for other parts of the world.

              +

              <AndyS> CA

              +

              ora: I may be in Seatle around that time, so going to Vancouver would be easy enought.

              +

              olaf: Unfortunately, it overlaps with the European semantics conference.

              +

              <olaf> The SEMANTiCS conference in Vienna is in the same week

              +

              pchampin: Are there other groups that might also meet at TPAC so we can organize a joint meeting?

              +

              AndyS: RDF Canonicalization and DCAT groups may be there.

              +

              gkellogg: JSON-LD will probably have at least a BOF at TPAC.

              +
              +
              + + + +
              +

              Summary of resolutions

              +
                +
              1. have our next call in 3 weeks, 2022-06-10
              2. +
              +
              + + +
              Minutes manually created (not a transcript), formatted by scribe.perl version 142 (Tue Jun 1 16:59:13 2021 UTC).
              + + + diff --git a/corese-unit-test/src/test/resources/data/rdf-star-main/Minutes/2022-06-10.html b/corese-unit-test/src/test/resources/data/rdf-star-main/Minutes/2022-06-10.html new file mode 100644 index 0000000000..19cd23f4bd --- /dev/null +++ b/corese-unit-test/src/test/resources/data/rdf-star-main/Minutes/2022-06-10.html @@ -0,0 +1,200 @@ + + + + +RDF-star – 10 June 2022 + + + + + + + + + + +
              +

              W3C

              + +

              RDF-star

              +

              10 June 2022

              + + +
              + +
              +
              +

              Attendees

              +
              +
              Present
              AndyS, doerthe, gkellogg, olaf, ora, pchampin, TallTed
              +
              Regrets
              Fabio
              +
              Chair
              pchampin
              +
              Scribe
              gkellogg, pchampin
              +
              +
              + + +
              + +
              +

              Meeting minutes

              +
              + +
              +

              Announcements and newcomers

              +

              ora: I was at an NSF Open Knowledge Networks meeting, and RDF-star is getting some buzz.
              +… This is NSFs take on building open knowledge graphs for the public sector/government.

              +

              olaf: I talked to people doing machine learning at ESWC to put context on edges from which they want to learn.
              +… There was a poster paper about access control using RDF-star.

              +

              ora: I've had many discussions lately about RDF-star, so people are starting to want to use it.
              +… What always comes up is that people don't know how to use it for modeling. We need to address this at some point.
              +… Best Practices, or "RDF-star schema"

              +
              + +
              +

              Open actions

              +

              <pchampin> https://github.com/w3c/rdf-star/issues?q=is%3Aopen+is%3Aissue+label%3Aaction

              +

              <pchampin> rdf-star#247

              +

              <ghurlbot> Action 247 ping DanBri about publishing the final report on the CG page (on pchampin)

              +

              pchampin: I had an exchange with danbri, who appologized and that I had privilages, but only the chair does.
              +… He suggested I become co-chair. There are precedents for team members to become chairs.
              +… I think it's on danbri to add me.
              +… In principle, this would unblock this issue

              +

              <pchampin> https://github.com/w3c/rdf-star-wg-charter/issues?q=is%3Aopen+is%3Aissue+label%3Aaction

              +

              <pchampin> #43

              +

              <ghurlbot> Action 43 organize a call with Adrian Gschwend (on hartig) due 27 May 2022

              +

              pchampin: This was about contacting Adrian.
              +… He is interested, and discussed with colleagues and his company will join W3C so that he can properly chair.
              +… We'll discuss further in a subsequent adgendum.

              +

              <pchampin> #42

              +

              <ghurlbot> Action 42 come back to Vladimir (on pchampin) due 27 May 2022

              +

              pchampin: I met Valadimir last week in Vienna. Onotext is a W3C member and he is quite open to be an editor or chair.

              +

              <pchampin> #29

              +

              <ghurlbot> Action 29 Add Ora Lassila as one of the expected chair (on pchampin)

              +

              pchampin: I raised the point about not only having triple-store vendors heading the WG.
              +… Ora has been added, so #29 is done.

              +

              <ora> yea!

              +
              + +
              +

              WG chartering

              +

              <ora> (stepping out for one minute)

              +

              We passed the penultimate step with W3C Management, and now needs to go to vote by advisory group.
              +… We need to fix a couple of things: We need to agree on list of chairs, and the timeline.
              +… There were some questions about that from W3M.

              +

              <ora> (back)

              +

              gkellogg: there are so many spec, it makes sense to divide out responsibility
              +… more chairs can be useful, if they work together well
              +… chairs should usually not be editors, at least not on the items they are chairing

              +

              ora: I'm not too excited about having more than two chairs. If Vladimir wanted to be an editor, that would be great.
              +… Do we have a process for deciding who should be chair?

              +

              pchampin: The charter doesn't cover this. I'm a bit nervous about taking such a role in deciding this.
              +… I asked if it's a problem that it's not complete, which they could live with before submitted.
              +… I put forward the names on our list.
              +… If we had no idea, W3M might object.

              +

              AndyS: Who the chairs are is up to us. Without that, there's no way to make decisions. Usually W3C comes up with the chairs.
              +… In terms of numbers, I think there's a slight downside for having too many chairs. If anyone has two roles (editor and chair), I would tend to keep them separate.
              +… Eventually, it comes down to who has the time for 2+ years.

              +

              pchampin: I agree that there is a lot of work, but this calls for many editors, not many chairs. Having too many chairs can reduce the sense of responsibility.
              +… Let's not try to be too formal about this. I'm hearing that two chairs seems to be enough, and let's try to attract as many editors as possible.
              +… Ora's already in the charter. (still interested).
              +… We need to pick between Vladimir and Adrien.

              +

              olaf: Given that Vladimir has also expressed interest in editing, that would speak in favor of just using Adrian.
              +… Also, Adrien is not a triple-store vendor, which is a plus.

              +

              pchampin: My understanding was that the role of editor was also interesting.
              +… I think Ora should have the final word, as he'll have to work with them.

              +

              ora: I don't really know either of them, but it seems Adrien might be most appropriate.

              +

              AndyS: I'd rather it _not_ be a vote.

              +

              Action: pchampin to contact Adrian and add him as chair in the charter draft

              +

              <ghurlbot> Created action 46 contact Adrian and add him as chair in the charter draft (on ) due 17 Jun 2022

              +

              pchampin: Phillipe was a bit more concerned about the deadline of the first deliverable, which he thinks is too optimistic.
              +… These specifications are eight years old so will have to go through horizontal review. Given the age of the specs, even with minimal changes, the horizontal review groups may need more time.

              +

              AndyS: The SPARQL specs aren't even in ReSpec.

              +

              pchampin: I don't think the RDF versions are in ReSpec either.

              +

              AndyS: There's a lot of material. While it should be well-laid out, we need to plan on work time.
              +… We'll need a lot of full and frank discussion about the meaning of RDF-star, which will be time-consuming.
              +… In the past, I know that people spent time on WGs that were overwhelmed.

              +

              ora: 12 months sets an expectation. If we say 2 years, it will take 2 years. Even if people think it's unrealistic, I prefer to set an aggressive expectation.
              +… I saw that CSS FlexBox has been worked on for twelve years and has never gone to REC.

              +

              TallTed: One of the reason of setting target dates is to avoid this very problem.

              +

              ora: CSS is hugely successful, but has taken forever.
              +… Actually Thirteen years

              +

              gkellogg: a lot of work happened in the JSON-LD CG before the WG started
              +… and still there was long discussions in the WG, even though the people involved were mostly the same
              +… Things take longer than expected.

              +

              pchampin: I don't have a strong opinion. Looking back, the documents with a 12-month deadline are Concepts and Abstract Syntax. THen there's N-Quads, N-Triples, Turtle and Trig.
              +… RDF Schema 1.2 is at 18 months.
              +… The Turtle family should not take that long. It's basically what's in the 2014 paper and seem to be low-hanging fruit.

              +

              olaf: My worry is that people might not accept the Abstract Concepts REC before corresponding Semantics is available.

              +

              pchampin: RDF docs range from 12-18 months, and SPARQL from 18-24, because SPARQL comes after RDF.
              +… All docs for which we have content come earlier, and the others come later.
              +… Maybe we should have all RDF in 18 months, and all SPARQL does in 24. This could address inter-dependencies.

              +

              ora: I think that's fine, but I'd prefer it to be more aggressive.

              +

              pchampin: For some people the Semantics come first, for other's Abstract Syntax. Those will likely lead to the most discussion.

              +

              <pchampin> proposed: move all RDF specs to 18 month, and all SPARQL specs to 24 months

              +

              <gkellogg> +1

              +

              <pchampin> +1

              +

              <ora> +1

              +

              <doerthe> +1

              +

              <AndyS> +1

              +

              <olaf> +1

              +

              ora: All these timelines are speculative anyway.

              +

              <TallTed> +1

              +

              Resolution: move all RDF specs to 18 month, and all SPARQL specs to 24 months

              +

              pchampin: It is speculative, but we don't want the AC to accept or reject due to this.
              +… The start date will be decided once accepted, and the other stuff in yellow will be resolved later.
              +… We need a timeline for FPWD.

              +

              ora: Given that we have the documents we can set an aggressive timeline for FPWD. Perhaps 6 months.

              +

              AndyS: If the SPARQL specs are 24 months, there is no time for review.

              +

              pchampin: It depends on what completion means, I took that to mean REC.

              +

              pchampin: 6 months for RDF docs, 12 months for SPARQL?
              +… We don't have the SPARQL timeline totally sequenced behind RDF.

              +

              AndyS: I think it could be over-engineered.

              +

              pchampin: Phillipe noted that the timeline is pretty arbitrary. It needs to be complete, or removed.

              +

              <pchampin> proposed: FPWD after 6 months for RDF docs, 12 months for SPARQL

              +

              <pchampin> +1

              +

              <gkellogg> +1

              +

              <AndyS> +1

              +

              pchampin: I plan to send this to the AC next week, and they have one month to vote.

              +

              ora: The sooner the AC gets this the better. We've worked on this for some time already.

              +

              pchampin: I will make a PR with a tentative timeline for FPWD and we can iterate. I'll send to AC next week.

              +

              AndyS: We only need to meet if something comes up.

              +

              <olaf> +1

              +

              AndyS: I'll send a tentative agenda for the first Friday after the vote.

              +
              +
              + + + + + + +
              Minutes manually created (not a transcript), formatted by scribe.perl version 142 (Tue Jun 1 16:59:13 2021 UTC).
              + + + diff --git a/corese-unit-test/src/test/resources/data/rdf-star-main/Minutes/index.html b/corese-unit-test/src/test/resources/data/rdf-star-main/Minutes/index.html new file mode 100644 index 0000000000..e679ab1e94 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/rdf-star-main/Minutes/index.html @@ -0,0 +1,53 @@ + + +Minutes of the RDF* calls + +

              Minutes of the RDF* calls

              + diff --git a/corese-unit-test/src/test/resources/data/rdf-star-main/Minutes/update-index.sh b/corese-unit-test/src/test/resources/data/rdf-star-main/Minutes/update-index.sh new file mode 100755 index 0000000000..724323e7a6 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/rdf-star-main/Minutes/update-index.sh @@ -0,0 +1,17 @@ +#!/bin/sh +cd `dirname "$0"` +cat >index.html < + +Minutes of the RDF* calls + +

              Minutes of the RDF* calls

              +
                +EOS + +ls 2*.html | sort -r | while read filename +do + date=`basename "$filename" .html` + echo "
              • $date" >>index.html +done +echo "
              " >>index.html diff --git a/corese-unit-test/src/test/resources/data/rdf-star-main/README.md b/corese-unit-test/src/test/resources/data/rdf-star-main/README.md new file mode 100644 index 0000000000..076bc50ce5 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/rdf-star-main/README.md @@ -0,0 +1,8 @@ +## RDF-star ## + +**RDF-star has now been taken over by the [RDF-star working group](https://www.w3.org/groups/wg/rdf-star).** + +The homepage of the RDF-star community group effort is +https://w3c.github.io/rdf-star/ + + diff --git a/corese-unit-test/src/test/resources/data/rdf-star-main/UCR/README.md b/corese-unit-test/src/test/resources/data/rdf-star-main/UCR/README.md new file mode 100644 index 0000000000..386f66e89c --- /dev/null +++ b/corese-unit-test/src/test/resources/data/rdf-star-main/UCR/README.md @@ -0,0 +1,5 @@ +### Current Document +* [_Use Cases & Requirements_](rdf-star-ucr.html) + +### Previous Work +* [_Use Cases & Requirements_, started in EasierRDF](https://github.com/w3c/EasierRDF/blob/master/RDFstar/RDFStarUCandRequirements.html); now incorporated into current doc, above diff --git a/corese-unit-test/src/test/resources/data/rdf-star-main/UCR/rdf-star-ucr.html b/corese-unit-test/src/test/resources/data/rdf-star-main/UCR/rdf-star-ucr.html new file mode 100644 index 0000000000..0c5c548339 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/rdf-star-main/UCR/rdf-star-ucr.html @@ -0,0 +1,497 @@ + + + + + RDF-star Use Cases and Requirements + + + + + + + +

              RDF-star Use Cases and Requirements

              +
              +

              + This document describes use cases that justify the extension of RDF in the current work in RDF star + community group. It is collaborative work and is a non-normative part of this group output. +

              +
              +
              +

              + This document is a community working draft. +

              +
              + +
              +

              Introduction

              +

              + This document collects together use cases and requirments for RDF-star. + These use case were provided by members of the + W3C RDF Community Group + on the RDF-star mailing list + and issues + of the community's GitHub repository. +

              + +
              +

              Contributing Use Cases and Requirements

              +

              + Create a GitHub issue following the dedicated template. The suggested form is: +

              +
              +        WHO:  As an <actor>
              +        WHAT: I want a <feature>
              +        WHY:  So that <benefit>
              +      
              +

              + This is not mandatory. +

              +
              + +
              +

              Submitted Use Cases

              + +
              +

              Similarity use case

              +

              Submitted Use Case

              +

              + As a materials scientist working with ontologies. I want to enrich + relationships between objects. For example "A --similar--> B" + with a similarity measure of 0.5, So that I can identify the pairs of objects with relationships of certain + "strength". Visualization of the edges with accordingly weighted thickness would be a huge + plus. +

              +
              + +
              +

              distinguish interpretation from representation

              +

              Submitted Use Case

              +

              + As a data service,
              + from an architectural perspective, interpretation should be + distinct from and cleanly layered over representation - both abstract and + concrete, in order to facilitate implementation and assure the ability to + support future use cases as knowledge evolves over time. +

              +

              + From this perspective, the standard treatment of blank node labels is an + anti-requirement, the lessons of which should dissuade from unnecessarily + restrictive relations between interpretation and representation. +

              +

              + The situation with blank node labels is a case where the interpretation was + fixed, to treat them as referentially opaque. that was a mistake. it would have + been better to separate the interpretation from the representation and to allow + alternatives. +

              + +
              + +
              +

              Natural representation of PG data in RDF

              +

              Submitted Use Case

              +

              + As a KG vendor, we want Stardog customers to have easy to use means to attach + properties to edges in their RDF graph or load property graph data with edge + properties. Here "easy" specifically means that neither the customer nor the + database should have to wreck the data model (and queries) to use any of the + workarounds available in plain RDF for that purpose (like the RDF + reification). For example, if the customer has +

              +
              :pavel :worksAt :Stardog
              +

              edge in + the data and wants to add ... :since 2011 to it, neither they nor the database + should have to transform it into a bunch of different triples like +

              +
              +          []
              +            rdf:subject :pavel ; 
              +            rdf:property :worksAt ... 
              +        
              +

              + (and then also rewrite queries + so that ?s :worksAt :Stardog still returns :pavel). +

              +

              + Also we want to enable customers to store that annotated statement in any named + graph they want so we don't want to use named graphs for representing statement-level + metadata. +

              +
              + +
              +

              Meta-properties over properties

              +

              Submitted Use Case

              +

              + As a data engineer,
              + I want to add meta-properties over properties, from an existing SQL-DB to a Graph-DB; that is for example + for a node of type PERSON, with a property :birthDate='1985-01-20', I want to be able to say + the property was created on '2020-11-10', by a user 'editor1' with the role 'writer'. +

              +

              + So that I do not need to transform the property into a relation plus yet another node. +

              +
              + +
              +

              Support Wikidata/Wikibase data model

              +

              Submitted Use Case

              +

              + As a member of the Wikidata community,
              + I would like to see triple stores + supporting the Wikidata/Wikibase data model as much as possible, so that + provenance information etc. can be represented in a way which is pleasing to the + mind and software-systems such as Wikibase. +

              + +
              + +
              +

              UniProt: attributed/evidenced triples

              +

              Submitted Use Case

              +

              + As an UniProt developer,
              + I want an easier way to talk about triples we have + asserted. So that querying and parsing data-models from evidenced triples + becomes simpler. +

              +
              +<P26948> up:annotation <P26948#SIPDB6A831D8E2E2D2A> .
              +<#_kb.P26948_up.annotation_A144DC8D56EA0928> rdf:type rdf:Statement ;
              +  rdf:subject <P26948> ;
              +  rdf:predicate up:annotation ;
              +  rdf:object <P26948#SIPDB6A831D8E2E2D2A> ;
              +  up:attribution <P26948#attribution-89AC1B682EEB440D50C4AEBB24FCA860> .
              +        
              +

              + is a lot of bytes to type, and even worse the five joins + are very expensive to perform. +

              +

              + Our use-case for RDFstar etc. is to allow us to talk about triples as we do now, + but with a higher performance and lower barrier to entry. +

              +

              + We currently depend on the RDF/XML rdf:ID to easily parse this in our inhouse + custom RDF parsers, and would like to keep this option open. +

              +

              + At the same time we deal with a lot of renaming (IRIs) for the same thing. + e.g. a related database might use http://identifiers.org/uniprot/P05067 instead + of http://purl.uniprot.org/uniprot/P05067. And a owl:sameAs is used to merge + these datasets. Our attributions/evidences should be found no matter which IRI + is used. +

              +
              + +
              +

              CSV and TSV results

              +

              Submitted Use Case

              +

              + As an user,
              + I want a to be able to retrieve SPARQL results as CSV or TSV + So that I can use different toolchains to analyze the results. +

              +

              Full use case and proposal.

              +
              + +
              +

              specify sh:message and sh:severity for individual constraints

              +

              Submitted Use Case

              +

              + As an ontologist/schema developer using SHACL
              + I want to specify sh:message and sh:severity for individual constraints, + e.g. attach to individual sh:minCount 1 triples because otherwise I would have + to create an individual shape (subject) just for this information. +

              +

              + (This use case is already implemented in TopBraid EDG product) +

              +
              + +
              +

              attribute nodes in relations with additional detail

              +

              Submitted Use Case

              +

              + As a data engineer
              + I want to attribute nodes in relations with additional + detail so that details on the nodes is kept seperate from the property. E.g.: + two persons meet at a certain time (which is an attribute of the relation) and + one of them has a Covid-19 infection. +

              +
              + +
              +

              represent competing scenarios

              +

              Submitted Use Case

              +

              + As an analyst
              + I want to represent competing scenarios + so that I can compare predispositions and possible outcomes. + As a dispatcher in an unfolding catastrophic event + I want to integrate new information into a developing model of the event + so that everybody can understand the dynamics and probable developments. + Both scenarios can benefit from referential transparency but also faithful reproduction of source + information. +

              +
              + +
              +

              annotate statements from other named graphs and datasets

              +

              Submitted Use Case

              +

              + As a knowledge worker
              + I want to annotate statements from other named graphs and datasets where I might not even have write access + so that I can make statements about statements on the web of data like about any other entity. +

              +

              + +
              +

              annotate commit deltas

              +

              Submitted Use Case

              +

              + I want to annotate commit deltas to an RDF graph, e.g.: +

              +
              +r:47e1cf2 a :Commit ; 
              +     :delete <<:bob :age 23>> ;
              +     :add <<:bob :age 24>>, <<:bob :gender :male>> .
              +
              +

              + so that a triple can be searched for across commit history in SPARQL-star. +

              +
              + +
              +

              SPARQL-star/RDF-star and RDFS support

              +

              Submitted Use Case

              +

              + As a user, I want to express facts as triple statements `{:s :p :o}` within a + triplestore. Later on I realise I want to add facts about this fact. However + the {:s :p :o} triple has already been asserted in the triplestore, so I need to + add a reification. +

              +
              +          :key rdf:subject :s ; rdf:predicate :p ; rdf:object :o .
              +        
              +

              + Now I can add facts about the fact: +

              +
              +          :key :uom :cm ; :accuracy ".32" .
              +        
              +

              + So far 'standard' reification. +

              +

              + However, as a user I want to add some RDFS 'referential' integrity to help + manage the use of additional predicates such a :uom and :accuracy. Since the + rdfs:domain of rdf:subject, rdf:predicate, and rdf:object, it can be inferred + that :key is a rdf:Statement. This then implies that the rdfs:domain of :uom + and :accuracy is also rdf:Statement. Thus if I continue reifying other + statements, any predicates associated with the reified statement must have a + rdfs:domain of rdf:Statement. +

              +

              + So as a user who wants to add some RDFS-based control over the model, I would + introduce a rdfs:subClassOf so that predicates associated with this subClass + have a rdfs:domain of this subclass +

              +

              + Triple: +

              +
              +          :Peter :married :Beth
              +          
              +

              + Reified Triple: +

              +
              +        :marriageKey rdf:subject :Peter ; rdf:predicate :married ; rdf:object :Beth .
              +
              +        :marriageKey a :Marriage ;
              +                :when "1980" ;
              +    		        :where "Kelby" .
              +        
              +

              + with the following RDFS assertions: +

              +
              +          :Marriage rdfs:subClassOf rdf:Statement .
              +        
              +and +
              +        :when rdfs:domain  :Marriage .
              +        :where rdfs:domain  :Marriage .
              +        
              +

              + The benefits are that I can combine triple reification with RDFS providing the + same benefits that rdfs offers to rdfs:Class to rdf:Statement. +

              + +
              + + +
              +

              Time-sensitive data use case

              +

              Submitted Use Case

              +

              + As a Big Data and & AI platform-product owner
              + I want the capacity to describe and query relations in the graph with the + dimension of temporal entity-events. +

              + So that we could extract more power from the Graph, using relationships over + time in stuff like job-assignment, seasonal events, and so on. In a website with + a lot of annotated entities in each page and with the users navigating in that + contents over time, we could also look into the user and its semantics data over + time too. +

              + So we could ask the RDF-star this kind of quotes: +

              +
                +
              • "What is the semantic classes or entities for the user X with more consumption in the last 7 days"
              • +
              • "What is the last job for the user X?"
              • +
              • "What is the last edition of the program Y"
              • +
              +
              + +
              +

              Uncertainty representation

              +

              Submitted Use Case

              +

              As a Ph.D. student working on uncertainty,
              + I want to use RDF* to represent uncertainty values for RDF statements, using the mUnc ontology. + This offers the possibility to evaluate the reliability of statements in a specific + context. +

              +

              + See mUnc (Metadata with UNCertainty) OWL + ontology for describing uncertainty information. +

              +
              + +
              +

              Compact Serialization of OWL Graphs

              +

              Submitted Use Case

              +

              + As an OWL ontology provider who is responsible for providing multiple large + biomedical ontologies, many including rich graph structures (partonomies, + lineage hierarchies), +

              +

              + I want a compact OWL serialization that avoids generating 4 triples for each + existential axiom, whilst retaining semantic rigor. +

              +

              + So that users of my ontologies can naturally traverse ontology graphs using + simple triples, and optionally look up the OWL semantics of each triple. +

              +

              + This use case is outlined in more detail in my blog post: + Proposed strategy for semantics in RDF* and Property Graphs. +

              +

              + The core idea is that instead of 4 triples for a TBox graph edge, as we have + now: +

              +
              Finger owl:subClassOf [
              +  a owl:Restriction ;
              +  owl:onProperty :part_of owl:someValuesFrom :Hand
              +]
              +
              +

              + we would have a triple linking finger to hand, with the OWL semantics of the + triple specified as triples on the core triple: +

              +
              +<<:finger :part-of :hand>> owlstar:hasInterpretation owlstar:SubClassOfSomeValuesFrom .
              +
              +

              + The proposed vocabulary is here https://github.com/cmungall/owlstar. +

              +

              + Note I have phrased this use case as a provider of biomedical ontologies (I + provide some of the major ones, including GO, Uberon, Mondo, and am part of the + Open Bio Ontologies team), but I believe this would be broadly useful. In + particular I think this would be useful in Wikidata, which already provides + existential axioms as simple triples. +

              +
              + +
              +

              Previous Material

              +

              + From + EasierRDF-RDFstar/RDFStarUCandRequirements.html + . +

              + +
              +

              Annotations of triples that are not in the graph

              +

              Richard Cyganiak.

              +

              I want to be able to annotate triples that are not in the graph

              +

              As an web user, I want to be able to annotate any triples, + regardless of whether they are in the same graph or not. Then I can annotate + triples in a graph elsewhere on the web. +

              +
              + +
              +

              Annotations of triples where the triples are in another graph of the same RDF Dataset

              +

              Andy Seaborne

              +

              + As an information engineer, I want to be able to manage annotation triples + separately from the data triples themselves. I wish to have a separategraph in + the same RDF dataset. + This will make data management more convenient - e.g. publishing without + annotations; e.g. querying the data without the annotations visible. +

              +
              + +
              +

              Combination of RDF-star and graph-level metadata (named graphs)

              +

              Dan Brickley

              +

              I want to use an RDF-star triple to capture something like, + e.g., "the graph denoted by IRI ex:mygraph contains the edge/triple (ex:Bob, foaf:knows, ex:Alice)."

              +
              + +
              +

              Combining TriG / Named Graphs / RDF-star

              +

              Ghislain Atemezing

              +

              I want to combine TriG notation / Named Graph / RDF-star all together. What is feasible or not with RDF-star?

              +
              + +
              +

              Asserting Annotated Arcs

              +

              Jeff Lerman

              +
              + + + diff --git a/corese-unit-test/src/test/resources/data/rdf-star-main/cg-spec/2021-02-18-src.html b/corese-unit-test/src/test/resources/data/rdf-star-main/cg-spec/2021-02-18-src.html new file mode 100644 index 0000000000..5fa48f70b1 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/rdf-star-main/cg-spec/2021-02-18-src.html @@ -0,0 +1,1105 @@ + + + + + RDF-star and SPARQL-star + + + + + + +
              +

              TODO

              +
              +
              +
              + +
              +

              Introduction

              + +
              +

              Background and Motivation

              + +

              TODO, citing [[RDF-STAR-FOUNDATION]]

              +
              + +
              +

              Overview

              + +

              The RDF data model lets you state facts in three-part subject-predicate-object statements known as triples. For example, with a single RDF triple you can say that employee38 has a familyName of "Smith". A triple's predicate is a property specified with an IRI (an Internationalized version of a URI) to identify the namespace of the property name. A triple's subject and object can each be an IRI referencing any entity, and the object can also be a literal value such as "Smith" or data of other types such as dates, numbers, or Boolean values.

              + +

              The subject and object of a triple can themselves reference triples. In the statement "employee22 claims that employee38 has a jobTitle of 'Assistant Designer'", the object of the triple that has employee22 as its subject references the statement "employee38 has a jobTitle of 'Assistant Designer'". This use of a triple as the subject or object resource of another triple so that we can say things about that triple is known as reification.

              +

              The concept of reification has always been part of RDF, but expressing it in RDF concrete syntaxes such as Turtle, N-Triples, and RDF/XML has been verbose and cumbersome. This specification describes a new, more compact conceptual data model and Turtle concrete syntax for reification known as RDF-star and Turtle-star, respectively. This model and syntax enable the creation of concise triples that reference other triples as subject and object resources.

              + +

              Triples that include a triple as a subject or an object are known as RDF-star triples. The following dataset shows the example RDF-star triples from above using the Turtle-star syntax, which uses double angle brackets to enclose a triple serving as a subject or object resource:

              + +
              +        
              +      
              + +

              After declaring a prefix so that IRIs can be abbreviated, the first triple in this example asserts that employee38 has a familyName of "Smith". Note that this dataset does not assert that employee38 has a jobTitle of "Assistant Designer"; it says that employee22 has made that claim. In other words, the triple "employee38 has a jobTitle of 'Assistant Designer'" is not what we call an asserted triple, like "employee38 has a familyName of 'Smith'" above; it is known as an embedded triple. (If we added the triple `:employee38 :jobTitle "Assistant Designer"` below the triple about employee22's claim in the example above, then this triple about employee38's jobTitle would be both an embedded triple and an asserted one.)

              + +

              This specification also describes an extension to the SPARQL Protocol and Query Language known as SPARQL-star for the querying of RDF-star triples. For example, the following SPARQL-star query asks "who has made any claims about employee38?"

              + +
              +                
              +
              + + +

              SPARQL query triple patterns that include a triple pattern as a subject or object are known as SPARQL-star triple patterns.

              + +
              + +
              + +

              For the remainder of this document, examples will assume that the following prefixes have been declared to represent the IRIs shown with them here:

              + + + + + + + + +
              `:``<http://www.example.org/>`
              `rdfs:``<http://www.w3.org/2000/01/rdf-schema#>`
              `owl:``<http://www.w3.org/2002/07/owl#>`
              `prov:``<http://www.w3.org/ns/prov#>`
              `dc:``<http://purl.org/dc/elements/1.1/>`
              `dct:``<http://purl.org/dc/terms/>`
              + +
              + +
              +
              +
              + +
              + +
              +

              Concepts and Abstract Syntax

              + +

              In the following, we we introduce a number of definitions specific to SPARQL-star, which rely on the following notions (extending some of them) defined in [[[RDF11-CONCEPTS]]] [[RDF11-CONCEPTS]]: + blank node, + default graph, + graph name, + IRI, + literal, + named graphs, + object, + predicate, + RDF dataset, + RDF graph, + RDF triple, + and subject +

              + +

              An RDF-star graph is a set of RDF-star triples.

              + +

              An RDF-star triple is a 3-tuple defined recursively as follows:

              + + +

              As for RDF triples, we call the 3 components of an RDF-star triple its subject, predicate and object, respectively. From the definitions above, it follows that any RDF graph is also an RDF-star graph. Note also that, by definition, an RDF-star triple cannot contain itself and cannot be nested infinitely.

              + +

              IRIs, literals, blank nodes and RDF-star triples are collectively known as RDF-star terms.

              + +

              For every RDF-star triple t, we define its constituent terms (or simply constituents) as the set containing its subject, its predicate, its object, plus all the constituent terms of its subject and/or its object if they are themselves RDF-star triples. By extension, we define the constituent terms of an RDF-star graph to be the union set of the constituent terms of all its triples.

              + +
              + Consider the following RDF-star triple (represented in Turtle-star): +
              +        
              +      
              + Its set of constituent terms comprises the IRIs `:name`, `:statedBy`, `:bob`, the blank node `_:a`, the literal `"Alice"`, and the triple `<< _:a :name "Alice" >>`. +
              + +

              An RDF-star triple used as the subject or object of another RDF-star triple is called an embedded triple. An RDF-star triple that is an element of an RDF-star graph is called an asserted triple. Note that, in a given RDF-star graph, the same triple MAY be both embedded and asserted.

              + +

              An RDF-star dataset is a collection of RDF-star graphs, and comprises:

              + + + +

              Again, this definition is an extension of the notion of RDF dataset, hence it follows that any RDF dataset is also an RDF-star dataset.

              + +
              +

              Triples and occurrences

              + +

              According to the definitions above, an RDF-star triple is an abstract entity whose identity is entirely defined by its subject, predicate and object. Conversely, given three RDF-star terms |s|, |p|, and |o|, there is exactly and only one RDF-star triple with subject |s|, predicate |p| and object |o|. This unique triple (|s|, |p|, |o|) can be embedded as the subject or object of multiple other triples, but must be assumed to represent the same thing everywhere it occurs, just like the same IRI |p| is assumed to represent the same thing everywhere it occurs.

              + +

              In some situations, however, it might be necessary to distinguish the occurrences of a triple in different graphs. Consider the following sentence: "The triple `<http://example.org/s> <http://example.org/p> <http://example.org/o>` in (the graph represented by) file1.ttl was added by Alice, and the same triple in file2.ttl was added by Bob." Note that the words "same triple" in this sentence may be confusing, because although the triple (as an abstract entity) is the same, its respective occurrences are different things, each within a different file and with a different author (this is known, in philosophy and linguistics, as the type-token distinction). As the embedded triple represents a unique thing, adequately conveying the meaning of the sentence above requires additional nodes for representing the two distinct occurrences. One possible solution is illustrated in the following example (using the Turtle-star concrete syntax described in the next section).

              + +
              +        
              +      
              + +
              + +
              + +
              +

              Concrete Syntaxes

              +
              +

              Turtle-star

              +

              In this section, we present Turtle-star, an extension of the Turtle format [[TURTLE]] allowing the representation of RDF-star graphs. For the sake of conciseness, we only describe here the differences between Turtle-star and Turtle.

              + +
              +

              Grammar

              +

              Turtle-star is defined to follow the same grammar as Turtle, except for the EBNF productions specified below, which replace the productions having the same number (if any) in the original grammar.

              + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
              [8]`objectList`::= + object + annotation`?` + `(` + ',' + object + annotation`?` + `)*` +
              [10]`subject`::= + iri `|` + BlankNode `|` + collection `|` + embTriple +
              [12]`object`::= + iri `|` + BlankNode `|` + collection `|` + blankNodePropertyList `|` + literal `|` + embTriple +
              [27]`embTriple`::= + '<<' + embSubject + verb + embObject + '>>' +
              [28]`embSubject`::= + iri `|` + BlankNode `|` + embTriple +
              [29]`embObject`::= + iri `|` + BlankNode `|` + literal `|` + embTriple +
              [31]`annotation`::= + '{|' + predicateObjectList + '|}' +
              + +

              The changes are that `subject` and `object` productions have been extended to accept embedded triples, which are described by the new productions 27 to 29. Note that embedded triples accept a more restricted range of subject and object expressions than asserted triples. Additionally, the `objectList` production now accepts an optional annotation after each object.

              +
              + +
              +

              Parsing

              +

              A Turtle-star parser is similar to a Turtle parser as defined in Section 7 of the Turtle specification [[TURTLE]], with an additional item in its state :

              + +

              Additionally, the |curSubject| can be bound to any RDF-star term (including an embedded triple).

              + +

              A Turtle-star document defines an RDF-star graph composed of a set of RDF-star triples. The `subject` and `embSubject` productions set the |curSubject|. The `verb` production sets the |curPredicate|. The `object` and `embObject` productions set the |curObject|. Finishing the `object` production, an RDF-star triple |curSubject| |curPredicate| |curObject| is generated and added to the RDF-star graph.

              + +

              Beginning the `embTriple` production records the |curSubject| and |curPredicate|. Finishing the `embTriple` production yields the RDF-star triple |curSubject| |curPredicate| |curObject| and restores the recorded values of |curSubject| and |curPredicate|.

              + +

              Beginning the `annotation` production records the |curSubject| and |curPredicate|, and sets the |curSubject| to the RDF-star triple |curSubject| |curPredicate| |curObject|. Finishing the `annotation` production restores the recorded values of |curSubject| and |curPredicate|.

              + +

              All other productions MUST be handled as specified by Section 7 of the Turtle specification [[TURTLE]], while still applying the changes above recursively.

              +
              +
              + +
              +

              N-Triples-star

              + +

              This section describes N-Triples-star, a minimal extension of the N-Triples format [[N-TRIPLES]] allowing a subject or an object of an RDF-star triple to be an embedded triple.

              + +
              +

              Grammar

              +

              N-Triples-star is defined to follow the same grammar as the N-Triples Grammar, except for the EBNF productions specified below, which replace the productions having the same number (if any) in the original grammar.

              + + + + + + + + + + + + + + + + + + + + + + +
              [3]subject::=IRIREF | BLANK_NODE_LABEL | embTriple
              [5]object::=IRIREF | BLANK_NODE_LABEL | literal | embTriple
              [7]embTriple::="<<" subject predicate object ">>"
              + +

              As with Turtle-star, the changes are that `subject` and `object` productions have been extended to accept embedded triples, which are described by the new production 7. N-Triples-star does not include an annotation form.

              +
              + +
              +

              Parsing

              +

              In contrast to [[N-TRIPLES]], N-Triples-star allows recursion on the `subject` and `object` productions.

              + +

              An N-Triples-star document defines an RDF-star graph composed of a set of RDF-star triples. The `triple` production produces an RDF-star triple composed of a `subject`, `predicate` and `object`.

              + +

              In addition to the Term Constructors defined in [[N-TRIPLES]], an additional constructor is defined for `embTriple` of type RDF-star triple defined by the terms constructed for `subject`, `predicate` and `object`.

              + +

              All other productions MUST be handled as specified by Section 8.1 of the N-Triples specification [[N-TRIPLES]], while still applying the changes above recursively.

              +
              +
              + +
              +

              N-Quads-star

              + +

              The [[N-QUADS]] format is extended to describe the N-Quads-star format using the same production updates described in the N-Triples-star Grammar.

              + +

              As RDF-star describes embedded triples and not embedded quads, the `graphLabel` component of an N-Quads `statement` does not apply to the `embTriple` component.

              + +

              An N-Quads-star document defines an RDF-star dataset composed of + a single default graph, and zero or more named graphs, + all of which are RDF-star graphs.

              + +

              A conforming N-Quads-star parser MUST parse any valid + N-Quads document and additionally parse the + subject and + object productions + from N-Triples-star to generate RDF-star triples which are + added to either the default graph or associated + named graph, as appropriate.

              +
              + +
              +

              Other Concrete Syntaxes

              + +

              While this document specifies a small number of concrete syntaxes, nothing prevents other concrete syntaxes of RDF-star from being proposed. In particular, other existing concrete syntaxes for RDF, such as RDF/XML [[RDF-SYNTAX-GRAMMAR]], could be extended to support RDF-star.

              +
              + +
              + +
              +

              SPARQL-star Query Language

              + +

              This Section introduces SPARQL-star, which is an RDF-star-aware extension of the RDF query language SPARQL [[SPARQL11-QUERY]]; i.e., SPARQL-star can be used to query RDF-star graphs.

              + +
              +

              Initial Definitions

              + +

              In the following, we introduce a number of SPARQL-star-specific definitions, which rely on the following notions, defined in [[[SPARQL11-QUERY]]] [[SPARQL11-QUERY]]: RDF term, query variable, triple pattern, + property path pattern, + property path expression, + and solution mapping.

              + +

              A SPARQL-star triple pattern is a 3-tuple that is defined recursively as follows:

              +
                +
              1. Every SPARQL triple pattern is a SPARQL-star triple pattern; +
              2. If |t| and t' are SPARQL-star triple patterns, |x| is an RDF term or a query variable, and |p| is an IRI or a query variable, then (|t|, |p|, |x|), (|x|, |p|, |t|), and (|t|, |p|, t') are SPARQL-star triple patterns. +
              + +

              As for RDF-star triples, a SPARQL-star triple pattern MUST NOT contain itself.

              + +

              A SPARQL-star basic graph pattern (BGP-star) is a set of SPARQL-star triple patterns.

              + +

              A SPARQL-star property path pattern is a 3-tuple (|s|,|p|,|o|) where

              + + +
              + +

              A SPARQL-star solution mapping μ is a partial function from the set of all query variables to the set of all RDF-star terms. + The domain of μ, denoted by dom(μ), is the set of query variables for which μ is defined.

              + +

              The notion of a SPARQL-star solution mapping extends the notion of a standard SPARQL solution mapping; that is, every SPARQL solution mapping is a SPARQL-star solution mapping. However, in contrast to SPARQL solution mappings, SPARQL-star solution mappings may map variables also to RDF-star triples.

              + +

              All notions related to SPARQL solution mappings carry over naturally to SPARQL-star solution mappings. In particular, the definition of compatibility extends naturally to SPARQL-star solution mappings: two SPARQL-star solution mappings μ1 and μ2 are compatible if, for every variable v that is both in dom(μ1) and in dom(μ2), μ1(v) and μ2(v) are the same RDF-star term. + In this case, μ1 ∪ μ2 is also a SPARQL-star solution mapping. + Moreover, for any SPARQL-star solution mapping μ we write card[Ω](μ) to denote the cardinality of μ in a multiset Ω of such mappings. + Finally, given a BGP-star |B| and a SPARQL-star solution mapping μ, we write μ(|B|) to denote the result of replacing every variable |v| in |B| for which μ is defined with μ(v). +

              + +

              Next, we aim to carry over the notion of solutions for BGPs to BGP-star. To this end, we first define an auxiliary concept that carries over the notion of an + RDF instance mapping [[RDF11-MT]] to RDF-star.

              + +

              An RDF-star instance mapping σ is a partial function from the set of all blank nodes to the set of all RDF-star terms. + The domain of σ, denoted by dom(σ), is the set of blank nodes for which σ is defined.

              + +

              Similar to the corresponding notation for solution mappings, for an RDF-star instance mapping σ and a BGP-star |B| we write σ(|B|) to denote the result of replacing every blank node |b| in |B| for which σ is defined with σ(b).

              + +

              Now we are ready to define the notion of solution for BGP-star.

              + +

              Given a BGP-star |B| and an RDF-star graph |G|, a SPARQL-star solution mapping μ is a solution for the BGP-star |B| over |G| if it has the following two properties

              +
                +
              • dom(μ) is equivalent to the set of query variables in |B|, and +
              • there exists an RDF-star instance mapping σ such that dom(σ) is equivalent to the set of blank nodes in |B| and μ(σ(|B|)) is a subgraph of |G|. +
              + +
              + +
              +

              Grammar

              + +

              SPARQL-star is defined to follow the same grammar as SPARQL, except for the EBNF productions specified below, which replace the productions having the same number (if any) in the original grammar.

              + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
              [60]`Bind`::= + 'BIND' + '(' + ( + Expression `|` + EmbTP + ) + 'AS' + Var + ')' +
              [75]`TriplesSameSubject`::= + VarOrTermOrEmbTP + PropertyListNotEmpty + `|` + TriplesNode + PropertyList +
              [80]`Object`::= + GraphNode `|` + EmbTP +
              [81]`TriplesSameSubjectPath`::= + VarOrTermOrEmbTP + PropertyListPathNotEmpty + `|` + TriplesNode + PropertyListPath +
              [105]`GraphNodePath`::= + VarOrTermOrEmbTP `|` + TriplesNodePath `|` +
              [174]`EmbTP`::= + '<<' + EmbSubjectOrObject + Verb + EmbSubjectOrObject + '>>' +
              [175]`EmbSubjectOrObject`::= + Var `|` + BlankNode `|` + iri `|` + RDFLiteral `|` + NumericLiteral `|` + BooleanLiteral `|` + EmbTP +
              [176]`VarOrTermOrEmbTP`::= + Var `|` + GraphTerm `|` + EmbTP +
              + +

              + This introduces a notation for embedded triple patterns + (productions [174] and following), + which is similar to the one defined for embedded triples in , + but accepting also variables. + These embedded triple patterns are allowed in the subject + ([75], [81]) + and object + ([80], [105]) + positions of SPARQL-star triple patterns, + as well as in BIND statements + ([60]). +

              + +
              + +
              + +
              + +
              +

              Translation to the Algebra

              + +

              Based on the SPARQL grammar, the SPARQL specification defines the process of converting graph patterns and solution modifiers in a SPARQL query string into a SPARQL algebra expression [SPARQL11-QUERY, Section 18.2]. This process must be adjusted to consider the extended grammar introduced above. In the following, any step of the conversion process that requires adjustment is discussed.

              + +
              +

              Variable Scope

              + +

              As a basis of the translation, the SPARQL specification introduces a notion of in-scope variables. To cover the new syntax elements introduced in this notion MUST be extended as follows.

              + +
                +
              • A variable is in-scope of a BGP-star |B| if the variable occurs in |B|, which includes an occurrence in any embedded triple pattern in |B| (independent of the level of nesting).
              • +
              • A variable is in-scope of a property path pattern if the variable occurs in that pattern, which includes an occurrence in any embedded triple pattern in the pattern (independent of the level of nesting).
              • +
              • A variable is in-scope of a BIND clause of the form `BIND ( T AS v )` (where |T| is an embedded triple pattern) if the variable is variable |v| or the variable occurs in the embedded triple pattern |T|. As for standard BIND clauses with expressions, variable |v| must not [be] in-scope from the preceding elements in the group graph pattern in which [the BIND clause] is used [SPARQL11-QUERY, Section 18.2.1]].
              • +
              +
              + +
              +

              Expand Syntax Forms

              + +

              The translation process starts with expanding abbreviations for IRIs and triple patterns [SPARQL11-QUERY, Section 18.2.2.1]. This step MUST be extended in two ways:

              + +
                +
              1. +

                Abbreviations for triple patterns with embedded triple patterns MUST be expanded as if each embedded triple pattern was a variable (or an RDF term). + +

                + For instance, the following syntax expression: +
                +                
                +              
                + must be expanded to +
                +                
                +              
                +
                +
              2. +
              3. +

                Abbreviations for IRIs in all embedded triple patterns MUST be expanded.

                + +
                + For instance, the embedded triple pattern +
                +                
                +              
                + must be expanded to +
                +                
                +              
                +
                +
              4. +
              +
              + +
              +

              Translate Property Path Patterns

              + +

              The translation of property path patterns has to be adjusted because the extended grammar allows for SPARQL-star property path patterns whose subject or object is a SPARQL-star triple pattern.

              + +

              The translation as specified in the W3C specification distinguishes four cases. The first three of these cases do not require adjustment because they are taken care of either by recursion or by the adjusted translation of basic graph patterns (as defined in below). However, the fourth case MUST be adjusted as follows.

              + +

              Let |X| |P| |Y| be a string that corresponds to the fourth case in [SPARQL11-QUERY, Section 18.2.2.4]. Given the grammar introduced in , |X| and |Y| may be an RDF term, a variable, or an embedded triple pattern, respectively (and |P| is a property path expression). The string |X| |P| |Y| is translated to the algebra expression `Path`(X’,|P|,Y’) where X’ and Y’ are the result of calling a function named `Lift` for |X| and |Y|, respectively. For some input string |Z| (such as |X| or |Y|) that can be an RDF term, a variable, or an embedded triple pattern, the function `Lift` is defined recursively as follows:

              + +
                +
              1. If |Z| is an embedded triple pattern <<|S|,|P|,|O|>> then return the SPARQL-star triple pattern (`Lift`(|S|), |P|, `Lift`(|O|));
              2. +
              3. Otherwise, return |Z|.
              4. +
              + +
              + The purpose of this translation step is to convert any property path pattern as can be written based on the extended grammar for SPARQL-star (cf. ) into a SPARQL-star property path pattern as considered in the algebra. To this end, the function `Lift` translates every embedded triple pattern as can be written in the SPARQL-star syntax into a SPARQL-star triple pattern. +
              +
              + +
              +

              Translate Basic Graph Patterns

              + +

              After translating property path patterns, the translation process collects any adjacent triple patterns [...] to form a basic graph pattern [SPARQL11-QUERY, Section 18.2.2.5]. This step has to be adjusted because triple patterns in the extended syntax may have an embedded triple pattern in their subject position or in their object position (or in both). To ensure that every result of this step is a BGP-star, before adding a triple pattern to its corresponding collection, its subject and object MUST be replaced by the result of calling function `Lift` for the subject and the object, respectively.

              +
              + +
              +

              Translate BIND Clauses with an Embedded Triple Pattern

              + +

              The extended grammar in allows for BIND clauses with an embedded triple pattern. The translation of such a BIND clause to a SPARQL algebra expression requires a new algebra symbol:

              + + + +

              Then, any string of the form `BIND( T AS v )` with |T| being an embedded triple pattern (i.e., not a standard BIND expression) is translated to the algebra expression `TR`(T’, |v|) where T’ is the result of the function `Lift` for |T|.

              + +

              Notice, the translation of BIND clauses with an embedded triple pattern as defined in this section is used during the translation of group graph patterns. The case of BIND clauses with an embedded triple pattern is covered in this translation of group graph patterns by the last, “catch all other” `IF` statement (i.e., the `IF` statement with the condition `E is any other form`) and not by the `IF` statement for BIND clauses with an expression.

              +
              +
              + +
              +

              Evaluation Semantics

              + +

              The SPARQL specification defines a function eval(|D|(|G|), algebra expression) as the evaluation of an algebra expression with respect to a dataset |D| having active graph |G| [SPARQL11-QUERY, Section 18.6]. Recall that the dataset |D| in the context of SPARQL-star is an RDF-star dataset and, thus, the active graph |G| is an RDF-star graph, and so is any other graph in dataset |D|. The definition of the eval function is recursive; the two base cases of this definition for SPARQL-star are given as follows:

              + +
                +
              1. For every BGP-star |B|, eval(|D|(|G|), |B|) is a multiset Ω that consists of all SPARQL-star solution mappings that are a solution for the BGP-star |B| over |G|. For every such mapping μ, card[Ω](μ) is the number of distinct RDF-star instance mappings σ such that dom(σ) is equivalent to the set of blank nodes in |B| and μ(σ(|B|)) is a subgraph of |G|. (For any SPARQL-star solution mapping μ' that is not a solution for |B| over |G|, we have that card[Ω](μ')=0; i.e., μ' is not in Ω.)
              2. + +
              3. For any algebra expression |E| of the form TR(|tp|, ?v) where |tp| is a SPARQL-star triple pattern and ?v is a variable (as introduced in ), eval(|D|(|G|), |E|) is a multiset Ω that consists of as many SPARQL-star solution mappings as there are solution mappings in Ω', where Ω'=eval(|D|(|G|),{|tp|}), such that for every μ' in Ω' there exists a μ in Ω that has the following four properties: +
                  +
                1. dom(μ) = dom(μ') ∪ {?v}
                2. +
                3. μ and μ' are compatible
                4. +
                5. μ(?v) = μ'(|tp|)
                6. +
                7. card[Ω](μ) = card[Ω'](μ')
                8. +
                +
              4. +
              + +

              For any other algebra expression, the SPARQL specification defines algebra operators [[SPARQL11-QUERY]]. These definitions can be extended naturally to operate over multisets of SPARQL-star solution mappings (instead of ordinary solution mappings). Given this extension, the recursive steps of the definition of the eval function for SPARQL-star are the same as in the SPARQL specification.

              +
              + +
              +

              Query Result Formats

              + +

              In SPARQL, queries can take four forms: SELECT, CONSTRUCT, DESCRIBE, and ASK - see SPARQL1.1 Query, Section 16 [[SPARQL11-QUERY]]. The first of these returns a sequence of solution mappings that contain variable bindings. The second and third both return an RDF graph, and the last returns a boolean value. +

              +

              The result of the ASK query form is not changed by the introduction of RDF-star, and the result of the CONSTRUCT and DESCRIBE forms can be represented by Turtle-star. However, since the SELECT form deals with returning individual RDF terms, the specific serialization formats for representing such query results need to be extended so that the new embedded triple RDF term can be represented. In this section, we propose extensions for the two most common formats for this purpose: [[[sparql11-results-json]]], and [[[rdf-sparql-XMLres]]].

              + +
              + +
              +

              SPARQL-star Query Results JSON Format

              +

              + The result of a SPARQL SELECT query is serialized in JSON as defined in [[[sparql11-results-json]]], which specifies a JSON representation of variable bindings to RDF terms (see [sparql11-results-json, Section 3.2]). To accommodate the new RDF term for embedded triples that RDF-star introduces, the table of RDF term JSON representations in sparql11-results-json, Section 3.2.2 is extended with the following entry: +

              +
              +
              An embedded triple with subject RDF term `S`, predicate RDF term `P` and object RDF term `O`
              +
              +
              +                {
              +                  "type": "triple",
              +                  "value": {
              +                     "subject": S,
              +                     "predicate": P,
              +                     "object": O
              +                  }
              +                }
              +              
              + where `S`, `P` and `O` are encoded using the same format, recursively. +
              +
              +
              + Consider the following RDF term, an embedded triple in Turtle-star syntax: +
              +            
              +          
              + This term is represented in JSON as follows: +
              +                {
              +                  "type": "triple",
              +                  "value": {
              +                     "subject": {
              +                        "type": "uri",
              +                        "value" "http://example.org/alice"
              +                     },
              +                     "predicate": {
              +                        "type": "uri",
              +                        "value" "http://example.org/name"
              +                     },
              +                     "object": {
              +                        "type": "literal",
              +                        "value" "Alice",
              +                        "datatype": "http://www.w3.org/2001/XMLSchema#string"
              +                     },
              +                  }
              +                }
              +          
              +
              + +
              + +
              +

              SPARQL-star Query Results XML Format

              +

              + The result of a SPARQL SELECT query is serialized in XML as defined in [[[rdf-sparql-XMLres]]]. This format proposes an XML representation of variable bindings to RDF terms. +

              +

              To accommodate the new RDF term for embedded triples that RDF-star introduces, the list of RDF terms and their XML representations in [rdf-sparql-XMLres, Section 2.3.1] is extended as follows: +

              +

              +

              +
              An embedded triple with subject term `S`, predicate term `P`, and object term `O`
              +
              +
              +              
              +            
              + where `S`, `P` and `O` are encoded recursively, using the same format, without the enclosing `<binding>` tag. +
              +
              +
              + Consider the following RDF term, an embedded triple in Turtle-star syntax: +
              +            
              +          
              + This term is represented in XML as follows: +
              +            
              +          
              +
              + + + +
              + +
              + +
              + +
              +

              SPARQL-star Update

              + +
              + +
              + +
              +

              RDF-star Semantics

              + +

              In this section, we provide a model-theoretic semantics for RDF-star, based on the one defined in [[[RDF11-MT]]] [[RDF11-MT]]. More precisely, we define a mapping from RDF-star's abstract syntax into standard RDF's abstract syntax, and define the semantics of RDF-star graphs in terms of the semantics of the mapped RDF graphs.

              + +

              In the following, we introduce a number of definitions specific to RDF-star, which rely on the following notions, defined in [[[RDF11-CONCEPTS]]] [[RDF11-CONCEPTS]] and [[[RDF11-MT]]] [[RDF11-MT]]: + datatype, + lexical form, + simple literal, + ill-typed, + merging, + satisfiability, + unsatisfiability, + entailment, + and equivalence. +

              + +
              +

              Mapping RDF-star abstract syntax to RDF

              + +

              We consider six IRIs |ST:subject term|, |PT:predicate term|, |OT:object term|, |SS:subject string|, |PS:predicate string| and |OS:object string| that will have a special meaning in our mapping.

              + +

              We define a mapping |L| that maps any IRI or literal |t| to a literal with

              +

              + +

              Given an RDF-star graph |G|, the following steps transform it into an RDF graph that we call |unstar|(|G|).

              + +
                +
              1. Pick an RDF-star triple (|s|, |p|, |o|) in the constituents of |G| such that neither |s| nor |o| is an embedded triple.
              2. +
              3. Mint a fresh blank node |b|, and replace by |b| all occurrences of (|s|, |p|, |o|) in the subject or object position of an asserted or embedded triple of |G|.
              4. +
              5. Add the following asserted triples to |G|:
                  +
                • (|b|, |ST|, |s|)
                • +
                • (|b|, |PT|, |p|)
                • +
                • (|b|, |OT|, |o|) unless |o| is an ill-typed literal
                • +
                • (|b|, |SS|, |L|(|s|)) unless |s| is blank node
                • +
                • (|b|, |PS|, |L|(|p|))
                • +
                • (|b|, |OS|, |L|(|o|)) unless |o| is blank node
                • +
              6. +
              7. Repeat the steps above until there are no embedded triples left in |G|.
              8. +
              +

              After these steps, |unstar|(|G|) is an RDF graph, as it contains no embedded triples. Note that if |G| was already an RDF graph, then |unstar|(|G|) = |G|.

              + +
              + +
              +

              Entailment of RDF-star graphs

              + +

              Following [[[RDF11-MT]]], we extend the notions of satisfiability and entailment for RDF-star graphs. Given two RDF-star graphs |G| and |H|:

              +

              +
              + +
              +

              Remarks

              + +
              +

              Combining RDF-star graphs

              + +

              Care must be taken when RDF graphs that result from RDF-star graphs are combined through union or merging. Given two RDF-star graphs |G| and |H|, it may be the case that |unstar|(|G| ∪ |H|) ≠ |unstar|(|G|) ∪ |unstar|(|H|). More precisely, if |G| and |H| contain the same embedded triple, this triple will be mapped to a single blank node in |unstar|(|G| ∪ |H|), but in two potentially different blank nodes in |unstar|(|G|) ∪ |unstar|(|H|). These blank nodes will need to be unified in order to get the correct entailments.

              + +
              +
              +

              Considerations on interoperability

              + +

              The special properties (|ST|, |PT|, etc.), used in the mapping for representing embedded triples in plain RDF, are deliberately not specified. As a consequence, although any RDF-star graph |G| is semantically equivalent to an RDF graph |unstar|(|G|), that latter graph is implementation dependent, as different systems will use a different concrete IRI for each special property.

              + +

              This makes it impossible for RDF-star-aware systems to reliably exchange RDF-star graphs in their mapped form using non-RDF-star concrete syntaxes (unless of course the RDF-star graph contains no embedded triple). However, such systems can always use Turtle-star or other extended concrete syntaxes, so that does not limit interoperability among them. On the other hand, it prevents the unrestricted use of the special properties, because that may lead to surprising corner cases, as illustrated in . Supporting these corner cases would be a significant burden on RDF-star implementations, for a very limited utility.

              + +

              Furthermore, it is expected that some implementations will not rely on the mapping, but represent and work directly with the abstract syntax of RDF-star. For these implementations, having to handle both the native and the mapped representation of embedded triples would be even more challenging.

              + +
              +          
              +        
              + +

              The exchange of a mapped graph |unstar|(|G|) using standard RDF concrete syntaxes, with non-standard IRIs in place of the special properties, is however possible and useful when communicating with legacy RDF systems. For those systems, the special properties have no special meaning, so using non-standard IRIs makes no difference to them.

              + +
              + +
              + +
              + +
              + +
              +

              Historical remarks

              + +
              +

              SA-mode and PG-mode

              + +

              A lot of discussions on the RDF-star mailing list and GitHub repository refer to SA-mode and PG-mode. Those abbreviations stand for "Separate Assertion mode" and "Property Graph mode". They originate in the fact that different versions of RDF-star have been published over the years, with different designs. In PG-mode, any embedded triple was also considered asserted. SA-mode, on the other hand, allowed the use of embedded triples without those triples being automatically asserted, requiring that they be asserted separately when that was intended. SA-mode was more flexible, but induced redundancy in the use-cases that PG-mode was designed to address.

              + +

              The notion of annotations in the Turtle-star syntax was introduced to remove the need for different modes. Rather than interpret the same syntax differently in each mode, which would have caused interoperability problems and required a switch for those modes, it was decided to provide a different syntax for each use case.

              + +
                +
              • The << ... >> syntax represents a triple that is embedded without being asserted, satisfying the need formerly filled by SA-mode.
              • +
              • The :a :b :c {| :p :o ... |} annotation syntax creates triples where the subject is an embedded version of the triple asserted just before the annotation (here, :a :b :c), without the need to repeat it, satisfying the need formerly filled by PG-mode.
              • +
              +
              + +
              +

              The seminal example

              + +

              The motivating example in the original RDF-star paper [[RDF-STAR-FOUNDATION]] was on a provenance use-case, and is repeated below.

              + +
              +        
              +      
              + +

              This example was further debated on the RDF-star mailing list, as it appears to have set wrong expectations about what embedded triples represent. More precisely, from this example, one may wrongly assume that `<<:bob foaf:age 23>>` represents the occurrence of the given triple at the address `http://example.net/listing.html` (see ). This impression may be reinforced by the use of `dct:creator`: arguably, a triple (as a unique abstract entity) is not "created" by anyone, while an occurrence thereof can be said to be created or authored.

              + +

              Another serious issue with this example is that it does not allow the addition of other creators and sources for the triple: one could not tell which source corresponds to which creator. Correctly capturing this information would require additional nodes to explicitly represent triple occurrences, as in . In retrospect, the provenance use-case, although a valid use-case for RDF-star, was not the most suitable choice for an introductory example.

              + +
              + +
              + +
              + +
              + + diff --git a/corese-unit-test/src/test/resources/data/rdf-star-main/cg-spec/2021-02-18.html b/corese-unit-test/src/test/resources/data/rdf-star-main/cg-spec/2021-02-18.html new file mode 100644 index 0000000000..f8fccffa0b --- /dev/null +++ b/corese-unit-test/src/test/resources/data/rdf-star-main/cg-spec/2021-02-18.html @@ -0,0 +1,2085 @@ + + + + + + + + + +RDF-star and SPARQL-star + + + + + + + + + + + + + +
              +

              RDF-star and SPARQL-star

              + +

              + Draft Community Group Report + +

              +
              + + +
              This version:
              + https://w3c.github.io/rdf-star/cg-spec/2021-02-18.html +
              Latest published version:
              + https://w3c.github.io/rdf-star/cg-spec/ +
              +
              Latest editor's draft:
              https://w3c.github.io/rdf-star/cg-spec/editors_draft.html
              + + + +
              Editors:
              +
              Olaf Hartig + + + + + + (Linköping University) +
              Pierre-Antoine Champin + + + + + + (ERCIM) +
              + +
              Authors:
              Dörthe Arndt (TU Dresden)
              Jeen Broekstra (metaphacts)
              Bob DuCharme (CCRi)
              Gregg Kellogg (no affiliation)
              Peter F. Patel-Schneider (PARC)
              Eric Prud'hommeaux (Janeiro Digital, W3C/MIT)
              Andy Seaborne (Apache Software Foundation)
              Ted Thibodeau, Jr. (OpenLink Software, Inc.)
              Bryan Thompson (Amazon)
              +
              Contributors:
              + James Anderson (datagraph gmbh) +
              + Ghislain Atemezing (Mondeca) +
              + Pavel Klinov (Stardog Union) +
              + Holger Knublauch (TopQuadrant, Inc.) +
              + Andreas Kuckartz +
              +
              Participate:
              + GitHub w3c/rdf-star +
              + File a bug +
              + Commit history +
              + Pull requests +
              +
              + + +
              +
              +

              Abstract

              +

              TODO

              +
              +

              Status of This Document

              + This specification was published by the + RDF-DEV Community Group. It is not a W3C Standard nor is it + on the W3C Standards Track. + + Please note that under the + W3C Community Contributor License Agreement (CLA) + there is a limited opt-out and other conditions apply. + + Learn more about + W3C Community and Business Groups. +

              +

              + GitHub Issues are preferred for + discussion of this specification. + + +

              + +
              +

              1. Introduction

              + +
              +

              1.1 Background and Motivation

              This section is non-normative.

              + +

              TODO, citing [RDF-STAR-FOUNDATION]

              +
              + +
              +

              1.2 Overview

              This section is non-normative.

              + +

              The RDF data model lets you state facts in three-part subject-predicate-object statements known as triples. For example, with a single RDF triple you can say that employee38 has a familyName of "Smith". A triple's predicate is a property specified with an IRI (an Internationalized version of a URI) to identify the namespace of the property name. A triple's subject and object can each be an IRI referencing any entity, and the object can also be a literal value such as "Smith" or data of other types such as dates, numbers, or Boolean values.

              + +

              The subject and object of a triple can themselves reference triples. In the statement "employee22 claims that employee38 has a jobTitle of 'Assistant Designer'", the object of the triple that has employee22 as its subject references the statement "employee38 has a jobTitle of 'Assistant Designer'". This use of a triple as the subject or object resource of another triple so that we can say things about that triple is known as reification.

              +

              The concept of reification has always been part of RDF, but expressing it in RDF concrete syntaxes such as Turtle, N-Triples, and RDF/XML has been verbose and cumbersome. This specification describes a new, more compact conceptual data model and Turtle concrete syntax for reification known as RDF-star and Turtle-star, respectively. This model and syntax enable the creation of concise triples that reference other triples as subject and object resources.

              + +

              Triples that include a triple as a subject or an object are known as RDF-star triples. The following dataset shows the example RDF-star triples from above using the Turtle-star syntax, which uses double angle brackets to enclose a triple serving as a subject or object resource:

              + +
              +
              + Example 1 +
              @prefix :    <http://www.example.org/> .
              +
              +:employee38 :familyName "Smith" .
              +:employee22 :claims << :employee38 :jobTitle "Assistant Designer" >> .
              +
              + +

              After declaring a prefix so that IRIs can be abbreviated, the first triple in this example asserts that employee38 has a familyName of "Smith". Note that this dataset does not assert that employee38 has a jobTitle of "Assistant Designer"; it says that employee22 has made that claim. In other words, the triple "employee38 has a jobTitle of 'Assistant Designer'" is not what we call an asserted triple, like "employee38 has a familyName of 'Smith'" above; it is known as an embedded triple. (If we added the triple :employee38 :jobTitle "Assistant Designer" below the triple about employee22's claim in the example above, then this triple about employee38's jobTitle would be both an embedded triple and an asserted one.)

              + +

              This specification also describes an extension to the SPARQL Protocol and Query Language known as SPARQL-star for the querying of RDF-star triples. For example, the following SPARQL-star query asks "who has made any claims about employee38?"

              + +
              +
              + Example 2 +
              PREFIX : <http://www.example.org/> 
              +
              +SELECT ?claimer WHERE {
              +   ?claimer :claims << :employee38 ?property ?value >>
              +}
              +
              + + +

              SPARQL query triple patterns that include a triple pattern as a subject or object are known as SPARQL-star triple patterns.

              + +
              Issue 93: annotation-syntax example in the overview/primer part

              The overview/primer part of the report should also contain an example that highlights the availability of the annotation syntax (not only on the data-level but also on the query-level).

              + +
              Issue 94: SPARQL-star update example in the overview/primer part

              The overview/primer part of the report should also contain an example that hints at the fact that the spec also covers updates.

              + +

              For the remainder of this document, examples will assume that the following prefixes have been declared to represent the IRIs shown with them here:

              + + + + + + + + +
              :<http://www.example.org/>
              rdfs:<http://www.w3.org/2000/01/rdf-schema#>
              owl:<http://www.w3.org/2002/07/owl#>
              prov:<http://www.w3.org/ns/prov#>
              dc:<http://purl.org/dc/elements/1.1/>
              dct:<http://purl.org/dc/terms/>
              + +
              + +

              1.3 Conformance

              As well as sections marked as non-normative, all authoring guidelines, diagrams, examples, and notes in this specification are non-normative. Everything else in this specification is normative.

              + The key words MAY, MUST, and MUST NOT in this document + are to be interpreted as described in + BCP 14 + [RFC2119] [RFC8174] + when, and only when, they appear in all capitals, as shown here. +

              +
              Issue 3: Do we need more things in the 'conformance' section? laterprocess

              For the moment, we only have the boilerplate text generated by respec.

              +
              + +
              + +
              +

              2. Concepts and Abstract Syntax

              + +

              In the following, we introduce a number of definitions specific to SPARQL-star, which rely on the following notions (extending some of them) defined in RDF 1.1 Concepts and Abstract Syntax [RDF11-CONCEPTS]: + blank node, + default graph, + graph name, + IRI, + literal, + named graphs, + object, + predicate, + RDF dataset, + RDF graph, + RDF triple, + and subject +

              + +

              An RDF-star graph is a set of RDF-star triples.

              + +

              An RDF-star triple is a 3-tuple defined recursively as follows:

              + + +

              As for RDF triples, we call the 3 components of an RDF-star triple its subject, predicate and object, respectively. From the definitions above, it follows that any RDF graph is also an RDF-star graph. Note also that, by definition, an RDF-star triple cannot contain itself and cannot be nested infinitely.

              + +

              IRIs, literals, blank nodes and RDF-star triples are collectively known as RDF-star terms.

              + +

              For every RDF-star triple t, we define its constituent terms (or simply constituents) as the set containing its subject, its predicate, its object, plus all the constituent terms of its subject and/or its object if they are themselves RDF-star triples. By extension, we define the constituent terms of an RDF-star graph to be the union set of the constituent terms of all its triples.

              + +
              + Consider the following RDF-star triple (represented in Turtle-star): +
              +
              + Example 3 +
              << _:a :name "Alice" >> :statedBy :bob.
              +
              + Its set of constituent terms comprises the IRIs :name, :statedBy, :bob, the blank node _:a, the literal "Alice", and the triple << _:a :name "Alice" >>. +
              + +

              An RDF-star triple used as the subject or object of another RDF-star triple is called an embedded triple. An RDF-star triple that is an element of an RDF-star graph is called an asserted triple. Note that, in a given RDF-star graph, the same triple MAY be both embedded and asserted.

              + +

              An RDF-star dataset is a collection of RDF-star graphs, and comprises:

              + + + +

              Again, this definition is an extension of the notion of RDF dataset, hence it follows that any RDF dataset is also an RDF-star dataset.

              + +
              +

              2.1 Triples and occurrences

              This section is non-normative.

              + +

              According to the definitions above, an RDF-star triple is an abstract entity whose identity is entirely defined by its subject, predicate and object. Conversely, given three RDF-star terms s, p, and o, there is exactly and only one RDF-star triple with subject s, predicate p and object o. This unique triple (s, p, o) can be embedded as the subject or object of multiple other triples, but must be assumed to represent the same thing everywhere it occurs, just like the same IRI p is assumed to represent the same thing everywhere it occurs.

              + +

              In some situations, however, it might be necessary to distinguish the occurrences of a triple in different graphs. Consider the following sentence: "The triple <http://example.org/s> <http://example.org/p> <http://example.org/o> in (the graph represented by) file1.ttl was added by Alice, and the same triple in file2.ttl was added by Bob." Note that the words "same triple" in this sentence may be confusing, because although the triple (as an abstract entity) is the same, its respective occurrences are different things, each within a different file and with a different author (this is known, in philosophy and linguistics, as the type-token distinction). As the embedded triple represents a unique thing, adequately conveying the meaning of the sentence above requires additional nodes for representing the two distinct occurrences. One possible solution is illustrated in the following example (using the Turtle-star concrete syntax described in the next section).

              + +
              +
              + Example 4 +
              _:a :occurenceOf << :s :p :o >> ;
              +    :in <file1.ttl> ;
              +    dct:creator :alice.
              +_:b :occurenceOf << :s :p :o >> ;
              +    :in <file2.ttl> ;
              +    dct:creator :bob.
              +
              + +
              + +
              + +
              +

              3. Concrete Syntaxes

              +
              +

              3.1 Turtle-star

              +

              In this section, we present Turtle-star, an extension of the Turtle format [TURTLE] allowing the representation of RDF-star graphs. For the sake of conciseness, we only describe here the differences between Turtle-star and Turtle.

              + +
              +

              3.1.1 Grammar

              +

              Turtle-star is defined to follow the same grammar as Turtle, except for the EBNF productions specified below, which replace the productions having the same number (if any) in the original grammar.

              + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
              [8]objectList::= + object + annotation? + ( + ',' + object + annotation? + )* +
              [10]subject::= + iri | + BlankNode | + collection | + embTriple +
              [12]object::= + iri | + BlankNode | + collection | + blankNodePropertyList | + literal | + embTriple +
              [27]embTriple::= + '<<' + embSubject + verb + embObject + '>>' +
              [28]embSubject::= + iri | + BlankNode | + embTriple +
              [29]embObject::= + iri | + BlankNode | + literal | + embTriple +
              [31]annotation::= + '{|' + predicateObjectList + '|}' +
              + +
              Note

              The changes are that subject and object productions have been extended to accept embedded triples, which are described by the new productions 27 to 29. Note that embedded triples accept a more restricted range of subject and object expressions than asserted triples. Additionally, the objectList production now accepts an optional annotation after each object.

              +
              + +
              +

              3.1.2 Parsing

              +

              A Turtle-star parser is similar to a Turtle parser as defined in Section 7 of the Turtle specification [TURTLE], with an additional item in its state :

              + +

              Additionally, the curSubject can be bound to any RDF-star term (including an embedded triple).

              + +

              A Turtle-star document defines an RDF-star graph composed of a set of RDF-star triples. The subject and embSubject productions set the curSubject. The verb production sets the curPredicate. The object and embObject productions set the curObject. Finishing the object production, an RDF-star triple curSubject curPredicate curObject is generated and added to the RDF-star graph.

              + +

              Beginning the embTriple production records the curSubject and curPredicate. Finishing the embTriple production yields the RDF-star triple curSubject curPredicate curObject and restores the recorded values of curSubject and curPredicate.

              + +

              Beginning the annotation production records the curSubject and curPredicate, and sets the curSubject to the RDF-star triple curSubject curPredicate curObject. Finishing the annotation production restores the recorded values of curSubject and curPredicate.

              + +

              All other productions MUST be handled as specified by Section 7 of the Turtle specification [TURTLE], while still applying the changes above recursively.

              +
              +
              + +
              +

              3.2 N-Triples-star

              + +

              This section describes N-Triples-star, a minimal extension of the N-Triples format [N-TRIPLES] allowing a subject or an object of an RDF-star triple to be an embedded triple.

              + +
              +

              3.2.1 Grammar

              +

              N-Triples-star is defined to follow the same grammar as the N-Triples Grammar, except for the EBNF productions specified below, which replace the productions having the same number (if any) in the original grammar.

              + + + + + + + + + + + + + + + + + + + + + + +
              [3]subject::=IRIREF | BLANK_NODE_LABEL | embTriple
              [5]object::=IRIREF | BLANK_NODE_LABEL | literal | embTriple
              [7]embTriple::="<<" subject predicate object ">>"
              + +
              Note

              As with Turtle-star, the changes are that subject and object productions have been extended to accept embedded triples, which are described by the new production 7. N-Triples-star does not include an annotation form.

              +
              + +
              +

              3.2.2 Parsing

              +

              In contrast to [N-TRIPLES], N-Triples-star allows recursion on the subject and object productions.

              + +

              An N-Triples-star document defines an RDF-star graph composed of a set of RDF-star triples. The triple production produces an RDF-star triple composed of a subject, predicate and object.

              + +

              In addition to the Term Constructors defined in [N-TRIPLES], an additional constructor is defined for embTriple of type RDF-star triple defined by the terms constructed for subject, predicate and object.

              + +

              All other productions MUST be handled as specified by Section 8.1 of the N-Triples specification [N-TRIPLES], while still applying the changes above recursively.

              +
              +
              + +
              +

              3.3 N-Quads-star

              + +

              The [N-QUADS] format is extended to describe the N-Quads-star format using the same production updates described in the N-Triples-star Grammar.

              + +
              Note

              As RDF-star describes embedded triples and not embedded quads, the graphLabel component of an N-Quads statement does not apply to the embTriple component.

              + +

              An N-Quads-star document defines an RDF-star dataset composed of + a single default graph, and zero or more named graphs, + all of which are RDF-star graphs.

              + +

              A conforming N-Quads-star parser MUST parse any valid + N-Quads document and additionally parse the + subject and + object productions + from N-Triples-star to generate RDF-star triples which are + added to either the default graph or associated + named graph, as appropriate.

              +
              + +
              +

              3.4 Other Concrete Syntaxes

              This section is non-normative.

              + +

              While this document specifies a small number of concrete syntaxes, nothing prevents other concrete syntaxes of RDF-star from being proposed. In particular, other existing concrete syntaxes for RDF, such as RDF/XML [RDF-SYNTAX-GRAMMAR], could be extended to support RDF-star.

              +
              + +
              + +
              +

              4. SPARQL-star Query Language

              + +

              This Section introduces SPARQL-star, which is an RDF-star-aware extension of the RDF query language SPARQL [SPARQL11-QUERY]; i.e., SPARQL-star can be used to query RDF-star graphs.

              + +
              +

              4.1 Initial Definitions

              + +

              In the following, we introduce a number of SPARQL-star-specific definitions, which rely on the following notions, defined in SPARQL 1.1 Query Language [SPARQL11-QUERY]: RDF term, query variable, triple pattern, + property path pattern, + property path expression, + and solution mapping.

              + +

              A SPARQL-star triple pattern is a 3-tuple that is defined recursively as follows:

              +
                +
              1. Every SPARQL triple pattern is a SPARQL-star triple pattern; +
              2. If t and t' are SPARQL-star triple patterns, x is an RDF term or a query variable, and p is an IRI or a query variable, then (tpx), (xpt), and (tpt') are SPARQL-star triple patterns. +
              + +

              As for RDF-star triples, a SPARQL-star triple pattern MUST NOT contain itself.

              + +

              A SPARQL-star basic graph pattern (BGP-star) is a set of SPARQL-star triple patterns.

              + +

              A SPARQL-star property path pattern is a 3-tuple (s,p,o) where

              + + +
              Issue 7: Property path patterns in SPARQL* sparql*

              I have added the definition of a SPARQL* property path pattern into the draft just for the sake of having such a definition. We need to think about whether it is useful to add this to SPARQL*, in which case we need to define the semantics of such SPARQL* property path patterns.

              +

              In fact, no matter what we decide, even for standard property path patterns, the semantics may have to be extended to use them over RDF* graphs.

              + +

              A SPARQL-star solution mapping μ is a partial function from the set of all query variables to the set of all RDF-star terms. + The domain of μ, denoted by dom(μ), is the set of query variables for which μ is defined.

              + +
              Note

              The notion of a SPARQL-star solution mapping extends the notion of a standard SPARQL solution mapping; that is, every SPARQL solution mapping is a SPARQL-star solution mapping. However, in contrast to SPARQL solution mappings, SPARQL-star solution mappings may map variables also to RDF-star triples.

              + +

              All notions related to SPARQL solution mappings carry over naturally to SPARQL-star solution mappings. In particular, the definition of compatibility extends naturally to SPARQL-star solution mappings: two SPARQL-star solution mappings μ1 and μ2 are compatible if, for every variable v that is both in dom(μ1) and in dom(μ2), μ1(v) and μ2(v) are the same RDF-star term. + In this case, μ1 ∪ μ2 is also a SPARQL-star solution mapping. + Moreover, for any SPARQL-star solution mapping μ we write card[Ω](μ) to denote the cardinality of μ in a multiset Ω of such mappings. + Finally, given a BGP-star B and a SPARQL-star solution mapping μ, we write μ(B) to denote the result of replacing every variable v in B for which μ is defined with μ(v). +

              + +

              Next, we aim to carry over the notion of solutions for BGPs to BGP-star. To this end, we first define an auxiliary concept that carries over the notion of an + RDF instance mapping [RDF11-MT] to RDF-star.

              + +

              An RDF-star instance mapping σ is a partial function from the set of all blank nodes to the set of all RDF-star terms. + The domain of σ, denoted by dom(σ), is the set of blank nodes for which σ is defined.

              + +

              Similar to the corresponding notation for solution mappings, for an RDF-star instance mapping σ and a BGP-star B we write σ(B) to denote the result of replacing every blank node b in B for which σ is defined with σ(b).

              + +

              Now we are ready to define the notion of solution for BGP-star.

              + +

              Given a BGP-star B and an RDF-star graph G, a SPARQL-star solution mapping μ is a solution for the BGP-star B over G if it has the following two properties

              +
                +
              • dom(μ) is equivalent to the set of query variables in B, and +
              • there exists an RDF-star instance mapping σ such that dom(σ) is equivalent to the set of blank nodes in B and μ(σ(B)) is a subgraph of G. +
              + +
              + +
              +

              4.2 Grammar

              + +

              SPARQL-star is defined to follow the same grammar as SPARQL, except for the EBNF productions specified below, which replace the productions having the same number (if any) in the original grammar.

              + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
              [60]Bind::= + 'BIND' + '(' + ( + Expression | + EmbTP + ) + 'AS' + Var + ')' +
              [75]TriplesSameSubject::= + VarOrTermOrEmbTP + PropertyListNotEmpty + | + TriplesNode + PropertyList +
              [80]Object::= + GraphNode | + EmbTP +
              [81]TriplesSameSubjectPath::= + VarOrTermOrEmbTP + PropertyListPathNotEmpty + | + TriplesNode + PropertyListPath +
              [105]GraphNodePath::= + VarOrTermOrEmbTP | + TriplesNodePath | +
              [174]EmbTP::= + '<<' + EmbSubjectOrObject + Verb + EmbSubjectOrObject + '>>' +
              [175]EmbSubjectOrObject::= + Var | + BlankNode | + iri | + RDFLiteral | + NumericLiteral | + BooleanLiteral | + EmbTP +
              [176]VarOrTermOrEmbTP::= + Var | + GraphTerm | + EmbTP +
              + +

              + This introduces a notation for embedded triple patterns + (productions [174] and following), + which is similar to the one defined for embedded triples in § 3.1 Turtle-star, + but accepting also variables. + These embedded triple patterns are allowed in the subject + ([75], [81]) + and object + ([80], [105]) + positions of SPARQL-star triple patterns, + as well as in BIND statements + ([60]). +

              + +
              Issue 6: FIND instead of BIND sparql*

              Instead of reusing the keyword BIND for SPARQL* (as in my original proposal), we may want to consider using a different keyword for this functionality because the behavior is a bit different. For instance, @klinovp has mentioned this issue in an email on the mailing list. In another email, @afs has proposed to use the keyword FIND instead.

              + +
              Issue 9: Include Annotation syntax in Turtle* and SPARQL* concrete-syntaxsparql*

              This has already been discussed on the mailing list.

              +

              The idea would be to have a notation like

              +
              :bob :age 42 {| :source <http://example.org/~bob/> |}.
              +
              +

              as shortcut for

              +
              :bob :age 42.
              +<< :bob :age 42 >> :source <http://example.org/~bob/>.
              +
              + +
              + +
              +

              4.3 Translation to the Algebra

              + +

              Based on the SPARQL grammar, the SPARQL specification defines the process of converting graph patterns and solution modifiers in a SPARQL query string into a SPARQL algebra expression [SPARQL11-QUERY, Section 18.2]. This process must be adjusted to consider the extended grammar introduced above. In the following, any step of the conversion process that requires adjustment is discussed.

              + +
              +

              4.3.1 Variable Scope

              + +

              As a basis of the translation, the SPARQL specification introduces a notion of in-scope variables. To cover the new syntax elements introduced in § 4.2 Grammar this notion MUST be extended as follows.

              + + +
              + +
              +

              4.3.2 Expand Syntax Forms

              + +

              The translation process starts with expanding abbreviations for IRIs and triple patterns [SPARQL11-QUERY, Section 18.2.2.1]. This step MUST be extended in two ways:

              + +
                +
              1. +

                Abbreviations for triple patterns with embedded triple patterns MUST be expanded as if each embedded triple pattern was a variable (or an RDF term). + +

                + For instance, the following syntax expression: +
                +
                + Example 5 +
                <<?c a owl:Class>> dct:source ?src ;
                +    :entailing <<?c a rdfs:Class>> .
                +
                + must be expanded to +
                +
                + Example 6 +
                <<?c a owl:Class>> dct:source ?src .
                +<<?c a rdfs:Class>> :entailing <<?c a rdfs:Class>> .
                +
                +
                +
              2. +
              3. +

                Abbreviations for IRIs in all embedded triple patterns MUST be expanded.

                + +
                + For instance, the embedded triple pattern +
                +
                + Example 7 +
                <<?c a rdfs:Class>>
                +
                + must be expanded to +
                +
                + Example 8 +
                <<?c <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2000/01/rdf-schema#Class>>>
                +
                +
                +
              4. +
              +
              + +
              +

              4.3.3 Translate Property Path Patterns

              + +

              The translation of property path patterns has to be adjusted because the extended grammar allows for SPARQL-star property path patterns whose subject or object is a SPARQL-star triple pattern.

              + +

              The translation as specified in the W3C specification distinguishes four cases. The first three of these cases do not require adjustment because they are taken care of either by recursion or by the adjusted translation of basic graph patterns (as defined in § 4.3.4 Translate Basic Graph Patterns below). However, the fourth case MUST be adjusted as follows.

              + +

              Let X P Y be a string that corresponds to the fourth case in [SPARQL11-QUERY, Section 18.2.2.4]. Given the grammar introduced in § 4.2 Grammar, X and Y may be an RDF term, a variable, or an embedded triple pattern, respectively (and P is a property path expression). The string X P Y is translated to the algebra expression Path(X’,P,Y’) where X’ and Y’ are the result of calling a function named Lift for X and Y, respectively. For some input string Z (such as X or Y) that can be an RDF term, a variable, or an embedded triple pattern, the function Lift is defined recursively as follows:

              + +
                +
              1. If Z is an embedded triple pattern <<S,P,O>> then return the SPARQL-star triple pattern (Lift(S), P, Lift(O));
              2. +
              3. Otherwise, return Z.
              4. +
              + +
              Note
              + The purpose of this translation step is to convert any property path pattern as can be written based on the extended grammar for SPARQL-star (cf. § 4.2 Grammar) into a SPARQL-star property path pattern as considered in the algebra. To this end, the function Lift translates every embedded triple pattern as can be written in the SPARQL-star syntax into a SPARQL-star triple pattern. +
              +
              + +
              +

              4.3.4 Translate Basic Graph Patterns

              + +

              After translating property path patterns, the translation process collects any adjacent triple patterns [...] to form a basic graph pattern [SPARQL11-QUERY, Section 18.2.2.5]. This step has to be adjusted because triple patterns in the extended syntax may have an embedded triple pattern in their subject position or in their object position (or in both). To ensure that every result of this step is a BGP-star, before adding a triple pattern to its corresponding collection, its subject and object MUST be replaced by the result of calling function Lift for the subject and the object, respectively.

              +
              + +
              +

              4.3.5 Translate BIND Clauses with an Embedded Triple Pattern

              + +

              The extended grammar in § 4.2 Grammar allows for BIND clauses with an embedded triple pattern. The translation of such a BIND clause to a SPARQL algebra expression requires a new algebra symbol:

              + + + +

              Then, any string of the form BIND( T AS v ) with T being an embedded triple pattern (i.e., not a standard BIND expression) is translated to the algebra expression TR(T’, v) where T’ is the result of the function Lift for T.

              + +

              Notice, the translation of BIND clauses with an embedded triple pattern as defined in this section is used during the translation of group graph patterns. The case of BIND clauses with an embedded triple pattern is covered in this translation of group graph patterns by the last, “catch all other” IF statement (i.e., the IF statement with the condition E is any other form) and not by the IF statement for BIND clauses with an expression.

              +
              +
              + +
              +

              4.4 Evaluation Semantics

              + +

              The SPARQL specification defines a function eval(D(G), algebra expression) as the evaluation of an algebra expression with respect to a dataset D having active graph G [SPARQL11-QUERY, Section 18.6]. Recall that the dataset D in the context of SPARQL-star is an RDF-star dataset and, thus, the active graph G is an RDF-star graph, and so is any other graph in dataset D. The definition of the eval function is recursive; the two base cases of this definition for SPARQL-star are given as follows:

              + +
                +
              1. For every BGP-star B, eval(D(G), B) is a multiset Ω that consists of all SPARQL-star solution mappings that are a solution for the BGP-star B over G. For every such mapping μ, card[Ω](μ) is the number of distinct RDF-star instance mappings σ such that dom(σ) is equivalent to the set of blank nodes in B and μ(σ(B)) is a subgraph of G. (For any SPARQL-star solution mapping μ' that is not a solution for B over G, we have that card[Ω](μ')=0; i.e., μ' is not in Ω.)
              2. + +
              3. For any algebra expression E of the form TR(tp, ?v) where tp is a SPARQL-star triple pattern and ?v is a variable (as introduced in § 4.3.5 Translate BIND Clauses with an Embedded Triple Pattern), eval(D(G), E) is a multiset Ω that consists of as many SPARQL-star solution mappings as there are solution mappings in Ω', where Ω'=eval(D(G),{tp}), such that for every μ' in Ω' there exists a μ in Ω that has the following four properties: +
                  +
                1. dom(μ) = dom(μ') ∪ {?v}
                2. +
                3. μ and μ' are compatible
                4. +
                5. μ(?v) = μ'(tp)
                6. +
                7. card[Ω](μ) = card[Ω'](μ')
                8. +
                +
              4. +
              + +

              For any other algebra expression, the SPARQL specification defines algebra operators [SPARQL11-QUERY]. These definitions can be extended naturally to operate over multisets of SPARQL-star solution mappings (instead of ordinary solution mappings). Given this extension, the recursive steps of the definition of the eval function for SPARQL-star are the same as in the SPARQL specification.

              +
              + +
              +

              4.5 Query Result Formats

              + +

              In SPARQL, queries can take four forms: SELECT, CONSTRUCT, DESCRIBE, and ASK - see SPARQL1.1 Query, Section 16 [SPARQL11-QUERY]. The first of these returns a sequence of solution mappings that contain variable bindings. The second and third both return an RDF graph, and the last returns a boolean value. +

              +

              The result of the ASK query form is not changed by the introduction of RDF-star, and the result of the CONSTRUCT and DESCRIBE forms can be represented by Turtle-star. However, since the SELECT form deals with returning individual RDF terms, the specific serialization formats for representing such query results need to be extended so that the new embedded triple RDF term can be represented. In this section, we propose extensions for the two most common formats for this purpose: SPARQL 1.1 Query Results JSON Format, and SPARQL Query Results XML Format (Second Edition).

              + +
              Issue 43: New mime types and XML namespace for the extended query result formats concrete-syntaxsparql*

              In addition to defining the extended formats for serializing the result of a SPARQL* SELECT query (#12 and #13), we have to decide whether we need/want new mime types for these extended formats? Similarly, do we need/want to introduce another namespace for the extended XML result format?

              + +
              +

              4.5.1 SPARQL-star Query Results JSON Format

              +

              + The result of a SPARQL SELECT query is serialized in JSON as defined in SPARQL 1.1 Query Results JSON Format, which specifies a JSON representation of variable bindings to RDF terms (see [sparql11-results-json, Section 3.2]). To accommodate the new RDF term for embedded triples that RDF-star introduces, the table of RDF term JSON representations in sparql11-results-json, Section 3.2.2 is extended with the following entry: +

              +
              +
              An embedded triple with subject RDF term S, predicate RDF term P and object RDF term O
              +
              +
              {
              +  "type": "triple",
              +  "value": {
              +     "subject": S,
              +     "predicate": P,
              +     "object": O
              +  }
              +}
              + where S, P and O are encoded using the same format, recursively. +
              +
              +
              + Consider the following RDF term, an embedded triple in Turtle-star syntax: +
              +
              + Example 9 +
              << <http://example.org/alice> <http://example.org/name> "Alice" >>
              +
              + This term is represented in JSON as follows: +
              +
              {
              +  "type": "triple",
              +  "value": {
              +     "subject": {
              +        "type": "uri",
              +        "value" "http://example.org/alice"
              +     },
              +     "predicate": {
              +        "type": "uri",
              +        "value" "http://example.org/name"
              +     },
              +     "object": {
              +        "type": "literal",
              +        "value" "Alice",
              +        "datatype": "http://www.w3.org/2001/XMLSchema#string"
              +     },
              +  }
              +}
              +
              +
              + +
              + +
              +

              4.5.2 SPARQL-star Query Results XML Format

              +

              + The result of a SPARQL SELECT query is serialized in XML as defined in SPARQL Query Results XML Format (Second Edition). This format proposes an XML representation of variable bindings to RDF terms. +

              +

              To accommodate the new RDF term for embedded triples that RDF-star introduces, the list of RDF terms and their XML representations in [rdf-sparql-XMLres, Section 2.3.1] is extended as follows: +

              +

              +

              +
              An embedded triple with subject term S, predicate term P, and object term O
              +
              +
              <binding>
              +  <triple>
              +    <subject>S</subject>
              +    <predicate>P</predicate>
              +    <object>O</object>
              +  </triple>
              +</binding>
              + where S, P and O are encoded recursively, using the same format, without the enclosing <binding> tag. +
              +
              +
              + Consider the following RDF term, an embedded triple in Turtle-star syntax: +
              +
              << <http://example.org/alice> <http://example.org/name> "Alice" >>
              +
              + This term is represented in XML as follows: +
              +
              <triple>
              +    <subject>
              +        <uri>http://example.org/alice</uri>
              +    </subject>
              +    <predicate>
              +        <uri>http://example.org/name</uri>
              +    </predicate>
              +    <object>
              +        <literal datatype='http://www.w3.org/2001/XMLSchema#string'>Alice</literal>
              +    </object>
              +</triple>
              +
              +
              + + + +
              + +
              + +
              + +
              +

              5. SPARQL-star Update

              + +
              Issue 14: Section that defines SPARQL* Update sparql*

              We need a section that defines SPARQL* Update. The text for this section can be taken from the following document: https://blog.liu.se/olafhartig/documents/sparql-update/

              + +
              + +
              +

              6. RDF-star Semantics

              + +

              In this section, we provide a model-theoretic semantics for RDF-star, based on the one defined in RDF 1.1 Semantics [RDF11-MT]. More precisely, we define a mapping from RDF-star's abstract syntax into standard RDF's abstract syntax, and define the semantics of RDF-star graphs in terms of the semantics of the mapped RDF graphs.

              + +

              In the following, we introduce a number of definitions specific to RDF-star, which rely on the following notions, defined in RDF 1.1 Concepts and Abstract Syntax [RDF11-CONCEPTS] and RDF 1.1 Semantics [RDF11-MT]: + datatype, + lexical form, + simple literal, + ill-typed, + merging, + satisfiability, + unsatisfiability, + entailment, + and equivalence. +

              + +
              +

              6.1 Mapping RDF-star abstract syntax to RDF

              + +

              We consider six IRIs ST, PT, OT, SS, PS and OS that will have a special meaning in our mapping.

              + +

              We define a mapping L that maps any IRI or literal t to a literal with

              +

              + +

              Given an RDF-star graph G, the following steps transform it into an RDF graph that we call unstar(G).

              + +
                +
              1. Pick an RDF-star triple (s, p, o) in the constituents of G such that neither s nor o is an embedded triple.
              2. +
              3. Mint a fresh blank node b, and replace by b all occurrences of (s, p, o) in the subject or object position of an asserted or embedded triple of G.
              4. +
              5. Add the following asserted triples to G:
                  +
                • (b, ST, s)
                • +
                • (b, PT, p)
                • +
                • (b, OT, o) unless o is an ill-typed literal
                • +
                • (b, SS, L(s)) unless s is blank node
                • +
                • (b, PS, L(p))
                • +
                • (b, OS, L(o)) unless o is blank node
                • +
              6. +
              7. Repeat the steps above until there are no embedded triples left in G.
              8. +
              +

              After these steps, unstar(G) is an RDF graph, as it contains no embedded triples. Note that if G was already an RDF graph, then unstar(G) = G.

              + +
              + +
              +

              6.2 Entailment of RDF-star graphs

              + +

              Following RDF 1.1 Semantics, we extend the notions of satisfiability and entailment for RDF-star graphs. Given two RDF-star graphs G and H:

              +

              +
              + +
              +

              6.3 Remarks

              This section is non-normative.

              + +
              +

              6.3.1 Combining RDF-star graphs

              + +

              Care must be taken when RDF graphs that result from RDF-star graphs are combined through union or merging. Given two RDF-star graphs G and H, it may be the case that unstar(G ∪ H) ≠ unstar(G) ∪ unstar(H). More precisely, if G and H contain the same embedded triple, this triple will be mapped to a single blank node in unstar(G ∪ H), but in two potentially different blank nodes in unstar(G) ∪ unstar(H). These blank nodes will need to be unified in order to get the correct entailments.

              + +
              +
              +

              6.3.2 Considerations on interoperability

              + +

              The special properties (ST, PT, etc.), used in the mapping for representing embedded triples in plain RDF, are deliberately not specified. As a consequence, although any RDF-star graph G is semantically equivalent to an RDF graph unstar(G), that latter graph is implementation dependent, as different systems will use a different concrete IRI for each special property.

              + +

              This makes it impossible for RDF-star-aware systems to reliably exchange RDF-star graphs in their mapped form using non-RDF-star concrete syntaxes (unless of course the RDF-star graph contains no embedded triple). However, such systems can always use Turtle-star or other extended concrete syntaxes, so that does not limit interoperability among them. On the other hand, it prevents the unrestricted use of the special properties, because that may lead to surprising corner cases, as illustrated in Example 13. Supporting these corner cases would be a significant burden on RDF-star implementations, for a very limited utility.

              + +

              Furthermore, it is expected that some implementations will not rely on the mapping, but represent and work directly with the abstract syntax of RDF-star. For these implementations, having to handle both the native and the mapped representation of embedded triples would be even more challenging.

              + +
              +
              :alice :says << :bob :age 42 >>.
              +<< :bob :age 42 >> :ST :charlie;
              +                   :SS "<http://example.org/charlie>".
              +
              +# assuming that :ST and :SS stand for the corresponding special IRIs,
              +# the graph above entails the graph below
              +
              +:alice :says << :charlie :age 42 >>.
              +
              + +

              The exchange of a mapped graph unstar(G) using standard RDF concrete syntaxes, with non-standard IRIs in place of the special properties, is however possible and useful when communicating with legacy RDF systems. For those systems, the special properties have no special meaning, so using non-standard IRIs makes no difference to them.

              + +
              + +
              + +
              Issue 95: alternative semantic characterisations for RDF* semantics

              There are several resent proposals for semantics.

              +

              The proposals can be found in
              +1/ #81
              +2/ #88
              +3/ https://lists.w3.org/Archives/Public/public-rdf-star/2021Jan/0057.html
              +4/ https://lists.w3.org/Archives/Public/public-rdf-star/2021Jan/0059.html
              +and
              +5/ https://lists.w3.org/Archives/Public/public-rdf-star/2021Feb/0038.html

              +

              All proposals create RDF graphs and the semantics of RDF* is defined as a semantics for these RDF graphs.

              +

              The differences between them lie in four areas:
              +A) RDF* graphs as an abstract syntax
              +B) hidden vocabulary for RDF* reification
              +C) special datatype(s) for embedded triples
              +D) extended semantics for RDF* reification vocabulary

              +

              First, there is whether there is the notion of an RDF* graph. RDF* surface syntax can be expressed by parsing RDF* surface syntax into RDF* graphs and then transforming these RDF* graphs into RDF graphs. Alternatively, RDF* surface syntax can be expressed by parsing surface syntax directly into RDF graphs.

              +

              Second, there is whether the vocabulary used to reify embedded triples is hidden or not. If so, then RDF* embedded triples cannot be constructed by means other than embedded triple syntax. If not, then regular RDF constructs (almost certainly reification) can be used to get the same effect as embedded triples.

              +

              Third, there is whether one or more special datatypes are needed for the subject, predicate, or object of embedded triples.

              +

              Fourth, there is whether the semantics of RDF* needs an extension of RDF semantics on the resultant RDF graphs (aside from the semantics of any new datatypes).

              +

              Here is a table of my understanding of how the proposals stand on the above differences.

              + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
              Characteristic1/ P812/ P883/574/ 595/ 38
              A) RDF* graphsYESYESYESYESNO
              B) hidden vocabularyYESYESNONONO
              C) special datatype(s)YESNOYESNONO
              D) extended semanticsYESNONONONO
              + +
              + +
              +

              A. Historical remarks

              This section is non-normative.

              + +
              +

              A.1 SA-mode and PG-mode

              + +

              A lot of discussions on the RDF-star mailing list and GitHub repository refer to SA-mode and PG-mode. Those abbreviations stand for "Separate Assertion mode" and "Property Graph mode". They originate in the fact that different versions of RDF-star have been published over the years, with different designs. In PG-mode, any embedded triple was also considered asserted. SA-mode, on the other hand, allowed the use of embedded triples without those triples being automatically asserted, requiring that they be asserted separately when that was intended. SA-mode was more flexible, but induced redundancy in the use-cases that PG-mode was designed to address.

              + +

              The notion of annotations in the Turtle-star syntax was introduced to remove the need for different modes. Rather than interpret the same syntax differently in each mode, which would have caused interoperability problems and required a switch for those modes, it was decided to provide a different syntax for each use case.

              + +
                +
              • The << ... >> syntax represents a triple that is embedded without being asserted, satisfying the need formerly filled by SA-mode.
              • +
              • The :a :b :c {| :p :o ... |} annotation syntax creates triples where the subject is an embedded version of the triple asserted just before the annotation (here, :a :b :c), without the need to repeat it, satisfying the need formerly filled by PG-mode.
              • +
              +
              + +
              +

              A.2 The seminal example

              + +

              The motivating example in the original RDF-star paper [RDF-STAR-FOUNDATION] was on a provenance use-case, and is repeated below.

              + +
              +
              # the controversial seminal example
              +:bob foaf:name "Bob".
              +<<:bob foaf:age 23>> dct:creator <http://example.com/crawlers#c1> ;
              +                     dct:source <http://example.net/listing.html> .
              +
              + +

              This example was further debated on the RDF-star mailing list, as it appears to have set wrong expectations about what embedded triples represent. More precisely, from this example, one may wrongly assume that <<:bob foaf:age 23>> represents the occurrence of the given triple at the address http://example.net/listing.html (see § 2.1 Triples and occurrences). This impression may be reinforced by the use of dct:creator: arguably, a triple (as a unique abstract entity) is not "created" by anyone, while an occurrence thereof can be said to be created or authored.

              + +

              Another serious issue with this example is that it does not allow the addition of other creators and sources for the triple: one could not tell which source corresponds to which creator. Correctly capturing this information would require additional nodes to explicitly represent triple occurrences, as in Example 4. In retrospect, the provenance use-case, although a valid use-case for RDF-star, was not the most suitable choice for an introductory example.

              + +
              + +
              + +

              B. Issue Summary

              This section is non-normative.

              + +
              • Issue 93: annotation-syntax example in the overview/primer part
              • Issue 94: SPARQL-star update example in the overview/primer part
              • Issue 3: Do we need more things in the 'conformance' section?
              • Issue 7: Property path patterns in SPARQL*
              • Issue 6: FIND instead of BIND
              • Issue 9: Include Annotation syntax in Turtle* and SPARQL*
              • Issue 43: New mime types and XML namespace for the extended query result formats
              • Issue 14: Section that defines SPARQL* Update
              • Issue 95: alternative semantic characterisations for RDF*
              + + +

              C. References

              +

              C.1 Normative references

              +
              [N-QUADS]
              RDF 1.1 N-Quads. Gavin Carothers. W3C. 25 February 2014. W3C Recommendation. URL: https://www.w3.org/TR/n-quads/
              [N-TRIPLES]
              RDF 1.1 N-Triples. Gavin Carothers; Andy Seaborne. W3C. 25 February 2014. W3C Recommendation. URL: https://www.w3.org/TR/n-triples/
              [rdf-sparql-XMLres]
              SPARQL Query Results XML Format (Second Edition). Dave Beckett; Jeen Broekstra. W3C. 21 March 2013. W3C Recommendation. URL: https://www.w3.org/TR/rdf-sparql-XMLres/
              [RDF11-CONCEPTS]
              RDF 1.1 Concepts and Abstract Syntax. Richard Cyganiak; David Wood; Markus Lanthaler. W3C. 25 February 2014. W3C Recommendation. URL: https://www.w3.org/TR/rdf11-concepts/
              [RDF11-MT]
              RDF 1.1 Semantics. Patrick Hayes; Peter Patel-Schneider. W3C. 25 February 2014. W3C Recommendation. URL: https://www.w3.org/TR/rdf11-mt/
              [RFC2119]
              Key words for use in RFCs to Indicate Requirement Levels. S. Bradner. IETF. March 1997. Best Current Practice. URL: https://tools.ietf.org/html/rfc2119
              [RFC8174]
              Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words. B. Leiba. IETF. May 2017. Best Current Practice. URL: https://tools.ietf.org/html/rfc8174
              [SPARQL11-QUERY]
              SPARQL 1.1 Query Language. Steven Harris; Andy Seaborne. W3C. 21 March 2013. W3C Recommendation. URL: https://www.w3.org/TR/sparql11-query/
              [sparql11-results-json]
              SPARQL 1.1 Query Results JSON Format. Andy Seaborne. W3C. 21 March 2013. W3C Recommendation. URL: https://www.w3.org/TR/sparql11-results-json/
              [TURTLE]
              RDF 1.1 Turtle. Eric Prud'hommeaux; Gavin Carothers. W3C. 25 February 2014. W3C Recommendation. URL: https://www.w3.org/TR/turtle/
              [XML]
              Extensible Markup Language (XML) 1.0 (Fifth Edition). Tim Bray; Jean Paoli; Michael Sperberg-McQueen; Eve Maler; François Yergeau et al. W3C. 26 November 2008. W3C Recommendation. URL: https://www.w3.org/TR/xml/
              +
              +

              C.2 Informative references

              +
              [RDF-STAR-FOUNDATION]
              Foundations of RDF* and SPARQL* - An Alternative Approach to Statement-Level Metadata in RDF.. Olaf Hartig. In Proceedings of the 11th Alberto Mendelzon International Workshop on Foundations of Data Management (AMW), Montevideo, Uruguay. June 2017. URL: http://ceur-ws.org/Vol-1912/paper12.pdf
              [RDF-SYNTAX-GRAMMAR]
              RDF 1.1 XML Syntax. Fabien Gandon; Guus Schreiber. W3C. 25 February 2014. W3C Recommendation. URL: https://www.w3.org/TR/rdf-syntax-grammar/
              +
              \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/rdf-star-main/cg-spec/2021-04-13-src.html b/corese-unit-test/src/test/resources/data/rdf-star-main/cg-spec/2021-04-13-src.html new file mode 100644 index 0000000000..eb28d19222 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/rdf-star-main/cg-spec/2021-04-13-src.html @@ -0,0 +1,2336 @@ + + + + + RDF-star and SPARQL-star + + + + + + +
              +

              TODO

              +
              +
              +
              + +
              +

              Introduction

              + +
              +

              Background and Motivation

              + +

              TODO, citing [[RDF-STAR-FOUNDATION]]

              +
              + +
              +

              Overview

              + +

              The RDF data model lets you state facts in three-part subject-predicate-object statements known as triples. For example, with a single RDF triple you can say that employee38 has a familyName of "Smith". A triple's predicate is a property specified with an IRI (an Internationalized version of a URI), identifying that property in a globally unambiguous way. A triple's subject and object can each be an IRI referencing any entity, and the object can also be a literal value such as "Smith" or data of other types such as dates, numbers, or Boolean values.

              + +

              Sometimes, we want the subject or object of a triple to refer to another triple. For example, the statement "according to employee22, employee38 has a jobTitle of 'Assistant Designer'" can be modeled as a triple with "according to" as its predicate, employee22 as its object, and another triple as its subject, namely the triple "employee38 has a jobTitle of 'Assistant Designer'". This use of a triple as the subject or object resource of another triple so that we can say things about that triple is known as reification. +The concept of reification has always been part of RDF, but expressing it in RDF concrete syntaxes such as Turtle, N-Triples, and RDF/XML, as well as processing or querying it with SPARQL, has been verbose and cumbersome.

              + +

              This specification describes RDF-star, an extension of RDF's conceptual data model and concrete syntaxes, providing a more compact form of reification. This model and syntaxes enable the creation of concise triples that reference other triples as subject and object resources. +Triples that include a triple as a subject or an object are known as RDF-star triples. The following dataset shows the example RDF-star triples from above using the Turtle-star syntax, which uses double angle brackets to enclose a triple serving as a subject or object resource:

              + +
              +        
              +      
              + +

              After declaring a prefix so that IRIs can be abbreviated, the first triple in this example asserts that employee38 has a familyName of "Smith". Note that this dataset does not assert that employee38 has a jobTitle of "Assistant Designer"; it says that employee22 has made that claim. In other words, the triple "employee38 has a jobTitle of 'Assistant Designer'" is not what we call an asserted triple, like "employee38 has a familyName of 'Smith'" above; rather, it is known as an embedded triple.

              + +

              If we added the triple `:employee38 :jobTitle "Assistant Designer"` below the triple about employee22's claim in the example above, then this triple about employee38's jobTitle would be both an embedded triple and an asserted one. +This pattern is quite common, so Turtle-star offers a dedicated syntax for it, called the annotation syntax, illustrated in below. Note that this construct is purely syntactic sugar, as it can be expanded using only the double angle brackets.

              + +
              +  
              +
              + + +

              This specification also describes an extension to the SPARQL Protocol and Query Language known as SPARQL-star for the querying of RDF-star triples. For example, the following SPARQL-star query asks "who has made any claims about employee38?"

              + +
              +                
              +
              + + +

              SPARQL query triple patterns that include a triple pattern as a subject or object are known as SPARQL-star triple patterns.

              + +
              + +
              + +

              For the remainder of this document, examples will assume that the following prefixes have been declared to represent the IRIs shown with them here:

              + + + + + + + + + +
              `:``<http://www.example.org/>`
              `rdf:`http://www.w3.org/1999/02/22-rdf-syntax-ns#
              `rdfs:``<http://www.w3.org/2000/01/rdf-schema#>`
              `owl:``<http://www.w3.org/2002/07/owl#>`
              `prov:``<http://www.w3.org/ns/prov#>`
              `dc:``<http://purl.org/dc/elements/1.1/>`
              `dct:``<http://purl.org/dc/terms/>`
              + +
              + +
              +
              +
              + +
              + +
              +

              Concepts and Abstract Syntax

              + +

              In the following, we introduce a number of definitions specific to SPARQL-star, which rely on the following notions (extending some of them) defined in [[[RDF11-CONCEPTS]]] [[RDF11-CONCEPTS]]: + blank node, + default graph, + graph name, + IRI, + literal, + named graphs, + object, + predicate, + RDF dataset, + RDF graph, + RDF triple, + and subject +

              + +

              An RDF-star graph is a set of RDF-star triples.

              + +

              An RDF-star triple is a 3-tuple defined recursively as follows:

              + + +

              As for RDF triples, we call the 3 components of an RDF-star triple its subject, predicate and object, respectively. From the definitions above, it follows that any RDF graph is also an RDF-star graph. Note also that, by definition, an RDF-star triple cannot contain itself and cannot be nested infinitely.

              + +

              IRIs, literals, blank nodes and RDF-star triples are collectively known as RDF-star terms.

              + +

              For every RDF-star triple t, we define its constituent terms (or simply constituents) as the set containing its subject, its predicate, its object, plus all the constituent terms of its subject and/or its object if they are themselves RDF-star triples. By extension, we define the constituent terms of an RDF-star graph to be the union set of the constituent terms of all its triples.

              + +
              + Consider the following RDF-star triple (represented in Turtle-star): +
              +        
              +      
              + Its set of constituent terms comprises the IRIs `:name`, `:statedBy`, `:bob`, the blank node `_:a`, the literal `"Alice"`, and the triple `<< _:a :name "Alice" >>`. +
              + +

              An RDF-star triple used as the subject or object of another RDF-star triple is called an embedded triple. An RDF-star triple that is an element of an RDF-star graph is called an asserted triple. Note that, in a given RDF-star graph, the same triple MAY be both embedded and asserted.

              + +

              An RDF-star dataset is a collection of RDF-star graphs, and comprises:

              + + + +

              Again, this definition is an extension of the notion of RDF dataset, hence it follows that any RDF dataset is also an RDF-star dataset.

              + +
              +

              Triples and occurrences

              + +

              According to the definitions above, an RDF-star triple is an abstract entity whose identity is entirely defined by its subject, predicate and object. Conversely, given three RDF-star terms |s|, |p|, and |o|, there is exactly and only one RDF-star triple with subject |s|, predicate |p| and object |o|. This unique triple (|s|, |p|, |o|) can be embedded as the subject or object of multiple other triples, but must be assumed to represent the same thing everywhere it occurs, just like the same IRI |p| is assumed to represent the same thing everywhere it occurs.

              + +

              In some situations, however, it might be necessary to distinguish the occurrences of a triple in different graphs. Consider the following sentence: "The triple `<http://example.org/s> <http://example.org/p> <http://example.org/o>` in (the graph represented by) file1.ttl was added by Alice, and the same triple in file2.ttl was added by Bob." Note that the words "same triple" in this sentence may be confusing, because although the triple (as an abstract entity) is the same, its respective occurrences are different things, each within a different file and with a different author (this is known, in philosophy and linguistics, as the type-token distinction). As the embedded triple represents a unique thing, adequately conveying the meaning of the sentence above requires additional nodes for representing the two distinct occurrences. One possible solution is illustrated in the following example (using the Turtle-star concrete syntax described in the next section).

              + +
              +        
              +      
              + +
              + +
              + +
              +

              Concrete Syntaxes

              + +

              This section defines the following concrete syntaxes:

              +
                +
              • +
              • +
              • +
              • +
              • +
              + +

              + Changes for SPARQL-star are given in + + and the changes for the result set formats in + .

              + +
              +

              Turtle-star

              +

              In this section, we present Turtle-star, + an extension of the Turtle format [[TURTLE]] + allowing the representation of RDF-star graphs. + For the sake of conciseness, + we only describe here the differences between Turtle-star and Turtle.

              + +
              +

              Grammar

              +

              Turtle-star is defined to follow the same grammar as Turtle, + except for the EBNF productions specified below, + which replace the productions having the same number (if any) in the original grammar.

              + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
              [8]`objectList`::= + object + annotation`?` + `(` + ',' + object + annotation`?` + `)*` +
              [10]`subject`::= + iri `|` + BlankNode `|` + collection `|` + embTriple +
              [12]`object`::= + iri `|` + BlankNode `|` + collection `|` + blankNodePropertyList `|` + literal `|` + embTriple +
              [27t]`embTriple`::= + '<<' + embSubject + verb + embObject + '>>' +
              [28t]`embSubject`::= + iri `|` + BlankNode `|` + embTriple +
              [29t]`embObject`::= + iri `|` + BlankNode `|` + literal `|` + embTriple +
              [30t]`annotation`::= + '{|' + predicateObjectList + '|}' +
              + +

              As with N-Triples-star, + the changes are that `subject` + and `object` productions + have been extended to accept embedded triples, + which are described by the new productions 27t + to 30t. + Note that embedded triples accept a more restricted range of + subject and object expressions + than asserted triples. + Additionally, the `objectList` production + now accepts an optional annotation after each object.

              +
              + +
              +

              Parsing

              +

              A Turtle-star parser is similar to a Turtle parser + as defined in Section 7 of the Turtle specification [[TURTLE]], + with an additional item in its state :

              + +

              Additionally, the |curSubject| + can be bound to any RDF-star term + (including an embedded triple).

              + +

              A Turtle-star document defines an RDF-star graph + composed of a set of RDF-star triples. + The `subject` + and `embSubject` productions set the |curSubject|. + The `verb` production + sets the |curPredicate|. + The `object` + and `embObject` productions + set the |curObject|. + Finishing the `object` production, + an RDF-star triple |curSubject| |curPredicate| |curObject| is produced + (added to the RDF-star graph).

              + +

              Beginning the `embTriple` production + records the |curSubject| and |curPredicate|. + Finishing the `embTriple` production + yields the RDF-star triple |curSubject| |curPredicate| |curObject| + and restores the recorded values of |curSubject| and |curPredicate|.

              + +

              Beginning the `annotation` production + records the |curSubject| and |curPredicate|, + and sets the |curSubject| to the RDF-star triple |curSubject| |curPredicate| |curObject|. + Finishing the `annotation` production + restores the recorded values of |curSubject| and |curPredicate|.

              + +

              All other productions MUST be handled as specified + by Section 7 of the Turtle specification [[TURTLE]], + while still applying the changes above recursively.

              + +
              +

              Discussion

              + +

              This section describes parser behavior when parsing + a Turtle-star document that contains embedded triples + and annotations.

              + +

              Consider a Turtle-star document that describes an RDF triple, + and also uses that triple as an embedded triple + as the subject of another RDF-star triple:

              + +
              +      
              +      
              + +

              The usual process of parsing a Turtle document + applies with the addition of matching the embedded triple + `<< _:a :name "Alice" >>` + as part of the `subject` production. + The resulting RDF-star graph consists of two RDF-star triples:

              + +
                +
              1. (|b|, `http://example.org/#name`, `"Alice"`), + where |b| is a blank node
              2. +
              3. ((|b|, `http://example.org/#name`, `"Alice"`), `http://example.org/#statedBy`, `http://example.org/#bob/`), + where |b| is the same blank node
              4. +
              + +

              Because the above example includes the triple (|b|, `http://example.org/#name`, `"Alice"`) + as an asserted triple, + the same RDF-star graph may also be represented + by using the Turtle-star annotation syntax as follows:

              + +
              +      
              +      
              + +

              In this case, the `objectList` production + matches the `annotation` production on `{| :source :bob |}` + after parsing the `object` production on `"Alice"`. + At this point, the |curSubject|, |curPredicate|, and |curObject| are saved, + and a new RDF-star triple `_:a :name "Alice"` is created + and used as |curSubject| while processing + the `annotation` production.

              +
              +
              +
              + +
              +

              TriG-star

              + +

              This section describes TriG-star, + a minimal extension of the TriG format [[TRIG]] + using the same production updates described in .

              + +

              RDF-star describes embedded triples, + which are not necessarily present in any named graph, + or within the default graph.

              + +

              A TriG-star document defines an RDF-star dataset, composed of + a single default graph and zero or more named graphs, + all of which are RDF-star graphs.

              + +

              The TriG-star grammar contains exactly the same production updates + described in .

              + +

              TriG-star parsing uses the same updates described + in + as applied to Section 5 of the TriG specification [[TRIG]].

              + +

              As with Turtle-star, + the `embTriple` + and `annotation` + are used to set either the |curSubject| or |curObject|, + and do not directly add the associated embedded triple to |curGraph|. + Subsequent productions which use either |curSubject| or |curObject| + may result in adding triples to |curGraph|.

              + +

              A conforming TriG-star parser MUST parse any + valid TriG document and any + valid Turtle-star document in addition + to the Turtle-star grammar productions contained within a named graph.

              + +
              +

              Discussion

              + +

              TriG-star allows the same expressivity as Turtle-star + with the addition of allowing embedded triples + and annotations + within named graphs.

              + +
              +      
              +      
              + +

              The resulting RDF-star dataset consists of + an empty default graph, and a graph named `http://example.org/#G` + with two RDF-star triples:

              + +
                +
              1. (|b|, `http://example.org/#name`, `"Alice"`), + where |b| is a blank node
              2. +
              3. ((|b|, `http://example.org/#name`, `"Alice"`), `http://example.org/#statedBy`, `http://example.org/#bob/`), + where |b| is the same blank node
              4. +
              +
              +
              + +
              +

              N-Triples-star

              + +

              This section describes N-Triples-star, + a minimal extension of the N-Triples format [[N-TRIPLES]] + allowing a subject or an object + of an RDF-star triple to be an embedded triple.

              + +
              +

              Grammar

              +

              N-Triples-star is defined to follow the same grammar as + the N-Triples Grammar, + except for the EBNF productions specified below, + which replace the productions having the same number + (if any) in the original grammar.

              + + + + + + + + + + + + + + + + + + + + + + +
              [3]`subject`::=IRIREF | BLANK_NODE_LABEL | embTriple
              [5]`object`::=IRIREF | BLANK_NODE_LABEL | literal | embTriple
              [7t]`embTriple`::="<<" subject predicate object ">>"
              + +

              The changes are + `subject` + and `object` productions + have been extended to accept embedded triples, + which are described by the new production + 7.

              +
              + +
              +

              Parsing

              +

              In contrast to [[N-TRIPLES]], + N-Triples-star allows recursion on the + `subject` + and `object` productions.

              + +

              An N-Triples-star document defines an RDF-star graph + composed of a set of RDF-star triples. + The `triple` production + produces an RDF-star triple + composed of a `subject`, + `predicate`, + and `object`.

              + +

              In addition to the Term Constructors defined in [[N-TRIPLES]], + an additional constructor is defined for `embTriple` + of type RDF-star triple + defined by the terms constructed + for `subject`, + `predicate`, + and `object`.

              + +

              All other productions MUST be handled as specified by + Section 8.1 of the N-Triples specification [[N-TRIPLES]], + while still applying the changes above recursively.

              +
              +
              + +
              +

              N-Quads-star

              + +

              The [[N-QUADS]] format is extended to describe the + N-Quads-star format using the same production updates described in the N-Triples-star Grammar.

              + +

              As RDF-star describes embedded triples and not embedded quads, + the `graphLabel` + component of an N-Quads `statement` + does not apply to the `embTriple` component.

              + +

              An N-Quads-star document defines an RDF-star dataset, + composed of a single default graph + and zero or more named graphs, + all of which are RDF-star graphs.

              + +

              A conforming N-Quads-star parser MUST parse any valid + N-Quads document and additionally parse the + subject and + object productions + from N-Triples-star to generate RDF-star triples which are + added to either the default graph or associated + named graph, as appropriate.

              +
              + +
              +

              Other Concrete Syntaxes

              + +

              While this document specifies a small number of concrete syntaxes, + nothing prevents other concrete syntaxes of RDF-star from being proposed. In particular, syntaxes such as + RDF/XML [[RDF-SYNTAX-GRAMMAR]], + and JSON-LD [[JSON-LD]], + could be extended to support RDF-star.

              +
              + +
              + +
              +

              SPARQL-star Query Language

              + +

              This Section introduces SPARQL-star, which is an RDF-star-aware extension of the RDF query language SPARQL [[SPARQL11-QUERY]]; i.e., SPARQL-star can be used to query RDF-star graphs.

              + +
              +

              Initial Definitions

              + +

              In the following, we introduce a number of SPARQL-star-specific definitions, which rely on the following notions, defined in [[[SPARQL11-QUERY]]] [[SPARQL11-QUERY]]: RDF term, query variable, triple pattern, + property path pattern, + property path expression, + and solution mapping.

              + +

              A SPARQL-star triple pattern is a 3-tuple that is defined recursively as follows:

              +
                +
              1. Every SPARQL triple pattern is a SPARQL-star triple pattern; +
              2. If |t| and t' are SPARQL-star triple patterns, |x| is an RDF term or a query variable, and |p| is an IRI or a query variable, then (|t|, |p|, |x|), (|x|, |p|, |t|), and (|t|, |p|, t') are SPARQL-star triple patterns. +
              + +

              As for RDF-star triples, a SPARQL-star triple pattern MUST NOT contain itself.

              + +

              A SPARQL-star basic graph pattern (BGP-star) is a set of SPARQL-star triple patterns.

              + +

              A SPARQL-star property path pattern is a 3-tuple (|s|,|p|,|o|) where

              + + +
              + +

              A SPARQL-star solution mapping μ is a partial function from the set of all query variables to the set of all RDF-star terms. + The domain of μ, denoted by dom(μ), is the set of query variables for which μ is defined.

              + +

              The notion of a SPARQL-star solution mapping extends the notion of a standard SPARQL solution mapping; that is, every SPARQL solution mapping is a SPARQL-star solution mapping. However, in contrast to SPARQL solution mappings, SPARQL-star solution mappings may map variables also to RDF-star triples.

              + +

              All notions related to SPARQL solution mappings carry over naturally to SPARQL-star solution mappings. In particular, the definition of compatibility extends naturally to SPARQL-star solution mappings: two SPARQL-star solution mappings μ1 and μ2 are compatible if, for every variable v that is both in dom(μ1) and in dom(μ2), μ1(v) and μ2(v) are the same RDF-star term. + In this case, μ1 ∪ μ2 is also a SPARQL-star solution mapping. + Moreover, for any SPARQL-star solution mapping μ we write card[Ω](μ) to denote the cardinality of μ in a multiset Ω of such mappings. + Finally, given a BGP-star |B| and a SPARQL-star solution mapping μ, we write μ(|B|) to denote the result of replacing every variable |v| in |B| for which μ is defined with μ(v). +

              + +

              Next, we aim to carry over the notion of solutions for BGPs to BGP-star. To this end, we first define an auxiliary concept that carries over the notion of an + RDF instance mapping [[RDF11-MT]] to RDF-star.

              + +

              An RDF-star instance mapping σ is a partial function from the set of all blank nodes to the set of all RDF-star terms. + The domain of σ, denoted by dom(σ), is the set of blank nodes for which σ is defined.

              + +

              Similar to the corresponding notation for solution mappings, for an RDF-star instance mapping σ and a BGP-star |B| we write σ(|B|) to denote the result of replacing every blank node |b| in |B| for which σ is defined with σ(b).

              + +

              Now we are ready to define the notion of solution for BGP-star.

              + +

              Given a BGP-star |B| and an RDF-star graph |G|, a SPARQL-star solution mapping μ is a solution for the BGP-star |B| over |G| if it has the following two properties

              +
                +
              • dom(μ) is equivalent to the set of query variables in |B|, and +
              • there exists an RDF-star instance mapping σ such that dom(σ) is equivalent to the set of blank nodes in |B| and μ(σ(|B|)) is a subgraph of |G|. +
              + +
              + +
              +

              Grammar

              + +

              SPARQL-star is defined to follow the same grammar as SPARQL 1.1, except for the EBNF productions specified below, which replace the productions having the same number (if any) in the original grammar. The parts in which these productions differ from the corresponding productions in the original grammar are marked in bold font. Productions [174] and following have been added and have no counterpart in the original grammar.

              + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
              [65]`DataBlockValue`::= + EmbTriple `|` + iri `|` + RDFLiteral `|` + NumericLiteral `|` + BooleanLiteral `|` + 'UNDEF' +
              [75]`TriplesSameSubject`::= + VarOrTermOrEmbTP + PropertyListNotEmpty + `|` + TriplesNode + PropertyList +
              [80]`Object`::= + GraphNode + AnnotationPattern`?` +
              [81]`TriplesSameSubjectPath`::= + VarOrTermOrEmbTP + PropertyListPathNotEmpty + `|` + TriplesNode + PropertyListPath +
              [87]`ObjectPath`::= + GraphNodePath + AnnotationPatternPath`?` +
              [104]`GraphNode`::= + VarOrTermOrEmbTP `|` + TriplesNode +
              [105]`GraphNodePath`::= + VarOrTermOrEmbTP `|` + TriplesNodePath +
              [121]`BuiltInCall`::= +
                 Aggregate
              +
              + `|` + 'STR' + '(' + Expression + ')' +
              +
              + `|` + 'LANG' + '(' + Expression + ')' +
              +
              + `|` + 'LANGMATCHES' + '(' + Expression + ')' +
              +
              + `|` + 'DATATYPE' + '(' + Expression + ')' +
              +
              + `|` + 'BOUND' + '(' + Var + ')' +
              +
              + `|` + 'IRI' + '(' + Expression + ')' +
              +
              + `|` + 'URI' + '(' + Expression + ')' +
              +
              + `|` + 'BNODE' + `(` + '(' + Expression + ')' + `|` + NIL + `)` +
              +
              + `|` + 'RAND' + NIL +
              +
              + `|` + 'ABS' + '(' + Expression + ')' +
              +
              + `|` + 'CEIL' + '(' + Expression + ')' +
              +
              + `|` + 'FLOOR' + '(' + Expression + ')' +
              +
              + `|` + 'ROUND' + '(' + Expression + ')' +
              +
              + `|` + 'CONCAT' + ExpressionList +
              + +
              + `|` + 'STRLEN' + '(' + Expression + ')' +
              + +
              + `|` + 'UCASE' + '(' + Expression + ')' +
              +
              + `|` + 'LCASE' + '(' + Expression + ')' +
              +
              + `|` + 'ENCODE_FOR_URI' + '(' + Expression + ')' +
              +
              + `|` + 'CONTAINS' + '(' + Expression + ',' + Expression + ')' +
              +
              + `|` + 'STRSTARTS' + '(' + Expression + ',' + Expression + ')' +
              +
              + `|` + 'STRENDS' + '(' + Expression + ',' + Expression + ')' +
              +
              + `|` + 'STRBEFORE' + '(' + Expression + ',' + Expression + ')' +
              +
              + `|` + 'STRAFTER' + '(' + Expression + ',' + Expression + ')' +
              +
              + `|` + 'YEAR' + '(' + Expression + ')' +
              +
              + `|` + 'MONTH' + '(' + Expression + ')' +
              +
              + `|` + 'DAY' + '(' + Expression + ')' +
              +
              + `|` + 'HOURS' + '(' + Expression + ')' +
              +
              + `|` + 'MINUTES' + '(' + Expression + ')' +
              +
              + `|` + 'SECONDS' + '(' + Expression + ')' +
              +
              + `|` + 'TIMEZONE' + '(' + Expression + ')' +
              +
              + `|` + 'TZ' + '(' + Expression + ')' +
              +
              + `|` + 'NOW' + NIL +
              +
              + `|` + 'UUID' + NIL +
              +
              + `|` + 'STRUUID' + NIL +
              +
              + `|` + 'MD5' + '(' + Expression + ')' +
              +
              + `|` + 'SHA1' + '(' + Expression + ')' +
              +
              + `|` + 'SHA256' + '(' + Expression + ')' +
              +
              + `|` + 'SHA384' + '(' + Expression + ')' +
              +
              + `|` + 'SHA512' + '(' + Expression + ')' +
              +
              + `|` + 'COALESCE' + ExpressionList +
              +
              + `|` + 'IF' + '(' + Expression + ',' + Expression + ',' + Expression + ')' +
              +
              + `|` + 'STRLANG' + '(' + Expression + ',' + Expression + ')' +
              +
              + `|` + 'STRDT' + '(' + Expression + ',' + Expression + ')' +
              +
              + `|` + 'sameTerm' + '(' + Expression + ',' + Expression + ')' +
              +
              + `|` + 'isIRI' + '(' + Expression + ')' +
              +
              + `|` + 'isURI' + '(' + Expression + ')' +
              +
              + `|` + 'isBLANK' + '(' + Expression + ')' +
              +
              + `|` + 'isLITERAL' + '(' + Expression + ')' +
              +
              + `|` + 'isNUMERIC' + '(' + Expression + ')' +
              +
              + `|` + RegexExpression +
              +
              + `|` + ExistsFunc +
              +
              + `|` + NotExistsFunc +
              +
              + `|` + 'TRIPLE' + '(' + Expression + ',' + Expression + ',' + Expression + ')' +
              +
              + `|` + 'SUBJECT' + '(' + Expression + ')' +
              +
              + `|` + 'PREDICATE' + '(' + Expression + ')' +
              +
              + `|` + 'OBJECT' + '(' + Expression + ')' +
              +
              + `|` + 'isTRIPLE' + '(' + Expression + ')' +
              +
              [174]`EmbTP`::= + '<<' + EmbSubjectOrObject + Verb + EmbSubjectOrObject + '>>' +
              [175]`EmbTriple`::= + '<<' + DataValueTerm + `(` + iri + `|` + 'a' + `)` + DataValueTerm + '>>' +
              [176]`EmbSubjectOrObject`::= + Var `|` + BlankNode `|` + iri `|` + RDFLiteral `|` + NumericLiteral `|` + BooleanLiteral `|` + EmbTP +
              [177]`DataValueTerm`::= + iri `|` + RDFLiteral `|` + NumericLiteral `|` + BooleanLiteral `|` + EmbTriple +
              [178]`VarOrTermOrEmbTP`::= + Var `|` + GraphTerm `|` + EmbTP +
              [179]`AnnotationPattern`::= + '{|' + PropertyListNotEmpty + '|}' +
              [180]`AnnotationPatternPath`::= + '{|' + PropertyListPathNotEmpty + '|}' +
              + +

              + This introduces a notation for embedded triple patterns + (production [174]), + which is similar to the one defined for embedded triples in , + but accepting also variables. + These embedded triple patterns are allowed in both the subject position ([75], [81]) and the object position ([80], [87]) + of SPARQL-star triple patterns, as well as in the short-hand notation for querying collections ([102], [103]). +

              + +

              + Additionally, production [65] for values that can be used in the VALUES clause is extended to permit RDF-star triples as possible values, and the set of available built-in functions is extended with the five functions TRIPLE, SUBJECT, PREDICATE, OBJECT, and isTRIPLE ([121]) that are defined in . +

              + +

              As defined for all keywords in SPARQL, the names of the five new built-in functions added by SPARQL-star are matched in a case-insensitive manner.

              + +

              + Yet another extension is that both the Object and the ObjectPath productions now accept an optional annotation pattern after each object. The purpose of this feature is to enable users to use the same kind of annotation syntax that is supported in Turtle-star. As in the case of Turtle-star, the annotation syntax in SPARQL-star is purely syntactic sugar that has to be processed in accordance to the first expansion rule in . +

              + +

              + A restriction to the use of the annotation syntax in SPARQL-star exists that is not captured by the grammar as defined above: An AnnotationPatternPath may be added only to SPARQL-star property path patterns in which the property path expression is a PredicatePath (i.e., a single IRI) or the keyword a (as a short form for the IRI rdf:type). Hence, a query such as the following violates this restriction and, thus, is invalid. +

              + +
              +        
              +      
              + +

              + While annotation patterns must not be added to property path patterns other than the ones permitted by the restriction above, it is possible to use property path expressions within annotation patterns (but without violating the restriction in the case of nested annotation patterns). For instance, the following query is valid. +

              + +
              +        
              +      
              + +
              + +
              +

              Translation to the Algebra

              + +

              Based on the SPARQL grammar, the SPARQL specification defines the process of converting graph patterns and solution modifiers in a SPARQL query string into a SPARQL algebra expression [SPARQL11-QUERY, Section 18.2]. This process must be adjusted to consider the extended grammar introduced above. In the following, any step of the conversion process that requires adjustment is discussed.

              + +
              +

              Variable Scope

              + +

              As a basis of the translation, the SPARQL specification introduces a notion of in-scope variables. To cover the new syntax elements introduced in this notion MUST be extended as follows.

              + +
                +
              • A variable is in-scope of a BGP-star |B| if the variable occurs in |B|, which includes an occurrence in any embedded triple pattern in |B| (independent of the level of nesting).
              • +
              • A variable is in-scope of a property path pattern if the variable occurs in that pattern, which includes an occurrence in any embedded triple pattern in the pattern (independent of the level of nesting).
              • +
              +
              + +
              +

              Expand Syntax Forms

              + +

              The translation process starts with expanding abbreviations for IRIs and triple patterns [SPARQL11-QUERY, Section 18.2.2.1]. This step MUST be extended in three ways:

              + +
                +
              1. +

                Annotation patterns MUST be replaced by additional SPARQL-star triple patterns that have the annotated triple pattern as an embedded triple pattern in their subject position.

                + + + +
              2. +
              3. +

                Abbreviations for triple patterns with embedded triple patterns MUST be expanded as if each embedded triple pattern was a variable (or an RDF term).

                + + +
              4. +
              5. +

                Abbreviations for IRIs in all embedded triple patterns MUST be expanded.

                + + +
              6. +
              +
              + +
              +

              Translate Property Path Patterns

              + +

              The translation of property path patterns has to be adjusted because the extended grammar allows for SPARQL-star property path patterns whose subject or object is a SPARQL-star triple pattern.

              + +

              The translation as specified in the W3C specification distinguishes four cases. The first three of these cases do not require adjustment because they are taken care of either by recursion or by the adjusted translation of basic graph patterns (as defined in below). However, the fourth case MUST be adjusted as follows.

              + +

              Let |X| |P| |Y| be a string that corresponds to the fourth case in [SPARQL11-QUERY, Section 18.2.2.4]. Given the grammar introduced in , |X| and |Y| may be an RDF term, a variable, or an embedded triple pattern, respectively (and |P| is a property path expression). The string |X| |P| |Y| is translated to the algebra expression `Path`(X’,|P|,Y’) where X’ and Y’ are the result of calling a function named `Lift` for |X| and |Y|, respectively. For some input string |Z| (such as |X| or |Y|) that can be an RDF term, a variable, or an embedded triple pattern, the function `Lift` is defined recursively as follows:

              + +
                +
              1. If |Z| is an embedded triple pattern <<|S|,|P|,|O|>> then return the SPARQL-star triple pattern (`Lift`(|S|), |P|, `Lift`(|O|));
              2. +
              3. Otherwise, return |Z|.
              4. +
              + +
              + The purpose of this translation step is to convert any property path pattern as can be written based on the extended grammar for SPARQL-star (cf. ) into a SPARQL-star property path pattern as considered in the algebra. To this end, the function `Lift` translates every embedded triple pattern as can be written in the SPARQL-star syntax into a SPARQL-star triple pattern. +
              +
              + +
              +

              Translate Basic Graph Patterns

              + +

              After translating property path patterns, the translation process collects any adjacent triple patterns [...] to form a basic graph pattern [SPARQL11-QUERY, Section 18.2.2.5]. This step has to be adjusted because triple patterns in the extended syntax may have an embedded triple pattern in their subject position or in their object position (or in both). To ensure that every result of this step is a BGP-star, before adding a triple pattern to its corresponding collection, its subject and object MUST be replaced by the result of calling function `Lift` for the subject and the object, respectively.

              +
              + +
              + +
              +

              Function Definitions

              + +

              SPARQL introduces operators and functions that can be used in an expression of a FILTER clause, a BIND clause, or a SELECT clause (see Section 17.3 and Section 17.4 in [[SPARQL11-QUERY]]). While these operators and functions are defined to operate on RDF terms and query variables, for SPARQL-star they have to be defined to operate on RDF-star terms and query variables. To this end, when using these operators and functions in the context of SPARQL-star, their definitions as given in Section 17.4 of [[SPARQL11-QUERY]] are extended by assuming that any mention of RDF term as a data type for operands is understood to be the type of all RDF-star terms.

              + +

              In addition to carrying over the operators and functions of SPARQL, SPARQL-star introduces five new functions that are defined as follows (where the data types RDF-star term and RDF-star triple capture all RDF-star terms and all RDF-star triples, respectively).

              + +
              +

              TRIPLE

              + +

              + RDF-star triple   + TRIPLE + ( + RDF-star term + term1, + RDF-star term + term2, + RDF-star term + term3 + ) +

              + +

              If the 3-tuple (term1, term2, term3) is an RDF-star triple, the function returns this triple. If the 3-tuple is not an RDF-star triple, then the function raises an error.

              + +
              + +
              +

              SUBJECT

              + +

              + RDF-star term   + SUBJECT + ( + RDF-star triple + triple + ) +

              + +

              If triple is an RDF-star triple, the function returns the subject of this triple. Passing anything other than an RDF-star triple is an error.

              + +
              + +
              +

              PREDICATE

              + +

              + RDF-star term   + PREDICATE + ( + RDF-star triple + triple + ) +

              + +

              If triple is an RDF-star triple, the function returns the predicate of this triple. Passing anything other than an RDF-star triple is an error.

              + +
              + +
              +

              OBJECT

              + +

              + RDF-star term   + OBJECT + ( + RDF-star triple + triple + ) +

              + +

              If triple is an RDF-star triple, the function returns the object of this triple. Passing anything other than an RDF-star triple is an error.

              + +
              + +
              +

              isTRIPLE

              + +

              + xsd:boolean   + isTRIPLE + ( + RDF-star term + term + ) +

              + +

              Returns true if term is an RDF-star triple. Returns false otherwise.

              + +
              + +
              +

              Examples and Discussion

              + +

              By the evaluation semantics of SPARQL-star as defined in , the five new built-in functions defined above can be used in exactly the same manner as the functions defined in the SPARQL 1.1 spec. For instance, the following SPARQL-star query retrieves every asserted triple that is both contained in the default graph of the queried RDF-star dataset and has an embedded triple as its subject.

              + +
              +          
              +        
              + +

              Instead of accessing the subject of the triples in the FILTER after the BIND clause, as was done in the previous query, a semantically equivalent query may apply the FILTER directly on the variable ?s, as follows:

              + +
              +          
              +        
              + +

              While the triples that the previous example queries bind to variable ?t occur in the queried data, the TRIPLE function can be used to construct triples that may not be in the data. For instance, the following query uses the subject of each asserted triple in the default graph of the queried RDF-star dataset to construct another triple, and bind it to the variable ?t. Notice that the result of this query contains as many SPARQL-star solution mappings as there are asserted triples in the queried graph, and there may be duplicates in the result if multiple asserted triples have the same subject.

              + +
              +          
              +        
              + +

              There are cases where the effects of using the new TRIPLE function are not immediately obvious just from its definition, particularly when considering the interplay of this function with the BNODE function when used within GRAPH clauses. Some of these cases are discussed below.

              + +

              Consider the following SPARQL-star query.

              + +
              +          
              +        
              + +

              When evaluated over an RDF-star dataset that contains |n| named graphs, where |n|>0, the GRAPH clause results in one SPARQL-star solution mapping per named graph. The SELECT clause collapses these |n| mappings into a single mapping that is defined for the six variables introduced in the SELECT clause. (If |n|=0, the query result is the empty set.) Each of these six variables is mapped to an integer-typed literal with values as follows. For each of ?t1Count, ?t2Count, and ?t3Count, the value is |n|, because the variables ?t1, ?t2, and ?t3 are bound in each of the |n| solution mappings produced for the GRAPH clause. For the variable ?t1DistCount, the value is also |n|, because the BIND clauses are evaluated |n| times (once for each named graph) and the subexpression BNODE() always creates a different new blank node; thus, the triples created for variable ?t1 are all different from one another. This is also the case if the BNODE function is used with an argument; i.e., the value of ?t2DistCount is |n| too. In contrast, the variable ?t3 is mapped to the same triple within each evaluation of the third BIND clause; thus, the value for ?t3DistCount is 1.

              + +

              Notice that the BNODE function has to be used to create a blank node; simply writing a blank node directly in an expression is not permitted.

              + +

              Notice as well that the preceding query is special in two ways: its GRAPH clause does not actually consider the content of the named graphs; and the expressions in the BIND clauses do not contain variables. In contrast, the GRAPH clause and the BIND clauses in the following query do.

              + +
              +          
              +        
              + +

              For every RDF-star dataset with |n|>0 named graphs, the result of this query consists of a single SPARQL-star solution mapping that is defined for the three variables introduced in the SELECT clause. The value of ?t1Count is the number of named graphs in the queried dataset that contain a triple of the form (|u|, rdf:type, rdfg:Graph) such that |u| is the name of the named graph in the dataset. The value of ?t2Count is always 0 (zero), because evaluating the expression of the second BIND clause results in an error, because the variable ?x is not bound in the scope of this evaluation. As a side note, evaluating the expression of the first BIND clause would also result in an error, if the variable ?g was not mentioned inside the GRAPH clause (e.g., if the given triple pattern was not there).

              + +
              + +
              + +
              +

              Evaluation Semantics

              + +

              The SPARQL specification defines a function eval(|D|(|G|), algebra expression) as the evaluation of an algebra expression with respect to a dataset |D| having active graph |G| [SPARQL11-QUERY, Section 18.6]. Recall that the dataset |D| in the context of SPARQL-star is an RDF-star dataset and, thus, the active graph |G| is an RDF-star graph, and so is any other graph in dataset |D|. The definition of the eval function is recursive; the base case of this definition for SPARQL-star are given as follows:

              + +
                +
              • For every BGP-star |B|, eval(|D|(|G|), |B|) is a multiset Ω that consists of all SPARQL-star solution mappings that are a solution for the BGP-star |B| over |G|. For every such mapping μ, card[Ω](μ) is the number of distinct RDF-star instance mappings σ such that dom(σ) is equivalent to the set of blank nodes in |B| and μ(σ(|B|)) is a subgraph of |G|. (For any SPARQL-star solution mapping μ' that is not a solution for |B| over |G|, we have that card[Ω](μ')=0; i.e., μ' is not in Ω.)
              • +
              + +

              For any other algebra expression, the SPARQL specification defines algebra operators [[SPARQL11-QUERY]]. These definitions can be extended naturally to operate over multisets of SPARQL-star solution mappings (instead of ordinary solution mappings). Given this extension, the recursive steps of the definition of the eval function for SPARQL-star are the same as in the SPARQL specification.

              +
              + +
              +

              Query Result Formats

              + +

              In SPARQL, queries can take four forms: SELECT, CONSTRUCT, DESCRIBE, and ASK - see SPARQL1.1 Query, Section 16 [[SPARQL11-QUERY]]. The first of these returns a sequence of solution mappings that contain variable bindings. The second and third both return an RDF graph, and the last returns a boolean value. +

              +

              The result of the ASK query form is not changed by the introduction of RDF-star, and the result of the CONSTRUCT and DESCRIBE forms can be represented by Turtle-star. However, since the SELECT form deals with returning individual RDF terms, the specific serialization formats for representing such query results need to be extended so that the new embedded triple RDF term can be represented. In this section, we propose extensions for the two most common formats for this purpose: [[[sparql11-results-json]]], and [[[rdf-sparql-XMLres]]].

              + +
              + +
              +

              SPARQL-star Query Results JSON Format

              +

              + The result of a SPARQL SELECT query is serialized in JSON as defined in [[[sparql11-results-json]]], which specifies a JSON representation of variable bindings to RDF terms (see [sparql11-results-json, Section 3.2]). To accommodate the new RDF term for embedded triples that RDF-star introduces, the table of RDF term JSON representations in sparql11-results-json, Section 3.2.2 is extended with the following entry: +

              +
              +
              An embedded triple with subject RDF term `S`, predicate RDF term `P` and object RDF term `O`
              +
              +
              +                {
              +                  "type": "triple",
              +                  "value": {
              +                     "subject": S,
              +                     "predicate": P,
              +                     "object": O
              +                  }
              +                }
              +              
              + where `S`, `P` and `O` are encoded using the same format, recursively. +
              +
              + + +
              + +
              +

              SPARQL-star Query Results XML Format

              +

              + The result of a SPARQL SELECT query is serialized in XML as defined in [[[rdf-sparql-XMLres]]]. This format proposes an XML representation of variable bindings to RDF terms. +

              +

              To accommodate the new RDF term for embedded triples that RDF-star introduces, the list of RDF terms and their XML representations in [rdf-sparql-XMLres, Section 2.3.1] is extended as follows: +

              +

              +

              +
              An embedded triple with subject term `S`, predicate term `P`, and object term `O`
              +
              +
              +              
              +            
              + where `S`, `P` and `O` are encoded recursively, using the same format, without the enclosing `<binding>` tag. +
              +
              + + + + +
              + +
              + +
              + +
              +

              SPARQL-star Update

              + +

              This section specifies SPARQL-star Update, an update language for RDF-star. This language extends SPARQL Update [[SPARQL11-UPDATE]], the update language for RDF, by adding RDF-star-specific features and semantics.

              + +
              +

              Informal Description

              + +

              While SPARQL Update operates over a graph store that consists of RDF graphs, SPARQL-star Update extends the notion of graph store to contain RDF-star graphs instead of RDF graphs. That is, a graph store in the context of SPARQL-star Update contains one (unnamed) slot holding an RDF-star graph, referred to as the default graph, and zero or more named slots holding other RDF-star graphs, referred to as named graphs. Then, all graph management operations in SPARQL Update (CREATE, DROP, COPY, MOVE, ADD) carry over directly to SPARQL-star Update with the only difference being that in SPARQL-star Update these operations manage RDF-star graphs. For instance, the CREATE operation in SPARQL-star Update creates an RDF-star graph rather than a pure RDF graph. Similarly, the graph update operations LOAD and CLEAR in SPARQL-star Update operate with RDF-star graphs in the same way as their SPARQL Update counterparts operate with RDF graphs.

              + +

              The only operations that SPARQL-star Update actually extends are the graph update operations INSERT DATA, DELETE DATA, and DELETE/INSERT. This section describes these extensions informally. While this description focuses mainly on updates to the default graph, the operations can also be applied to the named graphs.

              + +
              +

              INSERT DATA

              + +

              The INSERT DATA operation can be used to add a given set of triples into the graph store. In the context of SPARQL-star Update, these triples may be RDF-star triples. As an example, consider the following INSERT DATA operation.

              + +
              +          
              +        
              + +

              Suppose this INSERT DATA operation is executed over a graph store with an empty default graph. After executing this operation, the default graph contains the given (nested) RDF-star triple. Now, it is possible to query for this triple. For instance, the following SPARQL-star query returns a single solution mapping in which the variables ?p and ?a are mapped to the IRI :alice and the literal 23, respectively.

              + +
              +          
              +        
              + +

              Notice that inserting a nested triple does not automatically also insert its embedded triple(s) as asserted triple(s) into the graph. Hence, in the previous example, after executing the given INSERT DATA operation, the default graph does not contain the triple :bob :age 23. In other words, a query such as the following would have an empty result.

              + +
              +          
              +        
              + +

              For an embedded triple to be present in the graph as an asserted triple, it needs to be inserted as such. For instance, the INSERT DATA operation in the example above may be modified as follows in order to insert not only the nested triple but also the triple :bob :age 23.

              + +
              +          
              +        
              + +
              + +
              +

              DELETE DATA

              + +

              The DELETE DATA operation can be used to remove a given set of triples from the graph store. In the context of SPARQL-star Update, this may include removing nested RDF-star triples as demonstrated in the following example.

              + +
              +          
              +        
              + +

              After executing this DELETE DATA operation over a graph store with a default graph that contains the given nested triple, the graph will not contain this triple any longer. If the graph did not contain that nested triple in the first place, the graph will remain unchanged by the given DELETE DATA operation.

              + +

              Notice that deleting triples by using the DELETE DATA operation does not affect any other triples in the corresponding graphs. For instance, for a default graph that contains the triple :bob :age 23 as an asserted triple, the DELETE DATA operation given above does not delete this asserted triple. In contrast, the following operation would delete this asserted triple but it would not delete any nested triple that contains the given triple as an embedded triple.

              + +
              +          
              +        
              + +
              + +
              +

              DELETE/INSERT

              + +

              The DELETE/INSERT operation can be used to remove or add triples based on variable bindings obtained by evaluating a given WHERE clause. As an example, the following DELETE/INSERT operation replaces all nested triples in which :alice is the subject by nested triples in which :carol is the subject.

              + +
              +          
              +        
              + +

              As in SPARQL Update, in SPARQL-star Update it is possible to use variations of the DELETE/INSERT operations in which either the DELETE clause or the INSERT clause are omitted.

              + +

              When removing triples via the DELETE clause (irrespective of whether the INSERT clause is omitted or not), the effects with respect to nested triples must be the same as described above for the DELETE DATA operation; i.e., only the triples that are explicitly identified to be deleted are deleted. Similarly, inserting triples via the INSERT clause has the same effects as described above for the INSERT DATA operation; i.e., inserting nested triples does not automatically also insert their embedded triples as asserted triples into the graph. Of course, it is possible to request such inserts explicitly as demonstrated in the following example.

              + +
              +          
              +        
              + +

              While all SPARQL-star Update examples above focus only on the default graph of a graph store, SPARQL-star Update can also be used to update the named graphs of a graph store, which works in exactly the same way as in SPARQL Update. As a possible example consider the following INSERT operation which retrieves all embedded triples found in nested triples in the default graph and inserts them as asserted triples into the named graph with IRI :graph2.

              + +
              +          
              +        
              + +
              + +
              + + + +
              +

              Grammar

              + +

              SPARQL-star Update is an extension of the SPARQL Update language [[SPARQL11-UPDATE]]. As mentioned in SPARQL 1.1 Update, Appendix C [[SPARQL11-UPDATE]], the grammar of the latter is provided as part of the SPARQL 1.1 Query grammar. Similarly, the grammar of SPARQL-star Update is provided as part of the grammar of the SPARQL-star query language, which is defined by the SPARQL 1.1 Query grammar with the extensions specified in . As a result of these extensions, the production rules QuadData and QuadPattern, which are used in the definition of SPARQL Update [[SPARQL11-UPDATE]], are extended to capture nested triples and nested triple patterns as demonstrated in the examples above.

              + +
              + +
              +

              Semantics

              + +

              The semantics of SPARQL-star Update operations can also be defined by a simple extension of the formalization of SPARQL Update [[SPARQL11-UPDATE]]. This extension assumes that any mention of "RDF triple" or "triple" in the formalization of SPARQL Update is understood as an RDF-star triple. Similarly, "RDF graph" and "solution mapping" are understood as RDF-star graph and SPARQL-star solution mapping, respectively. Any mention of the "evaluation function eval()" is understood as the eval function for SPARQL-star as defined in .

              + +
              + +
              + +
              +

              RDF-star Semantics

              + +

              In this section, we provide a model-theoretic semantics for RDF-star, based on the one defined in [[[RDF11-MT]]] [[RDF11-MT]]. More precisely, we define a mapping from RDF-star's abstract syntax into standard RDF's abstract syntax, and define the semantics of RDF-star graphs in terms of the semantics of the mapped RDF graphs.

              + +

              In the following, we introduce a number of definitions specific to RDF-star, which rely on the following notions, defined in [[[RDF11-CONCEPTS]]] [[RDF11-CONCEPTS]] and [[[RDF11-MT]]] [[RDF11-MT]]: + datatype, + lexical form, + simple literal, + ill-typed, + merging, + satisfiability, + unsatisfiability, + entailment, + and equivalence. +

              + +
              +

              Mapping RDF-star abstract syntax to RDF

              + +

              We consider six IRIs |ST:subject term|, |PT:predicate term|, |OT:object term|, |SS:subject string|, |PS:predicate string| and |OS:object string| that will have a special meaning in our mapping.

              + +

              We define a mapping |L| that maps any IRI or literal |t| to a literal with:

              + + +

              Given an RDF-star graph |G|, the following steps transform it into an RDF graph that we call |unstar|(|G|).

              + +
                +
              1. Pick an RDF-star triple (|s|, |p|, |o|) in the constituents of |G| such that neither |s| nor |o| is an embedded triple.
              2. +
              3. Mint a fresh blank node |b|, and replace by |b| all occurrences of (|s|, |p|, |o|) in the subject or object position of an asserted or embedded triple of |G|.
              4. +
              5. Add the following asserted triples to |G|:
                  +
                • (|b|, |ST|, |s|)
                • +
                • (|b|, |PT|, |p|)
                • +
                • (|b|, |OT|, |o|) unless |o| is an ill-typed literal
                • +
                • (|b|, |SS|, |L|(|s|)) unless |s| is blank node
                • +
                • (|b|, |PS|, |L|(|p|))
                • +
                • (|b|, |OS|, |L|(|o|)) unless |o| is blank node
                • +
              6. +
              7. Repeat the steps above until there are no embedded triples left in |G|.
              8. +
              +

              After these steps, |unstar|(|G|) is an RDF graph, as it contains no embedded triples. Note that if |G| was already an RDF graph, then |unstar|(|G|) = |G|.

              + +
              + +
              +

              Entailment of RDF-star graphs

              + +

              Following [[[RDF11-MT]]], we extend the notions of satisfiability and entailment for RDF-star graphs. Given two RDF-star graphs |G| and |H|:

              +

              +
              + +
              +

              Merging RDF-star graphs

              + +

              [[[RDF11-MT]]] [[RDF11-MT]] defines the merging of two or more RDF graphs as "[taking their] union after forcing any shared blank nodes, which occur in more than one graph, to be distinct in each graph." Note that, in the case of RDF-star graphs, any blank node in the constituent terms of that graph is governed by the definition above, not only those in the subject or object position of some asserted triple.

              + +
              +        
              +      
              + +
              + + +
              +

              Remarks

              + +
              +

              Combining RDF-star graphs

              + +

              Care must be taken when RDF graphs that result from RDF-star graphs are combined through union or merging. Given two RDF-star graphs |G| and |H|, it may be the case that |unstar|(|G| ∪ |H|) ≠ |unstar|(|G|) ∪ |unstar|(|H|). More precisely, if |G| and |H| contain the same embedded triple, this triple will be mapped to a single blank node in |unstar|(|G| ∪ |H|), but in two potentially different blank nodes in |unstar|(|G|) ∪ |unstar|(|H|). These blank nodes will need to be unified in order to get the correct entailments.

              + +
              +
              +

              Considerations on interoperability

              + +

              The special properties (|ST|, |PT|, etc.), used in the mapping for representing embedded triples in plain RDF, are deliberately not specified. As a consequence, although any RDF-star graph |G| is semantically equivalent to an RDF graph |unstar|(|G|), that latter graph is implementation dependent, as different systems will use a different concrete IRI for each special property.

              + +

              This makes it impossible for RDF-star-aware systems to reliably exchange RDF-star graphs in their mapped form using non-RDF-star concrete syntaxes (unless of course the RDF-star graph contains no embedded triple). However, such systems can always use Turtle-star or other extended concrete syntaxes, so that does not limit interoperability among them. On the other hand, it prevents the unrestricted use of the special properties, because that may lead to surprising corner cases, as illustrated in . Supporting these corner cases would be a significant burden on RDF-star implementations, for a very limited utility.

              + +

              Furthermore, it is expected that some implementations will not rely on the mapping, but represent and work directly with the abstract syntax of RDF-star. For these implementations, having to handle both the native and the mapped representation of embedded triples would be even more challenging.

              + +
              +          
              +        
              + +

              The exchange of a mapped graph |unstar|(|G|) using standard RDF concrete syntaxes, with non-standard IRIs in place of the special properties, is however possible and useful when communicating with legacy RDF systems. For those systems, the special properties have no special meaning, so using non-standard IRIs makes no difference to them.

              + +
              + +
              + +
              + +
              + +
              +

              Historical remarks

              + +
              +

              SA-mode and PG-mode

              + +

              A lot of discussions on the RDF-star mailing list and GitHub repository refer to SA-mode and PG-mode. Those abbreviations stand for "Separate Assertion mode" and "Property Graph mode". They originate in the fact that different versions of RDF-star have been published over the years, with different designs. In PG-mode, any embedded triple was also considered asserted. SA-mode, on the other hand, allowed the use of embedded triples without those triples being automatically asserted, requiring that they be asserted separately when that was intended. SA-mode was more flexible, but induced redundancy in the use-cases that PG-mode was designed to address.

              + +

              The notion of annotations in the Turtle-star syntax was introduced to remove the need for different modes. Rather than interpret the same syntax differently in each mode, which would have caused interoperability problems and required a switch for those modes, it was decided to provide a different syntax for each use case.

              + +
                +
              • The << ... >> syntax represents a triple that is embedded without being asserted, satisfying the need formerly filled by SA-mode.
              • +
              • The :a :b :c {| :p :o ... |} annotation syntax creates triples where the subject is an embedded version of the triple asserted just before the annotation (here, :a :b :c), without the need to repeat it, satisfying the need formerly filled by PG-mode.
              • +
              +
              + +
              +

              The seminal example

              + +

              The motivating example in the original RDF-star paper [[RDF-STAR-FOUNDATION]] was on a provenance use-case, and is repeated below.

              + +
              +        
              +      
              + +

              This example was further debated on the RDF-star mailing list, as it appears to have set wrong expectations about what embedded triples represent. More precisely, from this example, one may wrongly assume that `<<:bob foaf:age 23>>` represents the occurrence of the given triple at the address `http://example.net/listing.html` (see ). This impression may be reinforced by the use of `dct:creator`: arguably, a triple (as a unique abstract entity) is not "created" by anyone, while an occurrence thereof can be said to be created or authored.

              + +

              The problem with this interpretation is that it will break as soon as other creators and sources are added for the triple: one could not tell which source corresponds to which creator. Correctly capturing this information would require additional nodes to explicitly represent triple occurrences, as in . In summary, although RDF-star can be used for provenance, the seminal example does not work as stated and can lead to the fundamentally incorrect interpretation that RDF-star can represent multiple distinct embedded triples with the same subject, predicate, and object.

              + +
              + +
              + +
              + +
              + + diff --git a/corese-unit-test/src/test/resources/data/rdf-star-main/cg-spec/2021-04-13.html b/corese-unit-test/src/test/resources/data/rdf-star-main/cg-spec/2021-04-13.html new file mode 100644 index 0000000000..11a3241a57 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/rdf-star-main/cg-spec/2021-04-13.html @@ -0,0 +1,3326 @@ + + + + + + + + + +RDF-star and SPARQL-star + + + + + + + + + + + + + +
              +

              RDF-star and SPARQL-star

              + +

              + Draft Community Group Report + +

              +
              + + +
              This version
              + https://w3c.github.io/rdf-star/cg-spec/2021-04-13.html +
              Latest published version
              + https://w3c.github.io/rdf-star/cg-spec/
              +
              Latest editor's draft:
              https://w3c.github.io/rdf-star/cg-spec/editors_draft.html
              +
              Test suite:
              https://w3c.github.io/rdf-star/tests/
              +
              Implementation report:
              + https://w3c.github.io/rdf-star/reports/ +
              +
              Previous version
              + https://w3c.github.io/rdf-star/cg-spec/2021-02-18.html + +
              Editors:
              +
              Olaf Hartig + + + + + + (Linköping University) +
              Pierre-Antoine Champin + + + + + + (ERCIM) +
              Gregg Kellogg (no affiliation)
              Andy Seaborne + (Apache Software Foundation) +
              + +
              Authors:
              Dörthe Arndt (TU Dresden)
              Jeen Broekstra (metaphacts)
              Bob DuCharme (CCRi)
              Peter F. Patel-Schneider (PARC)
              Eric Prud'hommeaux (Janeiro Digital, W3C/MIT)
              Ted Thibodeau, Jr. (OpenLink Software, Inc.)
              Bryan Thompson (Amazon)
              +
              Participate:
              + GitHub w3c/rdf-star +
              + File a bug +
              + Commit history +
              + Pull requests +
              Contributors
              + James Anderson (datagraph gmbh) +
              + Ghislain Atemezing (Mondeca) +
              + Pavel Klinov (Stardog Union) +
              + Holger Knublauch (TopQuadrant, Inc.) +
              + Andreas Kuckartz +
              + Ora Lassila (Amazon) +
              + William Van Woensel (Dalhousie University) +
              +
              + + +
              +
              +

              Abstract

              +

              TODO

              +
              +

              Status of This Document

              + This specification was published by the + RDF-DEV Community Group. It is not a W3C Standard nor is it + on the W3C Standards Track. + + Please note that under the + W3C Community Contributor License Agreement (CLA) + there is a limited opt-out and other conditions apply. + + Learn more about + W3C Community and Business Groups. +

              +

              + GitHub Issues are preferred for + discussion of this specification. + + Alternatively, you can send comments to our mailing list. + Please send them to + public-rdf-star@w3.org + (subscribe, + archives). + +

              + +
              +

              1. Introduction

              + +
              +

              1.1 Background and Motivation

              This section is non-normative.

              + +

              TODO, citing [RDF-STAR-FOUNDATION]

              +
              + +
              +

              1.2 Overview

              This section is non-normative.

              + +

              The RDF data model lets you state facts in three-part subject-predicate-object statements known as triples. For example, with a single RDF triple you can say that employee38 has a familyName of "Smith". A triple's predicate is a property specified with an IRI (an Internationalized version of a URI), identifying that property in a globally unambiguous way. A triple's subject and object can each be an IRI referencing any entity, and the object can also be a literal value such as "Smith" or data of other types such as dates, numbers, or Boolean values.

              + +

              Sometimes, we want the subject or object of a triple to refer to another triple. For example, the statement "according to employee22, employee38 has a jobTitle of 'Assistant Designer'" can be modeled as a triple with "according to" as its predicate, employee22 as its object, and another triple as its subject, namely the triple "employee38 has a jobTitle of 'Assistant Designer'". This use of a triple as the subject or object resource of another triple so that we can say things about that triple is known as reification. +The concept of reification has always been part of RDF, but expressing it in RDF concrete syntaxes such as Turtle, N-Triples, and RDF/XML, as well as processing or querying it with SPARQL, has been verbose and cumbersome.

              + +

              This specification describes RDF-star, an extension of RDF's conceptual data model and concrete syntaxes, providing a more compact form of reification. This model and syntaxes enable the creation of concise triples that reference other triples as subject and object resources. +Triples that include a triple as a subject or an object are known as RDF-star triples. The following dataset shows the example RDF-star triples from above using the Turtle-star syntax, which uses double angle brackets to enclose a triple serving as a subject or object resource:

              + +
              +
              + Example 1 +
              @prefix :    <http://www.example.org/> .
              +
              +:employee38 :familyName "Smith" .
              +<< :employee38 :jobTitle "Assistant Designer" >> :accordingTo :employee22 .
              +
              + +

              After declaring a prefix so that IRIs can be abbreviated, the first triple in this example asserts that employee38 has a familyName of "Smith". Note that this dataset does not assert that employee38 has a jobTitle of "Assistant Designer"; it says that employee22 has made that claim. In other words, the triple "employee38 has a jobTitle of 'Assistant Designer'" is not what we call an asserted triple, like "employee38 has a familyName of 'Smith'" above; rather, it is known as an embedded triple.

              + +

              If we added the triple :employee38 :jobTitle "Assistant Designer" below the triple about employee22's claim in the example above, then this triple about employee38's jobTitle would be both an embedded triple and an asserted one. +This pattern is quite common, so Turtle-star offers a dedicated syntax for it, called the annotation syntax, illustrated in Example 2 below. Note that this construct is purely syntactic sugar, as it can be expanded using only the double angle brackets.

              + +
              +
              + Example 2 +
              @prefix :    <http://www.example.org/> .
              +
              +:employee38
              +    :familyName "Smith" ;
              +    :jobTitle "Assistant Designer" {| :accordingTo :employee22 |} .
              +
              +# this is equivalent to:
              +#
              +# :employee38
              +#     :familyName "Smith" ;
              +#     :jobTitle "Assistant Designer" .
              +# << :employee38 :jobTitle "Assistant Designer" >> :accordingTo :employee22 .
              +
              + + +

              This specification also describes an extension to the SPARQL Protocol and Query Language known as SPARQL-star for the querying of RDF-star triples. For example, the following SPARQL-star query asks "who has made any claims about employee38?"

              + +
              +
              + Example 3 +
              PREFIX : <http://www.example.org/> 
              +
              +SELECT ?claimer WHERE {
              +   ?claimer :claims << :employee38 ?property ?value >>
              +}
              +
              + + +

              SPARQL query triple patterns that include a triple pattern as a subject or object are known as SPARQL-star triple patterns.

              + +
              Issue 93: annotation-syntax example in the overview/primer part

              The overview/primer part of the report should also contain an example that highlights the availability of the annotation syntax (not only on the data-level but also on the query-level).

              + +
              Issue 94: SPARQL-star update example in the overview/primer part

              The overview/primer part of the report should also contain an example that hints at the fact that the spec also covers updates.

              + +

              For the remainder of this document, examples will assume that the following prefixes have been declared to represent the IRIs shown with them here:

              + + + + + + + + + +
              :<http://www.example.org/>
              rdf:http://www.w3.org/1999/02/22-rdf-syntax-ns#
              rdfs:<http://www.w3.org/2000/01/rdf-schema#>
              owl:<http://www.w3.org/2002/07/owl#>
              prov:<http://www.w3.org/ns/prov#>
              dc:<http://purl.org/dc/elements/1.1/>
              dct:<http://purl.org/dc/terms/>
              + +
              + +

              1.3 Conformance

              As well as sections marked as non-normative, all authoring guidelines, diagrams, examples, and notes in this specification are non-normative. Everything else in this specification is normative.

              + The key words MAY, MUST, and MUST NOT in this document + are to be interpreted as described in + BCP 14 + [RFC2119] [RFC8174] + when, and only when, they appear in all capitals, as shown here. +

              +
              Issue 3: Do we need more things in the 'conformance' section? laterprocess

              For the moment, we only have the boilerplate text generated by respec.

              +
              + +
              + +
              +

              2. Concepts and Abstract Syntax

              + +

              In the following, we introduce a number of definitions specific to SPARQL-star, which rely on the following notions (extending some of them) defined in RDF 1.1 Concepts and Abstract Syntax [RDF11-CONCEPTS]: + blank node, + default graph, + graph name, + IRI, + literal, + named graphs, + object, + predicate, + RDF dataset, + RDF graph, + RDF triple, + and subject +

              + +

              An RDF-star graph is a set of RDF-star triples.

              + +

              An RDF-star triple is a 3-tuple defined recursively as follows:

              + + +

              As for RDF triples, we call the 3 components of an RDF-star triple its subject, predicate and object, respectively. From the definitions above, it follows that any RDF graph is also an RDF-star graph. Note also that, by definition, an RDF-star triple cannot contain itself and cannot be nested infinitely.

              + +

              IRIs, literals, blank nodes and RDF-star triples are collectively known as RDF-star terms.

              + +

              For every RDF-star triple t, we define its constituent terms (or simply constituents) as the set containing its subject, its predicate, its object, plus all the constituent terms of its subject and/or its object if they are themselves RDF-star triples. By extension, we define the constituent terms of an RDF-star graph to be the union set of the constituent terms of all its triples.

              + +
              + Consider the following RDF-star triple (represented in Turtle-star): +
              +
              + Example 4 +
              << _:a :name "Alice" >> :statedBy :bob.
              +
              + Its set of constituent terms comprises the IRIs :name, :statedBy, :bob, the blank node _:a, the literal "Alice", and the triple << _:a :name "Alice" >>. +
              + +

              An RDF-star triple used as the subject or object of another RDF-star triple is called an embedded triple. An RDF-star triple that is an element of an RDF-star graph is called an asserted triple. Note that, in a given RDF-star graph, the same triple MAY be both embedded and asserted.

              + +

              An RDF-star dataset is a collection of RDF-star graphs, and comprises:

              + + + +

              Again, this definition is an extension of the notion of RDF dataset, hence it follows that any RDF dataset is also an RDF-star dataset.

              + +
              +

              2.1 Triples and occurrences

              This section is non-normative.

              + +

              According to the definitions above, an RDF-star triple is an abstract entity whose identity is entirely defined by its subject, predicate and object. Conversely, given three RDF-star terms s, p, and o, there is exactly and only one RDF-star triple with subject s, predicate p and object o. This unique triple (s, p, o) can be embedded as the subject or object of multiple other triples, but must be assumed to represent the same thing everywhere it occurs, just like the same IRI p is assumed to represent the same thing everywhere it occurs.

              + +

              In some situations, however, it might be necessary to distinguish the occurrences of a triple in different graphs. Consider the following sentence: "The triple <http://example.org/s> <http://example.org/p> <http://example.org/o> in (the graph represented by) file1.ttl was added by Alice, and the same triple in file2.ttl was added by Bob." Note that the words "same triple" in this sentence may be confusing, because although the triple (as an abstract entity) is the same, its respective occurrences are different things, each within a different file and with a different author (this is known, in philosophy and linguistics, as the type-token distinction). As the embedded triple represents a unique thing, adequately conveying the meaning of the sentence above requires additional nodes for representing the two distinct occurrences. One possible solution is illustrated in the following example (using the Turtle-star concrete syntax described in the next section).

              + +
              +
              + Example 5 +
              _:a :occurenceOf << :s :p :o >> ;
              +    :in <file1.ttl> ;
              +    dct:creator :alice.
              +_:b :occurenceOf << :s :p :o >> ;
              +    :in <file2.ttl> ;
              +    dct:creator :bob.
              +
              + +
              + +
              + +
              +

              3. Concrete Syntaxes

              + +

              This section defines the following concrete syntaxes:

              + + +

              + Changes for SPARQL-star are given in + § 4.2 Grammar + and the changes for the result set formats in + § 4.6 Query Result Formats.

              + +
              +

              3.1 Turtle-star

              +

              In this section, we present Turtle-star, + an extension of the Turtle format [TURTLE] + allowing the representation of RDF-star graphs. + For the sake of conciseness, + we only describe here the differences between Turtle-star and Turtle.

              + +
              +

              3.1.1 Grammar

              +

              Turtle-star is defined to follow the same grammar as Turtle, + except for the EBNF productions specified below, + which replace the productions having the same number (if any) in the original grammar.

              + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
              [8]objectList::= + object + annotation? + ( + ',' + object + annotation? + )* +
              [10]subject::= + iri | + BlankNode | + collection | + embTriple +
              [12]object::= + iri | + BlankNode | + collection | + blankNodePropertyList | + literal | + embTriple +
              [27t]embTriple::= + '<<' + embSubject + verb + embObject + '>>' +
              [28t]embSubject::= + iri | + BlankNode | + embTriple +
              [29t]embObject::= + iri | + BlankNode | + literal | + embTriple +
              [30t]annotation::= + '{|' + predicateObjectList + '|}' +
              + +
              Note

              As with N-Triples-star, + the changes are that subject + and object productions + have been extended to accept embedded triples, + which are described by the new productions 27t + to 30t. + Note that embedded triples accept a more restricted range of + subject and object expressions + than asserted triples. + Additionally, the objectList production + now accepts an optional annotation after each object.

              +
              + +
              +

              3.1.2 Parsing

              +

              A Turtle-star parser is similar to a Turtle parser + as defined in Section 7 of the Turtle specification [TURTLE], + with an additional item in its state :

              + +

              Additionally, the curSubject + can be bound to any RDF-star term + (including an embedded triple).

              + +

              A Turtle-star document defines an RDF-star graph + composed of a set of RDF-star triples. + The subject + and embSubject productions set the curSubject. + The verb production + sets the curPredicate. + The object + and embObject productions + set the curObject. + Finishing the object production, + an RDF-star triple curSubject curPredicate curObject is produced + (added to the RDF-star graph).

              + +

              Beginning the embTriple production + records the curSubject and curPredicate. + Finishing the embTriple production + yields the RDF-star triple curSubject curPredicate curObject + and restores the recorded values of curSubject and curPredicate.

              + +

              Beginning the annotation production + records the curSubject and curPredicate, + and sets the curSubject to the RDF-star triple curSubject curPredicate curObject. + Finishing the annotation production + restores the recorded values of curSubject and curPredicate.

              + +

              All other productions MUST be handled as specified + by Section 7 of the Turtle specification [TURTLE], + while still applying the changes above recursively.

              + +
              +
              3.1.2.1 Discussion

              This section is non-normative.

              + +

              This section describes parser behavior when parsing + a Turtle-star document that contains embedded triples + and annotations.

              + +

              Consider a Turtle-star document that describes an RDF triple, + and also uses that triple as an embedded triple + as the subject of another RDF-star triple:

              + +
              +
              + Example 6: Turtle-star embedded triples +
              @base <http://example.org/> .
              +@prefix : <#> .
              +_:a :name "Alice" .
              +<< _:a :name "Alice" >> :statedBy :bob .
              +
              + +

              The usual process of parsing a Turtle document + applies with the addition of matching the embedded triple + << _:a :name "Alice" >> + as part of the subject production. + The resulting RDF-star graph consists of two RDF-star triples:

              + +
                +
              1. (b, http://example.org/#name, "Alice"), + where b is a blank node
              2. +
              3. ((b, http://example.org/#name, "Alice"), http://example.org/#statedBy, http://example.org/#bob/), + where b is the same blank node
              4. +
              + +

              Because the above example includes the triple (b, http://example.org/#name, "Alice") + as an asserted triple, + the same RDF-star graph may also be represented + by using the Turtle-star annotation syntax as follows:

              + +
              +
              + Example 7: Turtle-star annotated triples +
              @base <http://example.org/> .
              +@prefix : <#> .
              +_:a :name "Alice" {| :statedBy :bob |} .
              +
              + +

              In this case, the objectList production + matches the annotation production on {| :source :bob |} + after parsing the object production on "Alice". + At this point, the curSubject, curPredicate, and curObject are saved, + and a new RDF-star triple _:a :name "Alice" is created + and used as curSubject while processing + the annotation production.

              +
              +
              +
              + +
              +

              3.2 TriG-star

              + +

              This section describes TriG-star, + a minimal extension of the TriG format [TRIG] + using the same production updates described in § 3.1 Turtle-star.

              + +
              Note

              RDF-star describes embedded triples, + which are not necessarily present in any named graph, + or within the default graph.

              + +

              A TriG-star document defines an RDF-star dataset, composed of + a single default graph and zero or more named graphs, + all of which are RDF-star graphs.

              + +

              The TriG-star grammar contains exactly the same production updates + described in § 3.1.1 Grammar.

              + +

              TriG-star parsing uses the same updates described + in § 3.1.2 Parsing + as applied to Section 5 of the TriG specification [TRIG].

              + +
              Note

              As with Turtle-star, + the embTriple + and annotation + are used to set either the curSubject or curObject, + and do not directly add the associated embedded triple to curGraph. + Subsequent productions which use either curSubject or curObject + may result in adding triples to curGraph.

              + +

              A conforming TriG-star parser MUST parse any + valid TriG document and any + valid Turtle-star document in addition + to the Turtle-star grammar productions contained within a named graph.

              + +
              +

              3.2.1 Discussion

              This section is non-normative.

              + +

              TriG-star allows the same expressivity as Turtle-star + with the addition of allowing embedded triples + and annotations + within named graphs.

              + +
              +
              + Example 8: TriG-star annotated triples +
              @base <http://example.org/> .
              +@prefix : <#> .
              +:G {
              +  _:a :name "Alice" {| :statedBy :bob |} .
              +}
              +
              + +

              The resulting RDF-star dataset consists of + an empty default graph, and a graph named http://example.org/#G + with two RDF-star triples:

              + +
                +
              1. (b, http://example.org/#name, "Alice"), + where b is a blank node
              2. +
              3. ((b, http://example.org/#name, "Alice"), http://example.org/#statedBy, http://example.org/#bob/), + where b is the same blank node
              4. +
              +
              +
              + +
              +

              3.3 N-Triples-star

              + +

              This section describes N-Triples-star, + a minimal extension of the N-Triples format [N-TRIPLES] + allowing a subject or an object + of an RDF-star triple to be an embedded triple.

              + +
              +

              3.3.1 Grammar

              +

              N-Triples-star is defined to follow the same grammar as + the N-Triples Grammar, + except for the EBNF productions specified below, + which replace the productions having the same number + (if any) in the original grammar.

              + + + + + + + + + + + + + + + + + + + + + + +
              [3]subject::=IRIREF | BLANK_NODE_LABEL | embTriple
              [5]object::=IRIREF | BLANK_NODE_LABEL | literal | embTriple
              [7t]embTriple::="<<" subject predicate object ">>"
              + +
              Note

              The changes are + subject + and object productions + have been extended to accept embedded triples, + which are described by the new production + 7.

              +
              + +
              +

              3.3.2 Parsing

              +

              In contrast to [N-TRIPLES], + N-Triples-star allows recursion on the + subject + and object productions.

              + +

              An N-Triples-star document defines an RDF-star graph + composed of a set of RDF-star triples. + The triple production + produces an RDF-star triple + composed of a subject, + predicate, + and object.

              + +

              In addition to the Term Constructors defined in [N-TRIPLES], + an additional constructor is defined for embTriple + of type RDF-star triple + defined by the terms constructed + for subject, + predicate, + and object.

              + +

              All other productions MUST be handled as specified by + Section 8.1 of the N-Triples specification [N-TRIPLES], + while still applying the changes above recursively.

              +
              +
              + +
              +

              3.4 N-Quads-star

              + +

              The [N-QUADS] format is extended to describe the + N-Quads-star format using the same production updates described in the N-Triples-star Grammar.

              + +
              Note

              As RDF-star describes embedded triples and not embedded quads, + the graphLabel + component of an N-Quads statement + does not apply to the embTriple component.

              + +

              An N-Quads-star document defines an RDF-star dataset, + composed of a single default graph + and zero or more named graphs, + all of which are RDF-star graphs.

              + +

              A conforming N-Quads-star parser MUST parse any valid + N-Quads document and additionally parse the + subject and + object productions + from N-Triples-star to generate RDF-star triples which are + added to either the default graph or associated + named graph, as appropriate.

              +
              + +
              +

              3.5 Other Concrete Syntaxes

              This section is non-normative.

              + +

              While this document specifies a small number of concrete syntaxes, + nothing prevents other concrete syntaxes of RDF-star from being proposed. In particular, syntaxes such as + RDF/XML [RDF-SYNTAX-GRAMMAR], + and JSON-LD [JSON-LD], + could be extended to support RDF-star.

              +
              + +
              + +
              +

              4. SPARQL-star Query Language

              + +

              This Section introduces SPARQL-star, which is an RDF-star-aware extension of the RDF query language SPARQL [SPARQL11-QUERY]; i.e., SPARQL-star can be used to query RDF-star graphs.

              + +
              +

              4.1 Initial Definitions

              + +

              In the following, we introduce a number of SPARQL-star-specific definitions, which rely on the following notions, defined in SPARQL 1.1 Query Language [SPARQL11-QUERY]: RDF term, query variable, triple pattern, + property path pattern, + property path expression, + and solution mapping.

              + +

              A SPARQL-star triple pattern is a 3-tuple that is defined recursively as follows:

              +
                +
              1. Every SPARQL triple pattern is a SPARQL-star triple pattern; +
              2. If t and t' are SPARQL-star triple patterns, x is an RDF term or a query variable, and p is an IRI or a query variable, then (tpx), (xpt), and (tpt') are SPARQL-star triple patterns. +
              + +

              As for RDF-star triples, a SPARQL-star triple pattern MUST NOT contain itself.

              + +

              A SPARQL-star basic graph pattern (BGP-star) is a set of SPARQL-star triple patterns.

              + +

              A SPARQL-star property path pattern is a 3-tuple (s,p,o) where

              + + +
              Issue 7: Property path patterns in SPARQL* sparql-star

              I have added the definition of a SPARQL* property path pattern into the draft just for the sake of having such a definition. We need to think about whether it is useful to add this to SPARQL*, in which case we need to define the semantics of such SPARQL* property path patterns.

              +

              In fact, no matter what we decide, even for standard property path patterns, the semantics may have to be extended to use them over RDF* graphs.

              + +

              A SPARQL-star solution mapping μ is a partial function from the set of all query variables to the set of all RDF-star terms. + The domain of μ, denoted by dom(μ), is the set of query variables for which μ is defined.

              + +
              Note

              The notion of a SPARQL-star solution mapping extends the notion of a standard SPARQL solution mapping; that is, every SPARQL solution mapping is a SPARQL-star solution mapping. However, in contrast to SPARQL solution mappings, SPARQL-star solution mappings may map variables also to RDF-star triples.

              + +

              All notions related to SPARQL solution mappings carry over naturally to SPARQL-star solution mappings. In particular, the definition of compatibility extends naturally to SPARQL-star solution mappings: two SPARQL-star solution mappings μ1 and μ2 are compatible if, for every variable v that is both in dom(μ1) and in dom(μ2), μ1(v) and μ2(v) are the same RDF-star term. + In this case, μ1 ∪ μ2 is also a SPARQL-star solution mapping. + Moreover, for any SPARQL-star solution mapping μ we write card[Ω](μ) to denote the cardinality of μ in a multiset Ω of such mappings. + Finally, given a BGP-star B and a SPARQL-star solution mapping μ, we write μ(B) to denote the result of replacing every variable v in B for which μ is defined with μ(v). +

              + +

              Next, we aim to carry over the notion of solutions for BGPs to BGP-star. To this end, we first define an auxiliary concept that carries over the notion of an + RDF instance mapping [RDF11-MT] to RDF-star.

              + +

              An RDF-star instance mapping σ is a partial function from the set of all blank nodes to the set of all RDF-star terms. + The domain of σ, denoted by dom(σ), is the set of blank nodes for which σ is defined.

              + +

              Similar to the corresponding notation for solution mappings, for an RDF-star instance mapping σ and a BGP-star B we write σ(B) to denote the result of replacing every blank node b in B for which σ is defined with σ(b).

              + +

              Now we are ready to define the notion of solution for BGP-star.

              + +

              Given a BGP-star B and an RDF-star graph G, a SPARQL-star solution mapping μ is a solution for the BGP-star B over G if it has the following two properties

              +
                +
              • dom(μ) is equivalent to the set of query variables in B, and +
              • there exists an RDF-star instance mapping σ such that dom(σ) is equivalent to the set of blank nodes in B and μ(σ(B)) is a subgraph of G. +
              + +
              + +
              +

              4.2 Grammar

              + +

              SPARQL-star is defined to follow the same grammar as SPARQL 1.1, except for the EBNF productions specified below, which replace the productions having the same number (if any) in the original grammar. The parts in which these productions differ from the corresponding productions in the original grammar are marked in bold font. Productions [174] and following have been added and have no counterpart in the original grammar.

              + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
              [65]DataBlockValue::= + EmbTriple | + iri | + RDFLiteral | + NumericLiteral | + BooleanLiteral | + 'UNDEF' +
              [75]TriplesSameSubject::= + VarOrTermOrEmbTP + PropertyListNotEmpty + | + TriplesNode + PropertyList +
              [80]Object::= + GraphNode + AnnotationPattern? +
              [81]TriplesSameSubjectPath::= + VarOrTermOrEmbTP + PropertyListPathNotEmpty + | + TriplesNode + PropertyListPath +
              [87]ObjectPath::= + GraphNodePath + AnnotationPatternPath? +
              [104]GraphNode::= + VarOrTermOrEmbTP | + TriplesNode +
              [105]GraphNodePath::= + VarOrTermOrEmbTP | + TriplesNodePath +
              [121]BuiltInCall::= +
                 Aggregate
              +
              + | + 'STR' + '(' + Expression + ')' +
              +
              + | + 'LANG' + '(' + Expression + ')' +
              +
              + | + 'LANGMATCHES' + '(' + Expression + ')' +
              +
              + | + 'DATATYPE' + '(' + Expression + ')' +
              +
              + | + 'BOUND' + '(' + Var + ')' +
              +
              + | + 'IRI' + '(' + Expression + ')' +
              +
              + | + 'URI' + '(' + Expression + ')' +
              +
              + | + 'BNODE' + ( + '(' + Expression + ')' + | + NIL + ) +
              +
              + | + 'RAND' + NIL +
              +
              + | + 'ABS' + '(' + Expression + ')' +
              +
              + | + 'CEIL' + '(' + Expression + ')' +
              +
              + | + 'FLOOR' + '(' + Expression + ')' +
              +
              + | + 'ROUND' + '(' + Expression + ')' +
              +
              + | + 'CONCAT' + ExpressionList +
              + +
              + | + 'STRLEN' + '(' + Expression + ')' +
              + +
              + | + 'UCASE' + '(' + Expression + ')' +
              +
              + | + 'LCASE' + '(' + Expression + ')' +
              +
              + | + 'ENCODE_FOR_URI' + '(' + Expression + ')' +
              +
              + | + 'CONTAINS' + '(' + Expression + ',' + Expression + ')' +
              +
              + | + 'STRSTARTS' + '(' + Expression + ',' + Expression + ')' +
              +
              + | + 'STRENDS' + '(' + Expression + ',' + Expression + ')' +
              +
              + | + 'STRBEFORE' + '(' + Expression + ',' + Expression + ')' +
              +
              + | + 'STRAFTER' + '(' + Expression + ',' + Expression + ')' +
              +
              + | + 'YEAR' + '(' + Expression + ')' +
              +
              + | + 'MONTH' + '(' + Expression + ')' +
              +
              + | + 'DAY' + '(' + Expression + ')' +
              +
              + | + 'HOURS' + '(' + Expression + ')' +
              +
              + | + 'MINUTES' + '(' + Expression + ')' +
              +
              + | + 'SECONDS' + '(' + Expression + ')' +
              +
              + | + 'TIMEZONE' + '(' + Expression + ')' +
              +
              + | + 'TZ' + '(' + Expression + ')' +
              +
              + | + 'NOW' + NIL +
              +
              + | + 'UUID' + NIL +
              +
              + | + 'STRUUID' + NIL +
              +
              + | + 'MD5' + '(' + Expression + ')' +
              +
              + | + 'SHA1' + '(' + Expression + ')' +
              +
              + | + 'SHA256' + '(' + Expression + ')' +
              +
              + | + 'SHA384' + '(' + Expression + ')' +
              +
              + | + 'SHA512' + '(' + Expression + ')' +
              +
              + | + 'COALESCE' + ExpressionList +
              +
              + | + 'IF' + '(' + Expression + ',' + Expression + ',' + Expression + ')' +
              +
              + | + 'STRLANG' + '(' + Expression + ',' + Expression + ')' +
              +
              + | + 'STRDT' + '(' + Expression + ',' + Expression + ')' +
              +
              + | + 'sameTerm' + '(' + Expression + ',' + Expression + ')' +
              +
              + | + 'isIRI' + '(' + Expression + ')' +
              +
              + | + 'isURI' + '(' + Expression + ')' +
              +
              + | + 'isBLANK' + '(' + Expression + ')' +
              +
              + | + 'isLITERAL' + '(' + Expression + ')' +
              +
              + | + 'isNUMERIC' + '(' + Expression + ')' +
              +
              + | + RegexExpression +
              +
              + | + ExistsFunc +
              +
              + | + NotExistsFunc +
              +
              + | + 'TRIPLE' + '(' + Expression + ',' + Expression + ',' + Expression + ')' +
              +
              + | + 'SUBJECT' + '(' + Expression + ')' +
              +
              + | + 'PREDICATE' + '(' + Expression + ')' +
              +
              + | + 'OBJECT' + '(' + Expression + ')' +
              +
              + | + 'isTRIPLE' + '(' + Expression + ')' +
              +
              [174]EmbTP::= + '<<' + EmbSubjectOrObject + Verb + EmbSubjectOrObject + '>>' +
              [175]EmbTriple::= + '<<' + DataValueTerm + ( + iri + | + 'a' + ) + DataValueTerm + '>>' +
              [176]EmbSubjectOrObject::= + Var | + BlankNode | + iri | + RDFLiteral | + NumericLiteral | + BooleanLiteral | + EmbTP +
              [177]DataValueTerm::= + iri | + RDFLiteral | + NumericLiteral | + BooleanLiteral | + EmbTriple +
              [178]VarOrTermOrEmbTP::= + Var | + GraphTerm | + EmbTP +
              [179]AnnotationPattern::= + '{|' + PropertyListNotEmpty + '|}' +
              [180]AnnotationPatternPath::= + '{|' + PropertyListPathNotEmpty + '|}' +
              + +

              + This introduces a notation for embedded triple patterns + (production [174]), + which is similar to the one defined for embedded triples in § 3.1 Turtle-star, + but accepting also variables. + These embedded triple patterns are allowed in both the subject position ([75], [81]) and the object position ([80], [87]) + of SPARQL-star triple patterns, as well as in the short-hand notation for querying collections ([102], [103]). +

              + +

              + Additionally, production [65] for values that can be used in the VALUES clause is extended to permit RDF-star triples as possible values, and the set of available built-in functions is extended with the five functions TRIPLE, SUBJECT, PREDICATE, OBJECT, and isTRIPLE ([121]) that are defined in § 4.4 Function Definitions. +

              + +
              Note

              As defined for all keywords in SPARQL, the names of the five new built-in functions added by SPARQL-star are matched in a case-insensitive manner.

              + +

              + Yet another extension is that both the Object and the ObjectPath productions now accept an optional annotation pattern after each object. The purpose of this feature is to enable users to use the same kind of annotation syntax that is supported in Turtle-star. As in the case of Turtle-star, the annotation syntax in SPARQL-star is purely syntactic sugar that has to be processed in accordance to the first expansion rule in § 4.3.2 Expand Syntax Forms. +

              + +

              + A restriction to the use of the annotation syntax in SPARQL-star exists that is not captured by the grammar as defined above: An AnnotationPatternPath may be added only to SPARQL-star property path patterns in which the property path expression is a PredicatePath (i.e., a single IRI) or the keyword a (as a short form for the IRI rdf:type). Hence, a query such as the following violates this restriction and, thus, is invalid. +

              + +
              +
              + Example 9 +
              SELECT * WHERE {
              +    ?s :p/:q ?o {| ?pp ?oo |}.
              +}
              +
              + +

              + While annotation patterns must not be added to property path patterns other than the ones permitted by the restriction above, it is possible to use property path expressions within annotation patterns (but without violating the restriction in the case of nested annotation patterns). For instance, the following query is valid. +

              + +
              +
              SELECT * WHERE {
              +    ?s ?p ?o {| :p/:q ?oo |}.
              +}
              +
              + +
              + +
              +

              4.3 Translation to the Algebra

              + +

              Based on the SPARQL grammar, the SPARQL specification defines the process of converting graph patterns and solution modifiers in a SPARQL query string into a SPARQL algebra expression [SPARQL11-QUERY, Section 18.2]. This process must be adjusted to consider the extended grammar introduced above. In the following, any step of the conversion process that requires adjustment is discussed.

              + +
              +

              4.3.1 Variable Scope

              + +

              As a basis of the translation, the SPARQL specification introduces a notion of in-scope variables. To cover the new syntax elements introduced in § 4.2 Grammar this notion MUST be extended as follows.

              + +
                +
              • A variable is in-scope of a BGP-star B if the variable occurs in B, which includes an occurrence in any embedded triple pattern in B (independent of the level of nesting).
              • +
              • A variable is in-scope of a property path pattern if the variable occurs in that pattern, which includes an occurrence in any embedded triple pattern in the pattern (independent of the level of nesting).
              • +
              +
              + +
              +

              4.3.2 Expand Syntax Forms

              + +

              The translation process starts with expanding abbreviations for IRIs and triple patterns [SPARQL11-QUERY, Section 18.2.2.1]. This step MUST be extended in three ways:

              + +
                +
              1. +

                Annotation patterns MUST be replaced by additional SPARQL-star triple patterns that have the annotated triple pattern as an embedded triple pattern in their subject position.

                + + + +
              2. +
              3. +

                Abbreviations for triple patterns with embedded triple patterns MUST be expanded as if each embedded triple pattern was a variable (or an RDF term).

                + + +
              4. +
              5. +

                Abbreviations for IRIs in all embedded triple patterns MUST be expanded.

                + + +
              6. +
              +
              + +
              +

              4.3.3 Translate Property Path Patterns

              + +

              The translation of property path patterns has to be adjusted because the extended grammar allows for SPARQL-star property path patterns whose subject or object is a SPARQL-star triple pattern.

              + +

              The translation as specified in the W3C specification distinguishes four cases. The first three of these cases do not require adjustment because they are taken care of either by recursion or by the adjusted translation of basic graph patterns (as defined in § 4.3.4 Translate Basic Graph Patterns below). However, the fourth case MUST be adjusted as follows.

              + +

              Let X P Y be a string that corresponds to the fourth case in [SPARQL11-QUERY, Section 18.2.2.4]. Given the grammar introduced in § 4.2 Grammar, X and Y may be an RDF term, a variable, or an embedded triple pattern, respectively (and P is a property path expression). The string X P Y is translated to the algebra expression Path(X’,P,Y’) where X’ and Y’ are the result of calling a function named Lift for X and Y, respectively. For some input string Z (such as X or Y) that can be an RDF term, a variable, or an embedded triple pattern, the function Lift is defined recursively as follows:

              + +
                +
              1. If Z is an embedded triple pattern <<S,P,O>> then return the SPARQL-star triple pattern (Lift(S), P, Lift(O));
              2. +
              3. Otherwise, return Z.
              4. +
              + +
              Note
              + The purpose of this translation step is to convert any property path pattern as can be written based on the extended grammar for SPARQL-star (cf. § 4.2 Grammar) into a SPARQL-star property path pattern as considered in the algebra. To this end, the function Lift translates every embedded triple pattern as can be written in the SPARQL-star syntax into a SPARQL-star triple pattern. +
              +
              + +
              +

              4.3.4 Translate Basic Graph Patterns

              + +

              After translating property path patterns, the translation process collects any adjacent triple patterns [...] to form a basic graph pattern [SPARQL11-QUERY, Section 18.2.2.5]. This step has to be adjusted because triple patterns in the extended syntax may have an embedded triple pattern in their subject position or in their object position (or in both). To ensure that every result of this step is a BGP-star, before adding a triple pattern to its corresponding collection, its subject and object MUST be replaced by the result of calling function Lift for the subject and the object, respectively.

              +
              + +
              + +
              +

              4.4 Function Definitions

              + +

              SPARQL introduces operators and functions that can be used in an expression of a FILTER clause, a BIND clause, or a SELECT clause (see Section 17.3 and Section 17.4 in [SPARQL11-QUERY]). While these operators and functions are defined to operate on RDF terms and query variables, for SPARQL-star they have to be defined to operate on RDF-star terms and query variables. To this end, when using these operators and functions in the context of SPARQL-star, their definitions as given in Section 17.4 of [SPARQL11-QUERY] are extended by assuming that any mention of RDF term as a data type for operands is understood to be the type of all RDF-star terms.

              + +

              In addition to carrying over the operators and functions of SPARQL, SPARQL-star introduces five new functions that are defined as follows (where the data types RDF-star term and RDF-star triple capture all RDF-star terms and all RDF-star triples, respectively).

              + +
              +

              4.4.1 TRIPLE

              + +

              + RDF-star triple   + TRIPLE + ( + RDF-star term + term1, + RDF-star term + term2, + RDF-star term + term3 + ) +

              + +

              If the 3-tuple (term1, term2, term3) is an RDF-star triple, the function returns this triple. If the 3-tuple is not an RDF-star triple, then the function raises an error.

              + +
              + +
              +

              4.4.2 SUBJECT

              + +

              + RDF-star term   + SUBJECT + ( + RDF-star triple + triple + ) +

              + +

              If triple is an RDF-star triple, the function returns the subject of this triple. Passing anything other than an RDF-star triple is an error.

              + +
              + +
              +

              4.4.3 PREDICATE

              + +

              + RDF-star term   + PREDICATE + ( + RDF-star triple + triple + ) +

              + +

              If triple is an RDF-star triple, the function returns the predicate of this triple. Passing anything other than an RDF-star triple is an error.

              + +
              + +
              +

              4.4.4 OBJECT

              + +

              + RDF-star term   + OBJECT + ( + RDF-star triple + triple + ) +

              + +

              If triple is an RDF-star triple, the function returns the object of this triple. Passing anything other than an RDF-star triple is an error.

              + +
              + +
              +

              4.4.5 isTRIPLE

              + +

              + xsd:boolean   + isTRIPLE + ( + RDF-star term + term + ) +

              + +

              Returns true if term is an RDF-star triple. Returns false otherwise.

              + +
              + +
              +

              4.4.6 Examples and Discussion

              This section is non-normative.

              + +

              By the evaluation semantics of SPARQL-star as defined in § 4.5 Evaluation Semantics, the five new built-in functions defined above can be used in exactly the same manner as the functions defined in the SPARQL 1.1 spec. For instance, the following SPARQL-star query retrieves every asserted triple that is both contained in the default graph of the queried RDF-star dataset and has an embedded triple as its subject.

              + +
              +
              SELECT ?t WHERE {
              +  ?s ?p ?o .
              +  BIND( TRIPLE(?s,?p,?o) AS ?t )
              +  FILTER( isTRIPLE(SUBJECT(?t)) )
              +}
              +
              + +

              Instead of accessing the subject of the triples in the FILTER after the BIND clause, as was done in the previous query, a semantically equivalent query may apply the FILTER directly on the variable ?s, as follows:

              + +
              +
              SELECT ?t WHERE {
              +  ?s ?p ?o .
              +  BIND( TRIPLE(?s,?p,?o) AS ?t )
              +  FILTER( isTRIPLE(?s) )
              +}
              +
              + +

              While the triples that the previous example queries bind to variable ?t occur in the queried data, the TRIPLE function can be used to construct triples that may not be in the data. For instance, the following query uses the subject of each asserted triple in the default graph of the queried RDF-star dataset to construct another triple, and bind it to the variable ?t. Notice that the result of this query contains as many SPARQL-star solution mappings as there are asserted triples in the queried graph, and there may be duplicates in the result if multiple asserted triples have the same subject.

              + +
              +
              PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
              +PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
              +
              +SELECT ?t WHERE {
              +  ?s ?p ?o .
              +  BIND( TRIPLE(?s,rdf:type,rdfs:Resource) AS ?t )
              +}
              +
              + +

              There are cases where the effects of using the new TRIPLE function are not immediately obvious just from its definition, particularly when considering the interplay of this function with the BNODE function when used within GRAPH clauses. Some of these cases are discussed below.

              + +

              Consider the following SPARQL-star query.

              + +
              +
              SELECT ( COUNT(?t1) AS ?t1Count )
              +       ( COUNT(?t2) AS ?t2Count )
              +       ( COUNT(?t3) AS ?t3Count )
              +       ( COUNT(DISTINCT ?t1) AS ?t1DistCount )
              +       ( COUNT(DISTINCT ?t2) AS ?t2DistCount )
              +       ( COUNT(DISTINCT ?t3) AS ?t3DistCount )
              +WHERE {
              +  GRAPH ?g {
              +    BIND( TRIPLE(BNODE(), :p, :o) AS ?t1 )
              +    BIND( TRIPLE(BNODE("id"), :p, :o) AS ?t2 )
              +    BIND( TRIPLE(:s, :p, :o) AS ?t3 )
              +  }
              +}
              +
              + +

              When evaluated over an RDF-star dataset that contains n named graphs, where n>0, the GRAPH clause results in one SPARQL-star solution mapping per named graph. The SELECT clause collapses these n mappings into a single mapping that is defined for the six variables introduced in the SELECT clause. (If n=0, the query result is the empty set.) Each of these six variables is mapped to an integer-typed literal with values as follows. For each of ?t1Count, ?t2Count, and ?t3Count, the value is n, because the variables ?t1, ?t2, and ?t3 are bound in each of the n solution mappings produced for the GRAPH clause. For the variable ?t1DistCount, the value is also n, because the BIND clauses are evaluated n times (once for each named graph) and the subexpression BNODE() always creates a different new blank node; thus, the triples created for variable ?t1 are all different from one another. This is also the case if the BNODE function is used with an argument; i.e., the value of ?t2DistCount is n too. In contrast, the variable ?t3 is mapped to the same triple within each evaluation of the third BIND clause; thus, the value for ?t3DistCount is 1.

              + +

              Notice that the BNODE function has to be used to create a blank node; simply writing a blank node directly in an expression is not permitted.

              + +

              Notice as well that the preceding query is special in two ways: its GRAPH clause does not actually consider the content of the named graphs; and the expressions in the BIND clauses do not contain variables. In contrast, the GRAPH clause and the BIND clauses in the following query do.

              + +
              +
              PREFIX rdf:  <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
              +PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
              +PREFIX rdfg: <http://www.w3.org/2004/03/trix/rdfg-1/>
              +
              +SELECT ( COUNT(?t1) AS ?t1Count )
              +       ( COUNT(?t2) AS ?t2Count )
              +WHERE {
              +  GRAPH ?g {
              +    ?g rdf:type rdfg:Graph .
              +    BIND( TRIPLE(?g, rdf:type, rdfs:Resource) AS ?t1 )
              +    BIND( TRIPLE(?x, rdf:type, rdfs:Resource) AS ?t2 )
              +  }
              +}
              +
              + +

              For every RDF-star dataset with n>0 named graphs, the result of this query consists of a single SPARQL-star solution mapping that is defined for the three variables introduced in the SELECT clause. The value of ?t1Count is the number of named graphs in the queried dataset that contain a triple of the form (u, rdf:type, rdfg:Graph) such that u is the name of the named graph in the dataset. The value of ?t2Count is always 0 (zero), because evaluating the expression of the second BIND clause results in an error, because the variable ?x is not bound in the scope of this evaluation. As a side note, evaluating the expression of the first BIND clause would also result in an error, if the variable ?g was not mentioned inside the GRAPH clause (e.g., if the given triple pattern was not there).

              + +
              + +
              + +
              +

              4.5 Evaluation Semantics

              + +

              The SPARQL specification defines a function eval(D(G), algebra expression) as the evaluation of an algebra expression with respect to a dataset D having active graph G [SPARQL11-QUERY, Section 18.6]. Recall that the dataset D in the context of SPARQL-star is an RDF-star dataset and, thus, the active graph G is an RDF-star graph, and so is any other graph in dataset D. The definition of the eval function is recursive; the base case of this definition for SPARQL-star are given as follows:

              + +
                +
              • For every BGP-star B, eval(D(G), B) is a multiset Ω that consists of all SPARQL-star solution mappings that are a solution for the BGP-star B over G. For every such mapping μ, card[Ω](μ) is the number of distinct RDF-star instance mappings σ such that dom(σ) is equivalent to the set of blank nodes in B and μ(σ(B)) is a subgraph of G. (For any SPARQL-star solution mapping μ' that is not a solution for B over G, we have that card[Ω](μ')=0; i.e., μ' is not in Ω.)
              • +
              + +

              For any other algebra expression, the SPARQL specification defines algebra operators [SPARQL11-QUERY]. These definitions can be extended naturally to operate over multisets of SPARQL-star solution mappings (instead of ordinary solution mappings). Given this extension, the recursive steps of the definition of the eval function for SPARQL-star are the same as in the SPARQL specification.

              +
              + +
              +

              4.6 Query Result Formats

              + +

              In SPARQL, queries can take four forms: SELECT, CONSTRUCT, DESCRIBE, and ASK - see SPARQL1.1 Query, Section 16 [SPARQL11-QUERY]. The first of these returns a sequence of solution mappings that contain variable bindings. The second and third both return an RDF graph, and the last returns a boolean value. +

              +

              The result of the ASK query form is not changed by the introduction of RDF-star, and the result of the CONSTRUCT and DESCRIBE forms can be represented by Turtle-star. However, since the SELECT form deals with returning individual RDF terms, the specific serialization formats for representing such query results need to be extended so that the new embedded triple RDF term can be represented. In this section, we propose extensions for the two most common formats for this purpose: SPARQL 1.1 Query Results JSON Format, and SPARQL Query Results XML Format (Second Edition).

              + +
              Issue 43: New mime types for RDF-star serializations (inc. SPARQL results) concrete-syntaxsparql-star

              In addition to defining the extended formats for serializing the result of a SPARQL* SELECT query (#12 and #13), we have to decide whether we need/want new mime types for these extended formats? Similarly, do we need/want to introduce another namespace for the extended XML result format?

              + +
              +

              4.6.1 SPARQL-star Query Results JSON Format

              +

              + The result of a SPARQL SELECT query is serialized in JSON as defined in SPARQL 1.1 Query Results JSON Format, which specifies a JSON representation of variable bindings to RDF terms (see [sparql11-results-json, Section 3.2]). To accommodate the new RDF term for embedded triples that RDF-star introduces, the table of RDF term JSON representations in sparql11-results-json, Section 3.2.2 is extended with the following entry: +

              +
              +
              An embedded triple with subject RDF term S, predicate RDF term P and object RDF term O
              +
              +
              {
              +  "type": "triple",
              +  "value": {
              +     "subject": S,
              +     "predicate": P,
              +     "object": O
              +  }
              +}
              + where S, P and O are encoded using the same format, recursively. +
              +
              + + +
              + +
              +

              4.6.2 SPARQL-star Query Results XML Format

              +

              + The result of a SPARQL SELECT query is serialized in XML as defined in SPARQL Query Results XML Format (Second Edition). This format proposes an XML representation of variable bindings to RDF terms. +

              +

              To accommodate the new RDF term for embedded triples that RDF-star introduces, the list of RDF terms and their XML representations in [rdf-sparql-XMLres, Section 2.3.1] is extended as follows: +

              +

              +

              +
              An embedded triple with subject term S, predicate term P, and object term O
              +
              +
              <binding>
              +  <triple>
              +    <subject>S</subject>
              +    <predicate>P</predicate>
              +    <object>O</object>
              +  </triple>
              +</binding>
              + where S, P and O are encoded recursively, using the same format, without the enclosing <binding> tag. +
              +
              + + + + +
              + +
              + +
              + +
              +

              5. SPARQL-star Update

              + +

              This section specifies SPARQL-star Update, an update language for RDF-star. This language extends SPARQL Update [SPARQL11-UPDATE], the update language for RDF, by adding RDF-star-specific features and semantics.

              + +
              +

              5.1 Informal Description

              This section is non-normative.

              + +

              While SPARQL Update operates over a graph store that consists of RDF graphs, SPARQL-star Update extends the notion of graph store to contain RDF-star graphs instead of RDF graphs. That is, a graph store in the context of SPARQL-star Update contains one (unnamed) slot holding an RDF-star graph, referred to as the default graph, and zero or more named slots holding other RDF-star graphs, referred to as named graphs. Then, all graph management operations in SPARQL Update (CREATE, DROP, COPY, MOVE, ADD) carry over directly to SPARQL-star Update with the only difference being that in SPARQL-star Update these operations manage RDF-star graphs. For instance, the CREATE operation in SPARQL-star Update creates an RDF-star graph rather than a pure RDF graph. Similarly, the graph update operations LOAD and CLEAR in SPARQL-star Update operate with RDF-star graphs in the same way as their SPARQL Update counterparts operate with RDF graphs.

              + +

              The only operations that SPARQL-star Update actually extends are the graph update operations INSERT DATA, DELETE DATA, and DELETE/INSERT. This section describes these extensions informally. While this description focuses mainly on updates to the default graph, the operations can also be applied to the named graphs.

              + +
              +

              5.1.1 INSERT DATA

              + +

              The INSERT DATA operation can be used to add a given set of triples into the graph store. In the context of SPARQL-star Update, these triples may be RDF-star triples. As an example, consider the following INSERT DATA operation.

              + +
              +
              PREFIX : <http://www.example.org/>
              +
              +INSERT DATA {
              +  :alice :claims << :bob :age 23 >> .
              +}
              +
              + +

              Suppose this INSERT DATA operation is executed over a graph store with an empty default graph. After executing this operation, the default graph contains the given (nested) RDF-star triple. Now, it is possible to query for this triple. For instance, the following SPARQL-star query returns a single solution mapping in which the variables ?p and ?a are mapped to the IRI :alice and the literal 23, respectively.

              + +
              +
              PREFIX : <http://www.example.org/>
              +
              +SELECT ?p ?a WHERE {
              +  ?p :claims << :bob :age ?a >> .
              +}
              +
              + +

              Notice that inserting a nested triple does not automatically also insert its embedded triple(s) as asserted triple(s) into the graph. Hence, in the previous example, after executing the given INSERT DATA operation, the default graph does not contain the triple :bob :age 23. In other words, a query such as the following would have an empty result.

              + +
              +
              PREFIX : <http://www.example.org/>
              +
              +SELECT ?a WHERE {
              +  :bob :age ?a .
              +}
              +
              + +

              For an embedded triple to be present in the graph as an asserted triple, it needs to be inserted as such. For instance, the INSERT DATA operation in the example above may be modified as follows in order to insert not only the nested triple but also the triple :bob :age 23.

              + +
              +
              PREFIX : <http://www.example.org/>
              +
              +INSERT DATA {
              +  :bob :age 23 .
              +  :alice :claims << :bob :age 23 >> .
              +}
              +
              + +
              + +
              +

              5.1.2 DELETE DATA

              + +

              The DELETE DATA operation can be used to remove a given set of triples from the graph store. In the context of SPARQL-star Update, this may include removing nested RDF-star triples as demonstrated in the following example.

              + +
              +
              PREFIX : <http://www.example.org/>
              +
              +DELETE DATA {
              +  :alice :claims << :bob :age 23 >> .
              +}
              +
              + +

              After executing this DELETE DATA operation over a graph store with a default graph that contains the given nested triple, the graph will not contain this triple any longer. If the graph did not contain that nested triple in the first place, the graph will remain unchanged by the given DELETE DATA operation.

              + +

              Notice that deleting triples by using the DELETE DATA operation does not affect any other triples in the corresponding graphs. For instance, for a default graph that contains the triple :bob :age 23 as an asserted triple, the DELETE DATA operation given above does not delete this asserted triple. In contrast, the following operation would delete this asserted triple but it would not delete any nested triple that contains the given triple as an embedded triple.

              + +
              +
              PREFIX : <http://www.example.org/>
              +
              +DELETE DATA {
              +  :bob :age 23 .
              +}
              +
              + +
              + +
              +

              5.1.3 DELETE/INSERT

              + +

              The DELETE/INSERT operation can be used to remove or add triples based on variable bindings obtained by evaluating a given WHERE clause. As an example, the following DELETE/INSERT operation replaces all nested triples in which :alice is the subject by nested triples in which :carol is the subject.

              + +
              +
              PREFIX : <http://www.example.org/>
              +
              +DELETE { :alice ?pp <<?s ?p ?o>> . }
              +INSERT { :carol ?pp <<?s ?p ?o>> . }
              +WHERE {  :alice ?pp <<?s ?p ?o>> . }
              +
              + +

              As in SPARQL Update, in SPARQL-star Update it is possible to use variations of the DELETE/INSERT operations in which either the DELETE clause or the INSERT clause are omitted.

              + +

              When removing triples via the DELETE clause (irrespective of whether the INSERT clause is omitted or not), the effects with respect to nested triples must be the same as described above for the DELETE DATA operation; i.e., only the triples that are explicitly identified to be deleted are deleted. Similarly, inserting triples via the INSERT clause has the same effects as described above for the INSERT DATA operation; i.e., inserting nested triples does not automatically also insert their embedded triples as asserted triples into the graph. Of course, it is possible to request such inserts explicitly as demonstrated in the following example.

              + +
              +
              PREFIX : <http://www.example.org/>
              +
              +DELETE { :alice ?pp <<?s ?p ?o>> . }
              +INSERT { :carol ?pp <<?s ?p ?o>> .  ?s ?p ?o .}
              +WHERE {  :alice ?pp <<?s ?p ?o>> . }
              +
              + +

              While all SPARQL-star Update examples above focus only on the default graph of a graph store, SPARQL-star Update can also be used to update the named graphs of a graph store, which works in exactly the same way as in SPARQL Update. As a possible example consider the following INSERT operation which retrieves all embedded triples found in nested triples in the default graph and inserts them as asserted triples into the named graph with IRI :graph2.

              + +
              +
              PREFIX : <http://www.example.org/>
              +
              +INSERT {
              +  GRAPH :graph2 { ?s ?p ?o }
              +}
              +WHERE {
              +  { <<?s ?p ?o>> ?pp ?oo }
              +  UNION
              +  { ?ss ?pp <<?s ?p ?o>> }
              +}
              +
              + +
              + +
              + + + +
              +

              5.2 Grammar

              + +

              SPARQL-star Update is an extension of the SPARQL Update language [SPARQL11-UPDATE]. As mentioned in SPARQL 1.1 Update, Appendix C [SPARQL11-UPDATE], the grammar of the latter is provided as part of the SPARQL 1.1 Query grammar. Similarly, the grammar of SPARQL-star Update is provided as part of the grammar of the SPARQL-star query language, which is defined by the SPARQL 1.1 Query grammar with the extensions specified in § 4.2 Grammar. As a result of these extensions, the production rules QuadData and QuadPattern, which are used in the definition of SPARQL Update [SPARQL11-UPDATE], are extended to capture nested triples and nested triple patterns as demonstrated in the examples above.

              + +
              + +
              +

              5.3 Semantics

              + +

              The semantics of SPARQL-star Update operations can also be defined by a simple extension of the formalization of SPARQL Update [SPARQL11-UPDATE]. This extension assumes that any mention of "RDF triple" or "triple" in the formalization of SPARQL Update is understood as an RDF-star triple. Similarly, "RDF graph" and "solution mapping" are understood as RDF-star graph and SPARQL-star solution mapping, respectively. Any mention of the "evaluation function eval()" is understood as the eval function for SPARQL-star as defined in § 4.5 Evaluation Semantics.

              + +
              + +
              + +
              +

              6. RDF-star Semantics

              + +

              In this section, we provide a model-theoretic semantics for RDF-star, based on the one defined in RDF 1.1 Semantics [RDF11-MT]. More precisely, we define a mapping from RDF-star's abstract syntax into standard RDF's abstract syntax, and define the semantics of RDF-star graphs in terms of the semantics of the mapped RDF graphs.

              + +

              In the following, we introduce a number of definitions specific to RDF-star, which rely on the following notions, defined in RDF 1.1 Concepts and Abstract Syntax [RDF11-CONCEPTS] and RDF 1.1 Semantics [RDF11-MT]: + datatype, + lexical form, + simple literal, + ill-typed, + merging, + satisfiability, + unsatisfiability, + entailment, + and equivalence. +

              + +
              +

              6.1 Mapping RDF-star abstract syntax to RDF

              + +

              We consider six IRIs ST, PT, OT, SS, PS and OS that will have a special meaning in our mapping.

              + +

              We define a mapping L that maps any IRI or literal t to a literal with:

              + + +

              Given an RDF-star graph G, the following steps transform it into an RDF graph that we call unstar(G).

              + +
                +
              1. Pick an RDF-star triple (s, p, o) in the constituents of G such that neither s nor o is an embedded triple.
              2. +
              3. Mint a fresh blank node b, and replace by b all occurrences of (s, p, o) in the subject or object position of an asserted or embedded triple of G.
              4. +
              5. Add the following asserted triples to G:
                  +
                • (b, ST, s)
                • +
                • (b, PT, p)
                • +
                • (b, OT, o) unless o is an ill-typed literal
                • +
                • (b, SS, L(s)) unless s is blank node
                • +
                • (b, PS, L(p))
                • +
                • (b, OS, L(o)) unless o is blank node
                • +
              6. +
              7. Repeat the steps above until there are no embedded triples left in G.
              8. +
              +

              After these steps, unstar(G) is an RDF graph, as it contains no embedded triples. Note that if G was already an RDF graph, then unstar(G) = G.

              + +
              + +
              +

              6.2 Entailment of RDF-star graphs

              + +

              Following RDF 1.1 Semantics, we extend the notions of satisfiability and entailment for RDF-star graphs. Given two RDF-star graphs G and H:

              +

              +
              + +
              +

              6.3 Merging RDF-star graphs

              + +

              RDF 1.1 Semantics [RDF11-MT] defines the merging of two or more RDF graphs as "[taking their] union after forcing any shared blank nodes, which occur in more than one graph, to be distinct in each graph." Note that, in the case of RDF-star graphs, any blank node in the constituent terms of that graph is governed by the definition above, not only those in the subject or object position of some asserted triple.

              + +
              +
              #### graph #1
              +:alice :says
              +  << _:x :name "bob" >>,
              +  << _:x :likes :alice >>.
              +
              +#### graph #2
              +:bob :says
              +  << :alice :hates _:x >>.
              +
              +#### Merge of graphs #1 and #2 →
              +:alice :says
              +  << _:y :name "bob" >>,
              +  << _:y :likes :alice >>.
              +:bob :says
              +  << :alice :hates _:z >>.
              +
              + +
              + + +
              +

              6.4 Remarks

              This section is non-normative.

              + +
              +

              6.4.1 Combining RDF-star graphs

              + +

              Care must be taken when RDF graphs that result from RDF-star graphs are combined through union or merging. Given two RDF-star graphs G and H, it may be the case that unstar(G ∪ H) ≠ unstar(G) ∪ unstar(H). More precisely, if G and H contain the same embedded triple, this triple will be mapped to a single blank node in unstar(G ∪ H), but in two potentially different blank nodes in unstar(G) ∪ unstar(H). These blank nodes will need to be unified in order to get the correct entailments.

              + +
              +
              +

              6.4.2 Considerations on interoperability

              + +

              The special properties (ST, PT, etc.), used in the mapping for representing embedded triples in plain RDF, are deliberately not specified. As a consequence, although any RDF-star graph G is semantically equivalent to an RDF graph unstar(G), that latter graph is implementation dependent, as different systems will use a different concrete IRI for each special property.

              + +

              This makes it impossible for RDF-star-aware systems to reliably exchange RDF-star graphs in their mapped form using non-RDF-star concrete syntaxes (unless of course the RDF-star graph contains no embedded triple). However, such systems can always use Turtle-star or other extended concrete syntaxes, so that does not limit interoperability among them. On the other hand, it prevents the unrestricted use of the special properties, because that may lead to surprising corner cases, as illustrated in Example 31. Supporting these corner cases would be a significant burden on RDF-star implementations, for a very limited utility.

              + +

              Furthermore, it is expected that some implementations will not rely on the mapping, but represent and work directly with the abstract syntax of RDF-star. For these implementations, having to handle both the native and the mapped representation of embedded triples would be even more challenging.

              + +
              +
              :alice :says << :bob :age 42 >>.
              +<< :bob :age 42 >> :ST :charlie;
              +                   :SS "<http://example.org/charlie>".
              +
              +# assuming that :ST and :SS stand for the corresponding special IRIs,
              +# the graph above entails the graph below
              +
              +:alice :says << :charlie :age 42 >>.
              +
              + +

              The exchange of a mapped graph unstar(G) using standard RDF concrete syntaxes, with non-standard IRIs in place of the special properties, is however possible and useful when communicating with legacy RDF systems. For those systems, the special properties have no special meaning, so using non-standard IRIs makes no difference to them.

              + +
              + +
              + +
              Issue 95: alternative semantic characterisations for RDF* semantics

              There are several resent proposals for semantics.

              +

              The proposals can be found in
              +1/ #81
              +2/ #88
              +3/ https://lists.w3.org/Archives/Public/public-rdf-star/2021Jan/0057.html
              +4/ https://lists.w3.org/Archives/Public/public-rdf-star/2021Jan/0059.html
              +5/ https://lists.w3.org/Archives/Public/public-rdf-star/2021Feb/0038.html
              +and
              +6/ #127

              +

              All proposals create RDF graphs and the semantics of RDF* is defined as a semantics for these RDF graphs.

              +

              The differences between them lie in four areas:
              +A) RDF* graphs as an abstract syntax
              +B) hidden vocabulary for RDF* reification
              +C) special datatype(s) for embedded triples
              +D) extended semantics for RDF* reification vocabulary

              +

              First, there is whether there is the notion of an RDF* graph. RDF* surface syntax can be expressed by parsing RDF* surface syntax into RDF* graphs and then transforming these RDF* graphs into RDF graphs. Alternatively, RDF* surface syntax can be expressed by parsing surface syntax directly into RDF graphs.

              +

              Second, there is whether the vocabulary used to reify embedded triples is hidden or not. If so, then RDF* embedded triples cannot be constructed by means other than embedded triple syntax. If not, then regular RDF constructs (almost certainly reification) can be used to get the same effect as embedded triples.

              +

              Third, there is whether one or more special datatypes are needed for the subject, predicate, or object of embedded triples.

              +

              Fourth, there is whether the semantics of RDF* needs an extension of RDF semantics on the resultant RDF graphs (aside from the semantics of any new datatypes).

              +

              Here is a table of my understanding of how the proposals stand on the above differences.

              + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
              Characteristic1/ #812/ #883/ link4/ link5/ link6/ #127
              A) RDF* graphsYESYESYESYESNOYES
              B) hidden vocabularyYESYESNONONOYES(1)
              C) special datatype(s)YESNOYESNONONO
              D) extended semanticsYESNONONONONO
              +

              (1) #127 reuses and extends the standard reification vocabulary, but uses a hidden type for embedded triples

              +

              edited on 2021-03-10 by @pchampin add PR #127

              + +
              + +
              +

              A. Historical remarks

              This section is non-normative.

              + +
              +

              A.1 SA-mode and PG-mode

              + +

              A lot of discussions on the RDF-star mailing list and GitHub repository refer to SA-mode and PG-mode. Those abbreviations stand for "Separate Assertion mode" and "Property Graph mode". They originate in the fact that different versions of RDF-star have been published over the years, with different designs. In PG-mode, any embedded triple was also considered asserted. SA-mode, on the other hand, allowed the use of embedded triples without those triples being automatically asserted, requiring that they be asserted separately when that was intended. SA-mode was more flexible, but induced redundancy in the use-cases that PG-mode was designed to address.

              + +

              The notion of annotations in the Turtle-star syntax was introduced to remove the need for different modes. Rather than interpret the same syntax differently in each mode, which would have caused interoperability problems and required a switch for those modes, it was decided to provide a different syntax for each use case.

              + +
                +
              • The << ... >> syntax represents a triple that is embedded without being asserted, satisfying the need formerly filled by SA-mode.
              • +
              • The :a :b :c {| :p :o ... |} annotation syntax creates triples where the subject is an embedded version of the triple asserted just before the annotation (here, :a :b :c), without the need to repeat it, satisfying the need formerly filled by PG-mode.
              • +
              +
              + +
              +

              A.2 The seminal example

              + +

              The motivating example in the original RDF-star paper [RDF-STAR-FOUNDATION] was on a provenance use-case, and is repeated below.

              + +
              +
              # the controversial seminal example
              +:bob foaf:name "Bob".
              +<<:bob foaf:age 23>> dct:creator <http://example.com/crawlers#c1> ;
              +                     dct:source <http://example.net/listing.html> .
              +
              + +

              This example was further debated on the RDF-star mailing list, as it appears to have set wrong expectations about what embedded triples represent. More precisely, from this example, one may wrongly assume that <<:bob foaf:age 23>> represents the occurrence of the given triple at the address http://example.net/listing.html (see § 2.1 Triples and occurrences). This impression may be reinforced by the use of dct:creator: arguably, a triple (as a unique abstract entity) is not "created" by anyone, while an occurrence thereof can be said to be created or authored.

              + +

              The problem with this interpretation is that it will break as soon as other creators and sources are added for the triple: one could not tell which source corresponds to which creator. Correctly capturing this information would require additional nodes to explicitly represent triple occurrences, as in Example 5. In summary, although RDF-star can be used for provenance, the seminal example does not work as stated and can lead to the fundamentally incorrect interpretation that RDF-star can represent multiple distinct embedded triples with the same subject, predicate, and object.

              + +
              + +
              + +

              B. Issue Summary

              This section is non-normative.

              + +
              • Issue 93: annotation-syntax example in the overview/primer part
              • Issue 94: SPARQL-star update example in the overview/primer part
              • Issue 3: Do we need more things in the 'conformance' section?
              • Issue 7: Property path patterns in SPARQL*
              • Issue 43: New mime types for RDF-star serializations (inc. SPARQL results)
              • Issue 95: alternative semantic characterisations for RDF*
              + + +

              C. References

              +

              C.1 Normative references

              +
              [N-QUADS]
              RDF 1.1 N-Quads. Gavin Carothers. W3C. 25 February 2014. W3C Recommendation. URL: https://www.w3.org/TR/n-quads/
              [N-TRIPLES]
              RDF 1.1 N-Triples. Gavin Carothers; Andy Seaborne. W3C. 25 February 2014. W3C Recommendation. URL: https://www.w3.org/TR/n-triples/
              [rdf-sparql-XMLres]
              SPARQL Query Results XML Format (Second Edition). Dave Beckett; Jeen Broekstra. W3C. 21 March 2013. W3C Recommendation. URL: https://www.w3.org/TR/rdf-sparql-XMLres/
              [RDF11-CONCEPTS]
              RDF 1.1 Concepts and Abstract Syntax. Richard Cyganiak; David Wood; Markus Lanthaler. W3C. 25 February 2014. W3C Recommendation. URL: https://www.w3.org/TR/rdf11-concepts/
              [RDF11-MT]
              RDF 1.1 Semantics. Patrick Hayes; Peter Patel-Schneider. W3C. 25 February 2014. W3C Recommendation. URL: https://www.w3.org/TR/rdf11-mt/
              [RFC2119]
              Key words for use in RFCs to Indicate Requirement Levels. S. Bradner. IETF. March 1997. Best Current Practice. URL: https://datatracker.ietf.org/doc/html/rfc2119
              [RFC8174]
              Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words. B. Leiba. IETF. May 2017. Best Current Practice. URL: https://datatracker.ietf.org/doc/html/rfc8174
              [SPARQL11-QUERY]
              SPARQL 1.1 Query Language. Steven Harris; Andy Seaborne. W3C. 21 March 2013. W3C Recommendation. URL: https://www.w3.org/TR/sparql11-query/
              [sparql11-results-json]
              SPARQL 1.1 Query Results JSON Format. Andy Seaborne. W3C. 21 March 2013. W3C Recommendation. URL: https://www.w3.org/TR/sparql11-results-json/
              [SPARQL11-UPDATE]
              SPARQL 1.1 Update. Paula Gearon; Alexandre Passant; Axel Polleres. W3C. 21 March 2013. W3C Recommendation. URL: https://www.w3.org/TR/sparql11-update/
              [TRIG]
              RDF 1.1 TriG. Gavin Carothers; Andy Seaborne. W3C. 25 February 2014. W3C Recommendation. URL: https://www.w3.org/TR/trig/
              [TURTLE]
              RDF 1.1 Turtle. Eric Prud'hommeaux; Gavin Carothers. W3C. 25 February 2014. W3C Recommendation. URL: https://www.w3.org/TR/turtle/
              [XML]
              Extensible Markup Language (XML) 1.0 (Fifth Edition). Tim Bray; Jean Paoli; Michael Sperberg-McQueen; Eve Maler; François Yergeau et al. W3C. 26 November 2008. W3C Recommendation. URL: https://www.w3.org/TR/xml/
              +
              +

              C.2 Informative references

              +
              [JSON-LD]
              JSON-LD 1.0. Manu Sporny; Gregg Kellogg; Markus Lanthaler. W3C. 3 November 2020. W3C Recommendation. URL: https://www.w3.org/TR/json-ld/
              [RDF-STAR-FOUNDATION]
              Foundations of RDF* and SPARQL* - An Alternative Approach to Statement-Level Metadata in RDF.. Olaf Hartig. In Proceedings of the 11th Alberto Mendelzon International Workshop on Foundations of Data Management (AMW), Montevideo, Uruguay. June 2017. URL: http://ceur-ws.org/Vol-1912/paper12.pdf
              [RDF-SYNTAX-GRAMMAR]
              RDF 1.1 XML Syntax. Fabien Gandon; Guus Schreiber. W3C. 25 February 2014. W3C Recommendation. URL: https://www.w3.org/TR/rdf-syntax-grammar/
              +
              \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/rdf-star-main/cg-spec/2021-07-01-src.html b/corese-unit-test/src/test/resources/data/rdf-star-main/cg-spec/2021-07-01-src.html new file mode 100644 index 0000000000..ae2f3bee67 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/rdf-star-main/cg-spec/2021-07-01-src.html @@ -0,0 +1,3028 @@ + + + + + RDF-star and SPARQL-star + + + + + + +
              +

              The Resource Description Framework (RDF) is a general-purpose framework for representing information on the Web. RDF-star extends RDF with a convenient way to make statements about other statements. This specification defines the abstract syntax of RDF-star as an extension of RDF's. It extends a number of RDF concrete syntaxes to support the new abstract syntax. It also extends RDF's formal semantics. Finally, this specification extends the SPARQL language to allow querying and updating of RDF-star data.

              +
              +
              +
              + +
              +

              Introduction

              + +
              +

              Background and Motivation

              + +

              The RDF data model lets you state facts in three-part subject-predicate-object statements known as triples. For example, with a single RDF triple, you can say that employee38 has a familyName of "Smith". A triple's predicate is a property specified with an IRI (an Internationalized version of a URI), identifying that property in a globally unambiguous way. A triple's subject and object can each be an IRI referencing any entity, and the object can also be a literal value such as "Smith" or data of other types such as dates, numbers, or Boolean values.

              + +

              Sometimes, we want the subject or object of a triple to refer to another triple. For example, the statement "according to employee22, employee38 has a jobTitle of 'Assistant Designer'" can be modeled as a triple with "according to" as its predicate, employee22 as its object, and another triple as its subject, namely the triple "employee38 has a jobTitle of 'Assistant Designer'". This use of a triple as the subject or object resource of another triple so that we can say things about that triple is known as reification. + The concept of reification has always been part of RDF, but expressing it in most RDF concrete syntaxes such as Turtle and N-Triples, as well as processing or querying it with SPARQL, has been verbose and cumbersome [[RDF-STAR-FOUNDATION]].

              + +
              + +
              +

              Overview

              + +

              This specification describes RDF-star, an extension of RDF's conceptual data model and concrete syntaxes, providing a more compact form of reification. This model and syntaxes enable the creation of concise triples that reference other triples as subject and object resources. +Triples that include a triple as a subject or an object are known as RDF-star triples. The following dataset shows the example RDF-star triples from above using the Turtle-star syntax, which uses double angle brackets to enclose a triple serving as a subject or object resource:

              + +
              +        
              +      
              + +

              After declaring a prefix so that IRIs can be abbreviated, the first triple in this example asserts that employee38 has a familyName of "Smith". Note that this dataset does not assert that employee38 has a jobTitle of "Assistant Designer"; it says that employee22 has made that claim. In other words, the triple "employee38 has a jobTitle of 'Assistant Designer'" is not what we call an asserted triple, like "employee38 has a familyName of 'Smith'" above; rather, it is known as an embedded triple.

              + +

              If we added the triple `:employee38 :jobTitle "Assistant Designer"` below the triple about employee22's claim in the example above, then this triple about employee38's jobTitle would be both an embedded triple and an asserted one. +This pattern is quite common, so Turtle-star offers a dedicated syntax for it, called the annotation syntax, illustrated in below. Note that this construct is purely syntactic sugar, as it can be expanded using only the double angle brackets.

              + +
              +  
              +
              + + +

              This specification also describes an extension to the SPARQL Protocol and Query Language known as SPARQL-star for the querying of RDF-star triples. For example, the following SPARQL-star query asks "who has made any claims about employee38?"

              + +
              +                
              +
              + + +

              SPARQL can also be used to update RDF data, and SPARQL-star also extends that part. For example, the following SPARQL-star adds all the statements made by employee22 about employee38 as asserted triples, annotating them as "confirmed".

              + +
              +                
              +
              + +

              For the remainder of this document, examples will assume that the following prefixes have been declared to represent the IRIs shown with them here:

              + + + + + + + + + +
              `:``<http://www.example.org/>`
              `rdf:``<http://www.w3.org/1999/02/22-rdf-syntax-ns#>`
              `rdfs:``<http://www.w3.org/2000/01/rdf-schema#>`
              `owl:``<http://www.w3.org/2002/07/owl#>`
              `prov:``<http://www.w3.org/ns/prov#>`
              `dc:``<http://purl.org/dc/elements/1.1/>`
              `dct:``<http://purl.org/dc/terms/>`
              + +
              + +
              +
              +
              + +
              + +
              +

              Concepts and Abstract Syntax

              + +

              In the following, we introduce a number of definitions specific to SPARQL-star, which rely on the following notions (extending some of them) defined in [[[RDF11-CONCEPTS]]] [[RDF11-CONCEPTS]]: + blank node, + default graph, + graph name, + IRI, + literal, + named graphs, + object, + predicate, + RDF dataset, + RDF graph, + RDF triple, + and subject +

              + +

              An RDF-star graph is a set of RDF-star triples.

              + +

              An RDF-star triple is a 3-tuple defined recursively as follows:

              + + +

              As for RDF triples, we call the 3 components of an RDF-star triple its subject, predicate and object, respectively. From the definitions above, it follows that any RDF graph is also an RDF-star graph. Note also that, by definition, an RDF-star triple cannot contain itself and cannot be nested infinitely.

              + +

              IRIs, literals, blank nodes and RDF-star triples are collectively known as RDF-star terms.

              + +

              For every RDF-star triple t, we define its constituent terms (or simply constituents) as the set containing its subject, its predicate, its object, plus all the constituent terms of its subject and/or its object if they are themselves RDF-star triples. By extension, we define the constituent terms of an RDF-star graph to be the union set of the constituent terms of all its triples.

              + +
              + Consider the following RDF-star triple (represented in Turtle-star): +
              +        
              +      
              + Its set of constituent terms comprises the IRIs `:name`, `:statedBy`, `:bob`, the blank node `_:a`, the literal `"Alice"`, and the triple `<< _:a :name "Alice" >>`. +
              + +

              An RDF-star triple used as the subject or object of another RDF-star triple is called an embedded triple. An RDF-star triple that is an element of an RDF-star graph is called an asserted triple. Note that, in a given RDF-star graph, the same triple MAY be both embedded and asserted.

              + +

              An RDF-star dataset is a collection of RDF-star graphs, and comprises:

              + + + +

              Again, this definition is an extension of the notion of RDF dataset, hence it follows that any RDF dataset is also an RDF-star dataset.

              + +
              +

              Triples and occurrences

              + +

              According to the definitions above, an RDF-star triple is an abstract entity whose identity is entirely defined by its subject, predicate, and object. Conversely, given three RDF-star terms |s|, |p|, and |o|, there is exactly and only one RDF-star triple with subject |s|, predicate |p|, and object |o|. This unique triple (|s|, |p|, |o|) can be embedded as the subject or object of multiple other triples, but must be assumed to represent the same thing everywhere it occurs, just like the same IRI |p| is assumed to represent the same thing everywhere it occurs.

              + +

              In some situations, however, it might be necessary to distinguish the occurrences of a triple in different graphs. Consider the following sentence: "The triple `<http://example.org/s> <http://example.org/p> <http://example.org/o>` in (the graph represented by) file1.ttl was added by Alice, and the same triple in file2.ttl was added by Bob." Note that the words "same triple" in this sentence may be confusing, because although the triple (as an abstract entity) is the same, its respective occurrences are different things, each within a different file and with a different author (this is known, in philosophy and linguistics, as the type-token distinction). As the embedded triple represents a unique thing, adequately conveying the meaning of the sentence above requires additional nodes for representing the two distinct occurrences. One possible solution is illustrated in the following example (using the Turtle-star concrete syntax described in the next section).

              + +
              +        
              +      
              + +
              + +
              + +
              +

              Concrete Syntaxes

              + +

              This section defines the following concrete syntaxes:

              +
                +
              • +
              • +
              • +
              • +
              • +
              + +

              + Changes for SPARQL-star are given in + + and the changes for the result set formats in + .

              + +
              +

              Turtle-star

              +

              In this section, we present Turtle-star, + an extension of the Turtle format [[TURTLE]] + allowing the representation of RDF-star graphs. + For the sake of conciseness, + we only describe here the differences between Turtle-star and Turtle.

              + +
              +

              Grammar

              +

              Turtle-star is defined to follow the same grammar as Turtle, + except for the EBNF productions specified below, + which replace the productions having the same number (if any) in the original grammar.

              + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
              [8]`objectList`::= + object + annotation`?` + `(` + ',' + object + annotation`?` + `)*` +
              [10]`subject`::= + iri `|` + BlankNode `|` + collection `|` + embTriple +
              [12]`object`::= + iri `|` + BlankNode `|` + collection `|` + blankNodePropertyList `|` + literal `|` + embTriple +
              [27t]`embTriple`::= + '<<' + embSubject + verb + embObject + '>>' +
              [28t]`embSubject`::= + iri `|` + BlankNode `|` + embTriple +
              [29t]`embObject`::= + iri `|` + BlankNode `|` + literal `|` + embTriple +
              [30t]`annotation`::= + '{|' + predicateObjectList + '|}' +
              + +

              As with N-Triples-star, + the changes are that `subject` + and `object` productions + have been extended to accept embedded triples, + which are described by the new productions 27t + to 30t. + Note that embedded triples accept a more restricted range of + subject and object expressions + than asserted triples. + Additionally, the `objectList` production + now accepts an optional annotation after each object.

              +
              + +
              +

              Parsing

              +

              A Turtle-star parser is similar to a Turtle parser + as defined in Section 7 of the Turtle specification [[TURTLE]], + with an additional item in its state :

              + +

              Additionally, the |curSubject| + can be bound to any RDF-star term + (including an embedded triple).

              + +

              A Turtle-star document defines an RDF-star graph + composed of a set of RDF-star triples. + The `subject` + and `embSubject` productions set the |curSubject|. + The `verb` production + sets the |curPredicate|. + The `object` + and `embObject` productions + set the |curObject|. + Finishing the `object` production, + an RDF-star triple |curSubject| |curPredicate| |curObject| is produced + (added to the RDF-star graph).

              + +

              Beginning the `embTriple` production + records the |curSubject| and |curPredicate|. + Finishing the `embTriple` production + yields the RDF-star triple |curSubject| |curPredicate| |curObject| + and restores the recorded values of |curSubject| and |curPredicate|.

              + +

              Beginning the `annotation` production + records the |curSubject| and |curPredicate|, + and sets the |curSubject| to the RDF-star triple |curSubject| |curPredicate| |curObject|. + Finishing the `annotation` production + restores the recorded values of |curSubject| and |curPredicate|.

              + +

              All other productions MUST be handled as specified + by Section 7 of the Turtle specification [[TURTLE]], + while still applying the changes above recursively.

              + +
              +

              Discussion

              + +

              This section describes parser behavior when parsing + a Turtle-star document that contains embedded triples + and annotations.

              + +

              Consider a Turtle-star document that describes an RDF triple, + and also uses that triple as an embedded triple + as the subject of another RDF-star triple:

              + +
              +      
              +      
              + +

              The usual process of parsing a Turtle document + applies with the addition of matching the embedded triple + `<< _:a :name "Alice" >>` + as part of the `subject` production. + The resulting RDF-star graph consists of two RDF-star triples:

              + +
                +
              1. (|b|, `http://example.org/#name`, `"Alice"`), + where |b| is a blank node
              2. +
              3. ((|b|, `http://example.org/#name`, `"Alice"`), `http://example.org/#statedBy`, `http://example.org/#bob/`), + where |b| is the same blank node
              4. +
              + +

              Because the above example includes the triple (|b|, `http://example.org/#name`, `"Alice"`) + as an asserted triple, + the same RDF-star graph may also be represented + by using the Turtle-star annotation syntax as follows:

              + +
              +      
              +      
              + +

              In this case, the `objectList` production + matches the `annotation` production on `{| :source :bob |}` + after parsing the `object` production on `"Alice"`. + At this point, the |curSubject|, |curPredicate|, and |curObject| are saved, + and a new RDF-star triple `_:a :name "Alice"` is created + and used as |curSubject| while processing + the `annotation` production.

              +
              +
              +
              + +
              +

              TriG-star

              + +

              This section describes TriG-star, + a minimal extension of the TriG format [[TRIG]] + using the same production updates described in .

              + +

              RDF-star describes embedded triples, + which are not necessarily present in any named graph, + or within the default graph.

              + +

              A TriG-star document defines an RDF-star dataset, composed of + a single default graph and zero or more named graphs, + all of which are RDF-star graphs.

              + +
              +

              Grammar

              +

              TriG-star is defined to follow the same grammar as TriG, + except for the EBNF productions specified below, + which replace the productions having the same number (if any) in the original grammar.

              + +

              The TriG-star grammar contains exactly the same production updates + described in + with an additional change to the triplesOrGraph production.

              + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
              [3g]`triplesOrGraph`::= + labelOrSubject + `(` + wrappedGraph + `|` + predicateObjectList + `'.' )` +
              + `|` + embTriple + predicateObjectList + `'.'` +
              +
              [8]`objectList`::= + object + annotation`?` + `(` + ',' + object + annotation`?` + `)*` +
              [10]`subject`::= + iri `|` + BlankNode `|` + collection `|` + embTriple +
              [12]`object`::= + iri `|` + BlankNode `|` + collection `|` + blankNodePropertyList `|` + literal `|` + embTriple +
              [27t]`embTriple`::= + '<<' + embSubject + verb + embObject + '>>' +
              [28t]`embSubject`::= + iri `|` + BlankNode `|` + embTriple +
              [29t]`embObject`::= + iri `|` + BlankNode `|` + literal `|` + embTriple +
              [30t]`annotation`::= + '{|' + predicateObjectList + '|}' +
              +
              + +
              +

              Parsing

              +

              TriG-star parsing uses the same updates described + in + as applied to Section 5 of the TriG specification [[TRIG]].

              + +

              As with Turtle-star, + the `embTriple` + and `annotation` + are used to set either the |curSubject| or |curObject|, + and do not directly add the associated embedded triple to |curGraph|. + Subsequent productions which use either |curSubject| or |curObject| + may result in adding triples to |curGraph|.

              + +

              A conforming TriG-star parser MUST parse any + valid TriG document and any + valid Turtle-star document in addition + to the Turtle-star grammar productions contained within a named graph.

              +
              + +
              +

              Discussion

              + +

              TriG-star allows the same expressivity as Turtle-star + with the addition of allowing embedded triples + and annotations + within named graphs.

              + +
              +      
              +      
              + +

              The resulting RDF-star dataset consists of + an empty default graph, and a graph named `http://example.org/#G` + with two RDF-star triples:

              + +
                +
              1. (|b|, `http://example.org/#name`, `"Alice"`), + where |b| is a blank node
              2. +
              3. ((|b|, `http://example.org/#name`, `"Alice"`), `http://example.org/#statedBy`, `http://example.org/#bob/`), + where |b| is the same blank node
              4. +
              +
              +
              + +
              +

              N-Triples-star

              + +

              This section describes N-Triples-star, + a minimal extension of the N-Triples format [[N-TRIPLES]] + allowing a subject or an object + of an RDF-star triple to be an embedded triple.

              + +
              +

              Grammar

              +

              N-Triples-star is defined to follow the same grammar as + the N-Triples Grammar, + except for the EBNF productions specified below, + which replace the productions having the same number + (if any) in the original grammar.

              + + + + + + + + + + + + + + + + + + + + + + +
              [3]`subject`::=IRIREF | BLANK_NODE_LABEL | embTriple
              [5]`object`::=IRIREF | BLANK_NODE_LABEL | literal | embTriple
              [7t]`embTriple`::="<<" subject predicate object ">>"
              + +

              The changes are + `subject` + and `object` productions + have been extended to accept embedded triples, + which are described by the new production + 7.

              +
              + +
              +

              Parsing

              +

              In contrast to [[N-TRIPLES]], + N-Triples-star allows recursion on the + `subject` + and `object` productions.

              + +

              An N-Triples-star document defines an RDF-star graph + composed of a set of RDF-star triples. + The `triple` production + produces an RDF-star triple + composed of a `subject`, + `predicate`, + and `object`.

              + +

              In addition to the Term Constructors defined in [[N-TRIPLES]], + an additional constructor is defined for `embTriple` + of type RDF-star triple + defined by the terms constructed + for `subject`, + `predicate`, + and `object`.

              + +

              All other productions MUST be handled as specified by + Section 8.1 of the N-Triples specification [[N-TRIPLES]], + while still applying the changes above recursively.

              +
              +
              + +
              +

              N-Quads-star

              + +

              The [[N-QUADS]] format is extended to describe the + N-Quads-star format using the same production updates described in the N-Triples-star Grammar.

              + +

              As RDF-star describes embedded triples and not embedded quads, + the `graphLabel` + component of an N-Quads `statement` + does not apply to the `embTriple` component.

              + +

              An N-Quads-star document defines an RDF-star dataset, + composed of a single default graph + and zero or more named graphs, + all of which are RDF-star graphs.

              + +

              A conforming N-Quads-star parser MUST parse any valid + N-Quads document and additionally parse the + subject and + object productions + from N-Triples-star to generate RDF-star triples which are + added to either the default graph or associated + named graph, as appropriate.

              +
              + +
              +

              Other Concrete Syntaxes

              + +

              While this document specifies a small number of concrete syntaxes, + nothing prevents other concrete syntaxes of RDF-star from being proposed. In particular, syntaxes such as + RDF/XML [[RDF-SYNTAX-GRAMMAR]], + and JSON-LD [[JSON-LD]], + could be extended to support RDF-star.

              +
              + +
              + +
              +

              SPARQL-star Query Language

              + +

              This Section introduces SPARQL-star, which is an RDF-star-aware extension of the RDF query language SPARQL [[SPARQL11-QUERY]]; i.e., SPARQL-star can be used to query RDF-star graphs.

              + +
              +

              Initial Definitions

              + +

              In the following, we introduce a number of SPARQL-star-specific definitions, which rely on the following notions, defined in [[[SPARQL11-QUERY]]] [[SPARQL11-QUERY]]: RDF term, query variable, triple pattern, + property path pattern, + property path expression, + and solution mapping.

              + +

              A SPARQL-star triple pattern is a 3-tuple that is defined recursively as follows:

              +
                +
              1. Every SPARQL triple pattern is a SPARQL-star triple pattern; +
              2. If |t| and t' are SPARQL-star triple patterns, |x| is an RDF term or a query variable, and |p| is an IRI or a query variable, then (|t|, |p|, |x|), (|x|, |p|, |t|), and (|t|, |p|, t') are SPARQL-star triple patterns. +
              + +

              As for RDF-star triples, a SPARQL-star triple pattern MUST NOT contain itself.

              + +

              A SPARQL-star basic graph pattern (BGP-star) is a set of SPARQL-star triple patterns.

              + +

              A SPARQL-star property path pattern is a 3-tuple (|s|,|p|,|o|) where

              + + +

              A SPARQL-star solution mapping μ is a partial function from the set of all query variables to the set of all RDF-star terms. + The domain of μ, denoted by dom(μ), is the set of query variables for which μ is defined.

              + +

              The notion of a SPARQL-star solution mapping extends the notion of a standard SPARQL solution mapping; that is, every SPARQL solution mapping is a SPARQL-star solution mapping. However, in contrast to SPARQL solution mappings, SPARQL-star solution mappings may map variables also to RDF-star triples.

              + +

              All notions related to SPARQL solution mappings carry over naturally to SPARQL-star solution mappings. In particular, the definition of compatibility extends naturally to SPARQL-star solution mappings: two SPARQL-star solution mappings μ1 and μ2 are compatible if, for every variable v that is both in dom(μ1) and in dom(μ2), μ1(v) and μ2(v) are the same RDF-star term. + In this case, μ1 ∪ μ2 is also a SPARQL-star solution mapping. + Moreover, for any SPARQL-star solution mapping μ we write card[Ω](μ) to denote the cardinality of μ in a multiset Ω of such mappings. + Finally, given a BGP-star |B| and a SPARQL-star solution mapping μ, we write μ(|B|) to denote the result of replacing every variable |v| in |B| for which μ is defined with μ(v). +

              + +

              Next, we aim to carry over the notion of solutions for BGPs to BGP-star. To this end, we first define an auxiliary concept that carries over the notion of an + RDF instance mapping [[RDF11-MT]] to RDF-star.

              + +

              An RDF-star instance mapping σ is a partial function from the set of all blank nodes to the set of all RDF-star terms. + The domain of σ, denoted by dom(σ), is the set of blank nodes for which σ is defined.

              + +

              Similar to the corresponding notation for solution mappings, for an RDF-star instance mapping σ and a BGP-star |B| we write σ(|B|) to denote the result of replacing every blank node |b| in |B| for which σ is defined with σ(b).

              + +

              Now we are ready to define the notion of solution for BGP-star.

              + +

              Given a BGP-star |B| and an RDF-star graph |G|, a SPARQL-star solution mapping μ is a solution for the BGP-star |B| over |G| if it has the following two properties

              +
                +
              • dom(μ) is equivalent to the set of query variables in |B|, and +
              • there exists an RDF-star instance mapping σ such that dom(σ) is equivalent to the set of blank nodes in |B| and μ(σ(|B|)) is a subgraph of |G|. +
              + +
              + +
              +

              Grammar

              + +

              SPARQL-star is defined to follow the same grammar as SPARQL 1.1, except for the EBNF productions specified below, which replace the productions having the same number (if any) in the original grammar. The parts in which these productions differ from the corresponding productions in the original grammar are marked in bold font. Productions [174] and following have been added and have no counterpart in the original grammar.

              + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
              [65]`DataBlockValue`::= + EmbTriple `|` + iri `|` + RDFLiteral `|` + NumericLiteral `|` + BooleanLiteral `|` + 'UNDEF' +
              [75]`TriplesSameSubject`::= + VarOrTermOrEmbTP + PropertyListNotEmpty + `|` + TriplesNode + PropertyList +
              [80]`Object`::= + GraphNode + AnnotationPattern`?` +
              [81]`TriplesSameSubjectPath`::= + VarOrTermOrEmbTP + PropertyListPathNotEmpty + `|` + TriplesNode + PropertyListPath +
              [87]`ObjectPath`::= + GraphNodePath + AnnotationPatternPath`?` +
              [104]`GraphNode`::= + VarOrTermOrEmbTP `|` + TriplesNode +
              [105]`GraphNodePath`::= + VarOrTermOrEmbTP `|` + TriplesNodePath +
              [119]`PrimaryExpression`::= + BrackettedExpression `|` + BuiltInCall `|` + iriOrFunction `|` + RDFLiteral `|` + NumericLiteral `|` + BooleanLiteral `|` + Var +
              + `|` ExprEmbTP +
              +
              [121]`BuiltInCall`::= +
                 Aggregate
              +
              + `|` + 'STR' + '(' + Expression + ')' +
              +
              + `|` + 'LANG' + '(' + Expression + ')' +
              +
              + `|` + 'LANGMATCHES' + '(' + Expression + ')' +
              +
              + `|` + 'DATATYPE' + '(' + Expression + ')' +
              +
              + `|` + 'BOUND' + '(' + Var + ')' +
              +
              + `|` + 'IRI' + '(' + Expression + ')' +
              +
              + `|` + 'URI' + '(' + Expression + ')' +
              +
              + `|` + 'BNODE' + `(` + '(' + Expression + ')' + `|` + NIL + `)` +
              +
              + `|` + 'RAND' + NIL +
              +
              + `|` + 'ABS' + '(' + Expression + ')' +
              +
              + `|` + 'CEIL' + '(' + Expression + ')' +
              +
              + `|` + 'FLOOR' + '(' + Expression + ')' +
              +
              + `|` + 'ROUND' + '(' + Expression + ')' +
              +
              + `|` + 'CONCAT' + ExpressionList +
              + +
              + `|` + 'STRLEN' + '(' + Expression + ')' +
              + +
              + `|` + 'UCASE' + '(' + Expression + ')' +
              +
              + `|` + 'LCASE' + '(' + Expression + ')' +
              +
              + `|` + 'ENCODE_FOR_URI' + '(' + Expression + ')' +
              +
              + `|` + 'CONTAINS' + '(' + Expression + ',' + Expression + ')' +
              +
              + `|` + 'STRSTARTS' + '(' + Expression + ',' + Expression + ')' +
              +
              + `|` + 'STRENDS' + '(' + Expression + ',' + Expression + ')' +
              +
              + `|` + 'STRBEFORE' + '(' + Expression + ',' + Expression + ')' +
              +
              + `|` + 'STRAFTER' + '(' + Expression + ',' + Expression + ')' +
              +
              + `|` + 'YEAR' + '(' + Expression + ')' +
              +
              + `|` + 'MONTH' + '(' + Expression + ')' +
              +
              + `|` + 'DAY' + '(' + Expression + ')' +
              +
              + `|` + 'HOURS' + '(' + Expression + ')' +
              +
              + `|` + 'MINUTES' + '(' + Expression + ')' +
              +
              + `|` + 'SECONDS' + '(' + Expression + ')' +
              +
              + `|` + 'TIMEZONE' + '(' + Expression + ')' +
              +
              + `|` + 'TZ' + '(' + Expression + ')' +
              +
              + `|` + 'NOW' + NIL +
              +
              + `|` + 'UUID' + NIL +
              +
              + `|` + 'STRUUID' + NIL +
              +
              + `|` + 'MD5' + '(' + Expression + ')' +
              +
              + `|` + 'SHA1' + '(' + Expression + ')' +
              +
              + `|` + 'SHA256' + '(' + Expression + ')' +
              +
              + `|` + 'SHA384' + '(' + Expression + ')' +
              +
              + `|` + 'SHA512' + '(' + Expression + ')' +
              +
              + `|` + 'COALESCE' + ExpressionList +
              +
              + `|` + 'IF' + '(' + Expression + ',' + Expression + ',' + Expression + ')' +
              +
              + `|` + 'STRLANG' + '(' + Expression + ',' + Expression + ')' +
              +
              + `|` + 'STRDT' + '(' + Expression + ',' + Expression + ')' +
              +
              + `|` + 'sameTerm' + '(' + Expression + ',' + Expression + ')' +
              +
              + `|` + 'isIRI' + '(' + Expression + ')' +
              +
              + `|` + 'isURI' + '(' + Expression + ')' +
              +
              + `|` + 'isBLANK' + '(' + Expression + ')' +
              +
              + `|` + 'isLITERAL' + '(' + Expression + ')' +
              +
              + `|` + 'isNUMERIC' + '(' + Expression + ')' +
              +
              + `|` + RegexExpression +
              +
              + `|` + ExistsFunc +
              +
              + `|` + NotExistsFunc +
              +
              + `|` + 'TRIPLE' + '(' + Expression + ',' + Expression + ',' + Expression + ')' +
              +
              + `|` + 'SUBJECT' + '(' + Expression + ')' +
              +
              + `|` + 'PREDICATE' + '(' + Expression + ')' +
              +
              + `|` + 'OBJECT' + '(' + Expression + ')' +
              +
              + `|` + 'isTRIPLE' + '(' + Expression + ')' +
              +
              [174]`EmbTP`::= + '<<' + EmbSubjectOrObject + Verb + EmbSubjectOrObject + '>>' +
              [175]`EmbTriple`::= + '<<' + DataValueTerm + `(` + iri + `|` + 'a' + `)` + DataValueTerm + '>>' +
              [176]`EmbSubjectOrObject`::= + Var `|` + BlankNode `|` + iri `|` + RDFLiteral `|` + NumericLiteral `|` + BooleanLiteral `|` + EmbTP +
              [177]`DataValueTerm`::= + iri `|` + RDFLiteral `|` + NumericLiteral `|` + BooleanLiteral `|` + EmbTriple +
              [178]`VarOrTermOrEmbTP`::= + Var `|` + GraphTerm `|` + EmbTP +
              [179]`AnnotationPattern`::= + '{|' + PropertyListNotEmpty + '|}' +
              [180]`AnnotationPatternPath`::= + '{|' + PropertyListPathNotEmpty + '|}' +
              [181]`ExprEmbTP`::= + '<<' + ExprVarOrTerm + Verb + ExprVarOrTerm + '>>' +
              [182]`ExprVarOrTerm`::= + iri `|` + RDFLiteral `|` + NumericLiteral `|` + BooleanLiteral `|` + Var `|` + ExprEmbTP +
              + +

              + This introduces a notation for embedded triple patterns + (production [174]), + which is similar to the one defined for embedded triples in , + but accepting also variables. + These embedded triple patterns are allowed in both the subject position ([75], [81]) and the object position ([80], [87]) + of SPARQL-star triple patterns, as well as in the short-hand notation for querying collections ([102], [103]). +

              + +

              + Additionally, production [65] for values that can be used in the VALUES clause is extended to permit RDF-star triples as possible values, and the set of available built-in functions is extended with the five functions TRIPLE, SUBJECT, PREDICATE, OBJECT, and isTRIPLE ([121]) that are defined in . +

              + +

              As defined for all keywords in SPARQL, the names of the five new built-in functions added by SPARQL-star are matched in a case-insensitive manner.

              + +

              + Yet another extension is that both the Object and the ObjectPath productions now accept an optional annotation pattern after each object. The purpose of this feature is to enable users to use the same kind of annotation syntax that is supported in Turtle-star. As in the case of Turtle-star, the annotation syntax in SPARQL-star is purely syntactic sugar that has to be processed in accordance to the first expansion rule in . +

              + +

              + A restriction to the use of the annotation syntax in SPARQL-star exists that is not captured by the grammar as defined above: An AnnotationPatternPath may be added only to SPARQL-star property path patterns in which the property path expression is a PredicatePath (i.e., a single IRI) or the keyword a (as a short form for the IRI rdf:type). Hence, a query such as the following violates this restriction and, thus, is invalid. +

              + +
              +        
              +      
              + +

              + While annotation patterns must not be added to property path patterns other than the ones permitted by the restriction above, it is possible to use property path expressions within annotation patterns (but without violating the restriction in the case of nested annotation patterns). For instance, the following query is valid. +

              + +
              +        
              +      
              + +
              + +
              +

              Translation to the Algebra

              + +

              Based on the SPARQL grammar, the SPARQL specification defines the process of converting graph patterns and solution modifiers in a SPARQL query string into a SPARQL algebra expression [SPARQL11-QUERY, Section 18.2]. This process must be adjusted to consider the extended grammar introduced above. In the following, any step of the conversion process that requires adjustment is discussed.

              + +
              +

              Variable Scope

              + +

              As a basis of the translation, the SPARQL specification introduces a notion of in-scope variables. To cover the new syntax elements introduced in this notion MUST be extended as follows.

              + +
                +
              • A variable is in-scope of a BGP-star |B| if the variable occurs in |B|, which includes an occurrence in any embedded triple pattern in |B| (independent of the level of nesting).
              • +
              • A variable is in-scope of a property path pattern if the variable occurs in that pattern, which includes an occurrence in any embedded triple pattern in the pattern (independent of the level of nesting).
              • +
              +
              + +
              +

              Expand Syntax Forms

              + +

              The translation process starts with expanding abbreviations for IRIs and triple patterns [SPARQL11-QUERY, Section 18.2.2.1]. This step MUST be extended in three ways:

              + +
                +
              1. +

                Annotation patterns MUST be replaced by additional SPARQL-star triple patterns that have the annotated triple pattern as an embedded triple pattern in their subject position.

                + + + +
              2. +
              3. +

                Abbreviations for triple patterns with embedded triple patterns MUST be expanded as if each embedded triple pattern was a variable (or an RDF term).

                + + +
              4. +
              5. +

                Abbreviations for IRIs in all embedded triple patterns MUST be expanded.

                + + +
              6. +
              +
              + +
              +

              Translate Property Path Patterns

              + +

              The translation of property path patterns has to be adjusted because the extended grammar allows for SPARQL-star property path patterns whose subject or object is a SPARQL-star triple pattern.

              + +

              The translation as specified in the W3C specification distinguishes four cases. The first three of these cases do not require adjustment because they are taken care of either by recursion or by the adjusted translation of basic graph patterns (as defined in below). However, the fourth case MUST be adjusted as follows.

              + +

              Let |X| |P| |Y| be a string that corresponds to the fourth case in [SPARQL11-QUERY, Section 18.2.2.4]. Given the grammar introduced in , |X| and |Y| may be an RDF term, a variable, or an embedded triple pattern, respectively (and |P| is a property path expression). The string |X| |P| |Y| is translated to the algebra expression `Path`(X’,|P|,Y’) where X’ and Y’ are the result of calling a function named `Lift` for |X| and |Y|, respectively. For some input string |Z| (such as |X| or |Y|) that can be an RDF term, a variable, or an embedded triple pattern, the function `Lift` is defined recursively as follows:

              + +
                +
              1. If |Z| is an embedded triple pattern <<|S|,|P|,|O|>> then return the SPARQL-star triple pattern (`Lift`(|S|), |P|, `Lift`(|O|));
              2. +
              3. Otherwise, return |Z|.
              4. +
              + +
              + The purpose of this translation step is to convert any property path pattern as can be written based on the extended grammar for SPARQL-star (cf. ) into a SPARQL-star property path pattern as considered in the algebra. To this end, the function `Lift` translates every embedded triple pattern as can be written in the SPARQL-star syntax into a SPARQL-star triple pattern. +
              +
              + +
              +

              Translate Basic Graph Patterns

              + +

              After translating property path patterns, the translation process collects any adjacent triple patterns [...] to form a basic graph pattern [SPARQL11-QUERY, Section 18.2.2.5]. This step has to be adjusted because triple patterns in the extended syntax may have an embedded triple pattern in their subject position or in their object position (or in both). To ensure that every result of this step is a BGP-star, before adding a triple pattern to its corresponding collection, its subject and object MUST be replaced by the result of calling function `Lift` for the subject and the object, respectively.

              +
              + +
              + +
              +

              Function and Operator Definitions

              + +

              SPARQL introduces operators and functions that can be used in an expression of a FILTER clause, a BIND clause, or a SELECT clause (see Section 17.3 and Section 17.4 in [[SPARQL11-QUERY]]). While these operators and functions are defined to operate on RDF terms and query variables, for SPARQL-star they have to be defined to operate on RDF-star terms and query variables. To this end, when using these operators and functions in the context of SPARQL-star, their definitions as given in Section 17.4 of [[SPARQL11-QUERY]] are extended by assuming that any mention of RDF term as a data type for operands is understood to be the type of all RDF-star terms.

              + +

              SPARQL-star introduces five new functions that are defined as follows (where the data types RDF-star term and RDF-star triple capture all RDF-star terms and all RDF-star triples, +respectively).

              + +

              The modifications to functions and operators for triple terms are:

              + + +
              +

              TRIPLE

              + +

              + RDF-star triple   + TRIPLE + ( + RDF-star term + term1, + RDF-star term + term2, + RDF-star term + term3 + ) +

              + +

              If the 3-tuple (term1, term2, term3) is an RDF-star triple, the function returns this triple. If the 3-tuple is not an RDF-star triple, then the function raises an error.

              + +
              + +
              +

              SUBJECT

              + +

              + RDF-star term   + SUBJECT + ( + RDF-star triple + triple + ) +

              + +

              If triple is an RDF-star triple, the function returns the subject of this triple. Passing anything other than an RDF-star triple is an error.

              + +
              + +
              +

              PREDICATE

              + +

              + RDF-star term   + PREDICATE + ( + RDF-star triple + triple + ) +

              + +

              If triple is an RDF-star triple, the function returns the predicate of this triple. Passing anything other than an RDF-star triple is an error.

              + +
              + +
              +

              OBJECT

              + +

              + RDF-star term   + OBJECT + ( + RDF-star triple + triple + ) +

              + +

              If triple is an RDF-star triple, the function returns the object of this triple. Passing anything other than an RDF-star triple is an error.

              + +
              + +
              +

              isTRIPLE

              + +

              + xsd:boolean   + isTRIPLE + ( + RDF-star term + term + ) +

              + +

              Returns true if term is an RDF-star triple. Returns false otherwise.

              + +
              + +
              +

              Embedded Triple Expression

              +

              + RDF-star triple   + << + RDF-star term term1, + RDF-star term term2, + RDF-star term term3 + >> +

              +

              + An Embedded Triple Expression + <<S P O>>, where S, + P and O conform to + ExprVarOrTerm, + is evaluated as TRIPLE(S, P, O). +

              +
              + +
              +

              sameTerm

              +

              + xsd:boolean + sameTerm + (term, term) +

              + +

              The function sameTerm is extended to support term comparison for + RDF-star triple terms by defining: +

              +
              +

              + Extended Definition: sameTerm +

              +

              + If both arguments are RDF-star triple terms: +

              + sameTerm(<<S1 P1 O1>>, + <<S2 P2 O2>>) +

              +

              + is evaluated as +

              +

              + sameTerm(S1, S2) && sameTerm(P1, P2) && sameTerm(O1, O2) +

              +

              This is applied recursively.

              +

              If one argument is an RDF-star triple term and the other argument is not, + the result is false. +

              +
              +
              + +
              +

              sparql-compare

              + +

              The function sparql-compare is defined to support value-comparison + operators such as = and ORDER BY. +

              +

              + xsd:boolean   + sparql-compare + (RDF-star term, + RDF-star term) +

              +

              + The function sparql-compare returns `-1`, `0`, `1`, or throws an + error, based on the comparison of two + RDF-star terms. + When comparing two RDF-star triple terms, comparison is + by pairwise comparison of subject, then predicate, then object. +

              +
              +

              + Definition: + + sparql-compare + +

              +
                +
              • If neither A nor B is an RDF-star triple term, + compare by SPARQL 1.1 operators + <, =, >) + and return the comparison value (`-1`, `0`, `+1`) or throw an error + as defined by SPARQL 1.1.
                +
              • +
              • If either A or B is an RDF-star triple term, and the other is not + an RDF-star triple term, then error.
              • +
              • If sparql-compare(SUBJECT(A), SUBJECT(B)) != 0, + then return this value.
              • +
              • If sparql-compare(PREDICATE(A), PREDICATE(B)) != 0, + then return this value.
              • +
              • Return sparql-compare(OBJECT(A), OBJECT(B))
              • +
              +
              +
              + +
              +

              RDFterm-equal

              +

              + The function RDFterm-equal is the default dispatch for the + = operator. +

              +

              + This is extended to cover RDF-star terms so that it returns true + if term1 and term2 are both RDF-star triple + terms and RDFterm-equal is true + for pairwise comparison of the component RDF terms. +

              +
              +

              + Extended Definition: + RDFTerm-equal +

              +

              + If exactly one of the arguments is an RDF-star triple term, + return false. +

              +

              + If both arguments are RDF-star triple terms: +

              + RDFterm-equal(<<S1 P1 O1>>, + <<S2 P2 O2>>) +

              +

              + is evaluated as +

              +

              + RDFterm-equal(S1, S2) && RDFterm-equal(P1, P2) && RDFterm-equal(O1, O2) +

              +
              +

              + It produces an error if matching RDF terms in nested RDF triple terms when + both are literals but not the same RDF term. This is the same as the existing + RDFterm-equal. Operator mapping overrides this behavior. +

              +

              + The case of two RDF-star triple terms is covered by the operator dispatch mappings + and covers cases involving literals. +

              +
              + +
              +

              Operator Mappings

              + +

              New operator mappings are added for RDF-star triple terms for section + SPARQL 1.1 Query 17.3 Operator Mapping +

              + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
              SPARQL Binary Operators (SPARQL-star)
              OperatorType(A)Type(B)EvaluationResult type
              SPARQL-star Tests
              A = BRDF triple termRDF triple term + op:numeric-equal(sparql-compare(A, B), 0) + xsd:boolean
              A != BRDF triple termRDF triple term + fn:not(op:numeric-equal(sparql-compare(A, B), 0)) + xsd:boolean
              A < BRDF triple termRDF triple term + op:numeric-equal(sparql-compare(A, B), -1) + xsd:boolean
              A <= BRDF triple termRDF triple term + fn:not(op:numeric-equal(sparql-compare(A, B), 1)) + xsd:boolean
              A > BRDF triple termRDF triple term + op:numeric-equal(sparql-compare(A, B), 1) + xsd:boolean
              A >= B + RDF triple termRDF triple term + fn:not(op:numeric-equal(sparql-compare(A, B), -1)) + xsd:boolean
              +
              + +
              +

              Triple terms with ORDER BY

              + +

              There is an added item to the ordering of terms when they would not + otherwise be ordered. RDF-star triple terms are placed last (highest).

              +
                +
              1. (Lowest) no value assigned to the variable + or expression in this solution.
              2. +
              3. Blank nodes
              4. +
              5. IRIs
              6. +
              7. RDF literals
              8. +
              9. RDF-star triple terms
              10. +
              +

              + RDF-star triple terms are compared using the < operator. +

              +

              + While SPARQL-star does not define a total ordering of all possible RDF-star terms, + implementations should provide some ordering for ORDER BY + that does not change between queries if the data has not changed. +

              +
              +
              + +
              +

              Examples and Discussion

              + +

              By the evaluation semantics of SPARQL-star as defined in , the five new built-in functions defined above can be used in exactly the same manner as the functions defined in the SPARQL 1.1 spec. For instance, the following SPARQL-star query retrieves every asserted triple that is both contained in the default graph of the queried RDF-star dataset and has an embedded triple as its subject.

              + +
              +        
              +      
              + +

              Instead of accessing the subject of the triples in the FILTER after the BIND clause, as was done in the previous query, a semantically equivalent query may apply the FILTER directly on the variable ?s, as follows:

              + +
              +        
              +      
              + +

              While the triples that the previous example queries bind to variable ?t occur in the queried data, the TRIPLE function can be used to construct triples that may not be in the data. For instance, the following query uses the subject of each asserted triple in the default graph of the queried RDF-star dataset to construct another triple, and bind it to the variable ?t. Notice that the result of this query contains as many SPARQL-star solution mappings as there are asserted triples in the queried graph, and there may be duplicates in the result if multiple asserted triples have the same subject.

              + +
              +        
              +      
              + +

              There are cases where the effects of using the new TRIPLE function are not immediately obvious just from its definition, particularly when considering the interplay of this function with the BNODE function when used within GRAPH clauses. Some of these cases are discussed below.

              + +

              Consider the following SPARQL-star query.

              + +
              +        
              +      
              + +

              When evaluated over an RDF-star dataset that contains |n| named graphs, where |n|>0, the GRAPH clause results in one SPARQL-star solution mapping per named graph. The SELECT clause collapses these |n| mappings into a single mapping that is defined for the six variables introduced in the SELECT clause. (If |n|=0, the query result is the empty set.) Each of these six variables is mapped to an integer-typed literal with values as follows. For each of ?t1Count, ?t2Count, and ?t3Count, the value is |n|, because the variables ?t1, ?t2, and ?t3 are bound in each of the |n| solution mappings produced for the GRAPH clause. For the variable ?t1DistCount, the value is also |n|, because the BIND clauses are evaluated |n| times (once for each named graph) and the subexpression BNODE() always creates a different new blank node; thus, the triples created for variable ?t1 are all different from one another. This is also the case if the BNODE function is used with an argument; i.e., the value of ?t2DistCount is |n| too. In contrast, the variable ?t3 is mapped to the same triple within each evaluation of the third BIND clause; thus, the value for ?t3DistCount is 1.

              + +

              Notice that the BNODE function has to be used to create a blank node; simply writing a blank node directly in an expression is not permitted.

              + +

              Notice as well that the preceding query is special in two ways: its GRAPH clause does not actually consider the content of the named graphs; and the expressions in the BIND clauses do not contain variables. In contrast, the GRAPH clause and the BIND clauses in the following query do.

              + +
              +        
              +      
              + +

              For every RDF-star dataset with |n|>0 named graphs, the result of this query consists of a single SPARQL-star solution mapping that is defined for the three variables introduced in the SELECT clause. The value of ?t1Count is the number of named graphs in the queried dataset that contain a triple of the form (|u|, rdf:type, rdfg:Graph) such that |u| is the name of the named graph in the dataset. The value of ?t2Count is always 0 (zero), because evaluating the expression of the second BIND clause results in an error, because the variable ?x is not bound in the scope of this evaluation. As a side note, evaluating the expression of the first BIND clause would also result in an error, if the variable ?g was not mentioned inside the GRAPH clause (e.g., if the given triple pattern was not there).

              + +
              + +
              +

              Evaluation Semantics

              + +

              The SPARQL specification defines a function eval(|D|(|G|), algebra expression) as the evaluation of an algebra expression with respect to a dataset |D| having active graph |G| [SPARQL11-QUERY, Section 18.6]. Recall that the dataset |D| in the context of SPARQL-star is an RDF-star dataset and, thus, the active graph |G| is an RDF-star graph, and so is any other graph in dataset |D|. The definition of the eval function is recursive; the base case of this definition for SPARQL-star are given as follows:

              + +
                +
              • For every BGP-star |B|, eval(|D|(|G|), |B|) is a multiset Ω that consists of all SPARQL-star solution mappings that are a solution for the BGP-star |B| over |G|. For every such mapping μ, card[Ω](μ) is the number of distinct RDF-star instance mappings σ such that dom(σ) is equivalent to the set of blank nodes in |B| and μ(σ(|B|)) is a subgraph of |G|. (For any SPARQL-star solution mapping μ' that is not a solution for |B| over |G|, we have that card[Ω](μ')=0; i.e., μ' is not in Ω.)
              • +
              + +

              For any other algebra expression, the SPARQL specification defines algebra operators [[SPARQL11-QUERY]]. These definitions can be extended naturally to operate over multisets of SPARQL-star solution mappings (instead of ordinary solution mappings). Given this extension, the recursive steps of the definition of the eval function for SPARQL-star are the same as in the SPARQL specification.

              +
              + +
              +

              Query Result Formats

              + +

              In SPARQL, queries can take four forms: SELECT, CONSTRUCT, DESCRIBE, and ASK - see SPARQL1.1 Query, Section 16 [[SPARQL11-QUERY]]. The first of these returns a sequence of solution mappings that contain variable bindings. The second and third both return an RDF graph, and the last returns a boolean value. +

              +

              The result of the ASK query form is not changed by the introduction of RDF-star, and the result of the CONSTRUCT and DESCRIBE forms can be represented by Turtle-star. However, since the SELECT form deals with returning individual RDF terms, the specific serialization formats for representing such query results need to be extended so that the new embedded triple RDF term can be represented. In this section, we propose extensions for the two most common formats for this purpose: [[[SPARQL11-RESULTS-JSON]]], and [[[RDF-SPARQL-XMLRES]]].

              + +
              +

              SPARQL-star Query Results JSON Format

              +

              + The result of a SPARQL SELECT query is serialized in JSON as defined in [[[SPARQL11-RESULTS-JSON]]], which specifies a JSON representation of variable bindings to RDF terms (see [sparql11-results-json, Section 3.2]). To accommodate the new RDF term for embedded triples that RDF-star introduces, the table of RDF term JSON representations in sparql11-results-json, Section 3.2.2 is extended with the following entry: +

              +
              +
              An embedded triple with subject RDF term `S`, predicate RDF term `P` and object RDF term `O`
              +
              +
              +                {
              +                  "type": "triple",
              +                  "value": {
              +                     "subject": S,
              +                     "predicate": P,
              +                     "object": O
              +                  }
              +                }
              +              
              + where `S`, `P` and `O` are encoded using the same format, recursively. +
              +
              + + +
              + +
              +

              SPARQL-star Query Results XML Format

              +

              + The result of a SPARQL SELECT query is serialized in XML as defined in [[[RDF-SPARQL-XMLRES]]]. This format proposes an XML representation of variable bindings to RDF terms. +

              +

              To accommodate the new RDF term for embedded triples that RDF-star introduces, the list of RDF terms and their XML representations in [RDF-SPARQL-XMLRES Section 2.3.1] is extended as follows: +

              +

              +

              +
              An embedded triple with subject term `S`, predicate term `P`, and object term `O`
              +
              +
              +              
              +            
              + where `S`, `P` and `O` are encoded recursively, using the same format, without the enclosing `<binding>` tag. +
              +
              + + + + +
              + +
              + +
              + +
              +

              SPARQL-star Update

              + +

              This section specifies SPARQL-star Update, an update language for RDF-star. This language extends SPARQL Update [[SPARQL11-UPDATE]], the update language for RDF, by adding RDF-star-specific features and semantics.

              + +
              +

              Informal Description

              + +

              While SPARQL Update operates over a graph store that consists of RDF graphs, SPARQL-star Update extends the notion of graph store to contain RDF-star graphs instead of RDF graphs. That is, a graph store in the context of SPARQL-star Update contains one (unnamed) slot holding an RDF-star graph, referred to as the default graph, and zero or more named slots holding other RDF-star graphs, referred to as named graphs. Then, all graph management operations in SPARQL Update (CREATE, DROP, COPY, MOVE, ADD) carry over directly to SPARQL-star Update with the only difference being that in SPARQL-star Update these operations manage RDF-star graphs. For instance, the CREATE operation in SPARQL-star Update creates an RDF-star graph rather than a pure RDF graph. Similarly, the graph update operations LOAD and CLEAR in SPARQL-star Update operate with RDF-star graphs in the same way as their SPARQL Update counterparts operate with RDF graphs.

              + +

              The only operations that SPARQL-star Update actually extends are the graph update operations INSERT DATA, DELETE DATA, and DELETE/INSERT. This section describes these extensions informally. While this description focuses mainly on updates to the default graph, the operations can also be applied to the named graphs.

              + +
              +

              INSERT DATA

              + +

              The INSERT DATA operation can be used to add a given set of triples into the graph store. In the context of SPARQL-star Update, these triples may be RDF-star triples. As an example, consider the following INSERT DATA operation.

              + +
              +          
              +        
              + +

              Suppose this INSERT DATA operation is executed over a graph store with an empty default graph. After executing this operation, the default graph contains the given (nested) RDF-star triple. Now, it is possible to query for this triple. For instance, the following SPARQL-star query returns a single solution mapping in which the variables ?p and ?a are mapped to the IRI :alice and the literal 23, respectively.

              + +
              +          
              +        
              + +

              Notice that inserting a nested triple does not automatically also insert its embedded triple(s) as asserted triple(s) into the graph. Hence, in the previous example, after executing the given INSERT DATA operation, the default graph does not contain the triple :bob :age 23. In other words, a query such as the following would have an empty result.

              + +
              +          
              +        
              + +

              For an embedded triple to be present in the graph as an asserted triple, it needs to be inserted as such. For instance, the INSERT DATA operation in the example above may be modified as follows in order to insert not only the nested triple but also the triple :bob :age 23.

              + +
              +          
              +        
              + +
              + +
              +

              DELETE DATA

              + +

              The DELETE DATA operation can be used to remove a given set of triples from the graph store. In the context of SPARQL-star Update, this may include removing nested RDF-star triples as demonstrated in the following example.

              + +
              +          
              +        
              + +

              After executing this DELETE DATA operation over a graph store with a default graph that contains the given nested triple, the graph will not contain this triple any longer. If the graph did not contain that nested triple in the first place, the graph will remain unchanged by the given DELETE DATA operation.

              + +

              Notice that deleting triples by using the DELETE DATA operation does not affect any other triples in the corresponding graphs. For instance, for a default graph that contains the triple :bob :age 23 as an asserted triple, the DELETE DATA operation given above does not delete this asserted triple. In contrast, the following operation would delete this asserted triple but it would not delete any nested triple that contains the given triple as an embedded triple.

              + +
              +          
              +        
              + +
              + +
              +

              DELETE/INSERT

              + +

              The DELETE/INSERT operation can be used to remove or add triples based on variable bindings obtained by evaluating a given WHERE clause. As an example, the following DELETE/INSERT operation replaces all nested triples in which :alice is the subject by nested triples in which :carol is the subject.

              + +
              +          
              +        
              + +

              As in SPARQL Update, in SPARQL-star Update it is possible to use variations of the DELETE/INSERT operations in which either the DELETE clause or the INSERT clause are omitted.

              + +

              When removing triples via the DELETE clause (irrespective of whether the INSERT clause is omitted or not), the effects with respect to nested triples must be the same as described above for the DELETE DATA operation; i.e., only the triples that are explicitly identified to be deleted are deleted. Similarly, inserting triples via the INSERT clause has the same effects as described above for the INSERT DATA operation; i.e., inserting nested triples does not automatically also insert their embedded triples as asserted triples into the graph. Of course, it is possible to request such inserts explicitly as demonstrated in the following example.

              + +
              +          
              +        
              + +

              While all SPARQL-star Update examples above focus only on the default graph of a graph store, SPARQL-star Update can also be used to update the named graphs of a graph store, which works in exactly the same way as in SPARQL Update. As a possible example consider the following INSERT operation which retrieves all embedded triples found in nested triples in the default graph and inserts them as asserted triples into the named graph with IRI :graph2.

              + +
              +          
              +        
              + +
              + +
              + + + +
              +

              Grammar

              + +

              SPARQL-star Update is an extension of the SPARQL Update language [[SPARQL11-UPDATE]]. As mentioned in SPARQL 1.1 Update, Appendix C [[SPARQL11-UPDATE]], the grammar of the latter is provided as part of the SPARQL 1.1 Query grammar. Similarly, the grammar of SPARQL-star Update is provided as part of the grammar of the SPARQL-star query language, which is defined by the SPARQL 1.1 Query grammar with the extensions specified in . As a result of these extensions, the production rules QuadData and QuadPattern, which are used in the definition of SPARQL Update [[SPARQL11-UPDATE]], are extended to capture nested triples and nested triple patterns as demonstrated in the examples above.

              + +
              + +
              +

              Semantics

              + +

              The semantics of SPARQL-star Update operations can also be defined by a simple extension of the formalization of SPARQL Update [[SPARQL11-UPDATE]]. This extension assumes that any mention of "RDF triple" or "triple" in the formalization of SPARQL Update is understood as an RDF-star triple. Similarly, "RDF graph" and "solution mapping" are understood as RDF-star graph and SPARQL-star solution mapping, respectively. Any mention of the "evaluation function eval()" is understood as the eval function for SPARQL-star as defined in .

              + +
              + +
              + +
              +

              RDF-star Semantics

              + +

              In this section, we provide a model-theoretic semantics for RDF-star, based on the one defined in [[[RDF11-MT]]] [[RDF11-MT]]. More precisely, we define a mapping from RDF-star's abstract syntax into standard RDF's abstract syntax, and define the semantics of RDF-star graphs in terms of the semantics of the mapped RDF graphs.

              + +

              In the following, we will use abbreviated IRIs using the prefix `unstar:` which is an alias for the namespace `https://w3c.github.io/rdf-star/unstar#`.

              + +

              We also introduce a number of definitions specific to RDF-star, which rely on the following notions, defined in [[[RDF11-CONCEPTS]]] [[RDF11-CONCEPTS]] and [[[RDF11-MT]]] [[RDF11-MT]]: + datatype, + lexical form, + ill-typed, + merging, + satisfiability, + unsatisfiability, + entailment, + and equivalence. +

              + +
              +

              Mapping RDF-star abstract syntax to RDF

              + +

              We define a mapping |L| that maps any IRI or literal |t| to a literal with:

              + + +

              Given an RDF-star graph |G|, the following steps define the unstar mapping, which transform |G| into an RDF graph that we call unstar(|G|).

              + +
              +
                +
              1. For each IRI |i| in the constituents of |G| starting with `https://w3c.github.io/rdf-star/unstar#`:
                  +
                1. Mint a new IRI |j| by appending an underscore (`_`) to |i|.
                2. +
                3. Replace with |j| all occurrences of |i| in the subject, predicate, or object position of an asserted or embedded triple of |G|.
                4. +
              2. +
              3. While |G| contains embedded triples:
                  +
                1. Pick an RDF-star triple (|s|, |p|, |o|) in the constituents of |G| such that neither |s| nor |o| is an embedded triple.
                2. +
                3. Mint a fresh blank node |b| (i.e., such that |b| is not in the constituents of |G|).
                4. +
                5. Replace with |b| all occurrences of (|s|, |p|, |o|) in the subject or object position of an asserted or embedded triple of |G|.
                6. +
                7. Add the following asserted triples to |G|:
                    +
                  • (|b|, `unstar:subject`,`   `|s|)
                  • +
                  • (|b|, `unstar:predicate`,` `|p|)
                  • +
                  • (|b|, `unstar:object`,`    `|o|) unless |o| is an ill-typed literal
                  • +
                  • (|b|, `unstar:subjectLexical`,`   `|L|(|s|)) unless |s| is a blank node
                  • +
                  • (|b|, `unstar:predicateLexical`,` `|L|(|p|))
                  • +
                  • (|b|, `unstar:objectLexical`,`    `|L|(|o|)) unless |o| is a blank node
                  • +
                8. +
              4. +
              +
              +

              After these steps, unstar(|G|) is an RDF graph, as it contains no embedded triples. Note that if |G| contains no embedded triple and no IRI in the `unstar:` namespace, then unstar(|G|) = |G|.

              + +
              + +
              +

              Entailment of RDF-star graphs

              + +

              Following [[[RDF11-MT]]], we define the notions of satisfiability and entailment for RDF-star graphs. Given two RDF-star graphs |G| and |H|:

              +

              + +

              It is easy to see that, in the special case of RDF graphs |G| and |H| (i.e. RDF-star graphs containing no embedded triple), |G| is star-satisfiable if and only if |G| is simply satisfiable, and |G| star-entails |H| if and only if |G| simply entails |H|. This is trivially true if |G| and |H| do not contain any `unstar:` IRI (in which case they are left unchanged by the unstar mapping). But this is also true if they do contain such IRIs (as the renaming performed by the unstar mapping has no significant impact on the semantic relationships between the two graphs). Star-entailment can therefore be considered as a natural extension of simple entailment to RDF-star graphs.

              + +

              Other notions of satisfiability and entailment, such as RDF entailment or RDFS entailment, can be extended in the same way for RDF-star graphs.

              +
              + +
              +

              Merging RDF-star graphs

              + +

              [[[RDF11-MT]]] [[RDF11-MT]] defines the merging of two or more RDF graphs as "[taking their] union after forcing any shared blank nodes, which occur in more than one graph, to be distinct in each graph." Note that, in the case of RDF-star graphs, any blank node in the constituent terms of that graph is governed by the definition above, not only those in the subject or object position of some asserted triple.

              + +
              +        
              +      
              + +
              + + +
              +

              Remarks

              + +
              +

              Implementing the RDF-star semantics

              + +

              It is important to notice that the definitions given above for satisfiability and entailment of RDF-star graphs do not mandate that implementations actually transform RDF-star graphs using the unstar mapping defined above. It should be possible to implement the semantics by directly handling RDF-star's abstract syntax.

              + +
              + +
              +

              Combining RDF-star graphs

              + +

              Care must be taken when implementations that rely on the unstar mapping combine the resulting RDF graphs through union or merge. Given two RDF-star graphs |G| and |H|, it may be the case that unstar(|G| ∪ |H|) ≠ unstar(|G|) ∪ unstar(|H|).

              + +

              In particular, if |G| and |H| contain the same embedded triple, this triple will be mapped to a single blank node in unstar(|G| ∪ |H|), but in two potentially different blank nodes in unstar(|G|) ∪ unstar(|H|). These blank nodes will need to be unified in order to reconstruct unstar(|G| ∪ |H|).

              + +

              Conversely, nothing in the definition of the unstar mapping prevents it from generating the same blank node |b| for an embedded triple of |G|, and for a different embedded triple of |H| (provided that |b| is not present in either |G| nor |H|). In that case, not only would unstar(|G|) ∪ unstar(|H|) be different from unstar(|G| ∪ |H|), but it would lose some information by mixing the descriptions of the two embedded triples.

              + +
              + +
              +

              Other uses of the unstar mapping

              + +

              Since the unstar mapping transforms any RDF-star graph into a standard ("non-star") RDF graph, it might be tempting to use this mapping for conveying RDF-star graphs to legacy RDF systems. However, this has a number of caveats.

              + +

              First, the unstar mapping alters the semantics of the graph: in general, a graph |G| is not equivalent to its "unstarred" version unstar(|G|), even if |G| is a standard RDF graph containing no embedded triples. (More precisely, they are equivalent only if |G| contains no embedded triples and no IRIs from the `unstar:` namespace.)

              + +

              Second, when a legacy RDF system communicates an RDF graph to an RDF-star-aware system, there is no means by which the latter can determine with certainty whether the graph is the result of applying the unstar mapping, and thus needs to be transformed back. (The presence of `unstar:` IRIs in the graph can be used as a hint, but such IRIs can also be used independently of the mapping.) Additional metadata should therefore be attached to unstarred graphs, so that RDF-star systems know whether or not they need to apply the inverse transformation of unstar.

              + +

              Finally, legacy RDF systems may alter unstarred graphs in ways that prevent their transformation back to the original RDF-star graph. For example, it has been pointed out above how combining several unstarred graphs may not yield the expected result. Another example is the removal of some arcs, such that an embedded triple is not completely described anymore, and can not be reconstructed.

              + +
              + +
              +

              Referential opacity

              + +

              The way the unstar mapping is defined, the denotation of an embedded triple does not only depend on the denotation of its component terms, but also on their syntactical form (for IRIs and literals). This behavior is referred to as referential opacity. A consequence is that two different triples, that would be semantically equivalent if asserted, are not automatically considered to denote the same thing when embedded. In the example below, assuming D-entailment: while `"42"^^xsd:integer` and `"042"^^xsd:integer` denote the same thing (namely, the number 42), the two embedded triples are allowed to have different denotations, and so the entailment does not hold.

              + +
              +        
              +        
              + +

              Similarly, in the example below and under OWL entailment [[OWL2-Overview]], while `:superman` and `:clark` are inferred to denote one and the same person (because of the `owl:sameAs` relationship between them), the two embedded triples are not automatically considered to denote the same thing.

              + +
              +        
              +        
              + +

              This is well suited for use-cases where the syntactical form of the annotated statements may be significant (like annotating statements from other graphs or annotating commit deltas). On the other hand, other use-cases would expect some degree of referential transparency. Consider the case of attributed/evidenced triples. The annotation is understood to be about the fact asserted by the triple rather than the triple itself. As illustrated in the example below, one might then expect more inferences than provided by the current semantics.

              + +
              +        
              +        
              + +

              Note that the current semantics does not forbid the additional inferences to be drawn. However, they would require additional knowledge and an appropriate semantic extension, not specified in this document. This makes RDF-star less readily usable for (but not incompatible with) that latter kind of use-cases.

              + +
              + +
              +

              Alternatives to referential opacity

              + +

              Given the potential drawbacks of the referential opacity provided by the current semantics, as described in the previous section, the group has considered alternative semantics. No clear consensus was reached, however, to decide whether these alternatives should be used as a replacement, or as a semantic extension, of the current semantics.

              + +

              A fully referentially transparent semantics can be achieved by changing the step 2.4 of the unstar mapping algorithm as follows:

              + +
                +
              • Add the following asserted triples to |G|: +
                  +
                • (|b|, `unstar:subject`,`   `|s|)
                • +
                • (|b|, `unstar:predicate`,` `|p|)
                • +
                • (|b|, `unstar:object`,`    `|o|)
                • +
                +
              • +
              + +

              In the examples above (, , ), all the entailments would now hold automatically. This could be a problem in some use-cases, as such inferences could then not be cancelled, given the monotonic semantics of RDF.

              + +

              An intermediate alternative would be to make embedded triples referentially opaque for IRIs only, keeping it transparent for literals (and for blank nodes, as is already the case). This can be achieved by changing the step 2.4 of the unstar mapping algorithm as follows:

              + +
                +
              • Add the following asserted triples to |G|: +
                  +
                • (|b|, `unstar:subject`,`   `|s|)
                • +
                • (|b|, `unstar:predicate`,` `|p|)
                • +
                • (|b|, `unstar:object`,`    `|o|)
                • +
                • (|b|, `unstar:subjectLexical`,`   `|L|(|s|)) if |s| is an IRI
                • +
                • (|b|, `unstar:predicateLexical`,` `|L|(|p|))
                • +
                • (|b|, `unstar:objectLexical`,`    `|L|(|o|)) if |o| is an IRI
                • +
                +
              • +
              + +
              + +
              + +
              Other design choices for the semantics have also been discussed by the community group; these have been summarized in a Github issue.
              + +
              + +
              +

              RDF-star vocabulary

              + +

              This section will eventually describe a number of IRIs that may be useful when using RDF-star. At the moment, it contains links to the Github issues where such terms have been discussed.

              + +
              +
              + +
              + This issue discusses the relevance of introducing a standard property to link an embedded triple to its occurrences (as illustrated in ), as well as other related properties and classes. +
              + +
              + This issue was raised to introduce IRIs to be used with [[SPARQL11-SERVICE-DESCRIPTION]], in order for a SPARQL-star endpoint to advertise its support for RDF-star. +
              + +
              + This issue proposes to introduce a vocabulary for locally overriding the opaque semantics of embedded triples, making them transparent in some contexts. +
              + +
              + +
              +

              IANA Considerations

              + +

              In , we have proposed extensions to four existing media types, namely `text/turtle` [[TURTLE]], `application/trig` [[TRIG]], `application/n-triples` [[N-TRIPLES]] and `application/n-quads` [[N-QUADS]]. In , we have proposed extensions to three more existing media types, namely `application/sparql-query` [[SPARQL11-QUERY]], `application/sparql-results+json` [[SPARQL11-RESULTS-JSON]], and `application/sparql-result+xml` [[RDF-SPARQL-XMLRES]]. While the RDF-DEV Community Group has no authority to officially update these media-types, we hope that a future working group with such authority will consider doing so, and include extensions proposed in this report.

              + +

              In the meantime, implementers of RDF-star are faced with a dilemma: use the standard media-type identifiers as if their definition had been already updated (optimistic approach); or make it explicit that they are prone to produce or consume embedded triples (pessimistic approach), perhaps by using a different temporary media-type, or custom HTTP headers.

              + +

              The optimistic approach raises the risk of breaking the expectations of other applications that are not RDF-star-aware. For example, if a SPARQL-star endpoint responds to a CONSTRUCT query with the `text/turtle` media-type, and includes an embedded triple in the response, a legacy client will fail to parse that response. On the other hand, if the same server applies the pessimistic approach, it may simply reject any query requiring `text/turtle`, just in case the result contain embedded triples. Note that it is not always feasible for the server to decide beforehand whether the result is plain Turtle or Turtle-star, because the result is often produced in a streamed manner, after the headers containing the media-type have been sent to the client.

              + +

              Another problem with the pessimistic approach is that "temporary" media-types are known to actually become permanent. Old applications keep using them long after their intended expiration date. This a burden on all other implementations, which must handle the "temporary" media-types along the permanent one, as aliases, in order to maintain backward compatibility.

              + +

              The W3C Recommendation + Content Negotiation by Profile + [[DX-PROF-CONNEG]] describes a mechanism that separates content-type + negotiation from requesting a response conforming to a specific information model, + whether that model is a specific standard, specification or profile. + The operations of the abstract model + are "list profiles" and "get resource by profile". + The "get resource" operation can provide the profile requests with HTTP + header Accept-Profile and responses use Content-Profile, or + alternatively the request can use HTTP Query String parameters. +

              + +

              + This may be useful when the information is available in RDF-star or in non-RDF-star + RDF 1.1 form, whether using reification, or by omitting information expressed with + the RDF-star data model and responding with a restricted response. By lifting the + issue up to the information model, away from being purely about syntax, restricted + responses can be requested and returned which do not use RDF-star features. + However, it assumes both requestor and receiver adhere to the defined profile + negotiation and therefore does not address the dilemma of optimistic or pessimistic + approaches. +

              + +

              Although the examples in this document, and the tests in the test suite, adopt the optimistic approach, it should be noted that no clear consensus emerged from the group on which approach is the best.

              + +
              + +
              +

              Historical remarks

              + +
              +

              SA-mode and PG-mode

              + +

              A lot of discussions on the RDF-star mailing list and GitHub repository refer to SA-mode and PG-mode. Those abbreviations stand for "Separate Assertion mode" and "Property Graph mode". They originate in the fact that different versions of RDF-star have been published over the years, with different designs. In PG-mode, any embedded triple was also considered asserted. SA-mode, on the other hand, allowed the use of embedded triples without those triples being automatically asserted, requiring that they be asserted separately when that was intended. SA-mode was more flexible, but induced redundancy in the use-cases that PG-mode was designed to address.

              + +

              The notion of annotations in the Turtle-star syntax was introduced to remove the need for different modes. Rather than interpret the same syntax differently in each mode, which would have caused interoperability problems and required a switch for those modes, it was decided to provide a different syntax for each use case.

              + +
                +
              • The << ... >> syntax represents a triple that is embedded without being asserted, satisfying the need formerly filled by SA-mode.
              • +
              • The :a :b :c {| :p :o ... |} annotation syntax creates triples where the subject is an embedded version of the triple asserted just before the annotation (here, :a :b :c), without the need to repeat it, satisfying the need formerly filled by PG-mode.
              • +
              +
              + +
              +

              The seminal example

              + +

              The motivating example in the original RDF-star paper [[RDF-STAR-FOUNDATION]] was on a provenance use-case, and is repeated below.

              + +
              +        
              +      
              + +

              This example was further debated on the RDF-star mailing list, as it appears to have set wrong expectations about what embedded triples represent. More precisely, from this example, one may wrongly assume that `<<:bob foaf:age 23>>` represents the occurrence of the given triple at the address `http://example.net/listing.html` (see ). This impression may be reinforced by the use of `dct:creator`: arguably, a triple (as a unique abstract entity) is not "created" by anyone, while an occurrence thereof can be said to be created or authored.

              + +

              The problem with this interpretation is that it will break as soon as other creators and sources are added for the triple: one could not tell which source corresponds to which creator. Correctly capturing this information would require additional nodes to explicitly represent triple occurrences, as in . In summary, although RDF-star can be used for provenance, the seminal example does not work as stated and can lead to the fundamentally incorrect interpretation that RDF-star can represent multiple distinct embedded triples with the same subject, predicate, and object.

              + +
              + +
              + +
              + +
              + + diff --git a/corese-unit-test/src/test/resources/data/rdf-star-main/cg-spec/2021-07-01.html b/corese-unit-test/src/test/resources/data/rdf-star-main/cg-spec/2021-07-01.html new file mode 100644 index 0000000000..81a69711a3 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/rdf-star-main/cg-spec/2021-07-01.html @@ -0,0 +1,4301 @@ + + + + + + + + + +RDF-star and SPARQL-star + + + + + + + + + + + + + + + +
              +

              RDF-star and SPARQL-star

              + +

              + Draft Community Group Report + +

              +
              +
              This version:
              + https://w3c.github.io/rdf-star/cg-spec/2021-07-01.html +
              +
              Latest published version:
              + https://w3c.github.io/rdf-star/cg-spec +
              +
              Latest editor's draft:
              https://w3c.github.io/rdf-star/cg-spec/editors_draft.html
              +
              Test suite:
              https://w3c.github.io/rdf-star/tests/
              +
              Implementation report:
              + https://w3c.github.io/rdf-star/reports/ +
              + +
              Previous version:
              + https://w3c.github.io/rdf-star/cg-spec/2021-04-13.html +
              + +
              Editors:
              +
              + Olaf Hartig + + + + (Linköping University) +
              + Pierre-Antoine Champin + + + + (ERCIM) +
              + Gregg Kellogg (no affiliation) +
              + Andy Seaborne (Apache Software Foundation) +
              + +
              Authors:
              + Dörthe Arndt (TU Dresden) +
              + Jeen Broekstra (metaphacts) +
              + Bob DuCharme (CCRi) +
              + Ora Lassila (Amazon) +
              + Peter F. Patel-Schneider (PARC) +
              + Eric Prud'hommeaux (Janeiro Digital, W3C/MIT) +
              + Ted Thibodeau, Jr. (OpenLink Software, Inc.) +
              + Bryan Thompson (Amazon) +
              +
              Participate:
              + GitHub w3c/rdf-star +
              + File an issue +
              + Commit history +
              + Pull requests +
              Acknowledgements:
              + James Anderson (datagraph gmbh) +
              + Ghislain Atemezing (Mondeca) +
              + Pavel Klinov (Stardog Union) +
              + Bruno P. Kinoshita (Apache Software Foundation) +
              + Holger Knublauch (TopQuadrant, Inc.) +
              + Andreas Kuckartz +
              + William Van Woensel (Dalhousie University) +
              + Miel Vander Sande (meemoo) +
              +
              + + +
              +
              +

              Abstract

              +

              The Resource Description Framework (RDF) is a general-purpose framework for representing information on the Web. RDF-star extends RDF with a convenient way to make statements about other statements. This specification defines the abstract syntax of RDF-star as an extension of RDF's. It extends a number of RDF concrete syntaxes to support the new abstract syntax. It also extends RDF's formal semantics. Finally, this specification extends the SPARQL language to allow querying and updating of RDF-star data.

              +
              +

              Status of This Document

              + This specification was published by the + RDF-DEV Community Group. It is not a W3C Standard nor is it + on the W3C Standards Track. + + Please note that under the + W3C Community Contributor License Agreement (CLA) + there is a limited opt-out and other conditions apply. + + Learn more about + W3C Community and Business Groups. +

              +

              + GitHub Issues are preferred for + discussion of this specification. + + Alternatively, you can send comments to our mailing list. + Please send them to + public-rdf-star@w3.org + (subscribe, + archives). + +

              + +
              +

              1. Introduction

              + +
              +

              1.1 Background and Motivation

              This section is non-normative.

              + +

              The RDF data model lets you state facts in three-part subject-predicate-object statements known as triples. For example, with a single RDF triple, you can say that employee38 has a familyName of "Smith". A triple's predicate is a property specified with an IRI (an Internationalized version of a URI), identifying that property in a globally unambiguous way. A triple's subject and object can each be an IRI referencing any entity, and the object can also be a literal value such as "Smith" or data of other types such as dates, numbers, or Boolean values.

              + +

              Sometimes, we want the subject or object of a triple to refer to another triple. For example, the statement "according to employee22, employee38 has a jobTitle of 'Assistant Designer'" can be modeled as a triple with "according to" as its predicate, employee22 as its object, and another triple as its subject, namely the triple "employee38 has a jobTitle of 'Assistant Designer'". This use of a triple as the subject or object resource of another triple so that we can say things about that triple is known as reification. + The concept of reification has always been part of RDF, but expressing it in most RDF concrete syntaxes such as Turtle and N-Triples, as well as processing or querying it with SPARQL, has been verbose and cumbersome [RDF-STAR-FOUNDATION].

              + +
              + +
              +

              1.2 Overview

              This section is non-normative.

              + +

              This specification describes RDF-star, an extension of RDF's conceptual data model and concrete syntaxes, providing a more compact form of reification. This model and syntaxes enable the creation of concise triples that reference other triples as subject and object resources. +Triples that include a triple as a subject or an object are known as RDF-star triples. The following dataset shows the example RDF-star triples from above using the Turtle-star syntax, which uses double angle brackets to enclose a triple serving as a subject or object resource:

              + +
              +
              + Example 1 +
              @prefix :    <http://www.example.org/> .
              +
              +:employee38 :familyName "Smith" .
              +<< :employee38 :jobTitle "Assistant Designer" >> :accordingTo :employee22 .
              +
              + +

              After declaring a prefix so that IRIs can be abbreviated, the first triple in this example asserts that employee38 has a familyName of "Smith". Note that this dataset does not assert that employee38 has a jobTitle of "Assistant Designer"; it says that employee22 has made that claim. In other words, the triple "employee38 has a jobTitle of 'Assistant Designer'" is not what we call an asserted triple, like "employee38 has a familyName of 'Smith'" above; rather, it is known as an embedded triple.

              + +

              If we added the triple :employee38 :jobTitle "Assistant Designer" below the triple about employee22's claim in the example above, then this triple about employee38's jobTitle would be both an embedded triple and an asserted one. +This pattern is quite common, so Turtle-star offers a dedicated syntax for it, called the annotation syntax, illustrated in Example 2 below. Note that this construct is purely syntactic sugar, as it can be expanded using only the double angle brackets.

              + +
              +
              + Example 2 +
              @prefix :    <http://www.example.org/> .
              +
              +:employee38
              +    :familyName "Smith" ;
              +    :jobTitle "Assistant Designer" {| :accordingTo :employee22 |} .
              +
              +# this is equivalent to:
              +#
              +# :employee38
              +#     :familyName "Smith" ;
              +#     :jobTitle "Assistant Designer" .
              +# << :employee38 :jobTitle "Assistant Designer" >> :accordingTo :employee22 .
              +
              + + +

              This specification also describes an extension to the SPARQL Protocol and Query Language known as SPARQL-star for the querying of RDF-star triples. For example, the following SPARQL-star query asks "who has made any claims about employee38?"

              + +
              +
              + Example 3 +
              PREFIX : <http://www.example.org/> 
              +
              +SELECT ?claimer WHERE {
              +   ?claimer :claims << :employee38 ?property ?value >>
              +}
              +
              + + +

              SPARQL can also be used to update RDF data, and SPARQL-star also extends that part. For example, the following SPARQL-star adds all the statements made by employee22 about employee38 as asserted triples, annotating them as "confirmed".

              + +
              +
              + Example 4 +
              PREFIX : <http://www.example.org/>
              +
              +INSERT {
              +  :employee38 ?p ?o {| :status "confirmed" |}
              +} WHERE {
              +   << :employee38 ?p ?o >> :accordingTo :employee22
              +}
              +
              + +

              For the remainder of this document, examples will assume that the following prefixes have been declared to represent the IRIs shown with them here:

              + + + + + + + + + +
              :<http://www.example.org/>
              rdf:<http://www.w3.org/1999/02/22-rdf-syntax-ns#>
              rdfs:<http://www.w3.org/2000/01/rdf-schema#>
              owl:<http://www.w3.org/2002/07/owl#>
              prov:<http://www.w3.org/ns/prov#>
              dc:<http://purl.org/dc/elements/1.1/>
              dct:<http://purl.org/dc/terms/>
              + +
              + +

              1.3 Conformance

              As well as sections marked as non-normative, all authoring guidelines, diagrams, examples, and notes in this specification are non-normative. Everything else in this specification is normative.

              + The key words MAY, MUST, and MUST NOT in this document + are to be interpreted as described in + BCP 14 + [RFC2119] [RFC8174] + when, and only when, they appear in all capitals, as shown here. +

              +
              Issue 3: Do we need more things in the 'conformance' section? laterprocess

              For the moment, we only have the boilerplate text generated by respec.

              +
              + +
              + +
              +

              2. Concepts and Abstract Syntax

              + +

              In the following, we introduce a number of definitions specific to SPARQL-star, which rely on the following notions (extending some of them) defined in RDF 1.1 Concepts and Abstract Syntax [RDF11-CONCEPTS]: + blank node, + default graph, + graph name, + IRI, + literal, + named graphs, + object, + predicate, + RDF dataset, + RDF graph, + RDF triple, + and subject +

              + +

              An RDF-star graph is a set of RDF-star triples.

              + +

              An RDF-star triple is a 3-tuple defined recursively as follows:

              + + +

              As for RDF triples, we call the 3 components of an RDF-star triple its subject, predicate and object, respectively. From the definitions above, it follows that any RDF graph is also an RDF-star graph. Note also that, by definition, an RDF-star triple cannot contain itself and cannot be nested infinitely.

              + +

              IRIs, literals, blank nodes and RDF-star triples are collectively known as RDF-star terms.

              + +

              For every RDF-star triple t, we define its constituent terms (or simply constituents) as the set containing its subject, its predicate, its object, plus all the constituent terms of its subject and/or its object if they are themselves RDF-star triples. By extension, we define the constituent terms of an RDF-star graph to be the union set of the constituent terms of all its triples.

              + +
              + Consider the following RDF-star triple (represented in Turtle-star): +
              +
              + Example 5 +
              << _:a :name "Alice" >> :statedBy :bob.
              +
              + Its set of constituent terms comprises the IRIs :name, :statedBy, :bob, the blank node _:a, the literal "Alice", and the triple << _:a :name "Alice" >>. +
              + +

              An RDF-star triple used as the subject or object of another RDF-star triple is called an embedded triple. An RDF-star triple that is an element of an RDF-star graph is called an asserted triple. Note that, in a given RDF-star graph, the same triple MAY be both embedded and asserted.

              + +

              An RDF-star dataset is a collection of RDF-star graphs, and comprises:

              + + + +

              Again, this definition is an extension of the notion of RDF dataset, hence it follows that any RDF dataset is also an RDF-star dataset.

              + +
              +

              2.1 Triples and occurrences

              This section is non-normative.

              + +

              According to the definitions above, an RDF-star triple is an abstract entity whose identity is entirely defined by its subject, predicate, and object. Conversely, given three RDF-star terms s, p, and o, there is exactly and only one RDF-star triple with subject s, predicate p, and object o. This unique triple (s, p, o) can be embedded as the subject or object of multiple other triples, but must be assumed to represent the same thing everywhere it occurs, just like the same IRI p is assumed to represent the same thing everywhere it occurs.

              + +

              In some situations, however, it might be necessary to distinguish the occurrences of a triple in different graphs. Consider the following sentence: "The triple <http://example.org/s> <http://example.org/p> <http://example.org/o> in (the graph represented by) file1.ttl was added by Alice, and the same triple in file2.ttl was added by Bob." Note that the words "same triple" in this sentence may be confusing, because although the triple (as an abstract entity) is the same, its respective occurrences are different things, each within a different file and with a different author (this is known, in philosophy and linguistics, as the type-token distinction). As the embedded triple represents a unique thing, adequately conveying the meaning of the sentence above requires additional nodes for representing the two distinct occurrences. One possible solution is illustrated in the following example (using the Turtle-star concrete syntax described in the next section).

              + +
              +
              + Example 6 +
              _:a :occurrenceOf << :s :p :o >> ;
              +    :in <file1.ttl> ;
              +    dct:creator :alice.
              +_:b :occurrenceOf << :s :p :o >> ;
              +    :in <file2.ttl> ;
              +    dct:creator :bob.
              +
              + +
              + +
              + +
              +

              3. Concrete Syntaxes

              + +

              This section defines the following concrete syntaxes:

              + + +

              + Changes for SPARQL-star are given in + § 4.2 Grammar + and the changes for the result set formats in + § 4.7 Query Result Formats.

              + +
              +

              3.1 Turtle-star

              +

              In this section, we present Turtle-star, + an extension of the Turtle format [TURTLE] + allowing the representation of RDF-star graphs. + For the sake of conciseness, + we only describe here the differences between Turtle-star and Turtle.

              + +
              +

              3.1.1 Grammar

              +

              Turtle-star is defined to follow the same grammar as Turtle, + except for the EBNF productions specified below, + which replace the productions having the same number (if any) in the original grammar.

              + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
              [8]objectList::= + object + annotation? + ( + ',' + object + annotation? + )* +
              [10]subject::= + iri | + BlankNode | + collection | + embTriple +
              [12]object::= + iri | + BlankNode | + collection | + blankNodePropertyList | + literal | + embTriple +
              [27t]embTriple::= + '<<' + embSubject + verb + embObject + '>>' +
              [28t]embSubject::= + iri | + BlankNode | + embTriple +
              [29t]embObject::= + iri | + BlankNode | + literal | + embTriple +
              [30t]annotation::= + '{|' + predicateObjectList + '|}' +
              + +
              Note

              As with N-Triples-star, + the changes are that subject + and object productions + have been extended to accept embedded triples, + which are described by the new productions 27t + to 30t. + Note that embedded triples accept a more restricted range of + subject and object expressions + than asserted triples. + Additionally, the objectList production + now accepts an optional annotation after each object.

              +
              + +
              +

              3.1.2 Parsing

              +

              A Turtle-star parser is similar to a Turtle parser + as defined in Section 7 of the Turtle specification [TURTLE], + with an additional item in its state :

              + +

              Additionally, the curSubject + can be bound to any RDF-star term + (including an embedded triple).

              + +

              A Turtle-star document defines an RDF-star graph + composed of a set of RDF-star triples. + The subject + and embSubject productions set the curSubject. + The verb production + sets the curPredicate. + The object + and embObject productions + set the curObject. + Finishing the object production, + an RDF-star triple curSubject curPredicate curObject is produced + (added to the RDF-star graph).

              + +

              Beginning the embTriple production + records the curSubject and curPredicate. + Finishing the embTriple production + yields the RDF-star triple curSubject curPredicate curObject + and restores the recorded values of curSubject and curPredicate.

              + +

              Beginning the annotation production + records the curSubject and curPredicate, + and sets the curSubject to the RDF-star triple curSubject curPredicate curObject. + Finishing the annotation production + restores the recorded values of curSubject and curPredicate.

              + +

              All other productions MUST be handled as specified + by Section 7 of the Turtle specification [TURTLE], + while still applying the changes above recursively.

              + +
              +
              3.1.2.1 Discussion

              This section is non-normative.

              + +

              This section describes parser behavior when parsing + a Turtle-star document that contains embedded triples + and annotations.

              + +

              Consider a Turtle-star document that describes an RDF triple, + and also uses that triple as an embedded triple + as the subject of another RDF-star triple:

              + +
              +
              + Example 7: Turtle-star embedded triples +
              @base <http://example.org/> .
              +@prefix : <#> .
              +_:a :name "Alice" .
              +<< _:a :name "Alice" >> :statedBy :bob .
              +
              + +

              The usual process of parsing a Turtle document + applies with the addition of matching the embedded triple + << _:a :name "Alice" >> + as part of the subject production. + The resulting RDF-star graph consists of two RDF-star triples:

              + +
                +
              1. (b, http://example.org/#name, "Alice"), + where b is a blank node
              2. +
              3. ((b, http://example.org/#name, "Alice"), http://example.org/#statedBy, http://example.org/#bob/), + where b is the same blank node
              4. +
              + +

              Because the above example includes the triple (b, http://example.org/#name, "Alice") + as an asserted triple, + the same RDF-star graph may also be represented + by using the Turtle-star annotation syntax as follows:

              + +
              +
              + Example 8: Turtle-star annotated triples +
              @base <http://example.org/> .
              +@prefix : <#> .
              +_:a :name "Alice" {| :statedBy :bob |} .
              +
              + +

              In this case, the objectList production + matches the annotation production on {| :source :bob |} + after parsing the object production on "Alice". + At this point, the curSubject, curPredicate, and curObject are saved, + and a new RDF-star triple _:a :name "Alice" is created + and used as curSubject while processing + the annotation production.

              +
              +
              +
              + +
              +

              3.2 TriG-star

              + +

              This section describes TriG-star, + a minimal extension of the TriG format [TRIG] + using the same production updates described in § 3.1 Turtle-star.

              + +
              Note

              RDF-star describes embedded triples, + which are not necessarily present in any named graph, + or within the default graph.

              + +

              A TriG-star document defines an RDF-star dataset, composed of + a single default graph and zero or more named graphs, + all of which are RDF-star graphs.

              + +
              +

              3.2.1 Grammar

              +

              TriG-star is defined to follow the same grammar as TriG, + except for the EBNF productions specified below, + which replace the productions having the same number (if any) in the original grammar.

              + +

              The TriG-star grammar contains exactly the same production updates + described in § 3.1.1 Grammar + with an additional change to the triplesOrGraph production.

              + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
              [3g]triplesOrGraph::= + labelOrSubject + ( + wrappedGraph + | + predicateObjectList + '.' ) +
              + | + embTriple + predicateObjectList + '.' +
              +
              [8]objectList::= + object + annotation? + ( + ',' + object + annotation? + )* +
              [10]subject::= + iri | + BlankNode | + collection | + embTriple +
              [12]object::= + iri | + BlankNode | + collection | + blankNodePropertyList | + literal | + embTriple +
              [27t]embTriple::= + '<<' + embSubject + verb + embObject + '>>' +
              [28t]embSubject::= + iri | + BlankNode | + embTriple +
              [29t]embObject::= + iri | + BlankNode | + literal | + embTriple +
              [30t]annotation::= + '{|' + predicateObjectList + '|}' +
              +
              + +
              +

              3.2.2 Parsing

              +

              TriG-star parsing uses the same updates described + in § 3.1.2 Parsing + as applied to Section 5 of the TriG specification [TRIG].

              + +
              Note

              As with Turtle-star, + the embTriple + and annotation + are used to set either the curSubject or curObject, + and do not directly add the associated embedded triple to curGraph. + Subsequent productions which use either curSubject or curObject + may result in adding triples to curGraph.

              + +

              A conforming TriG-star parser MUST parse any + valid TriG document and any + valid Turtle-star document in addition + to the Turtle-star grammar productions contained within a named graph.

              +
              + +
              +

              3.2.3 Discussion

              This section is non-normative.

              + +

              TriG-star allows the same expressivity as Turtle-star + with the addition of allowing embedded triples + and annotations + within named graphs.

              + +
              +
              + Example 9: TriG-star annotated triples +
              @base <http://example.org/> .
              +@prefix : <#> .
              +:G {
              +  _:a :name "Alice" {| :statedBy :bob |} .
              +}
              +
              + +

              The resulting RDF-star dataset consists of + an empty default graph, and a graph named http://example.org/#G + with two RDF-star triples:

              + +
                +
              1. (b, http://example.org/#name, "Alice"), + where b is a blank node
              2. +
              3. ((b, http://example.org/#name, "Alice"), http://example.org/#statedBy, http://example.org/#bob/), + where b is the same blank node
              4. +
              +
              +
              + +
              +

              3.3 N-Triples-star

              + +

              This section describes N-Triples-star, + a minimal extension of the N-Triples format [N-TRIPLES] + allowing a subject or an object + of an RDF-star triple to be an embedded triple.

              + +
              +

              3.3.1 Grammar

              +

              N-Triples-star is defined to follow the same grammar as + the N-Triples Grammar, + except for the EBNF productions specified below, + which replace the productions having the same number + (if any) in the original grammar.

              + + + + + + + + + + + + + + + + + + + + + + +
              [3]subject::=IRIREF | BLANK_NODE_LABEL | embTriple
              [5]object::=IRIREF | BLANK_NODE_LABEL | literal | embTriple
              [7t]embTriple::="<<" subject predicate object ">>"
              + +
              Note

              The changes are + subject + and object productions + have been extended to accept embedded triples, + which are described by the new production + 7.

              +
              + +
              +

              3.3.2 Parsing

              +

              In contrast to [N-TRIPLES], + N-Triples-star allows recursion on the + subject + and object productions.

              + +

              An N-Triples-star document defines an RDF-star graph + composed of a set of RDF-star triples. + The triple production + produces an RDF-star triple + composed of a subject, + predicate, + and object.

              + +

              In addition to the Term Constructors defined in [N-TRIPLES], + an additional constructor is defined for embTriple + of type RDF-star triple + defined by the terms constructed + for subject, + predicate, + and object.

              + +

              All other productions MUST be handled as specified by + Section 8.1 of the N-Triples specification [N-TRIPLES], + while still applying the changes above recursively.

              +
              +
              + +
              +

              3.4 N-Quads-star

              + +

              The [N-QUADS] format is extended to describe the + N-Quads-star format using the same production updates described in the N-Triples-star Grammar.

              + +
              Note

              As RDF-star describes embedded triples and not embedded quads, + the graphLabel + component of an N-Quads statement + does not apply to the embTriple component.

              + +

              An N-Quads-star document defines an RDF-star dataset, + composed of a single default graph + and zero or more named graphs, + all of which are RDF-star graphs.

              + +

              A conforming N-Quads-star parser MUST parse any valid + N-Quads document and additionally parse the + subject and + object productions + from N-Triples-star to generate RDF-star triples which are + added to either the default graph or associated + named graph, as appropriate.

              +
              + +
              +

              3.5 Other Concrete Syntaxes

              This section is non-normative.

              + +

              While this document specifies a small number of concrete syntaxes, + nothing prevents other concrete syntaxes of RDF-star from being proposed. In particular, syntaxes such as + RDF/XML [RDF-SYNTAX-GRAMMAR], + and JSON-LD [JSON-LD], + could be extended to support RDF-star.

              +
              + +
              + +
              +

              4. SPARQL-star Query Language

              + +

              This Section introduces SPARQL-star, which is an RDF-star-aware extension of the RDF query language SPARQL [SPARQL11-QUERY]; i.e., SPARQL-star can be used to query RDF-star graphs.

              + +
              +

              4.1 Initial Definitions

              + +

              In the following, we introduce a number of SPARQL-star-specific definitions, which rely on the following notions, defined in SPARQL 1.1 Query Language [SPARQL11-QUERY]: RDF term, query variable, triple pattern, + property path pattern, + property path expression, + and solution mapping.

              + +

              A SPARQL-star triple pattern is a 3-tuple that is defined recursively as follows:

              +
                +
              1. Every SPARQL triple pattern is a SPARQL-star triple pattern; +
              2. If t and t' are SPARQL-star triple patterns, x is an RDF term or a query variable, and p is an IRI or a query variable, then (tpx), (xpt), and (tpt') are SPARQL-star triple patterns. +
              + +

              As for RDF-star triples, a SPARQL-star triple pattern MUST NOT contain itself.

              + +

              A SPARQL-star basic graph pattern (BGP-star) is a set of SPARQL-star triple patterns.

              + +

              A SPARQL-star property path pattern is a 3-tuple (s,p,o) where

              + + +

              A SPARQL-star solution mapping μ is a partial function from the set of all query variables to the set of all RDF-star terms. + The domain of μ, denoted by dom(μ), is the set of query variables for which μ is defined.

              + +
              Note

              The notion of a SPARQL-star solution mapping extends the notion of a standard SPARQL solution mapping; that is, every SPARQL solution mapping is a SPARQL-star solution mapping. However, in contrast to SPARQL solution mappings, SPARQL-star solution mappings may map variables also to RDF-star triples.

              + +

              All notions related to SPARQL solution mappings carry over naturally to SPARQL-star solution mappings. In particular, the definition of compatibility extends naturally to SPARQL-star solution mappings: two SPARQL-star solution mappings μ1 and μ2 are compatible if, for every variable v that is both in dom(μ1) and in dom(μ2), μ1(v) and μ2(v) are the same RDF-star term. + In this case, μ1 ∪ μ2 is also a SPARQL-star solution mapping. + Moreover, for any SPARQL-star solution mapping μ we write card[Ω](μ) to denote the cardinality of μ in a multiset Ω of such mappings. + Finally, given a BGP-star B and a SPARQL-star solution mapping μ, we write μ(B) to denote the result of replacing every variable v in B for which μ is defined with μ(v). +

              + +

              Next, we aim to carry over the notion of solutions for BGPs to BGP-star. To this end, we first define an auxiliary concept that carries over the notion of an + RDF instance mapping [RDF11-MT] to RDF-star.

              + +

              An RDF-star instance mapping σ is a partial function from the set of all blank nodes to the set of all RDF-star terms. + The domain of σ, denoted by dom(σ), is the set of blank nodes for which σ is defined.

              + +

              Similar to the corresponding notation for solution mappings, for an RDF-star instance mapping σ and a BGP-star B we write σ(B) to denote the result of replacing every blank node b in B for which σ is defined with σ(b).

              + +

              Now we are ready to define the notion of solution for BGP-star.

              + +

              Given a BGP-star B and an RDF-star graph G, a SPARQL-star solution mapping μ is a solution for the BGP-star B over G if it has the following two properties

              +
                +
              • dom(μ) is equivalent to the set of query variables in B, and +
              • there exists an RDF-star instance mapping σ such that dom(σ) is equivalent to the set of blank nodes in B and μ(σ(B)) is a subgraph of G. +
              + +
              + +
              +

              4.2 Grammar

              + +

              SPARQL-star is defined to follow the same grammar as SPARQL 1.1, except for the EBNF productions specified below, which replace the productions having the same number (if any) in the original grammar. The parts in which these productions differ from the corresponding productions in the original grammar are marked in bold font. Productions [174] and following have been added and have no counterpart in the original grammar.

              + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
              [65]DataBlockValue::= + EmbTriple | + iri | + RDFLiteral | + NumericLiteral | + BooleanLiteral | + 'UNDEF' +
              [75]TriplesSameSubject::= + VarOrTermOrEmbTP + PropertyListNotEmpty + | + TriplesNode + PropertyList +
              [80]Object::= + GraphNode + AnnotationPattern? +
              [81]TriplesSameSubjectPath::= + VarOrTermOrEmbTP + PropertyListPathNotEmpty + | + TriplesNode + PropertyListPath +
              [87]ObjectPath::= + GraphNodePath + AnnotationPatternPath? +
              [104]GraphNode::= + VarOrTermOrEmbTP | + TriplesNode +
              [105]GraphNodePath::= + VarOrTermOrEmbTP | + TriplesNodePath +
              [119]PrimaryExpression::= + BrackettedExpression | + BuiltInCall | + iriOrFunction | + RDFLiteral | + NumericLiteral | + BooleanLiteral | + Var +
              + | ExprEmbTP +
              +
              [121]BuiltInCall::= +
                 Aggregate
              +
              + | + 'STR' + '(' + Expression + ')' +
              +
              + | + 'LANG' + '(' + Expression + ')' +
              +
              + | + 'LANGMATCHES' + '(' + Expression + ')' +
              +
              + | + 'DATATYPE' + '(' + Expression + ')' +
              +
              + | + 'BOUND' + '(' + Var + ')' +
              +
              + | + 'IRI' + '(' + Expression + ')' +
              +
              + | + 'URI' + '(' + Expression + ')' +
              +
              + | + 'BNODE' + ( + '(' + Expression + ')' + | + NIL + ) +
              +
              + | + 'RAND' + NIL +
              +
              + | + 'ABS' + '(' + Expression + ')' +
              +
              + | + 'CEIL' + '(' + Expression + ')' +
              +
              + | + 'FLOOR' + '(' + Expression + ')' +
              +
              + | + 'ROUND' + '(' + Expression + ')' +
              +
              + | + 'CONCAT' + ExpressionList +
              + +
              + | + 'STRLEN' + '(' + Expression + ')' +
              + +
              + | + 'UCASE' + '(' + Expression + ')' +
              +
              + | + 'LCASE' + '(' + Expression + ')' +
              +
              + | + 'ENCODE_FOR_URI' + '(' + Expression + ')' +
              +
              + | + 'CONTAINS' + '(' + Expression + ',' + Expression + ')' +
              +
              + | + 'STRSTARTS' + '(' + Expression + ',' + Expression + ')' +
              +
              + | + 'STRENDS' + '(' + Expression + ',' + Expression + ')' +
              +
              + | + 'STRBEFORE' + '(' + Expression + ',' + Expression + ')' +
              +
              + | + 'STRAFTER' + '(' + Expression + ',' + Expression + ')' +
              +
              + | + 'YEAR' + '(' + Expression + ')' +
              +
              + | + 'MONTH' + '(' + Expression + ')' +
              +
              + | + 'DAY' + '(' + Expression + ')' +
              +
              + | + 'HOURS' + '(' + Expression + ')' +
              +
              + | + 'MINUTES' + '(' + Expression + ')' +
              +
              + | + 'SECONDS' + '(' + Expression + ')' +
              +
              + | + 'TIMEZONE' + '(' + Expression + ')' +
              +
              + | + 'TZ' + '(' + Expression + ')' +
              +
              + | + 'NOW' + NIL +
              +
              + | + 'UUID' + NIL +
              +
              + | + 'STRUUID' + NIL +
              +
              + | + 'MD5' + '(' + Expression + ')' +
              +
              + | + 'SHA1' + '(' + Expression + ')' +
              +
              + | + 'SHA256' + '(' + Expression + ')' +
              +
              + | + 'SHA384' + '(' + Expression + ')' +
              +
              + | + 'SHA512' + '(' + Expression + ')' +
              +
              + | + 'COALESCE' + ExpressionList +
              +
              + | + 'IF' + '(' + Expression + ',' + Expression + ',' + Expression + ')' +
              +
              + | + 'STRLANG' + '(' + Expression + ',' + Expression + ')' +
              +
              + | + 'STRDT' + '(' + Expression + ',' + Expression + ')' +
              +
              + | + 'sameTerm' + '(' + Expression + ',' + Expression + ')' +
              +
              + | + 'isIRI' + '(' + Expression + ')' +
              +
              + | + 'isURI' + '(' + Expression + ')' +
              +
              + | + 'isBLANK' + '(' + Expression + ')' +
              +
              + | + 'isLITERAL' + '(' + Expression + ')' +
              +
              + | + 'isNUMERIC' + '(' + Expression + ')' +
              +
              + | + RegexExpression +
              +
              + | + ExistsFunc +
              +
              + | + NotExistsFunc +
              +
              + | + 'TRIPLE' + '(' + Expression + ',' + Expression + ',' + Expression + ')' +
              +
              + | + 'SUBJECT' + '(' + Expression + ')' +
              +
              + | + 'PREDICATE' + '(' + Expression + ')' +
              +
              + | + 'OBJECT' + '(' + Expression + ')' +
              +
              + | + 'isTRIPLE' + '(' + Expression + ')' +
              +
              [174]EmbTP::= + '<<' + EmbSubjectOrObject + Verb + EmbSubjectOrObject + '>>' +
              [175]EmbTriple::= + '<<' + DataValueTerm + ( + iri + | + 'a' + ) + DataValueTerm + '>>' +
              [176]EmbSubjectOrObject::= + Var | + BlankNode | + iri | + RDFLiteral | + NumericLiteral | + BooleanLiteral | + EmbTP +
              [177]DataValueTerm::= + iri | + RDFLiteral | + NumericLiteral | + BooleanLiteral | + EmbTriple +
              [178]VarOrTermOrEmbTP::= + Var | + GraphTerm | + EmbTP +
              [179]AnnotationPattern::= + '{|' + PropertyListNotEmpty + '|}' +
              [180]AnnotationPatternPath::= + '{|' + PropertyListPathNotEmpty + '|}' +
              [181]ExprEmbTP::= + '<<' + ExprVarOrTerm + Verb + ExprVarOrTerm + '>>' +
              [182]ExprVarOrTerm::= + iri | + RDFLiteral | + NumericLiteral | + BooleanLiteral | + Var | + ExprEmbTP +
              + +

              + This introduces a notation for embedded triple patterns + (production [174]), + which is similar to the one defined for embedded triples in § 3.1 Turtle-star, + but accepting also variables. + These embedded triple patterns are allowed in both the subject position ([75], [81]) and the object position ([80], [87]) + of SPARQL-star triple patterns, as well as in the short-hand notation for querying collections ([102], [103]). +

              + +

              + Additionally, production [65] for values that can be used in the VALUES clause is extended to permit RDF-star triples as possible values, and the set of available built-in functions is extended with the five functions TRIPLE, SUBJECT, PREDICATE, OBJECT, and isTRIPLE ([121]) that are defined in § 4.4 Function and Operator Definitions. +

              + +
              Note

              As defined for all keywords in SPARQL, the names of the five new built-in functions added by SPARQL-star are matched in a case-insensitive manner.

              + +

              + Yet another extension is that both the Object and the ObjectPath productions now accept an optional annotation pattern after each object. The purpose of this feature is to enable users to use the same kind of annotation syntax that is supported in Turtle-star. As in the case of Turtle-star, the annotation syntax in SPARQL-star is purely syntactic sugar that has to be processed in accordance to the first expansion rule in § 4.3.2 Expand Syntax Forms. +

              + +

              + A restriction to the use of the annotation syntax in SPARQL-star exists that is not captured by the grammar as defined above: An AnnotationPatternPath may be added only to SPARQL-star property path patterns in which the property path expression is a PredicatePath (i.e., a single IRI) or the keyword a (as a short form for the IRI rdf:type). Hence, a query such as the following violates this restriction and, thus, is invalid. +

              + +
              +
              SELECT * WHERE {
              +    ?s :p/:q ?o {| ?pp ?oo |}.
              +}
              +
              + +

              + While annotation patterns must not be added to property path patterns other than the ones permitted by the restriction above, it is possible to use property path expressions within annotation patterns (but without violating the restriction in the case of nested annotation patterns). For instance, the following query is valid. +

              + +
              +
              SELECT * WHERE {
              +    ?s ?p ?o {| :p/:q ?oo |}.
              +}
              +
              + +
              + +
              +

              4.3 Translation to the Algebra

              + +

              Based on the SPARQL grammar, the SPARQL specification defines the process of converting graph patterns and solution modifiers in a SPARQL query string into a SPARQL algebra expression [SPARQL11-QUERY, Section 18.2]. This process must be adjusted to consider the extended grammar introduced above. In the following, any step of the conversion process that requires adjustment is discussed.

              + +
              +

              4.3.1 Variable Scope

              + +

              As a basis of the translation, the SPARQL specification introduces a notion of in-scope variables. To cover the new syntax elements introduced in § 4.2 Grammar this notion MUST be extended as follows.

              + +
                +
              • A variable is in-scope of a BGP-star B if the variable occurs in B, which includes an occurrence in any embedded triple pattern in B (independent of the level of nesting).
              • +
              • A variable is in-scope of a property path pattern if the variable occurs in that pattern, which includes an occurrence in any embedded triple pattern in the pattern (independent of the level of nesting).
              • +
              +
              + +
              +

              4.3.2 Expand Syntax Forms

              + +

              The translation process starts with expanding abbreviations for IRIs and triple patterns [SPARQL11-QUERY, Section 18.2.2.1]. This step MUST be extended in three ways:

              + +
                +
              1. +

                Annotation patterns MUST be replaced by additional SPARQL-star triple patterns that have the annotated triple pattern as an embedded triple pattern in their subject position.

                + + + +
              2. +
              3. +

                Abbreviations for triple patterns with embedded triple patterns MUST be expanded as if each embedded triple pattern was a variable (or an RDF term).

                + + +
              4. +
              5. +

                Abbreviations for IRIs in all embedded triple patterns MUST be expanded.

                + + +
              6. +
              +
              + +
              +

              4.3.3 Translate Property Path Patterns

              + +

              The translation of property path patterns has to be adjusted because the extended grammar allows for SPARQL-star property path patterns whose subject or object is a SPARQL-star triple pattern.

              + +

              The translation as specified in the W3C specification distinguishes four cases. The first three of these cases do not require adjustment because they are taken care of either by recursion or by the adjusted translation of basic graph patterns (as defined in § 4.3.4 Translate Basic Graph Patterns below). However, the fourth case MUST be adjusted as follows.

              + +

              Let X P Y be a string that corresponds to the fourth case in [SPARQL11-QUERY, Section 18.2.2.4]. Given the grammar introduced in § 4.2 Grammar, X and Y may be an RDF term, a variable, or an embedded triple pattern, respectively (and P is a property path expression). The string X P Y is translated to the algebra expression Path(X’,P,Y’) where X’ and Y’ are the result of calling a function named Lift for X and Y, respectively. For some input string Z (such as X or Y) that can be an RDF term, a variable, or an embedded triple pattern, the function Lift is defined recursively as follows:

              + +
                +
              1. If Z is an embedded triple pattern <<S,P,O>> then return the SPARQL-star triple pattern (Lift(S), P, Lift(O));
              2. +
              3. Otherwise, return Z.
              4. +
              + +
              Note
              + The purpose of this translation step is to convert any property path pattern as can be written based on the extended grammar for SPARQL-star (cf. § 4.2 Grammar) into a SPARQL-star property path pattern as considered in the algebra. To this end, the function Lift translates every embedded triple pattern as can be written in the SPARQL-star syntax into a SPARQL-star triple pattern. +
              +
              + +
              +

              4.3.4 Translate Basic Graph Patterns

              + +

              After translating property path patterns, the translation process collects any adjacent triple patterns [...] to form a basic graph pattern [SPARQL11-QUERY, Section 18.2.2.5]. This step has to be adjusted because triple patterns in the extended syntax may have an embedded triple pattern in their subject position or in their object position (or in both). To ensure that every result of this step is a BGP-star, before adding a triple pattern to its corresponding collection, its subject and object MUST be replaced by the result of calling function Lift for the subject and the object, respectively.

              +
              + +
              + +
              +

              4.4 Function and Operator Definitions

              + +

              SPARQL introduces operators and functions that can be used in an expression of a FILTER clause, a BIND clause, or a SELECT clause (see Section 17.3 and Section 17.4 in [SPARQL11-QUERY]). While these operators and functions are defined to operate on RDF terms and query variables, for SPARQL-star they have to be defined to operate on RDF-star terms and query variables. To this end, when using these operators and functions in the context of SPARQL-star, their definitions as given in Section 17.4 of [SPARQL11-QUERY] are extended by assuming that any mention of RDF term as a data type for operands is understood to be the type of all RDF-star terms.

              + +

              SPARQL-star introduces five new functions that are defined as follows (where the data types RDF-star term and RDF-star triple capture all RDF-star terms and all RDF-star triples, +respectively).

              + +

              The modifications to functions and operators for triple terms are:

              + + +
              +

              4.4.1 TRIPLE

              + +

              + RDF-star triple   + TRIPLE + ( + RDF-star term + term1, + RDF-star term + term2, + RDF-star term + term3 + ) +

              + +

              If the 3-tuple (term1, term2, term3) is an RDF-star triple, the function returns this triple. If the 3-tuple is not an RDF-star triple, then the function raises an error.

              + +
              + +
              +

              4.4.2 SUBJECT

              + +

              + RDF-star term   + SUBJECT + ( + RDF-star triple + triple + ) +

              + +

              If triple is an RDF-star triple, the function returns the subject of this triple. Passing anything other than an RDF-star triple is an error.

              + +
              + +
              +

              4.4.3 PREDICATE

              + +

              + RDF-star term   + PREDICATE + ( + RDF-star triple + triple + ) +

              + +

              If triple is an RDF-star triple, the function returns the predicate of this triple. Passing anything other than an RDF-star triple is an error.

              + +
              + +
              +

              4.4.4 OBJECT

              + +

              + RDF-star term   + OBJECT + ( + RDF-star triple + triple + ) +

              + +

              If triple is an RDF-star triple, the function returns the object of this triple. Passing anything other than an RDF-star triple is an error.

              + +
              + +
              +

              4.4.5 isTRIPLE

              + +

              + xsd:boolean   + isTRIPLE + ( + RDF-star term + term + ) +

              + +

              Returns true if term is an RDF-star triple. Returns false otherwise.

              + +
              + +
              +

              4.4.6 Embedded Triple Expression

              +

              + RDF-star triple   + << + RDF-star term term1, + RDF-star term term2, + RDF-star term term3 + >> +

              +

              + An Embedded Triple Expression + <<S P O>>, where S, + P and O conform to + ExprVarOrTerm, + is evaluated as TRIPLE(S, P, O). +

              +
              + +
              +

              4.4.7 sameTerm

              +

              + xsd:boolean + sameTerm + (term, term) +

              + +

              The function sameTerm is extended to support term comparison for + RDF-star triple terms by defining: +

              +
              +

              + Extended Definition: sameTerm +

              +

              + If both arguments are RDF-star triple terms: +

              + sameTerm(<<S1 P1 O1>>, + <<S2 P2 O2>>) +

              +

              + is evaluated as +

              +

              + sameTerm(S1, S2) && sameTerm(P1, P2) && sameTerm(O1, O2) +

              +

              This is applied recursively.

              +

              If one argument is an RDF-star triple term and the other argument is not, + the result is false. +

              +
              +
              + +
              +

              4.4.8 sparql-compare

              + +

              The function sparql-compare is defined to support value-comparison + operators such as = and ORDER BY. +

              +

              + xsd:boolean   + sparql-compare + (RDF-star term, + RDF-star term) +

              +

              + The function sparql-compare returns -1, 0, 1, or throws an + error, based on the comparison of two + RDF-star terms. + When comparing two RDF-star triple terms, comparison is + by pairwise comparison of subject, then predicate, then object. +

              +
              +

              + Definition: + + sparql-compare + +

              +
                +
              • If neither A nor B is an RDF-star triple term, + compare by SPARQL 1.1 operators + <, =, >) + and return the comparison value (-1, 0, +1) or throw an error + as defined by SPARQL 1.1.
                +
              • +
              • If either A or B is an RDF-star triple term, and the other is not + an RDF-star triple term, then error.
              • +
              • If sparql-compare(SUBJECT(A), SUBJECT(B)) != 0, + then return this value.
              • +
              • If sparql-compare(PREDICATE(A), PREDICATE(B)) != 0, + then return this value.
              • +
              • Return sparql-compare(OBJECT(A), OBJECT(B))
              • +
              +
              +
              + +
              +

              4.4.9 RDFterm-equal

              +

              + The function RDFterm-equal is the default dispatch for the + = operator. +

              +

              + This is extended to cover RDF-star terms so that it returns true + if term1 and term2 are both RDF-star triple + terms and RDFterm-equal is true + for pairwise comparison of the component RDF terms. +

              +
              +

              + Extended Definition: + RDFTerm-equal +

              +

              + If exactly one of the arguments is an RDF-star triple term, + return false. +

              +

              + If both arguments are RDF-star triple terms: +

              + RDFterm-equal(<<S1 P1 O1>>, + <<S2 P2 O2>>) +

              +

              + is evaluated as +

              +

              + RDFterm-equal(S1, S2) && RDFterm-equal(P1, P2) && RDFterm-equal(O1, O2) +

              +
              +

              + It produces an error if matching RDF terms in nested RDF triple terms when + both are literals but not the same RDF term. This is the same as the existing + RDFterm-equal. Operator mapping overrides this behavior. +

              +

              + The case of two RDF-star triple terms is covered by the operator dispatch mappings + and covers cases involving literals. +

              +
              + +
              +

              4.4.10 Operator Mappings

              + +

              New operator mappings are added for RDF-star triple terms for section + SPARQL 1.1 Query 17.3 Operator Mapping +

              + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
              SPARQL Binary Operators (SPARQL-star)
              OperatorType(A)Type(B)EvaluationResult type
              SPARQL-star Tests
              A = BRDF triple termRDF triple term + op:numeric-equal(sparql-compare(A, B), 0) + xsd:boolean
              A != BRDF triple termRDF triple term + fn:not(op:numeric-equal(sparql-compare(A, B), 0)) + xsd:boolean
              A < BRDF triple termRDF triple term + op:numeric-equal(sparql-compare(A, B), -1) + xsd:boolean
              A <= BRDF triple termRDF triple term + fn:not(op:numeric-equal(sparql-compare(A, B), 1)) + xsd:boolean
              A > BRDF triple termRDF triple term + op:numeric-equal(sparql-compare(A, B), 1) + xsd:boolean
              A >= B + RDF triple termRDF triple term + fn:not(op:numeric-equal(sparql-compare(A, B), -1)) + xsd:boolean
              +
              + +
              +

              4.4.11 Triple terms with ORDER BY

              + +

              There is an added item to the ordering of terms when they would not + otherwise be ordered. RDF-star triple terms are placed last (highest).

              +
                +
              1. (Lowest) no value assigned to the variable + or expression in this solution.
              2. +
              3. Blank nodes
              4. +
              5. IRIs
              6. +
              7. RDF literals
              8. +
              9. RDF-star triple terms
              10. +
              +

              + RDF-star triple terms are compared using the < operator. +

              +

              + While SPARQL-star does not define a total ordering of all possible RDF-star terms, + implementations should provide some ordering for ORDER BY + that does not change between queries if the data has not changed. +

              +
              +
              + +
              +

              4.5 Examples and Discussion

              This section is non-normative.

              + +

              By the evaluation semantics of SPARQL-star as defined in § 4.6 Evaluation Semantics, the five new built-in functions defined above can be used in exactly the same manner as the functions defined in the SPARQL 1.1 spec. For instance, the following SPARQL-star query retrieves every asserted triple that is both contained in the default graph of the queried RDF-star dataset and has an embedded triple as its subject.

              + +
              +
              SELECT ?t WHERE {
              +  ?s ?p ?o .
              +  BIND( TRIPLE(?s,?p,?o) AS ?t )
              +  FILTER( isTRIPLE(SUBJECT(?t)) )
              +}
              +
              + +

              Instead of accessing the subject of the triples in the FILTER after the BIND clause, as was done in the previous query, a semantically equivalent query may apply the FILTER directly on the variable ?s, as follows:

              + +
              +
              SELECT ?t WHERE {
              +  ?s ?p ?o .
              +  BIND( TRIPLE(?s,?p,?o) AS ?t )
              +  FILTER( isTRIPLE(?s) )
              +}
              +
              + +

              While the triples that the previous example queries bind to variable ?t occur in the queried data, the TRIPLE function can be used to construct triples that may not be in the data. For instance, the following query uses the subject of each asserted triple in the default graph of the queried RDF-star dataset to construct another triple, and bind it to the variable ?t. Notice that the result of this query contains as many SPARQL-star solution mappings as there are asserted triples in the queried graph, and there may be duplicates in the result if multiple asserted triples have the same subject.

              + +
              +
              PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
              +PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
              +
              +SELECT ?t WHERE {
              +  ?s ?p ?o .
              +  BIND( TRIPLE(?s,rdf:type,rdfs:Resource) AS ?t )
              +}
              +
              + +

              There are cases where the effects of using the new TRIPLE function are not immediately obvious just from its definition, particularly when considering the interplay of this function with the BNODE function when used within GRAPH clauses. Some of these cases are discussed below.

              + +

              Consider the following SPARQL-star query.

              + +
              +
              SELECT ( COUNT(?t1) AS ?t1Count )
              +       ( COUNT(?t2) AS ?t2Count )
              +       ( COUNT(?t3) AS ?t3Count )
              +       ( COUNT(DISTINCT ?t1) AS ?t1DistCount )
              +       ( COUNT(DISTINCT ?t2) AS ?t2DistCount )
              +       ( COUNT(DISTINCT ?t3) AS ?t3DistCount )
              +WHERE {
              +  GRAPH ?g {
              +    BIND( TRIPLE(BNODE(), :p, :o) AS ?t1 )
              +    BIND( TRIPLE(BNODE("id"), :p, :o) AS ?t2 )
              +    BIND( TRIPLE(:s, :p, :o) AS ?t3 )
              +  }
              +}
              +
              + +

              When evaluated over an RDF-star dataset that contains n named graphs, where n>0, the GRAPH clause results in one SPARQL-star solution mapping per named graph. The SELECT clause collapses these n mappings into a single mapping that is defined for the six variables introduced in the SELECT clause. (If n=0, the query result is the empty set.) Each of these six variables is mapped to an integer-typed literal with values as follows. For each of ?t1Count, ?t2Count, and ?t3Count, the value is n, because the variables ?t1, ?t2, and ?t3 are bound in each of the n solution mappings produced for the GRAPH clause. For the variable ?t1DistCount, the value is also n, because the BIND clauses are evaluated n times (once for each named graph) and the subexpression BNODE() always creates a different new blank node; thus, the triples created for variable ?t1 are all different from one another. This is also the case if the BNODE function is used with an argument; i.e., the value of ?t2DistCount is n too. In contrast, the variable ?t3 is mapped to the same triple within each evaluation of the third BIND clause; thus, the value for ?t3DistCount is 1.

              + +

              Notice that the BNODE function has to be used to create a blank node; simply writing a blank node directly in an expression is not permitted.

              + +

              Notice as well that the preceding query is special in two ways: its GRAPH clause does not actually consider the content of the named graphs; and the expressions in the BIND clauses do not contain variables. In contrast, the GRAPH clause and the BIND clauses in the following query do.

              + +
              +
              PREFIX rdf:  <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
              +PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
              +PREFIX rdfg: <http://www.w3.org/2004/03/trix/rdfg-1/>
              +
              +SELECT ( COUNT(?t1) AS ?t1Count )
              +       ( COUNT(?t2) AS ?t2Count )
              +WHERE {
              +  GRAPH ?g {
              +    ?g rdf:type rdfg:Graph .
              +    BIND( TRIPLE(?g, rdf:type, rdfs:Resource) AS ?t1 )
              +    BIND( TRIPLE(?x, rdf:type, rdfs:Resource) AS ?t2 )
              +  }
              +}
              +
              + +

              For every RDF-star dataset with n>0 named graphs, the result of this query consists of a single SPARQL-star solution mapping that is defined for the three variables introduced in the SELECT clause. The value of ?t1Count is the number of named graphs in the queried dataset that contain a triple of the form (u, rdf:type, rdfg:Graph) such that u is the name of the named graph in the dataset. The value of ?t2Count is always 0 (zero), because evaluating the expression of the second BIND clause results in an error, because the variable ?x is not bound in the scope of this evaluation. As a side note, evaluating the expression of the first BIND clause would also result in an error, if the variable ?g was not mentioned inside the GRAPH clause (e.g., if the given triple pattern was not there).

              + +
              + +
              +

              4.6 Evaluation Semantics

              + +

              The SPARQL specification defines a function eval(D(G), algebra expression) as the evaluation of an algebra expression with respect to a dataset D having active graph G [SPARQL11-QUERY, Section 18.6]. Recall that the dataset D in the context of SPARQL-star is an RDF-star dataset and, thus, the active graph G is an RDF-star graph, and so is any other graph in dataset D. The definition of the eval function is recursive; the base case of this definition for SPARQL-star are given as follows:

              + +
                +
              • For every BGP-star B, eval(D(G), B) is a multiset Ω that consists of all SPARQL-star solution mappings that are a solution for the BGP-star B over G. For every such mapping μ, card[Ω](μ) is the number of distinct RDF-star instance mappings σ such that dom(σ) is equivalent to the set of blank nodes in B and μ(σ(B)) is a subgraph of G. (For any SPARQL-star solution mapping μ' that is not a solution for B over G, we have that card[Ω](μ')=0; i.e., μ' is not in Ω.)
              • +
              + +

              For any other algebra expression, the SPARQL specification defines algebra operators [SPARQL11-QUERY]. These definitions can be extended naturally to operate over multisets of SPARQL-star solution mappings (instead of ordinary solution mappings). Given this extension, the recursive steps of the definition of the eval function for SPARQL-star are the same as in the SPARQL specification.

              +
              + +
              +

              4.7 Query Result Formats

              + +

              In SPARQL, queries can take four forms: SELECT, CONSTRUCT, DESCRIBE, and ASK - see SPARQL1.1 Query, Section 16 [SPARQL11-QUERY]. The first of these returns a sequence of solution mappings that contain variable bindings. The second and third both return an RDF graph, and the last returns a boolean value. +

              +

              The result of the ASK query form is not changed by the introduction of RDF-star, and the result of the CONSTRUCT and DESCRIBE forms can be represented by Turtle-star. However, since the SELECT form deals with returning individual RDF terms, the specific serialization formats for representing such query results need to be extended so that the new embedded triple RDF term can be represented. In this section, we propose extensions for the two most common formats for this purpose: SPARQL 1.1 Query Results JSON Format, and SPARQL Query Results XML Format (Second Edition).

              + +
              +

              4.7.1 SPARQL-star Query Results JSON Format

              +

              + The result of a SPARQL SELECT query is serialized in JSON as defined in SPARQL 1.1 Query Results JSON Format, which specifies a JSON representation of variable bindings to RDF terms (see [sparql11-results-json, Section 3.2]). To accommodate the new RDF term for embedded triples that RDF-star introduces, the table of RDF term JSON representations in sparql11-results-json, Section 3.2.2 is extended with the following entry: +

              +
              +
              An embedded triple with subject RDF term S, predicate RDF term P and object RDF term O
              +
              +
              {
              +  "type": "triple",
              +  "value": {
              +     "subject": S,
              +     "predicate": P,
              +     "object": O
              +  }
              +}
              + where S, P and O are encoded using the same format, recursively. +
              +
              + + +
              + +
              +

              4.7.2 SPARQL-star Query Results XML Format

              +

              + The result of a SPARQL SELECT query is serialized in XML as defined in SPARQL Query Results XML Format (Second Edition). This format proposes an XML representation of variable bindings to RDF terms. +

              +

              To accommodate the new RDF term for embedded triples that RDF-star introduces, the list of RDF terms and their XML representations in [RDF-SPARQL-XMLRES Section 2.3.1] is extended as follows: +

              +

              +

              +
              An embedded triple with subject term S, predicate term P, and object term O
              +
              +
              <binding>
              +  <triple>
              +    <subject>S</subject>
              +    <predicate>P</predicate>
              +    <object>O</object>
              +  </triple>
              +</binding>
              + where S, P and O are encoded recursively, using the same format, without the enclosing <binding> tag. +
              +
              + + + + +
              + +
              + +
              + +
              +

              5. SPARQL-star Update

              + +

              This section specifies SPARQL-star Update, an update language for RDF-star. This language extends SPARQL Update [SPARQL11-UPDATE], the update language for RDF, by adding RDF-star-specific features and semantics.

              + +
              +

              5.1 Informal Description

              This section is non-normative.

              + +

              While SPARQL Update operates over a graph store that consists of RDF graphs, SPARQL-star Update extends the notion of graph store to contain RDF-star graphs instead of RDF graphs. That is, a graph store in the context of SPARQL-star Update contains one (unnamed) slot holding an RDF-star graph, referred to as the default graph, and zero or more named slots holding other RDF-star graphs, referred to as named graphs. Then, all graph management operations in SPARQL Update (CREATE, DROP, COPY, MOVE, ADD) carry over directly to SPARQL-star Update with the only difference being that in SPARQL-star Update these operations manage RDF-star graphs. For instance, the CREATE operation in SPARQL-star Update creates an RDF-star graph rather than a pure RDF graph. Similarly, the graph update operations LOAD and CLEAR in SPARQL-star Update operate with RDF-star graphs in the same way as their SPARQL Update counterparts operate with RDF graphs.

              + +

              The only operations that SPARQL-star Update actually extends are the graph update operations INSERT DATA, DELETE DATA, and DELETE/INSERT. This section describes these extensions informally. While this description focuses mainly on updates to the default graph, the operations can also be applied to the named graphs.

              + +
              +

              5.1.1 INSERT DATA

              + +

              The INSERT DATA operation can be used to add a given set of triples into the graph store. In the context of SPARQL-star Update, these triples may be RDF-star triples. As an example, consider the following INSERT DATA operation.

              + +
              +
              PREFIX : <http://www.example.org/>
              +
              +INSERT DATA {
              +  :alice :claims << :bob :age 23 >> .
              +}
              +
              + +

              Suppose this INSERT DATA operation is executed over a graph store with an empty default graph. After executing this operation, the default graph contains the given (nested) RDF-star triple. Now, it is possible to query for this triple. For instance, the following SPARQL-star query returns a single solution mapping in which the variables ?p and ?a are mapped to the IRI :alice and the literal 23, respectively.

              + +
              +
              PREFIX : <http://www.example.org/>
              +
              +SELECT ?p ?a WHERE {
              +  ?p :claims << :bob :age ?a >> .
              +}
              +
              + +

              Notice that inserting a nested triple does not automatically also insert its embedded triple(s) as asserted triple(s) into the graph. Hence, in the previous example, after executing the given INSERT DATA operation, the default graph does not contain the triple :bob :age 23. In other words, a query such as the following would have an empty result.

              + +
              +
              PREFIX : <http://www.example.org/>
              +
              +SELECT ?a WHERE {
              +  :bob :age ?a .
              +}
              +
              + +

              For an embedded triple to be present in the graph as an asserted triple, it needs to be inserted as such. For instance, the INSERT DATA operation in the example above may be modified as follows in order to insert not only the nested triple but also the triple :bob :age 23.

              + +
              +
              PREFIX : <http://www.example.org/>
              +
              +INSERT DATA {
              +  :bob :age 23 .
              +  :alice :claims << :bob :age 23 >> .
              +}
              +
              + +
              + +
              +

              5.1.2 DELETE DATA

              + +

              The DELETE DATA operation can be used to remove a given set of triples from the graph store. In the context of SPARQL-star Update, this may include removing nested RDF-star triples as demonstrated in the following example.

              + +
              +
              PREFIX : <http://www.example.org/>
              +
              +DELETE DATA {
              +  :alice :claims << :bob :age 23 >> .
              +}
              +
              + +

              After executing this DELETE DATA operation over a graph store with a default graph that contains the given nested triple, the graph will not contain this triple any longer. If the graph did not contain that nested triple in the first place, the graph will remain unchanged by the given DELETE DATA operation.

              + +

              Notice that deleting triples by using the DELETE DATA operation does not affect any other triples in the corresponding graphs. For instance, for a default graph that contains the triple :bob :age 23 as an asserted triple, the DELETE DATA operation given above does not delete this asserted triple. In contrast, the following operation would delete this asserted triple but it would not delete any nested triple that contains the given triple as an embedded triple.

              + +
              +
              PREFIX : <http://www.example.org/>
              +
              +DELETE DATA {
              +  :bob :age 23 .
              +}
              +
              + +
              + +
              +

              5.1.3 DELETE/INSERT

              + +

              The DELETE/INSERT operation can be used to remove or add triples based on variable bindings obtained by evaluating a given WHERE clause. As an example, the following DELETE/INSERT operation replaces all nested triples in which :alice is the subject by nested triples in which :carol is the subject.

              + +
              +
              PREFIX : <http://www.example.org/>
              +
              +DELETE { :alice ?pp <<?s ?p ?o>> . }
              +INSERT { :carol ?pp <<?s ?p ?o>> . }
              +WHERE {  :alice ?pp <<?s ?p ?o>> . }
              +
              + +

              As in SPARQL Update, in SPARQL-star Update it is possible to use variations of the DELETE/INSERT operations in which either the DELETE clause or the INSERT clause are omitted.

              + +

              When removing triples via the DELETE clause (irrespective of whether the INSERT clause is omitted or not), the effects with respect to nested triples must be the same as described above for the DELETE DATA operation; i.e., only the triples that are explicitly identified to be deleted are deleted. Similarly, inserting triples via the INSERT clause has the same effects as described above for the INSERT DATA operation; i.e., inserting nested triples does not automatically also insert their embedded triples as asserted triples into the graph. Of course, it is possible to request such inserts explicitly as demonstrated in the following example.

              + +
              +
              PREFIX : <http://www.example.org/>
              +
              +DELETE { :alice ?pp <<?s ?p ?o>> . }
              +INSERT { :carol ?pp <<?s ?p ?o>> .  ?s ?p ?o .}
              +WHERE {  :alice ?pp <<?s ?p ?o>> . }
              +
              + +

              While all SPARQL-star Update examples above focus only on the default graph of a graph store, SPARQL-star Update can also be used to update the named graphs of a graph store, which works in exactly the same way as in SPARQL Update. As a possible example consider the following INSERT operation which retrieves all embedded triples found in nested triples in the default graph and inserts them as asserted triples into the named graph with IRI :graph2.

              + +
              +
              PREFIX : <http://www.example.org/>
              +
              +INSERT {
              +  GRAPH :graph2 { ?s ?p ?o }
              +}
              +WHERE {
              +  { <<?s ?p ?o>> ?pp ?oo }
              +  UNION
              +  { ?ss ?pp <<?s ?p ?o>> }
              +}
              +
              + +
              + +
              + + + +
              +

              5.2 Grammar

              + +

              SPARQL-star Update is an extension of the SPARQL Update language [SPARQL11-UPDATE]. As mentioned in SPARQL 1.1 Update, Appendix C [SPARQL11-UPDATE], the grammar of the latter is provided as part of the SPARQL 1.1 Query grammar. Similarly, the grammar of SPARQL-star Update is provided as part of the grammar of the SPARQL-star query language, which is defined by the SPARQL 1.1 Query grammar with the extensions specified in § 4.2 Grammar. As a result of these extensions, the production rules QuadData and QuadPattern, which are used in the definition of SPARQL Update [SPARQL11-UPDATE], are extended to capture nested triples and nested triple patterns as demonstrated in the examples above.

              + +
              + +
              +

              5.3 Semantics

              + +

              The semantics of SPARQL-star Update operations can also be defined by a simple extension of the formalization of SPARQL Update [SPARQL11-UPDATE]. This extension assumes that any mention of "RDF triple" or "triple" in the formalization of SPARQL Update is understood as an RDF-star triple. Similarly, "RDF graph" and "solution mapping" are understood as RDF-star graph and SPARQL-star solution mapping, respectively. Any mention of the "evaluation function eval()" is understood as the eval function for SPARQL-star as defined in § 4.6 Evaluation Semantics.

              + +
              + +
              + +
              +

              6. RDF-star Semantics

              + +

              In this section, we provide a model-theoretic semantics for RDF-star, based on the one defined in RDF 1.1 Semantics [RDF11-MT]. More precisely, we define a mapping from RDF-star's abstract syntax into standard RDF's abstract syntax, and define the semantics of RDF-star graphs in terms of the semantics of the mapped RDF graphs.

              + +

              In the following, we will use abbreviated IRIs using the prefix unstar: which is an alias for the namespace https://w3c.github.io/rdf-star/unstar#.

              + +

              We also introduce a number of definitions specific to RDF-star, which rely on the following notions, defined in RDF 1.1 Concepts and Abstract Syntax [RDF11-CONCEPTS] and RDF 1.1 Semantics [RDF11-MT]: + datatype, + lexical form, + ill-typed, + merging, + satisfiability, + unsatisfiability, + entailment, + and equivalence. +

              + +
              +

              6.1 Mapping RDF-star abstract syntax to RDF

              + +

              We define a mapping L that maps any IRI or literal t to a literal with:

              + + +

              Given an RDF-star graph G, the following steps define the unstar mapping, which transform G into an RDF graph that we call unstar(G).

              + +
              +
                +
              1. For each IRI i in the constituents of G starting with https://w3c.github.io/rdf-star/unstar#:
                  +
                1. Mint a new IRI j by appending an underscore (_) to i.
                2. +
                3. Replace with j all occurrences of i in the subject, predicate, or object position of an asserted or embedded triple of G.
                4. +
              2. +
              3. While G contains embedded triples:
                  +
                1. Pick an RDF-star triple (s, p, o) in the constituents of G such that neither s nor o is an embedded triple.
                2. +
                3. Mint a fresh blank node b (i.e., such that b is not in the constituents of G).
                4. +
                5. Replace with b all occurrences of (s, p, o) in the subject or object position of an asserted or embedded triple of G.
                6. +
                7. Add the following asserted triples to G:
                    +
                  • (b, unstar:subject,   s)
                  • +
                  • (b, unstar:predicate, p)
                  • +
                  • (b, unstar:object,    o) unless o is an ill-typed literal
                  • +
                  • (b, unstar:subjectLexical,   L(s)) unless s is a blank node
                  • +
                  • (b, unstar:predicateLexical, L(p))
                  • +
                  • (b, unstar:objectLexical,    L(o)) unless o is a blank node
                  • +
                8. +
              4. +
              +
              +

              After these steps, unstar(G) is an RDF graph, as it contains no embedded triples. Note that if G contains no embedded triple and no IRI in the unstar: namespace, then unstar(G) = G.

              + +
              + +
              +

              6.2 Entailment of RDF-star graphs

              + +

              Following RDF 1.1 Semantics, we define the notions of satisfiability and entailment for RDF-star graphs. Given two RDF-star graphs G and H:

              +

              + +

              It is easy to see that, in the special case of RDF graphs G and H (i.e. RDF-star graphs containing no embedded triple), G is star-satisfiable if and only if G is simply satisfiable, and G star-entails H if and only if G simply entails H. This is trivially true if G and H do not contain any unstar: IRI (in which case they are left unchanged by the unstar mapping). But this is also true if they do contain such IRIs (as the renaming performed by the unstar mapping has no significant impact on the semantic relationships between the two graphs). Star-entailment can therefore be considered as a natural extension of simple entailment to RDF-star graphs.

              + +
              Note

              Other notions of satisfiability and entailment, such as RDF entailment or RDFS entailment, can be extended in the same way for RDF-star graphs.

              +
              + +
              +

              6.3 Merging RDF-star graphs

              + +

              RDF 1.1 Semantics [RDF11-MT] defines the merging of two or more RDF graphs as "[taking their] union after forcing any shared blank nodes, which occur in more than one graph, to be distinct in each graph." Note that, in the case of RDF-star graphs, any blank node in the constituent terms of that graph is governed by the definition above, not only those in the subject or object position of some asserted triple.

              + +
              +
              #### graph #1
              +:alice :says
              +  << _:x :name "bob" >>,
              +  << _:x :likes :alice >>.
              +
              +#### graph #2
              +:bob :says
              +  << :alice :hates _:x >>.
              +
              +#### Merge of graphs #1 and #2 →
              +:alice :says
              +  << _:y :name "bob" >>,
              +  << _:y :likes :alice >>.
              +:bob :says
              +  << :alice :hates _:z >>.
              +
              + +
              + + +
              +

              6.4 Remarks

              This section is non-normative.

              + +
              +

              6.4.1 Implementing the RDF-star semantics

              + +

              It is important to notice that the definitions given above for satisfiability and entailment of RDF-star graphs do not mandate that implementations actually transform RDF-star graphs using the unstar mapping defined above. It should be possible to implement the semantics by directly handling RDF-star's abstract syntax.

              + +
              + +
              +

              6.4.2 Combining RDF-star graphs

              + +

              Care must be taken when implementations that rely on the unstar mapping combine the resulting RDF graphs through union or merge. Given two RDF-star graphs G and H, it may be the case that unstar(G ∪ H) ≠ unstar(G) ∪ unstar(H).

              + +

              In particular, if G and H contain the same embedded triple, this triple will be mapped to a single blank node in unstar(G ∪ H), but in two potentially different blank nodes in unstar(G) ∪ unstar(H). These blank nodes will need to be unified in order to reconstruct unstar(G ∪ H).

              + +

              Conversely, nothing in the definition of the unstar mapping prevents it from generating the same blank node b for an embedded triple of G, and for a different embedded triple of H (provided that b is not present in either G nor H). In that case, not only would unstar(G) ∪ unstar(H) be different from unstar(G ∪ H), but it would lose some information by mixing the descriptions of the two embedded triples.

              + +
              + +
              +

              6.4.3 Other uses of the unstar mapping

              + +

              Since the unstar mapping transforms any RDF-star graph into a standard ("non-star") RDF graph, it might be tempting to use this mapping for conveying RDF-star graphs to legacy RDF systems. However, this has a number of caveats.

              + +

              First, the unstar mapping alters the semantics of the graph: in general, a graph G is not equivalent to its "unstarred" version unstar(G), even if G is a standard RDF graph containing no embedded triples. (More precisely, they are equivalent only if G contains no embedded triples and no IRIs from the unstar: namespace.)

              + +

              Second, when a legacy RDF system communicates an RDF graph to an RDF-star-aware system, there is no means by which the latter can determine with certainty whether the graph is the result of applying the unstar mapping, and thus needs to be transformed back. (The presence of unstar: IRIs in the graph can be used as a hint, but such IRIs can also be used independently of the mapping.) Additional metadata should therefore be attached to unstarred graphs, so that RDF-star systems know whether or not they need to apply the inverse transformation of unstar.

              + +

              Finally, legacy RDF systems may alter unstarred graphs in ways that prevent their transformation back to the original RDF-star graph. For example, it has been pointed out above how combining several unstarred graphs may not yield the expected result. Another example is the removal of some arcs, such that an embedded triple is not completely described anymore, and can not be reconstructed.

              + +
              + +
              +

              6.4.4 Referential opacity

              + +

              The way the unstar mapping is defined, the denotation of an embedded triple does not only depend on the denotation of its component terms, but also on their syntactical form (for IRIs and literals). This behavior is referred to as referential opacity. A consequence is that two different triples, that would be semantically equivalent if asserted, are not automatically considered to denote the same thing when embedded. In the example below, assuming D-entailment: while "42"^^xsd:integer and "042"^^xsd:integer denote the same thing (namely, the number 42), the two embedded triples are allowed to have different denotations, and so the entailment does not hold.

              + +
              +
              #### under D-entailment
              +
              +<h2g2.ttl> :contains << :lue :answer "42"^^xsd::integer >>.
              +
              +#### does NOT entail
              +
              +<h2g2.ttl> :contains << :lue :answer "042"^^xsd::integer >>.
              +
              + +

              Similarly, in the example below and under OWL entailment [OWL2-Overview], while :superman and :clark are inferred to denote one and the same person (because of the owl:sameAs relationship between them), the two embedded triples are not automatically considered to denote the same thing.

              + +
              +
              #### under OWL-entailment
              +
              +:superman owl:sameAs :clark.
              +<< :superman :can :fly >> :reportedBy :clark.
              +
              +#### does NOT entail
              +
              +<< :clark :can :fly >> :reportedBy :clark.
              +
              + +

              This is well suited for use-cases where the syntactical form of the annotated statements may be significant (like annotating statements from other graphs or annotating commit deltas). On the other hand, other use-cases would expect some degree of referential transparency. Consider the case of attributed/evidenced triples. The annotation is understood to be about the fact asserted by the triple rather than the triple itself. As illustrated in the example below, one might then expect more inferences than provided by the current semantics.

              + +
              +
              #### under D-entailment
              +
              +:linköping :population "0104232"^^xsd::integer
              +    {| :source <https://en.wikipedia.org/wiki/Link%C3%B6ping> |}.
              +
              +#### does NOT entail
              +
              +:linköping :population "104232"^^xsd::integer
              +    {| :source <https://en.wikipedia.org/wiki/Link%C3%B6ping> |}.
              +
              +#### more precisely, it DOES entail
              +
              +:linköping :population "104232"^^xsd::integer.
              +
              +#### but it does NOT entail
              +
              +<< :linköping :population "104232"^^xsd::integer >>
              +    source <https://en.wikipedia.org/wiki/Link%C3%B6ping> .
              +
              + +

              Note that the current semantics does not forbid the additional inferences to be drawn. However, they would require additional knowledge and an appropriate semantic extension, not specified in this document. This makes RDF-star less readily usable for (but not incompatible with) that latter kind of use-cases.

              + +
              + +
              +

              6.4.5 Alternatives to referential opacity

              + +

              Given the potential drawbacks of the referential opacity provided by the current semantics, as described in the previous section, the group has considered alternative semantics. No clear consensus was reached, however, to decide whether these alternatives should be used as a replacement, or as a semantic extension, of the current semantics.

              + +

              A fully referentially transparent semantics can be achieved by changing the step 2.4 of the unstar mapping algorithm as follows:

              + +
                +
              • Add the following asserted triples to G: +
                  +
                • (b, unstar:subject,   s)
                • +
                • (b, unstar:predicate, p)
                • +
                • (b, unstar:object,    o)
                • +
                +
              • +
              + +

              In the examples above (Example 32, Example 33, Example 34), all the entailments would now hold automatically. This could be a problem in some use-cases, as such inferences could then not be cancelled, given the monotonic semantics of RDF.

              + +

              An intermediate alternative would be to make embedded triples referentially opaque for IRIs only, keeping it transparent for literals (and for blank nodes, as is already the case). This can be achieved by changing the step 2.4 of the unstar mapping algorithm as follows:

              + +
                +
              • Add the following asserted triples to G: +
                  +
                • (b, unstar:subject,   s)
                • +
                • (b, unstar:predicate, p)
                • +
                • (b, unstar:object,    o)
                • +
                • (b, unstar:subjectLexical,   L(s)) if s is an IRI
                • +
                • (b, unstar:predicateLexical, L(p))
                • +
                • (b, unstar:objectLexical,    L(o)) if o is an IRI
                • +
                +
              • +
              + +
              + +
              + +
              Note
              Other design choices for the semantics have also been discussed by the community group; these have been summarized in a Github issue.
              + +
              + +
              +

              7. RDF-star vocabulary

              This section is non-normative.

              + +

              This section will eventually describe a number of IRIs that may be useful when using RDF-star. At the moment, it contains links to the Github issues where such terms have been discussed.

              + +
              Issue 102: Define a URI for the class of embedded triples for use with rdfs:range and rdfs:domain. vocabulary

              In order to support the use of rdfs:range and rdfs:domain, the spec should have vocabulary defined for the class of all embedded triples. Specifically, a standard URI for the class.

              + +
              Issue 169: Occurrences vocabulary vocabulary
              + This issue discusses the relevance of introducing a standard property to link an embedded triple to its occurrences (as illustrated in Example 6), as well as other related properties and classes. +
              + +
              Issue 164: add a paragraph on SPARQL service description and sd:feature vocabulary
              + This issue was raised to introduce IRIs to be used with [SPARQL11-SERVICE-DESCRIPTION], in order for a SPARQL-star endpoint to advertise its support for RDF-star. +
              + +
              Issue 170: declaring referential opacity/transparency vocabulary
              + This issue proposes to introduce a vocabulary for locally overriding the opaque semantics of embedded triples, making them transparent in some contexts. +
              + +
              + +
              +

              A. IANA Considerations

              This section is non-normative.

              + +

              In § 3. Concrete Syntaxes, we have proposed extensions to four existing media types, namely text/turtle [TURTLE], application/trig [TRIG], application/n-triples [N-TRIPLES] and application/n-quads [N-QUADS]. In § 4. SPARQL-star Query Language, we have proposed extensions to three more existing media types, namely application/sparql-query [SPARQL11-QUERY], application/sparql-results+json [SPARQL11-RESULTS-JSON], and application/sparql-result+xml [RDF-SPARQL-XMLRES]. While the RDF-DEV Community Group has no authority to officially update these media-types, we hope that a future working group with such authority will consider doing so, and include extensions proposed in this report.

              + +

              In the meantime, implementers of RDF-star are faced with a dilemma: use the standard media-type identifiers as if their definition had been already updated (optimistic approach); or make it explicit that they are prone to produce or consume embedded triples (pessimistic approach), perhaps by using a different temporary media-type, or custom HTTP headers.

              + +

              The optimistic approach raises the risk of breaking the expectations of other applications that are not RDF-star-aware. For example, if a SPARQL-star endpoint responds to a CONSTRUCT query with the text/turtle media-type, and includes an embedded triple in the response, a legacy client will fail to parse that response. On the other hand, if the same server applies the pessimistic approach, it may simply reject any query requiring text/turtle, just in case the result contain embedded triples. Note that it is not always feasible for the server to decide beforehand whether the result is plain Turtle or Turtle-star, because the result is often produced in a streamed manner, after the headers containing the media-type have been sent to the client.

              + +

              Another problem with the pessimistic approach is that "temporary" media-types are known to actually become permanent. Old applications keep using them long after their intended expiration date. This a burden on all other implementations, which must handle the "temporary" media-types along the permanent one, as aliases, in order to maintain backward compatibility.

              + +

              The W3C Recommendation + Content Negotiation by Profile + [DX-PROF-CONNEG] describes a mechanism that separates content-type + negotiation from requesting a response conforming to a specific information model, + whether that model is a specific standard, specification or profile. + The operations of the abstract model + are "list profiles" and "get resource by profile". + The "get resource" operation can provide the profile requests with HTTP + header Accept-Profile and responses use Content-Profile, or + alternatively the request can use HTTP Query String parameters. +

              + +

              + This may be useful when the information is available in RDF-star or in non-RDF-star + RDF 1.1 form, whether using reification, or by omitting information expressed with + the RDF-star data model and responding with a restricted response. By lifting the + issue up to the information model, away from being purely about syntax, restricted + responses can be requested and returned which do not use RDF-star features. + However, it assumes both requestor and receiver adhere to the defined profile + negotiation and therefore does not address the dilemma of optimistic or pessimistic + approaches. +

              + +
              Issue 43: New mime types for RDF-star serializations (inc. SPARQL results) concrete-syntaxlatersparql-star

              Although the examples in this document, and the tests in the test suite, adopt the optimistic approach, it should be noted that no clear consensus emerged from the group on which approach is the best.

              + +
              + +
              +

              B. Historical remarks

              This section is non-normative.

              + +
              +

              B.1 SA-mode and PG-mode

              + +

              A lot of discussions on the RDF-star mailing list and GitHub repository refer to SA-mode and PG-mode. Those abbreviations stand for "Separate Assertion mode" and "Property Graph mode". They originate in the fact that different versions of RDF-star have been published over the years, with different designs. In PG-mode, any embedded triple was also considered asserted. SA-mode, on the other hand, allowed the use of embedded triples without those triples being automatically asserted, requiring that they be asserted separately when that was intended. SA-mode was more flexible, but induced redundancy in the use-cases that PG-mode was designed to address.

              + +

              The notion of annotations in the Turtle-star syntax was introduced to remove the need for different modes. Rather than interpret the same syntax differently in each mode, which would have caused interoperability problems and required a switch for those modes, it was decided to provide a different syntax for each use case.

              + +
                +
              • The << ... >> syntax represents a triple that is embedded without being asserted, satisfying the need formerly filled by SA-mode.
              • +
              • The :a :b :c {| :p :o ... |} annotation syntax creates triples where the subject is an embedded version of the triple asserted just before the annotation (here, :a :b :c), without the need to repeat it, satisfying the need formerly filled by PG-mode.
              • +
              +
              + +
              +

              B.2 The seminal example

              + +

              The motivating example in the original RDF-star paper [RDF-STAR-FOUNDATION] was on a provenance use-case, and is repeated below.

              + +
              +
              # the controversial seminal example
              +:bob foaf:name "Bob".
              +<<:bob foaf:age 23>> dct:creator <http://example.com/crawlers#c1> ;
              +                     dct:source <http://example.net/listing.html> .
              +
              + +

              This example was further debated on the RDF-star mailing list, as it appears to have set wrong expectations about what embedded triples represent. More precisely, from this example, one may wrongly assume that <<:bob foaf:age 23>> represents the occurrence of the given triple at the address http://example.net/listing.html (see § 2.1 Triples and occurrences). This impression may be reinforced by the use of dct:creator: arguably, a triple (as a unique abstract entity) is not "created" by anyone, while an occurrence thereof can be said to be created or authored.

              + +

              The problem with this interpretation is that it will break as soon as other creators and sources are added for the triple: one could not tell which source corresponds to which creator. Correctly capturing this information would require additional nodes to explicitly represent triple occurrences, as in Example 6. In summary, although RDF-star can be used for provenance, the seminal example does not work as stated and can lead to the fundamentally incorrect interpretation that RDF-star can represent multiple distinct embedded triples with the same subject, predicate, and object.

              + +
              + +
              + +

              C. Issue Summary

              This section is non-normative.

              + +
              • Issue 3: Do we need more things in the 'conformance' section?
              • Issue 102: Define a URI for the class of embedded triples for use with rdfs:range and rdfs:domain.
              • Issue 169: Occurrences vocabulary
              • Issue 164: add a paragraph on SPARQL service description and sd:feature
              • Issue 170: declaring referential opacity/transparency
              • Issue 43: New mime types for RDF-star serializations (inc. SPARQL results)
              + + +

              D. References

              +

              D.1 Normative references

              +
              [N-QUADS]
              RDF 1.1 N-Quads. Gavin Carothers. W3C. 25 February 2014. W3C Recommendation. URL: https://www.w3.org/TR/n-quads/
              [N-TRIPLES]
              RDF 1.1 N-Triples. Gavin Carothers; Andy Seaborne. W3C. 25 February 2014. W3C Recommendation. URL: https://www.w3.org/TR/n-triples/
              [RDF-SPARQL-XMLRES]
              SPARQL Query Results XML Format (Second Edition). Dave Beckett; Jeen Broekstra. W3C. 21 March 2013. W3C Recommendation. URL: https://www.w3.org/TR/rdf-sparql-XMLres/
              [RDF11-CONCEPTS]
              RDF 1.1 Concepts and Abstract Syntax. Richard Cyganiak; David Wood; Markus Lanthaler. W3C. 25 February 2014. W3C Recommendation. URL: https://www.w3.org/TR/rdf11-concepts/
              [RDF11-MT]
              RDF 1.1 Semantics. Patrick Hayes; Peter Patel-Schneider. W3C. 25 February 2014. W3C Recommendation. URL: https://www.w3.org/TR/rdf11-mt/
              [RFC2119]
              Key words for use in RFCs to Indicate Requirement Levels. S. Bradner. IETF. March 1997. Best Current Practice. URL: https://datatracker.ietf.org/doc/html/rfc2119
              [RFC8174]
              Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words. B. Leiba. IETF. May 2017. Best Current Practice. URL: https://datatracker.ietf.org/doc/html/rfc8174
              [SPARQL11-QUERY]
              SPARQL 1.1 Query Language. Steven Harris; Andy Seaborne. W3C. 21 March 2013. W3C Recommendation. URL: https://www.w3.org/TR/sparql11-query/
              [SPARQL11-RESULTS-JSON]
              SPARQL 1.1 Query Results JSON Format. Andy Seaborne. W3C. 21 March 2013. W3C Recommendation. URL: https://www.w3.org/TR/sparql11-results-json/
              [SPARQL11-UPDATE]
              SPARQL 1.1 Update. Paula Gearon; Alexandre Passant; Axel Polleres. W3C. 21 March 2013. W3C Recommendation. URL: https://www.w3.org/TR/sparql11-update/
              [TRIG]
              RDF 1.1 TriG. Gavin Carothers; Andy Seaborne. W3C. 25 February 2014. W3C Recommendation. URL: https://www.w3.org/TR/trig/
              [TURTLE]
              RDF 1.1 Turtle. Eric Prud'hommeaux; Gavin Carothers. W3C. 25 February 2014. W3C Recommendation. URL: https://www.w3.org/TR/turtle/
              [XML]
              Extensible Markup Language (XML) 1.0 (Fifth Edition). Tim Bray; Jean Paoli; Michael Sperberg-McQueen; Eve Maler; François Yergeau et al. W3C. 26 November 2008. W3C Recommendation. URL: https://www.w3.org/TR/xml/
              [XPATH-FUNCTIONS]
              XQuery 1.0 and XPath 2.0 Functions and Operators (Second Edition). Ashok Malhotra; Jim Melton; Norman Walsh; Michael Kay. W3C. 14 December 2010. W3C Recommendation. URL: https://www.w3.org/TR/xpath-functions/
              +
              +

              D.2 Informative references

              +
              [DX-PROF-CONNEG]
              Content Negotiation by Profile. Lars G. Svensson; Nicholas Car. W3C. 26 November 2019. W3C Working Draft. URL: https://www.w3.org/TR/dx-prof-conneg/
              [JSON-LD]
              JSON-LD 1.0. Manu Sporny; Gregg Kellogg; Markus Lanthaler. W3C. 3 November 2020. W3C Recommendation. URL: https://www.w3.org/TR/json-ld/
              [OWL2-Overview]
              OWL 2 Web Ontology Language Document Overview (Second Edition). W3C OWL Working Group. W3C. 11 December 2012. W3C Recommendation. URL: https://www.w3.org/TR/owl2-overview/
              [RDF-STAR-FOUNDATION]
              Foundations of RDF* and SPARQL* - An Alternative Approach to Statement-Level Metadata in RDF.. Olaf Hartig. In Proceedings of the 11th Alberto Mendelzon International Workshop on Foundations of Data Management (AMW), Montevideo, Uruguay. June 2017. URL: http://ceur-ws.org/Vol-1912/paper12.pdf
              [RDF-SYNTAX-GRAMMAR]
              RDF 1.1 XML Syntax. Fabien Gandon; Guus Schreiber. W3C. 25 February 2014. W3C Recommendation. URL: https://www.w3.org/TR/rdf-syntax-grammar/
              [SPARQL11-SERVICE-DESCRIPTION]
              SPARQL 1.1 Service Description. Gregory Williams. W3C. 21 March 2013. W3C Recommendation. URL: https://www.w3.org/TR/sparql11-service-description/
              +
              \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/rdf-star-main/cg-spec/2021-12-17-src.html b/corese-unit-test/src/test/resources/data/rdf-star-main/cg-spec/2021-12-17-src.html new file mode 100644 index 0000000000..e84207dd52 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/rdf-star-main/cg-spec/2021-12-17-src.html @@ -0,0 +1,3548 @@ + + + + + RDF-star and SPARQL-star + + + + + + +
              +

              The Resource Description Framework (RDF) is a general-purpose framework for representing information on the Web. RDF-star extends RDF with a convenient way to make statements about other statements. This specification defines the abstract syntax of RDF-star as an extension of RDF's. It extends a number of RDF concrete syntaxes to support the new abstract syntax. It also extends RDF's formal semantics. Finally, this specification extends the SPARQL language to allow querying and updating of RDF-star data.

              +
              +
              +
              + +
              +

              Introduction

              + +
              +

              Background and Motivation

              + +

              The RDF data model lets you state facts in three-part subject-predicate-object statements known as triples. For example, with a single RDF triple, you can say that employee38 has a familyName of "Smith". A triple's predicate is a property specified with an IRI (an Internationalized version of a URI), identifying that property in a globally unambiguous way. A triple's subject and object can each be an IRI referencing any entity, and the object can also be a literal value such as "Smith" or data of other types such as dates, numbers, or Boolean values.

              + +

              Sometimes, we want the subject or object of a triple to refer to another triple. For example, the statement "according to employee22, employee38 has a jobTitle of 'Assistant Designer'" can be modeled as a triple with "according to" as its predicate, employee22 as its object, and another triple as its subject, namely the triple "employee38 has a jobTitle of 'Assistant Designer'". This use of a triple as the subject or object resource of another triple so that we can say things about that triple is known as reification. + The concept of reification has always been part of RDF, but expressing it in most RDF concrete syntaxes such as Turtle and N-Triples, as well as processing or querying it with SPARQL, has been verbose and cumbersome [[RDF-STAR-FOUNDATION]].

              + +
              + +
              +

              Overview

              + +

              This specification describes RDF-star, an extension of RDF's conceptual data model and concrete syntaxes, which provides a compact alternative to standard RDF reification. This model and its syntaxes enable the creation of concise triples that reference other triples as subject and object resources. +Triples that include a triple as a subject or an object are known as RDF-star triples. The following dataset shows the example RDF-star triples from above using the Turtle-star syntax, which uses double angle brackets to enclose a triple serving as a subject or object resource:

              + +
              +        
              +      
              + +

              After declaring a prefix so that IRIs can be abbreviated, the first triple in this example asserts that employee38 has a familyName of "Smith". Note that this dataset does not assert that employee38 has a jobTitle of "Assistant Designer"; it says that employee22 has made that claim. In other words, the triple "employee38 has a jobTitle of 'Assistant Designer'" is not what we call an asserted triple, like "employee38 has a familyName of 'Smith'" above; rather, it is known as a quoted triple.

              + +

              If we added the triple `:employee38 :jobTitle "Assistant Designer"` to the example above, then this triple about employee38's jobTitle would be both a quoted and an asserted triple. +This pattern is quite common, so Turtle-star offers a dedicated syntax for it, called the annotation syntax, illustrated in below. Note that this construct is purely syntactic sugar, as it can be expanded using only the double angle brackets.

              + +
              +  
              +
              + + +

              This specification also describes an extension to the SPARQL Protocol and Query Language known as SPARQL-star for the querying of RDF-star triples. For example, the following SPARQL-star query asks "who has made any claims about employee38?"

              + +
              +                
              +
              + + +

              SPARQL can also be used to update RDF data, and SPARQL-star also extends that part. For example, the following SPARQL-star adds all the statements made by employee22 about employee38 as asserted triples, annotating them as "confirmed".

              + +
              +                
              +
              + +
              +
              +

              Common misconceptions

              + +

              People coming to RDF-star may have wrong ideas about what it is or how to use it. The purpose of this section is to dispel the most common misconceptions. + +

              RDF-star is not syntactic sugar for standard reification. While the latter is a vocabulary that fits into the standard RDF model (abstract syntax), RDF-star extends that model (see ) with a new construct, namely quoted triples. Note also that the two are not mutually exclusive: standard reification can be used in conjunction with RDF-star. + +

              Unlike reified statements, RDF-star quoted triples are unique: wherever `<< :employee38 :jobTitle "Assistant Designer" >>` appears, it always denotes one and the same thing. This impacts the modeling choices one has to make when using RDF-star; this is further discussed in . + +

              Finally, quoted triples are referentially opaque. This means that two quoted triples containing distinct but equivalent terms (i.e., coreferences, known to denote the same thing) are nonetheless considered to be different triples. and the following sections discuss the rationale for this design, and how some form of referential transparency can still be added to RDF-star if and when needed. +

              + +
              +

              Conventions

              +

              For the remainder of this document, examples will assume that the following prefixes have been declared to represent the IRIs shown with them here:

              + + + + + + + + + + + + +
              `:``<http://www.example.org/>`
              `rdf:``<http://www.w3.org/1999/02/22-rdf-syntax-ns#>`
              `rdfs:``<http://www.w3.org/2000/01/rdf-schema#>`
              `owl:``<http://www.w3.org/2002/07/owl#>`
              `prov:``<http://www.w3.org/ns/prov#>`
              `dbo:``<http://dbpedia.org/ontology/>`
              `dbr:``<http://dbpedia.org/resource/>`
              `dc:``<http://purl.org/dc/elements/1.1/>`
              `dct:``<http://purl.org/dc/terms/>`
              `rdf-star:``<http://www.w3.org/ns/rdf-star#>`
              + +
              + +
              +

              Structure of this document

              +

              This specification covers many aspects of RDF-star, and not all sections will be of interest to all readers.

              +

              Section 2 first defines the concepts and the abstract syntax of RDF-star, to which all following sections refer. + The next three sections focus on how users will interact with the abstract syntax, defining the concrete syntaxes, the query language SPARQL-star and its counterpart for updates. Section 6 then defines RDF-star's formal semantics, which lays the foundation for reasoning with RDF-star data. Finally, Section 7 defines an RDF vocabulary capturing the main concepts of RDF-star.

              + +
              + + + + +
              + +
              +
              + can be... +
              +
              +
              +
              + ... serialized with
              + +
              +
              +
              + ... represented by
              + +
              +
              +
              + ... queried with
              +
              +
              +
              +
              + ... updated with
              + +
              +
              +
              + ... interpreted through
              + +
              +
              +
              A visual map of the sections of this document
              +
              +
              + +
              +

              A system supports RDF-star for input if it supports an input syntax for + an RDF 1.1 standard syntax that has additional syntax for + quoted triples. + Such input syntaxes include those in the + RDF-star test suite + (N-Triples-star syntax tests, + Turtle-star syntax tests, + or TriG-star syntax tests). +

              + +

              A system supports RDF-star for output if it supports an output syntax for + an RDF 1.1 standard syntax that has additional syntax for + quoted triples. + Such output syntaxes include those in the + RDF-star test suite + (N-Triples-star syntax tests, + Turtle-star syntax tests, + or TriG-star syntax tests). +

              +

              + A system supports SPARQL-star if it passes + the SPARQL-star syntax test suite + and the SPARQL-star evaluation test suites. +

              +
              + +
              + +
              +

              Concepts and Abstract Syntax

              + +

              In the following, we introduce a number of definitions specific to SPARQL-star, which rely on the following notions (extending some of them) defined in [[[RDF11-CONCEPTS]]] [[RDF11-CONCEPTS]]: + blank node, + default graph, + graph name, + IRI, + literal, + named graphs, + subject, + predicate, + object, + RDF dataset, + RDF graph, + RDF triple, + and RDF term. +

              + +

              An RDF-star graph is a set of RDF-star triples.

              + +

              An RDF-star triple is a 3-tuple defined recursively as follows:

              + + +

              As for RDF triples, we call the 3 components of an RDF-star triple its subject, predicate and object, respectively. From the definitions above, it follows that any RDF graph is also an RDF-star graph. Note also that, by definition, an RDF-star triple cannot contain itself and cannot be nested infinitely.

              + +

              IRIs, literals, blank nodes and RDF-star triples are collectively known as RDF-star terms.

              + +

              For every RDF-star triple t, we define its constituent terms (or simply constituents) as the set containing its subject, its predicate, its object, plus all the constituent terms of its subject and/or its object if they are themselves RDF-star triples. By extension, we define the constituent terms of an RDF-star graph to be the union set of the constituent terms of all its triples.

              + +
              + Consider the following RDF-star triple (represented in Turtle-star): +
              +        
              +      
              + Its set of constituent terms comprises the IRIs `:name`, `:statedBy`, `:bob`, the blank node `_:a`, the literal `"Alice"`, and the triple `<< _:a :name "Alice" >>`. +
              + +

              An RDF-star triple used as the subject or object of another RDF-star triple is called a quoted triple. An RDF-star triple that is an element of an RDF-star graph is called an asserted triple. Note that, in a given RDF-star graph, the same triple MAY be both quoted and asserted.

              + +

              An RDF-star dataset is a collection of RDF-star graphs, and comprises:

              + + + +

              Again, this definition is an extension of the notion of RDF dataset, hence it follows that any RDF dataset is also an RDF-star dataset.

              + +
              +

              Quoted and Asserted Triples

              + +

              + A triple in RDF is a tuple of three components: subject, predicate, and object. These are + collectively known as RDF Terms as defined in [[RDF11-CONCEPTS]]. +

              +

              + RDF-star introduces quoted triple, which is a new kind of RDF term. + A quoted triple is a triple used as the subject or object of another triple. Quoted + triples can also be called "embedded triples". +

              + +

              + in RDF 1.1, an asserted triple is an element of the set of triples that + make up an RDF graph. RDF-star does not change this except that an RDF-star + triple can contain quoted triples. A triple can be used as an asserted + triple, a quoted triple, or both, in a given graph. +

              + +

              + A quoted triple is written in Turtle-star and related syntaxes using delimiters `<<` and `>>`. +

              +

              + + << :a :name "Alice" >> + +

              +

              + The definition of quoted triple is recursive. That is, a quoted triple can itself have a + subject or object component which is another quoted triple. Cycles of quoted + triples can not be created. In the next example, there is a quoted triple with + property `:reportedBy`, whose subject is another quoted triple, `:a :name + "Alice"`. +

              +

              + + << << :a :name "Alice" >> :reportedBy :charlie >> + +

              +
              +

              + It may be apt to draw a parallel between "quoted" triples and + quoted expressions in the programming language Lisp. + Expressions in Lisp (called "s-expressions") are interpreted + through a process called "evaluation", and as a result they + have a value. A quoted expression evaluates to the expression itself - + you can imagine that quoting prevents the expression from being + evaluated. In RDF (as well as in RDF-star), asserting a triple + (i.e., considering it to be "true") serves as the analogue of + evaluation. Triples are asserted, unless (in RDF-star) they are quoted + which, effectively, prevents the triple from being asserted - thus a + quoted triple stands by itself and we assign no truth value to it. +

              +

              + Obviously this way of thinking is helpful only if you understand how Lisp works. +

              +
              +
              + +
              +

              RDF-star Graph Examples

              + +

              + In the example below, there is a quoted triple, `:a :name "Alice"`, which is used + as the subject for an asserted triple: +

              +
              +        
              +      
              +

              + The graph of this example has two asserted triples: +

              +
                +
              1. `:bob :name "Bob" .`
              2. +
              3. `<< :a :name "Alice" >> :statedBy :bob .`
              4. +
              +

              + This graph does not have an asserted triple, `:a :name "Alice"`, because + that triple is not an element of the set of triples. +

              +

              + On the other hand, the graph in the example below contains three asserted triples: + the same two as the previous example, and `:a :name "Alice"`. The latter is used + both as an asserted triple and a quoted triple in this graph. +

              +
              +        
              +      
              +
              + +
              +

              Triples and occurrences

              + +

              According to the definitions above, an RDF-star triple is an abstract entity whose identity is entirely defined by its subject, predicate, and object. Conversely, given three RDF-star terms |s|, |p|, and |o|, there is exactly and only one RDF-star triple with subject |s|, predicate |p|, and object |o|. This unique triple (|s|, |p|, |o|) can be quoted as the subject or object of multiple other triples, but must be assumed to represent the same thing everywhere it occurs, just like the same IRI |p| is assumed to represent the same thing everywhere it occurs.

              + +

              In some situations, however, it might be necessary to distinguish the occurrences of a triple in different graphs. Consider the following sentence: "The triple `<http://example.org/s> <http://example.org/p> <http://example.org/o>` in (the graph represented by) file1.ttl was added by Alice, and the same triple in file2.ttl was added by Bob." Note that the words "same triple" in this sentence may be confusing, because although the triple (as an abstract entity) is the same, its respective occurrences are different things, each within a different file and with a different author (this is known, in philosophy and linguistics, as the type-token distinction). As the quoted triple represents a unique thing, adequately conveying the meaning of the sentence above requires additional nodes for representing the two distinct occurrences. One possible solution is illustrated in the following example (using the Turtle-star concrete syntax described in the next section).

              + +
              +        
              +      
              +
              + +
              + +
              +

              Concrete Syntaxes

              + +

              This section defines the following concrete syntaxes:

              +
                +
              • +
              • +
              • +
              • +
              • +
              + +

              + Changes for SPARQL-star are given in + + and the changes for the result set formats in + .

              + +
              +

              Annotation Syntax

              +

              There are syntax additions for quoted triples and also for + annotation syntax + which provides a convenient shortcut in Turtle-star and + TriG-star syntaxes. It is used to both assert a triple and have that triple be the + subject of further triples. It uses delimiters `{|` and `|}` following an asserted + triple to make that triple, as a quoted triple, the subject of the + RDF-star triples formed by combining it with the enclosed RDF predicate(s) and object(s). +

              +

              + Annotation syntax does not appear in the RDF-star abstract data model. It is + only a syntactic short cut and the RDF-star abstract data model does not + distinguished how the triples were written. +

              +
              +        
              +      
              +

              is the same set of triples as:

              +
              +        
              +      
              +

              and RDF-star graph contains three asserted triples.

              +
              + +
              +

              Turtle-star

              +

              In this section, we present Turtle-star, + an extension of the Turtle format [[TURTLE]] + allowing the representation of RDF-star graphs. + For the sake of conciseness, + we only describe here the differences between Turtle-star and Turtle.

              + +
              +

              Grammar

              +

              Turtle-star is defined to follow the same grammar as Turtle, + except for the EBNF productions specified below, + which replace the productions having the same number (if any) in the original grammar.

              + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
              [8]`objectList`::= + object + annotation`?` + `(` + ',' + object + annotation`?` + `)*` +
              [10]`subject`::= + iri `|` + BlankNode `|` + collection `|` + quotedTriple +
              [12]`object`::= + iri `|` + BlankNode `|` + collection `|` + blankNodePropertyList `|` + literal `|` + quotedTriple +
              [27t]`quotedTriple`::= + '<<' + qtSubject + verb + qtObject + '>>' +
              [28t]`qtSubject`::= + iri `|` + BlankNode `|` + quotedTriple +
              [29t]`qtObject`::= + iri `|` + BlankNode `|` + literal `|` + quotedTriple +
              [30t]`annotation`::= + '{|' + predicateObjectList + '|}' +
              + +

              The complete grammar may be found in .

              + +

              + The changes are that `subject` + and `object` productions + have been extended to accept quoted triples, + which are described by the new productions 27t + to 30t. + Note that quoted triples accept a more restricted range of + subject and object expressions + than asserted triples. + Additionally, the `objectList` production + now accepts an optional annotation after each object.

              +
              + +
              +

              Parsing

              +

              A Turtle-star parser is similar to a Turtle parser + as defined in Section 7 of the Turtle specification [[TURTLE]], + with an additional item in its state :

              + +

              Additionally, the |curSubject| + can be bound to any RDF-star term + (including a quoted triple).

              + +

              A Turtle-star document defines an RDF-star graph + composed of a set of RDF-star triples. + The `subject` + and `qtSubject` productions set the |curSubject|. + The `verb` production + sets the |curPredicate|. + The `object` + and `qtObject` productions + set the |curObject|. + Finishing the `object` production, + an RDF-star triple |curSubject| |curPredicate| |curObject| is produced + (added to the RDF-star graph).

              + +

              Beginning the `quotedTriple` production + records the |curSubject| and |curPredicate|. + Finishing the `quotedTriple` production + yields the RDF-star triple |curSubject| |curPredicate| |curObject| + and restores the recorded values of |curSubject| and |curPredicate|.

              + +

              Beginning the `annotation` production + records the |curSubject| and |curPredicate|, + and sets the |curSubject| to the RDF-star triple |curSubject| |curPredicate| |curObject|. + Finishing the `annotation` production + restores the recorded values of |curSubject| and |curPredicate|.

              + +

              All other productions MUST be handled as specified + by Section 7 of the Turtle specification [[TURTLE]], + while still applying the changes above recursively.

              + +
              +

              Discussion

              + +

              This section describes parser behavior when parsing + a Turtle-star document that contains quoted triples + and annotations.

              + +

              Consider a Turtle-star document that describes an RDF triple, + and also uses that triple as a quoted triple + as the subject of another RDF-star triple:

              + +
              +      
              +      
              + +

              The usual process of parsing a Turtle document + applies with the addition of matching the quoted triple + `<< _:a :name "Alice" >>` + as part of the `subject` production. + The resulting RDF-star graph consists of two RDF-star triples:

              + +
                +
              1. (|b|, `http://example.org/#name`, `"Alice"`), + where |b| is a blank node
              2. +
              3. ((|b|, `http://example.org/#name`, `"Alice"`), `http://example.org/#statedBy`, `http://example.org/#bob/`), + where |b| is the same blank node
              4. +
              + +

              Because the above example includes the triple (|b|, `http://example.org/#name`, `"Alice"`) + as an asserted triple, + the same RDF-star graph may also be represented + by using the Turtle-star annotation syntax as follows:

              + +
              +      
              +      
              + +

              In this case, the `objectList` production + matches the `annotation` production on `{| :source :bob |}` + after parsing the `object` production on `"Alice"`. + At this point, the |curSubject|, |curPredicate|, and |curObject| are saved, + and a new RDF-star triple `_:a :name "Alice"` is created + and used as |curSubject| while processing + the `annotation` production.

              +
              +
              +
              + +
              +

              TriG-star

              + +

              This section describes TriG-star, + a minimal extension of the TriG format [[TRIG]] + using the same production updates described in .

              + +

              RDF-star describes quoted triples, + which are not necessarily present in any named graph, + or within the default graph.

              + +

              A TriG-star document defines an RDF-star dataset, composed of + a single default graph and zero or more named graphs, + all of which are RDF-star graphs.

              + +
              +

              Grammar

              +

              TriG-star is defined to follow the same grammar as TriG, + except for the EBNF productions specified below, + which replace the productions having the same number (if any) in the original grammar.

              + +

              The TriG-star grammar contains exactly the same production updates + described in + with an additional change to the triplesOrGraph production.

              + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
              [3g]`triplesOrGraph`::= + labelOrSubject + `(` + wrappedGraph + `|` + predicateObjectList + `'.' )` +
              + `|` + quotedTriple + predicateObjectList + `'.'` +
              +
              [8]`objectList`::= + object + annotation`?` + `(` + ',' + object + annotation`?` + `)*` +
              [10]`subject`::= + iri `|` + BlankNode `|` + collection `|` + quotedTriple +
              [12]`object`::= + iri `|` + BlankNode `|` + collection `|` + blankNodePropertyList `|` + literal `|` + quotedTriple +
              [27t]`quotedTriple`::= + '<<' + qtSubject + verb + qtObject + '>>' +
              [28t]`qtSubject`::= + iri `|` + BlankNode `|` + quotedTriple +
              [29t]`qtObject`::= + iri `|` + BlankNode `|` + literal `|` + quotedTriple +
              [30t]`annotation`::= + '{|' + predicateObjectList + '|}' +
              + +

              The complete grammar may be found in .

              +
              + +
              +

              Parsing

              +

              TriG-star parsing uses the same updates described + in + as applied to Section 5 of the TriG specification [[TRIG]].

              + +

              As with Turtle-star, + the `quotedTriple` + and `annotation` + are used to set either the |curSubject| or |curObject|, + and do not directly add the associated quoted triple to |curGraph|. + Subsequent productions which use either |curSubject| or |curObject| + may result in adding triples to |curGraph|.

              + +

              A conforming TriG-star parser MUST parse any + valid TriG document and any + valid Turtle-star document in addition + to the Turtle-star grammar productions contained within a named graph.

              +
              + +
              +

              Discussion

              + +

              TriG-star allows the same expressivity as Turtle-star + with the addition of allowing quoted triples + and annotations + within named graphs.

              + +
              +      
              +      
              + +

              The resulting RDF-star dataset consists of + an empty default graph, and a graph named `http://example.org/#G` + with two RDF-star triples:

              + +
                +
              1. (|b|, `http://example.org/#name`, `"Alice"`), + where |b| is a blank node
              2. +
              3. ((|b|, `http://example.org/#name`, `"Alice"`), `http://example.org/#statedBy`, `http://example.org/#bob/`), + where |b| is the same blank node
              4. +
              +
              +
              + +
              +

              N-Triples-star

              + +

              This section describes N-Triples-star, + a minimal extension of the N-Triples format [[N-TRIPLES]] + allowing a subject or an object + of an RDF-star triple to be a quoted triple.

              + +
              +

              Grammar

              +

              N-Triples-star is defined to follow the same grammar as + the N-Triples Grammar, + except for the EBNF productions specified below, + which replace the productions having the same number + (if any) in the original grammar.

              + + + + + + + + + + + + + + + + + + + + + + +
              [3]`subject`::=IRIREF | BLANK_NODE_LABEL | quotedTriple
              [5]`object`::=IRIREF | BLANK_NODE_LABEL | literal | quotedTriple
              [7t]`quotedTriple`::="<<" subject predicate object ">>"
              + +

              The complete grammar may be found in .

              + +

              The changes are that + `subject` + and `object` productions + have been extended to accept quoted triples, + which are described by the new production + 7.

              +
              + +
              +

              Parsing

              +

              In contrast to [[N-TRIPLES]], + N-Triples-star allows recursion on the + `subject` + and `object` productions.

              + +

              An N-Triples-star document defines an RDF-star graph + composed of a set of RDF-star triples. + The `triple` production + produces an RDF-star triple + composed of a `subject`, + `predicate`, + and `object`.

              + +

              In addition to the Term Constructors defined in [[N-TRIPLES]], + an additional constructor is defined for `quotedTriple` + of type RDF-star triple + defined by the terms constructed + for `subject`, + `predicate`, + and `object`.

              + +

              All other productions MUST be handled as specified by + Section 8.1 of the N-Triples specification [[N-TRIPLES]], + while still applying the changes above recursively.

              +
              +
              + +
              +

              N-Quads-star

              + +

              The [[N-QUADS]] format is extended to describe the + N-Quads-star format using the same production updates described in the N-Triples-star Grammar.

              + +

              The complete grammar may be found in .

              + +

              As RDF-star describes quoted triples and not quoted quads, + the `graphLabel` + component of an N-Quads `statement` + does not apply to the `quotedTriple` component.

              + +

              An N-Quads-star document defines an RDF-star dataset, + composed of a single default graph + and zero or more named graphs, + all of which are RDF-star graphs.

              + +

              A conforming N-Quads-star parser MUST parse any valid + N-Quads document and additionally parse the + subject and + object productions + from N-Triples-star to generate RDF-star triples which are + added to either the default graph or associated + named graph, as appropriate.

              +
              + +
              +

              Other Concrete Syntaxes

              + +

              While this document specifies a small number of concrete syntaxes, + nothing prevents other concrete syntaxes of RDF-star from being proposed. In particular, syntaxes such as + RDF/XML [[RDF-SYNTAX-GRAMMAR]], + and JSON-LD [[JSON-LD]], + could be extended to support RDF-star.

              +
              + +
              + +
              +

              SPARQL-star Query Language

              + +

              This Section introduces SPARQL-star, which is an RDF-star-aware extension of the RDF query language SPARQL [[SPARQL11-QUERY]]; i.e., SPARQL-star can be used to query RDF-star graphs.

              + +
              +

              Initial Definitions

              + +

              In the following, we introduce a number of SPARQL-star-specific definitions, which rely on the following notions, defined in [[[SPARQL11-QUERY]]] [[SPARQL11-QUERY]]: + query variable, + triple pattern, + property path pattern, + property path expression, + and solution mapping.

              + +

              A SPARQL-star triple pattern is a 3-tuple that is defined recursively as follows:

              +
                +
              1. Every SPARQL triple pattern is a SPARQL-star triple pattern; +
              2. If |t| and t' are SPARQL-star triple patterns, |x| is an RDF term or a query variable, and |p| is an IRI or a query variable, then (|t|, |p|, |x|), (|x|, |p|, |t|), and (|t|, |p|, t') are SPARQL-star triple patterns. +
              + +

              As for RDF-star triples, a SPARQL-star triple pattern MUST NOT contain itself.

              + +

              A SPARQL-star basic graph pattern (BGP-star) is a set of SPARQL-star triple patterns.

              + +

              A SPARQL-star property path pattern is a 3-tuple (|s|,|p|,|o|) where

              + + +

              A SPARQL-star solution mapping μ is a partial function from the set of all query variables to the set of all RDF-star terms. + The domain of μ, denoted by dom(μ), is the set of query variables for which μ is defined.

              + +

              The notion of a SPARQL-star solution mapping extends the notion of a standard SPARQL solution mapping; that is, every SPARQL solution mapping is a SPARQL-star solution mapping. However, in contrast to SPARQL solution mappings, SPARQL-star solution mappings may map variables also to RDF-star triples.

              + +

              All notions related to SPARQL solution mappings carry over naturally to SPARQL-star solution mappings. In particular, the definition of compatibility extends naturally to SPARQL-star solution mappings: two SPARQL-star solution mappings μ1 and μ2 are compatible if, for every variable v that is both in dom(μ1) and in dom(μ2), μ1(v) and μ2(v) are the same RDF-star term. + In this case, μ1 ∪ μ2 is also a SPARQL-star solution mapping. + Moreover, for any SPARQL-star solution mapping μ we write card[Ω](μ) to denote the cardinality of μ in a multiset Ω of such mappings. + Finally, given a BGP-star |B| and a SPARQL-star solution mapping μ, we write μ(|B|) to denote the result of replacing every variable |v| in |B| for which μ is defined with μ(v). +

              + +

              Next, we aim to carry over the notion of solutions for BGPs to BGP-star. To this end, we first define an auxiliary concept that carries over the notion of an + RDF instance mapping [[RDF11-MT]] to RDF-star.

              + +

              An RDF-star instance mapping σ is a partial function from the set of all blank nodes to the set of all RDF-star terms. + The domain of σ, denoted by dom(σ), is the set of blank nodes for which σ is defined.

              + +

              Similar to the corresponding notation for solution mappings, for an RDF-star instance mapping σ and a BGP-star |B| we write σ(|B|) to denote the result of replacing every blank node |b| in |B| for which σ is defined with σ(b).

              + +

              Now we are ready to define the notion of solution for BGP-star.

              + +

              Given a BGP-star |B| and an RDF-star graph |G|, a SPARQL-star solution mapping μ is a solution for the BGP-star |B| over |G| if it has the following two properties

              +
                +
              • dom(μ) is equivalent to the set of query variables in |B|, and +
              • there exists an RDF-star instance mapping σ such that dom(σ) is equivalent to the set of blank nodes in |B| and μ(σ(|B|)) is a subgraph of |G|. +
              + +
              + +
              +

              Grammar

              + +

              SPARQL-star is defined to follow the same grammar as SPARQL 1.1, except for the EBNF productions specified below, which replace the productions having the same number (if any) in the original grammar. The parts in which these productions differ from the corresponding productions in the original grammar are marked in bold font. Productions [174] and following have been added and have no counterpart in the original grammar.

              + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
              [65]`DataBlockValue`::= + QuotedTriple `|` + iri `|` + RDFLiteral `|` + NumericLiteral `|` + BooleanLiteral `|` + 'UNDEF' +
              [75]`TriplesSameSubject`::= + VarOrTermOrQuotedTP + PropertyListNotEmpty + `|` + TriplesNode + PropertyList +
              [80]`Object`::= + GraphNode + AnnotationPattern`?` +
              [81]`TriplesSameSubjectPath`::= + VarOrTermOrQuotedTP + PropertyListPathNotEmpty + `|` + TriplesNode + PropertyListPath +
              [87]`ObjectPath`::= + GraphNodePath + AnnotationPatternPath`?` +
              [104]`GraphNode`::= + VarOrTermOrQuotedTP `|` + TriplesNode +
              [105]`GraphNodePath`::= + VarOrTermOrQuotedTP `|` + TriplesNodePath +
              [119]`PrimaryExpression`::= + BrackettedExpression `|` + BuiltInCall `|` + iriOrFunction `|` + RDFLiteral `|` + NumericLiteral `|` + BooleanLiteral `|` + Var +
              + `|` ExprQuotedTP +
              +
              [121]`BuiltInCall`::= +
                 Aggregate
              +
              + `|` + 'STR' + '(' + Expression + ')' +
              +
              + `|` + 'LANG' + '(' + Expression + ')' +
              +
              + `|` + 'LANGMATCHES' + '(' + Expression + ')' +
              +
              + `|` + 'DATATYPE' + '(' + Expression + ')' +
              +
              + `|` + 'BOUND' + '(' + Var + ')' +
              +
              + `|` + 'IRI' + '(' + Expression + ')' +
              +
              + `|` + 'URI' + '(' + Expression + ')' +
              +
              + `|` + 'BNODE' + `(` + '(' + Expression + ')' + `|` + NIL + `)` +
              +
              + `|` + 'RAND' + NIL +
              +
              + `|` + 'ABS' + '(' + Expression + ')' +
              +
              + `|` + 'CEIL' + '(' + Expression + ')' +
              +
              + `|` + 'FLOOR' + '(' + Expression + ')' +
              +
              + `|` + 'ROUND' + '(' + Expression + ')' +
              +
              + `|` + 'CONCAT' + ExpressionList +
              + +
              + `|` + 'STRLEN' + '(' + Expression + ')' +
              + +
              + `|` + 'UCASE' + '(' + Expression + ')' +
              +
              + `|` + 'LCASE' + '(' + Expression + ')' +
              +
              + `|` + 'ENCODE_FOR_URI' + '(' + Expression + ')' +
              +
              + `|` + 'CONTAINS' + '(' + Expression + ',' + Expression + ')' +
              +
              + `|` + 'STRSTARTS' + '(' + Expression + ',' + Expression + ')' +
              +
              + `|` + 'STRENDS' + '(' + Expression + ',' + Expression + ')' +
              +
              + `|` + 'STRBEFORE' + '(' + Expression + ',' + Expression + ')' +
              +
              + `|` + 'STRAFTER' + '(' + Expression + ',' + Expression + ')' +
              +
              + `|` + 'YEAR' + '(' + Expression + ')' +
              +
              + `|` + 'MONTH' + '(' + Expression + ')' +
              +
              + `|` + 'DAY' + '(' + Expression + ')' +
              +
              + `|` + 'HOURS' + '(' + Expression + ')' +
              +
              + `|` + 'MINUTES' + '(' + Expression + ')' +
              +
              + `|` + 'SECONDS' + '(' + Expression + ')' +
              +
              + `|` + 'TIMEZONE' + '(' + Expression + ')' +
              +
              + `|` + 'TZ' + '(' + Expression + ')' +
              +
              + `|` + 'NOW' + NIL +
              +
              + `|` + 'UUID' + NIL +
              +
              + `|` + 'STRUUID' + NIL +
              +
              + `|` + 'MD5' + '(' + Expression + ')' +
              +
              + `|` + 'SHA1' + '(' + Expression + ')' +
              +
              + `|` + 'SHA256' + '(' + Expression + ')' +
              +
              + `|` + 'SHA384' + '(' + Expression + ')' +
              +
              + `|` + 'SHA512' + '(' + Expression + ')' +
              +
              + `|` + 'COALESCE' + ExpressionList +
              +
              + `|` + 'IF' + '(' + Expression + ',' + Expression + ',' + Expression + ')' +
              +
              + `|` + 'STRLANG' + '(' + Expression + ',' + Expression + ')' +
              +
              + `|` + 'STRDT' + '(' + Expression + ',' + Expression + ')' +
              +
              + `|` + 'sameTerm' + '(' + Expression + ',' + Expression + ')' +
              +
              + `|` + 'isIRI' + '(' + Expression + ')' +
              +
              + `|` + 'isURI' + '(' + Expression + ')' +
              +
              + `|` + 'isBLANK' + '(' + Expression + ')' +
              +
              + `|` + 'isLITERAL' + '(' + Expression + ')' +
              +
              + `|` + 'isNUMERIC' + '(' + Expression + ')' +
              +
              + `|` + RegexExpression +
              +
              + `|` + ExistsFunc +
              +
              + `|` + NotExistsFunc +
              +
              + `|` + 'TRIPLE' + '(' + Expression + ',' + Expression + ',' + Expression + ')' +
              +
              + `|` + 'SUBJECT' + '(' + Expression + ')' +
              +
              + `|` + 'PREDICATE' + '(' + Expression + ')' +
              +
              + `|` + 'OBJECT' + '(' + Expression + ')' +
              +
              + `|` + 'isTRIPLE' + '(' + Expression + ')' +
              +
              [174]`QuotedTP`::= + '<<' + qtSubjectOrObject + Verb + qtSubjectOrObject + '>>' +
              [175]`QuotedTriple`::= + '<<' + DataValueTerm + `(` + iri + `|` + 'a' + `)` + DataValueTerm + '>>' +
              [176]`qtSubjectOrObject`::= + Var `|` + BlankNode `|` + iri `|` + RDFLiteral `|` + NumericLiteral `|` + BooleanLiteral `|` + QuotedTP +
              [177]`DataValueTerm`::= + iri `|` + RDFLiteral `|` + NumericLiteral `|` + BooleanLiteral `|` + QuotedTriple +
              [178]`VarOrTermOrQuotedTP`::= + Var `|` + GraphTerm `|` + QuotedTP +
              [179]`AnnotationPattern`::= + '{|' + PropertyListNotEmpty + '|}' +
              [180]`AnnotationPatternPath`::= + '{|' + PropertyListPathNotEmpty + '|}' +
              [181]`ExprQuotedTP`::= + '<<' + ExprVarOrTerm + Verb + ExprVarOrTerm + '>>' +
              [182]`ExprVarOrTerm`::= + iri `|` + RDFLiteral `|` + NumericLiteral `|` + BooleanLiteral `|` + Var `|` + ExprQuotedTP +
              + +

              The complete grammar may be found in .

              + +

              + This introduces a notation for quoted triple patterns + (production [174]), + which is similar to the one defined for quoted triples in , + but accepting also variables. + These quoted triple patterns are allowed in both the subject position ([75], [81]) and the object position ([80], [87]) + of SPARQL-star triple patterns, as well as in the short-hand notation for querying collections ([102], [103]). +

              + +

              + Additionally, production [65] for values that can be used in the VALUES clause is extended to permit RDF-star triples as possible values, and the set of available built-in functions is extended with the five functions TRIPLE, SUBJECT, PREDICATE, OBJECT, and isTRIPLE ([121]) that are defined in . +

              + +

              As defined for all keywords in SPARQL, the names of the five new built-in functions added by SPARQL-star are matched in a case-insensitive manner.

              + +

              + Yet another extension is that both the Object and the ObjectPath productions now accept an optional annotation pattern after each object. The purpose of this feature is to enable users to use the same kind of annotation syntax that is supported in Turtle-star. As in the case of Turtle-star, the annotation syntax in SPARQL-star is purely syntactic sugar that has to be processed in accordance to the first expansion rule in . +

              + +

              + A restriction to the use of the annotation syntax in SPARQL-star exists that is not captured by the grammar as defined above: An AnnotationPatternPath may be added only to SPARQL-star property path patterns in which the property path expression is a PredicatePath (i.e., a single IRI) or the keyword a (as a short form for the IRI rdf:type). Hence, a query such as the following violates this restriction and, thus, is invalid. +

              + +
              +        
              +      
              + +

              + While annotation patterns must not be added to property path patterns other than the ones permitted by the restriction above, it is possible to use property path expressions within annotation patterns (but without violating the restriction in the case of nested annotation patterns). For instance, the following query is valid. +

              + +
              +        
              +      
              + +
              + +
              +

              Translation to the Algebra

              + +

              Based on the SPARQL grammar, the SPARQL specification defines the process of converting graph patterns and solution modifiers in a SPARQL query string into a SPARQL algebra expression [SPARQL11-QUERY, Section 18.2]. This process must be adjusted to consider the extended grammar introduced above. In the following, any step of the conversion process that requires adjustment is discussed.

              + +
              +

              Variable Scope

              + +

              As a basis of the translation, the SPARQL specification introduces a notion of in-scope variables. To cover the new syntax elements introduced in this notion MUST be extended as follows.

              + +
                +
              • A variable is in-scope of a BGP-star |B| if the variable occurs in |B|, which includes an occurrence in any quoted triple pattern in |B| (independent of the level of nesting).
              • +
              • A variable is in-scope of a property path pattern if the variable occurs in that pattern, which includes an occurrence in any quoted triple pattern in the pattern (independent of the level of nesting).
              • +
              +
              + +
              +

              Expand Syntax Forms

              + +

              The translation process starts with expanding abbreviations for IRIs and triple patterns [SPARQL11-QUERY, Section 18.2.2.1]. This step MUST be extended in three ways:

              + +
                +
              1. +

                Annotation patterns MUST be replaced by additional SPARQL-star triple patterns that have the annotated triple pattern as a quoted triple pattern in their subject position.

                + + + +
              2. +
              3. +

                Abbreviations for triple patterns with quoted triple patterns MUST be expanded as if each quoted triple pattern was a variable (or an RDF term).

                + + +
              4. +
              5. +

                Abbreviations for IRIs in all quoted triple patterns MUST be expanded.

                + + +
              6. +
              +
              + +
              +

              Translate Property Path Patterns

              + +

              The translation of property path patterns has to be adjusted because the extended grammar allows for SPARQL-star property path patterns whose subject or object is a SPARQL-star triple pattern.

              + +

              The translation as specified in the W3C specification distinguishes four cases. The first three of these cases do not require adjustment because they are taken care of either by recursion or by the adjusted translation of basic graph patterns (as defined in below). However, the fourth case MUST be adjusted as follows.

              + +

              Let |X| |P| |Y| be a string that corresponds to the fourth case in [SPARQL11-QUERY, Section 18.2.2.4]. Given the grammar introduced in , |X| and |Y| may be an RDF term, a variable, or a quoted triple pattern, respectively (and |P| is a property path expression). The string |X| |P| |Y| is translated to the algebra expression `Path`(X’,|P|,Y’) where X’ and Y’ are the result of calling a function named `Lift` for |X| and |Y|, respectively. For some input string |Z| (such as |X| or |Y|) that can be an RDF term, a variable, or a quoted triple pattern, the function `Lift` is defined recursively as follows:

              + +
                +
              1. If |Z| is a quoted triple pattern <<|S|,|P|,|O|>> then return the SPARQL-star triple pattern (`Lift`(|S|), |P|, `Lift`(|O|));
              2. +
              3. Otherwise, return |Z|.
              4. +
              + +
              + The purpose of this translation step is to convert any property path pattern as can be written based on the extended grammar for SPARQL-star (cf. ) into a SPARQL-star property path pattern as considered in the algebra. To this end, the function `Lift` translates every quoted triple pattern as can be written in the SPARQL-star syntax into a SPARQL-star triple pattern. +
              +
              + +
              +

              Translate Basic Graph Patterns

              + +

              After translating property path patterns, the translation process collects any adjacent triple patterns [...] to form a basic graph pattern [SPARQL11-QUERY, Section 18.2.2.5]. This step has to be adjusted because triple patterns in the extended syntax may have a quoted triple pattern in their subject position or in their object position (or in both). To ensure that every result of this step is a BGP-star, before adding a triple pattern to its corresponding collection, its subject and object MUST be replaced by the result of calling function `Lift` for the subject and the object, respectively.

              +
              + +
              + +
              +

              Function and Operator Definitions

              + +

              SPARQL introduces operators and functions that can be used in an expression of a FILTER clause, a BIND clause, or a SELECT clause (see Section 17.3 and Section 17.4 in [[SPARQL11-QUERY]]). While these operators and functions are defined to operate on RDF terms and query variables, for SPARQL-star they have to be defined to operate on RDF-star terms and query variables. To this end, when using these operators and functions in the context of SPARQL-star, their definitions as given in Section 17.4 of [[SPARQL11-QUERY]] are extended by assuming that any mention of RDF term as a data type for operands is understood to be the type of all RDF-star terms.

              + +

              SPARQL-star introduces five new functions that are defined as follows (where the data types RDF-star term and RDF-star triple capture all RDF-star terms and all RDF-star triples, +respectively).

              + +

              The modifications to functions and operators for triple terms are:

              + + +
              +

              TRIPLE

              + +

              + RDF-star triple   + TRIPLE + ( + RDF-star term + term1, + RDF-star term + term2, + RDF-star term + term3 + ) +

              + +

              If the 3-tuple (term1, term2, term3) is an RDF-star triple, the function returns this triple. If the 3-tuple is not an RDF-star triple, then the function raises an error.

              + +
              + +
              +

              SUBJECT

              + +

              + RDF-star term   + SUBJECT + ( + RDF-star triple + triple + ) +

              + +

              If triple is an RDF-star triple, the function returns the subject of this triple. Passing anything other than an RDF-star triple is an error.

              + +
              + +
              +

              PREDICATE

              + +

              + RDF-star term   + PREDICATE + ( + RDF-star triple + triple + ) +

              + +

              If triple is an RDF-star triple, the function returns the predicate of this triple. Passing anything other than an RDF-star triple is an error.

              + +
              + +
              +

              OBJECT

              + +

              + RDF-star term   + OBJECT + ( + RDF-star triple + triple + ) +

              + +

              If triple is an RDF-star triple, the function returns the object of this triple. Passing anything other than an RDF-star triple is an error.

              + +
              + +
              +

              isTRIPLE

              + +

              + xsd:boolean   + isTRIPLE + ( + RDF-star term + term + ) +

              + +

              Returns true if term is an RDF-star triple. Returns false otherwise.

              + +
              + +
              +

              Quoted Triple Expression

              +

              + RDF-star triple   + << + RDF-star term term1, + RDF-star term term2, + RDF-star term term3 + >> +

              +

              + A Quoted Triple Expression + <<S P O>>, where S, + P and O conform to + ExprVarOrTerm, + is evaluated as TRIPLE(S, P, O). +

              +
              + +
              +

              sameTerm

              +

              + xsd:boolean + sameTerm + (term, term) +

              + +

              The function sameTerm is extended to support term comparison for + RDF-star triple terms by defining: +

              +
              +

              + Extended Definition: sameTerm +

              +

              + If both arguments are RDF-star triple terms: +

              + sameTerm(<<S1 P1 O1>>, + <<S2 P2 O2>>) +

              +

              + is evaluated as +

              +

              + sameTerm(S1, S2) && sameTerm(P1, P2) && sameTerm(O1, O2) +

              +

              This is applied recursively.

              +

              If one argument is an RDF-star triple term and the other argument is not, + the result is false. +

              +
              +
              + +
              +

              sparql-compare

              + +

              The function sparql-compare is defined to support value-comparison + operators such as = and ORDER BY. +

              +

              + xsd:boolean   + sparql-compare + (RDF-star term, + RDF-star term) +

              +

              + The function sparql-compare returns `-1`, `0`, `1`, or throws an + error, based on the comparison of two + RDF-star terms. + When comparing two RDF-star triple terms, comparison is + by pairwise comparison of subject, then predicate, then object. +

              +
              +

              + Definition: + + sparql-compare + +

              +
                +
              • If neither A nor B is an RDF-star triple term, + compare by SPARQL 1.1 operators + <, =, >) + and return the comparison value (`-1`, `0`, `+1`) or throw an error + as defined by SPARQL 1.1.
                +
              • +
              • If either A or B is an RDF-star triple term, and the other is not + an RDF-star triple term, then error.
              • +
              • If sparql-compare(SUBJECT(A), SUBJECT(B)) != 0, + then return this value.
              • +
              • If sparql-compare(PREDICATE(A), PREDICATE(B)) != 0, + then return this value.
              • +
              • Return sparql-compare(OBJECT(A), OBJECT(B))
              • +
              +
              +
              + +
              +

              RDFterm-equal

              +

              + The function RDFterm-equal is the default dispatch for the + = operator. +

              +

              + This is extended to cover RDF-star terms so that it returns true + if term1 and term2 are both RDF-star triple + terms and RDFterm-equal is true + for pairwise comparison of the component RDF terms. +

              +
              +

              + Extended Definition: + RDFTerm-equal +

              +

              + If exactly one of the arguments is an RDF-star triple term, + return false. +

              +

              + If both arguments are RDF-star triple terms: +

              + RDFterm-equal(<<S1 P1 O1>>, + <<S2 P2 O2>>) +

              +

              + is evaluated as +

              +

              + RDFterm-equal(S1, S2) && RDFterm-equal(P1, P2) && RDFterm-equal(O1, O2) +

              +
              +

              + It produces an error if matching RDF terms in nested RDF triple terms when + both are literals but not the same RDF term. This is the same as the existing + RDFterm-equal. Operator mapping overrides this behavior. +

              +

              + The case of two RDF-star triple terms is covered by the operator dispatch mappings + and covers cases involving literals. +

              +
              + +
              +

              Operator Mappings

              + +

              New operator mappings are added for RDF-star triple terms for section + SPARQL 1.1 Query 17.3 Operator Mapping +

              + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
              SPARQL Binary Operators (SPARQL-star)
              OperatorType(A)Type(B)EvaluationResult type
              SPARQL-star Tests
              A = BRDF triple termRDF triple term + op:numeric-equal(sparql-compare(A, B), 0) + xsd:boolean
              A != BRDF triple termRDF triple term + fn:not(op:numeric-equal(sparql-compare(A, B), 0)) + xsd:boolean
              A < BRDF triple termRDF triple term + op:numeric-equal(sparql-compare(A, B), -1) + xsd:boolean
              A <= BRDF triple termRDF triple term + fn:not(op:numeric-equal(sparql-compare(A, B), 1)) + xsd:boolean
              A > BRDF triple termRDF triple term + op:numeric-equal(sparql-compare(A, B), 1) + xsd:boolean
              A >= B + RDF triple termRDF triple term + fn:not(op:numeric-equal(sparql-compare(A, B), -1)) + xsd:boolean
              +
              + +
              +

              Triple terms with ORDER BY

              + +

              There is an added item to the ordering of terms when they would not + otherwise be ordered. RDF-star triple terms are placed last (highest).

              +
                +
              1. (Lowest) no value assigned to the variable + or expression in this solution.
              2. +
              3. Blank nodes
              4. +
              5. IRIs
              6. +
              7. RDF literals
              8. +
              9. RDF-star triple terms
              10. +
              +

              + RDF-star triple terms are compared using the < operator. +

              +

              + While SPARQL-star does not define a total ordering of all possible RDF-star terms, + implementations should provide some ordering for ORDER BY + that does not change between queries if the data has not changed. +

              +
              +
              + +
              +

              Examples and Discussion

              + +

              By the evaluation semantics of SPARQL-star as defined in , the five new built-in functions defined above can be used in exactly the same manner as the functions defined in the SPARQL 1.1 spec. For instance, the following SPARQL-star query retrieves every asserted triple that is both contained in the default graph of the queried RDF-star dataset and has a quoted triple as its subject.

              + +
              +        
              +      
              + +

              Instead of accessing the subject of the triples in the FILTER after the BIND clause, as was done in the previous query, a semantically equivalent query may apply the FILTER directly on the variable ?s, as follows:

              + +
              +        
              +      
              + +

              While the triples that the previous example queries bind to variable ?t occur in the queried data, the TRIPLE function can be used to construct triples that may not be in the data. For instance, the following query uses the subject of each asserted triple in the default graph of the queried RDF-star dataset to construct another triple, and bind it to the variable ?t. Notice that the result of this query contains as many SPARQL-star solution mappings as there are asserted triples in the queried graph, and there may be duplicates in the result if multiple asserted triples have the same subject.

              + +
              +        
              +      
              + +

              There are cases where the effects of using the new TRIPLE function are not immediately obvious just from its definition, particularly when considering the interplay of this function with the BNODE function when used within GRAPH clauses. Some of these cases are discussed below.

              + +

              Consider the following SPARQL-star query.

              + +
              +        
              +      
              + +

              When evaluated over an RDF-star dataset that contains |n| named graphs, where |n|>0, the GRAPH clause results in one SPARQL-star solution mapping per named graph. The SELECT clause collapses these |n| mappings into a single mapping that is defined for the six variables introduced in the SELECT clause. (If |n|=0, the query result is the empty set.) Each of these six variables is mapped to an integer-typed literal with values as follows. For each of ?t1Count, ?t2Count, and ?t3Count, the value is |n|, because the variables ?t1, ?t2, and ?t3 are bound in each of the |n| solution mappings produced for the GRAPH clause. For the variable ?t1DistCount, the value is also |n|, because the BIND clauses are evaluated |n| times (once for each named graph) and the subexpression BNODE() always creates a different new blank node; thus, the triples created for variable ?t1 are all different from one another. This is also the case if the BNODE function is used with an argument; i.e., the value of ?t2DistCount is |n| too. In contrast, the variable ?t3 is mapped to the same triple within each evaluation of the third BIND clause; thus, the value for ?t3DistCount is 1.

              + +

              Notice that the BNODE function has to be used to create a blank node; simply writing a blank node directly in an expression is not permitted.

              + +

              Notice as well that the preceding query is special in two ways: its GRAPH clause does not actually consider the content of the named graphs; and the expressions in the BIND clauses do not contain variables. In contrast, the GRAPH clause and the BIND clauses in the following query do.

              + +
              +        
              +      
              + +

              For every RDF-star dataset with |n|>0 named graphs, the result of this query consists of a single SPARQL-star solution mapping that is defined for the three variables introduced in the SELECT clause. The value of ?t1Count is the number of named graphs in the queried dataset that contain a triple of the form (|u|, rdf:type, rdfg:Graph) such that |u| is the name of the named graph in the dataset. The value of ?t2Count is always 0 (zero), because evaluating the expression of the second BIND clause results in an error, because the variable ?x is not bound in the scope of this evaluation. As a side note, evaluating the expression of the first BIND clause would also result in an error, if the variable ?g was not mentioned inside the GRAPH clause (e.g., if the given triple pattern was not there).

              + +
              + +
              +

              Evaluation Semantics

              + +

              The SPARQL specification defines a function eval(|D|(|G|), algebra expression) as the evaluation of an algebra expression with respect to a dataset |D| having active graph |G| [SPARQL11-QUERY, Section 18.6]. Recall that the dataset |D| in the context of SPARQL-star is an RDF-star dataset and, thus, the active graph |G| is an RDF-star graph, and so is any other graph in dataset |D|. The definition of the eval function is recursive; the base case of this definition for SPARQL-star are given as follows:

              + +
                +
              • For every BGP-star |B|, eval(|D|(|G|), |B|) is a multiset Ω that consists of all SPARQL-star solution mappings that are a solution for the BGP-star |B| over |G|. For every such mapping μ, card[Ω](μ) is the number of distinct RDF-star instance mappings σ such that dom(σ) is equivalent to the set of blank nodes in |B| and μ(σ(|B|)) is a subgraph of |G|. (For any SPARQL-star solution mapping μ' that is not a solution for |B| over |G|, we have that card[Ω](μ')=0; i.e., μ' is not in Ω.)
              • +
              + +

              For any other algebra expression, the SPARQL specification defines algebra operators [[SPARQL11-QUERY]]. These definitions can be extended naturally to operate over multisets of SPARQL-star solution mappings (instead of ordinary solution mappings). Given this extension, the recursive steps of the definition of the eval function for SPARQL-star are the same as in the SPARQL specification.

              +
              + +
              +

              Query Result Formats

              + +

              In SPARQL, queries can take four forms: SELECT, CONSTRUCT, DESCRIBE, and ASK - see SPARQL1.1 Query, Section 16 [[SPARQL11-QUERY]]. The first of these returns a sequence of solution mappings that contain variable bindings. The second and third both return an RDF graph, and the last returns a boolean value. +

              +

              The result of the ASK query form is not changed by the introduction of RDF-star, and the result of the CONSTRUCT and DESCRIBE forms can be represented by Turtle-star. However, since the SELECT form deals with returning individual RDF terms, the specific serialization formats for representing such query results need to be extended so that the new quoted triple RDF term can be represented. In this section, we propose extensions for the two most common formats for this purpose: [[[SPARQL11-RESULTS-JSON]]], and [[[RDF-SPARQL-XMLRES]]].

              + +
              +

              SPARQL-star Query Results JSON Format

              +

              + The result of a SPARQL SELECT query is serialized in JSON as defined in [[[SPARQL11-RESULTS-JSON]]], which specifies a JSON representation of variable bindings to RDF terms (see [sparql11-results-json, Section 3.2]). To accommodate the new RDF term for quoted triples that RDF-star introduces, the table of RDF term JSON representations in sparql11-results-json, Section 3.2.2 is extended with the following entry: +

              +
              +
              A quoted triple with subject RDF term `S`, predicate RDF term `P` and object RDF term `O`
              +
              +
              +                {
              +                  "type": "triple",
              +                  "value": {
              +                     "subject": S,
              +                     "predicate": P,
              +                     "object": O
              +                  }
              +                }
              +              
              + where `S`, `P` and `O` are encoded using the same format, recursively. +
              +
              + + +
              + +
              +

              SPARQL-star Query Results XML Format

              +

              + The result of a SPARQL SELECT query is serialized in XML as defined in [[[RDF-SPARQL-XMLRES]]]. This format proposes an XML representation of variable bindings to RDF terms. +

              +

              To accommodate the new RDF term for quoted triples that RDF-star introduces, the list of RDF terms and their XML representations in [RDF-SPARQL-XMLRES Section 2.3.1] is extended as follows: +

              +

              +

              +
              A quoted triple with subject term `S`, predicate term `P`, and object term `O`
              +
              +
              +              
              +            
              + where `S`, `P` and `O` are encoded recursively, using the same format, without the enclosing `<binding>` tag. +
              +
              + + + + +
              + +
              + +
              + +
              +

              SPARQL-star Update

              + +

              This section specifies SPARQL-star Update, an update language for RDF-star. This language extends SPARQL Update [[SPARQL11-UPDATE]], the update language for RDF, by adding RDF-star-specific features and semantics.

              + +
              +

              Informal Description

              + +

              While SPARQL Update operates over a graph store that consists of RDF graphs, SPARQL-star Update extends the notion of graph store to contain RDF-star graphs instead of RDF graphs. That is, a graph store in the context of SPARQL-star Update contains one (unnamed) slot holding an RDF-star graph, referred to as the default graph, and zero or more named slots holding other RDF-star graphs, referred to as named graphs. Then, all graph management operations in SPARQL Update (CREATE, DROP, COPY, MOVE, ADD) carry over directly to SPARQL-star Update with the only difference being that in SPARQL-star Update these operations manage RDF-star graphs. For instance, the CREATE operation in SPARQL-star Update creates an RDF-star graph rather than a pure RDF graph. Similarly, the graph update operations LOAD and CLEAR in SPARQL-star Update operate with RDF-star graphs in the same way as their SPARQL Update counterparts operate with RDF graphs.

              + +

              The only operations that SPARQL-star Update actually extends are the graph update operations INSERT DATA, DELETE DATA, and DELETE/INSERT. This section describes these extensions informally. While this description focuses mainly on updates to the default graph, the operations can also be applied to the named graphs.

              + +
              +

              INSERT DATA

              + +

              The INSERT DATA operation can be used to add a given set of triples into the graph store. In the context of SPARQL-star Update, these triples may be RDF-star triples. As an example, consider the following INSERT DATA operation.

              + +
              +          
              +        
              + +

              Suppose this INSERT DATA operation is executed over a graph store with an empty default graph. After executing this operation, the default graph contains the given (nested) RDF-star triple. Now, it is possible to query for this triple. For instance, the following SPARQL-star query returns a single solution mapping in which the variables ?p and ?a are mapped to the IRI :alice and the literal 23, respectively.

              + +
              +          
              +        
              + +

              Notice that inserting a nested triple does not automatically also insert its quoted triple(s) as asserted triple(s) into the graph. Hence, in the previous example, after executing the given INSERT DATA operation, the default graph does not contain the triple :bob :age 23. In other words, a query such as the following would have an empty result.

              + +
              +          
              +        
              + +

              For a quoted triple to be present in the graph as an asserted triple, it needs to be inserted as such. For instance, the INSERT DATA operation in the example above may be modified as follows in order to insert not only the nested triple but also the triple :bob :age 23.

              + +
              +          
              +        
              + +
              + +
              +

              DELETE DATA

              + +

              The DELETE DATA operation can be used to remove a given set of triples from the graph store. In the context of SPARQL-star Update, this may include removing nested RDF-star triples as demonstrated in the following example.

              + +
              +          
              +        
              + +

              After executing this DELETE DATA operation over a graph store with a default graph that contains the given nested triple, the graph will not contain this triple any longer. If the graph did not contain that nested triple in the first place, the graph will remain unchanged by the given DELETE DATA operation.

              + +

              Notice that deleting triples by using the DELETE DATA operation does not affect any other triples in the corresponding graphs. For instance, for a default graph that contains the triple :bob :age 23 as an asserted triple, the DELETE DATA operation given above does not delete this asserted triple. In contrast, the following operation would delete this asserted triple but it would not delete any nested triple that contains the given triple as a quoted triple.

              + +
              +          
              +        
              + +
              + +
              +

              DELETE/INSERT

              + +

              The DELETE/INSERT operation can be used to remove or add triples based on variable bindings obtained by evaluating a given WHERE clause. As an example, the following DELETE/INSERT operation replaces all nested triples in which :alice is the subject by nested triples in which :carol is the subject.

              + +
              +          
              +        
              + +

              As in SPARQL Update, in SPARQL-star Update it is possible to use variations of the DELETE/INSERT operations in which either the DELETE clause or the INSERT clause are omitted.

              + +

              When removing triples via the DELETE clause (irrespective of whether the INSERT clause is omitted or not), the effects with respect to nested triples must be the same as described above for the DELETE DATA operation; i.e., only the triples that are explicitly identified to be deleted are deleted. Similarly, inserting triples via the INSERT clause has the same effects as described above for the INSERT DATA operation; i.e., inserting nested triples does not automatically also insert their quoted triples as asserted triples into the graph. Of course, it is possible to request such inserts explicitly as demonstrated in the following example.

              + +
              +          
              +        
              + +

              While all SPARQL-star Update examples above focus only on the default graph of a graph store, SPARQL-star Update can also be used to update the named graphs of a graph store, which works in exactly the same way as in SPARQL Update. As a possible example consider the following INSERT operation which retrieves all quoted triples found in nested triples in the default graph and inserts them as asserted triples into the named graph with IRI :graph2.

              + +
              +          
              +        
              + +
              + +
              + + + +
              +

              Grammar

              + +

              SPARQL-star Update is an extension of the SPARQL Update language [[SPARQL11-UPDATE]]. As mentioned in SPARQL 1.1 Update, Appendix C [[SPARQL11-UPDATE]], the grammar of the latter is provided as part of the SPARQL 1.1 Query grammar. Similarly, the grammar of SPARQL-star Update is provided as part of the grammar of the SPARQL-star query language, which is defined by the SPARQL 1.1 Query grammar with the extensions specified in . As a result of these extensions, the production rules QuadData and QuadPattern, which are used in the definition of SPARQL Update [[SPARQL11-UPDATE]], are extended to capture nested triples and nested triple patterns as demonstrated in the examples above.

              + +
              + +
              +

              Semantics

              + +

              The semantics of SPARQL-star Update operations can also be defined by a simple extension of the formalization of SPARQL Update [[SPARQL11-UPDATE]]. This extension assumes that any mention of "RDF triple" or "triple" in the formalization of SPARQL Update is understood as an RDF-star triple. Similarly, "RDF graph" and "solution mapping" are understood as RDF-star graph and SPARQL-star solution mapping, respectively. Any mention of the "evaluation function eval()" is understood as the eval function for SPARQL-star as defined in .

              + +
              + +
              + +
              +

              RDF-star Semantics

              + +

              In this section, we provide a model-theoretic semantics for RDF-star, based on the one defined in [[[RDF11-MT]]] [[RDF11-MT]]. More precisely, we define a mapping from RDF-star's abstract syntax into standard RDF's abstract syntax, and define the semantics of RDF-star graphs in terms of the semantics of the mapped RDF graphs.

              + +

              In the following, we will use abbreviated IRIs using the prefix `unstar:` which is an alias for the namespace `https://w3c.github.io/rdf-star/unstar#`.

              + +

              We also introduce a number of definitions specific to RDF-star, which rely on the following notions, defined in [[[RDF11-CONCEPTS]]] [[RDF11-CONCEPTS]] and [[[RDF11-MT]]] [[RDF11-MT]]: + datatype, + lexical form, + ill-typed, + merging, + satisfiability, + unsatisfiability, + entailment, + and equivalence. +

              + +
              +

              Mapping RDF-star abstract syntax to RDF

              + +

              We define a mapping |L| that maps any IRI or literal |t| to a literal with:

              + + +

              Given an RDF-star graph |G|, the following steps define the unstar mapping, which transform |G| into an RDF graph that we call unstar(|G|).

              + +
              +
                +
              1. For each IRI |i| in the constituents of |G| starting with `https://w3c.github.io/rdf-star/unstar#`:
                  +
                1. Mint a new IRI |j| by appending an underscore (`_`) to |i|.
                2. +
                3. Replace with |j| all occurrences of |i| in the subject, predicate, or object position of an asserted or quoted triple of |G|.
                4. +
              2. +
              3. While |G| contains quoted triples:
                  +
                1. Pick an RDF-star triple (|s|, |p|, |o|) in the constituents of |G| such that neither |s| nor |o| is a quoted triple.
                2. +
                3. Mint a fresh blank node |b| (i.e., such that |b| is not in the constituents of |G|).
                4. +
                5. Replace with |b| all occurrences of (|s|, |p|, |o|) in the subject or object position of an asserted or quoted triple of |G|.
                6. +
                7. Add the following asserted triples to |G|:
                    +
                  • (|b|, `unstar:subject`,`   `|s|)
                  • +
                  • (|b|, `unstar:predicate`,` `|p|)
                  • +
                  • (|b|, `unstar:object`,`    `|o|) unless |o| is an ill-typed literal
                  • +
                  • (|b|, `unstar:subjectLexical`,`   `|L|(|s|)) unless |s| is a blank node
                  • +
                  • (|b|, `unstar:predicateLexical`,` `|L|(|p|))
                  • +
                  • (|b|, `unstar:objectLexical`,`    `|L|(|o|)) unless |o| is a blank node
                  • +
                8. +
              4. +
              +
              +

              After these steps, unstar(|G|) is an RDF graph, as it contains no quoted triples. Note that if |G| contains no quoted triple and no IRI in the `unstar:` namespace, then unstar(|G|) = |G|.

              + +
              + +
              +

              Entailment of RDF-star graphs

              + +

              Following [[[RDF11-MT]]], we define the notions of satisfiability and entailment for RDF-star graphs. Given two RDF-star graphs |G| and |H|:

              +

              + +

              It is easy to see that, in the special case of RDF graphs |G| and |H| (i.e. RDF-star graphs containing no quoted triple), |G| is star-satisfiable if and only if |G| is simply satisfiable, and |G| star-entails |H| if and only if |G| simply entails |H|. This is trivially true if |G| and |H| do not contain any `unstar:` IRI (in which case they are left unchanged by the unstar mapping). But this is also true if they do contain such IRIs (as the renaming performed by the unstar mapping has no significant impact on the semantic relationships between the two graphs). Star-entailment can therefore be considered as a natural extension of simple entailment to RDF-star graphs.

              + +

              Other notions of satisfiability and entailment, such as RDF entailment or RDFS entailment, can be extended in the same way for RDF-star graphs.

              +
              + +
              +

              Merging RDF-star graphs

              + +

              [[[RDF11-MT]]] [[RDF11-MT]] defines the merging of two or more RDF graphs as "[taking their] union after forcing any shared blank nodes, which occur in more than one graph, to be distinct in each graph." Note that, in the case of RDF-star graphs, any blank node in the constituent terms of that graph is governed by the definition above, not only those in the subject or object position of some asserted triple.

              + +
              +        
              +      
              + +
              + + +
              +

              Remarks

              + +
              +

              Implementing the RDF-star semantics

              + +

              It is important to notice that the definitions given above for satisfiability and entailment of RDF-star graphs do not mandate that implementations actually transform RDF-star graphs using the unstar mapping defined above. It should be possible to implement the semantics by directly handling RDF-star's abstract syntax.

              + +
              + +
              +

              Combining RDF-star graphs

              + +

              Care must be taken when implementations that rely on the unstar mapping combine the resulting RDF graphs through union or merge. Given two RDF-star graphs |G| and |H|, it may be the case that unstar(|G| ∪ |H|) ≠ unstar(|G|) ∪ unstar(|H|).

              + +

              In particular, if |G| and |H| contain the same quoted triple, this triple will be mapped to a single blank node in unstar(|G| ∪ |H|), but in two potentially different blank nodes in unstar(|G|) ∪ unstar(|H|). These blank nodes will need to be unified in order to reconstruct unstar(|G| ∪ |H|).

              + +

              Conversely, nothing in the definition of the unstar mapping prevents it from generating the same blank node |b| for a quoted triple of |G|, and for a different quoted triple of |H| (provided that |b| is not present in either |G| nor |H|). In that case, not only would unstar(|G|) ∪ unstar(|H|) be different from unstar(|G| ∪ |H|), but it would lose some information by mixing the descriptions of the two quoted triples.

              + +
              + +
              +

              Other uses of the unstar mapping

              + +

              Since the unstar mapping transforms any RDF-star graph into a standard ("non-star") RDF graph, it might be tempting to use this mapping for conveying RDF-star graphs to legacy RDF systems. However, this has a number of caveats.

              + +

              First, the unstar mapping alters the semantics of the graph: in general, a graph |G| is not equivalent to its "unstarred" version unstar(|G|), even if |G| is a standard RDF graph containing no quoted triples. (More precisely, they are equivalent only if |G| contains no quoted triples and no IRIs from the `unstar:` namespace.)

              + +

              Second, when a legacy RDF system communicates an RDF graph to an RDF-star-aware system, there is no means by which the latter can determine with certainty whether the graph is the result of applying the unstar mapping, and thus needs to be transformed back. (The presence of `unstar:` IRIs in the graph can be used as a hint, but such IRIs can also be used independently of the mapping.) Additional metadata should therefore be attached to unstarred graphs, so that RDF-star systems know whether or not they need to apply the inverse transformation of unstar.

              + +

              Finally, legacy RDF systems may alter unstarred graphs in ways that prevent their transformation back to the original RDF-star graph. For example, it has been pointed out above how combining several unstarred graphs may not yield the expected result. Another example is the removal of some arcs, such that a quoted triple is not completely described anymore, and can not be reconstructed.

              + +
              + +
              +

              Referential opacity

              + +

              The way the unstar mapping is defined, the denotation of a quoted triple does not only depend on the denotation of its component terms, but also on their syntactical form (for IRIs and literals). This behavior is referred to as referential opacity. A consequence is that two different triples, that would be semantically equivalent if asserted, are not automatically considered to denote the same thing when quoted. In the example below, assuming D-entailment: while `"104232"^^xsd:nonNegativeInteger` and `"000104232"^^xsd:nonNegativeInteger` denote the same thing (namely, the number 104232), the two quoted triples are allowed to have different denotations, and so the entailment does not hold.

              + +
              +        
              +        
              + +

              Similarly, in the example below and under OWL entailment [[OWL2-Overview]], while `:superman` and `:clark` are inferred to denote one and the same person (because of the `owl:sameAs` relationship between them), the two quoted triples are not automatically considered to denote the same thing.

              + +
              +        
              +        
              + +

              Note that this may lead to counter-intuitive results when the annotation syntax is used, as illustrated in the example below.

              + +
              +        
              +        
              + +
              + +
              +

              Selective referential transparency

              + +

              Referencial opacity is well suited for use-cases where the syntactical form of the annotated statements may be significant (like annotating statements from other graphs or annotating commit deltas). On the other hand, other use-cases would expect some degree of referential transparency. Consider the case of attributed/evidenced triples. The annotation is understood to be about the fact asserted by the triple rather than the triple itself. In this use case, one might then expect more inferences than provided by the base semantics. Consider the following example.

              + +
              +        
              +        
              + +

              One could argue that the candidate entailment #1 is desirable because the property `:measuredOn` is understood to be about the statement made by the subject triple (that statement was true on the given date, regardless of its RDF expression, in this case using an object value equivalent to `104232`). On the other hand, the candidate entailment #2 may be considered not desirable because the predicate `:source` is about the triple itself (that specific triple was parsed from the given Turtle file).

              + +

              In Section , we introduce the notion of transparency-enabling property (TEP), for selectively enabling this kind of entailment on specific properties. The basis of the idea is that each such property |p| is identified by adding to the RDF-star graph a triple of the form (|p|, `rdf:type`, `rdf-star:TransparencyEnablingProperty`); i.e., for the previous example, this triple would be (`:measuredOn`, `rdf:type`, `rdf-star:TransparencyEnablingProperty`). + This would make candidate entailment #1 above valid. The semantics of such TEPs is formally defined in Section .

              + +

              Notice that enabling referential transparency based on such TEPs is only local to the RDF-star graph(s) in which the property is stated to be a TEP (or where this statement can be inferred as per the entailment regime considered). In other words, for every graph |G| in which a property is not stated to be transparency enabling, all quoted triples appearing in |G| as subject or object of that property are stilled considered as referentially opaque, even if there may exist some other graph in which the property is stated to be transparency enabling.

              + +

              This proposal for TEPs makes no distinction regarding the position (subject or object) of the quoted triples. The group did consider a finer-grained alternative, where selective transparency could also be enabled only for the subjects (resp. objects) of the TEP. This was however ruled out as overly complex for a limited added value.

              +
              + +
              +

              Other alternatives to referential opacity

              + +

              Given the potential drawbacks of the referential opacity provided by the current semantics, as described in the beginning of Section  above, the group has considered other alternative semantics. No clear consensus was reached, however, to decide whether these alternatives should be used as a replacement, or as a semantic extension, of the current semantics.

              + +

              A fully referentially transparent semantics can be achieved by changing the step 2.4 of the unstar mapping algorithm as follows:

              + +
                +
              • Add the following asserted triples to |G|: +
                  +
                • (|b|, `unstar:subject`,`   `|s|)
                • +
                • (|b|, `unstar:predicate`,` `|p|)
                • +
                • (|b|, `unstar:object`,`    `|o|)
                • +
                +
              • +
              + +

              In the examples above (, , , ), all the entailments would now hold automatically. This could be a problem in some use-cases, as such inferences could then not be cancelled, given the monotonic semantics of RDF.

              + +

              An intermediate alternative would be to make quoted triples referentially opaque for IRIs only, keeping it transparent for literals (and for blank nodes, as is already the case). This can be achieved by changing the step 2.4 of the unstar mapping algorithm as follows:

              + +
                +
              • Add the following asserted triples to |G|: +
                  +
                • (|b|, `unstar:subject`,`   `|s|)
                • +
                • (|b|, `unstar:predicate`,` `|p|)
                • +
                • (|b|, `unstar:object`,`    `|o|)
                • +
                • (|b|, `unstar:subjectLexical`,`   `|L|(|s|)) if |s| is an IRI
                • +
                • (|b|, `unstar:predicateLexical`,` `|L|(|p|))
                • +
                • (|b|, `unstar:objectLexical`,`    `|L|(|o|)) if |o| is an IRI
                • +
                +
              • +
              + +
              Other design choices for the semantics have also been discussed by the community group; these have been summarized in a Github issue.
              + +
              + +
              + +
              + +
              +

              RDF-star vocabulary

              + +

              In this section, we propose a minimal vocabulary that can be useful when working with RDF-star, especially when describing other vocabularies meant to be used with RDF-star triples and graphs.

              + +
              +

              Core vocabulary

              + +

              In this section we define IRIs for the concepts defined in other normative parts of this document.

              + +
              +
              `rdf-star:Triple`
              +
              This term identifies the class of all RDF-star triples. It is expected to serve, among other things, as the `rdfs:domain` or `rdfs:range` of properties meant to apply to quoted triples.
              + +
              `rdf-star:Graph`
              +
              This term identifies the class of all RDF-star graphs.
              + +
              `rdf-star:Source`
              +
              This term identifies the class of all RDF-star sources, an extension of the notion of RDF source: a persistent yet mutable source or container of RDF-star graphs.
              + +
              `rdf-star:SPARQLStarQuery`
              +
              This term identifies the extension of the SPARQL query language defined in Section . It is expected to serve as the value of `sd:supportedLanguage` in SPARQL service descriptions [[SPARQL11-SERVICE-DESCRIPTION]].
              + +
              `rdf-star:SPARQLStarUpdate`
              +
              This term identifies the extension of the SPARQL update language defined in Section . It is expected to value as the domain of `sd:supportedLanguage` in SPARQL service descriptions [[SPARQL11-SERVICE-DESCRIPTION]].
              +
              + +

              Below is a Turtle description of that vocabulary.

              + +
              +
              ## RDF-star core vocabulary
              +PREFIX rdf:       <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
              +PREFIX rdfs:      <http://www.w3.org/2000/01/rdf-schema#>
              +PREFIX rdf-star:  <http://www.w3.org/ns/rdf-star#>
              +PREFIX sd:        <http://www.w3.org/ns/sparql-service-description#>
              +
              +rdf-star:Triple      a rdfs:Class ;
              +    rdfs:isDefinedBy   <http://www.w3.org/ns/rdf-star#> ;
              +    rdfs:label         "RDF-star Triple" ;
              +    rdfs:comment       "The class of RDF-star triples." ;
              +    rdfs:subClassOf    rdfs:Resource .
              +
              +rdf-star:Graph       a rdfs:Class ;
              +    rdfs:isDefinedBy   <http://www.w3.org/ns/rdf-star#> ;
              +    rdfs:label         "RDF-star Graph" ;
              +    rdfs:comment       "The class of RDF-star graphs." ;
              +    rdfs:subClassOf    rdfs:Resource .
              +
              +rdf-star:Source      a rdfs:Class ;
              +    rdfs:isDefinedBy   <http://www.w3.org/ns/rdf-star#> ;
              +    rdfs:label         "RDF-star Source" ;
              +    rdfs:seeAlso       <https://www.w3.org/TR/rdf11-concepts/#h3_change-over-time> ;
              +    rdfs:comment       "The class of RDF-star sources." ;
              +    rdfs:subClassOf    rdfs:Resource .
              +
              +rdf-star:SPARQLStarQuery a sd:Language ;
              +    rdfs:isDefinedBy   <http://www.w3.org/ns/rdf-star#> ;
              +    rdfs:label         "SPARQL-star" ;
              +    rdfs:comment       "The SPARQL-star query language" .
              +
              +rdf-star:SPARQLStarUpdate a sd:Language ;
              +    rdfs:isDefinedBy   <http://www.w3.org/ns/rdf-star#> ;
              +    rdfs:label         "SPARQL-star Update" ;
              +    rdfs:comment       "The SPARQL-star update language" .
              +        
              +
              +
              + +
              +

              Extended vocabulary

              + +

              In this section we define IRIs for the concepts defined in other non-normative parts of this document.

              + +
              +
              `rdf-star:TransparencyEnablingProperty`
              +
              A special kind of property that, when applied to a quoted triple, also holds for any semantically equivalent triple, as discussed in .
              +
              + +

              Below is a Turtle description of that vocabulary.

              + +
              +
              ## RDF-star extended vocabulary
              +PREFIX rdf:       <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
              +PREFIX rdfs:      <http://www.w3.org/2000/01/rdf-schema#>
              +PREFIX rdf-star:  <http://www.w3.org/ns/rdf-star#>
              +
              +rdf-star:TransparencyEnablingProperty a rdfs:Class ;
              +    rdfs:isDefinedBy   <http://www.w3.org/ns/rdf-star#> ;
              +    rdfs:label         "RDF-star Source" ;
              +    rdfs:comment       "The class of transparency-enabling properties." ;
              +    rdfs:subClassOf    rdf:Property .
              +        
              +
              +
              + +
              +

              Vocabulary semantics

              + +

              We now describe a semantic extension of RDF-star, embedding the inherent semantics of the RDF-star vocabulary (RSV) described above (core and extended). A simple RSV-interpretation is a simple interpretation |I| that satisfies the following additional conditions:

              + +
                +
              1. Ensure that all quoted triples in this interpretations are instances of `rdf-star:Triple`.
                  +
                • For all |t|, |x| in the domain IR such that either
                    +
                  • (|t|, |x|) ∈ IEXT(IS(`unstar:subject`)), +
                  • (|t|, |x|) ∈ IEXT(IS(`unstar:predicate`)), +
                  • (|t|, |x|) ∈ IEXT(IS(`unstar:object`)), +
                  • (|t|, |x|) ∈ IEXT(IS(`unstar:subjectLexical`)), +
                  • (|t|, |x|) ∈ IEXT(IS(`unstar:predicateLexical`)), +
                  • (|t|, |x|) ∈ IEXT(IS(`unstar:objectLexical`)), +
                  +
                • then (|t|, IS(`rdf-star:Triple`)) must be an element of IEXT(IS(`rdf:type`)). +
                + + +
              2. Ensure that, for all quoted triples in this interpretation, all "equivalent" triples also exist in the interpretation.
                  +
                • For all |t|, |s|, |p|, |o| in the domain IR such that
                    +
                  • (|t|, |s|) ∈ IEXT(IS(`unstar:subject`)), +
                  • (|t|, |p|) ∈ IEXT(IS(`unstar:predicate`)), +
                  • (|t|, |o|) ∈ IEXT(IS(`unstar:object`)), +
                  +
                • and for all terms |s|', |p|', and |o|' such that
                    +
                  • |I|(|s|') = |s|, +
                  • |I|(|p|') = |p|, +
                  • |I|(|o|') = |o|, +
                  +
                • there must exist |t|' in IR such that
                    +
                  • (|t|', |s|) ∈ IEXT(IS(`unstar:subject`)), +
                  • (|t|', |p|) ∈ IEXT(IS(`unstar:predicate`)), +
                  • (|t|', |o|) ∈ IEXT(IS(`unstar:object`)), +
                  • (|t|', |I|(L(|s|'))) ∈ IEXT(IS(`unstar:subjectLexical`)), +
                  • (|t|', |I|(L(|p|'))) ∈ IEXT(IS(`unstar:predicateLexical`)), and +
                  • (|t|', |I|(L(|o|'))) ∈ IEXT(IS(`unstar:objectLexical`)). +
                  +
                + +
              3. Ensure that TEPs that hold for a triple also hold for all "equivalent" triples. +
                • For all |p| such that (|p|,IS(`rdf-star:TransparencyEnablingProperty`)) ∈ IEXT(IS(`rdf:type`)) +
                • then |p| must be an element of IP, and
                    + +
                  • For all |t|, |u|, |s|', |p|', |o|', |t|' in IR such that
                      +
                    • (|t|, |u|) ∈ IEXT(`p`) +
                    • (|t|, |s|') ∈ IEXT(IS(`unstar:subject`)), +
                    • (|t|, |p|') ∈ IEXT(IS(`unstar:predicate`)), +
                    • (|t|, |o|') ∈ IEXT(IS(`unstar:object`)), +
                    • (|t|', |s|') ∈ IEXT(IS(`unstar:subject`)), +
                    • (|t|', |p|') ∈ IEXT(IS(`unstar:predicate`)), +
                    • (|t|', |o|') ∈ IEXT(IS(`unstar:object`)) +
                    + then (|t|', |u|) must also be an element of IEXT(|p|). + +
                  • For all |t|, |u|, |s|', |p|', |o|', |t|' in IR such that
                      +
                    • (|u|, |t|) ∈ IEXT(`p`) +
                    • (|t|, |s|') ∈ IEXT(IS(`unstar:subject`)), +
                    • (|t|, |p|') ∈ IEXT(IS(`unstar:predicate`)), +
                    • (|t|, |o|') ∈ IEXT(IS(`unstar:object`)), +
                    • (|t|', |s|') ∈ IEXT(IS(`unstar:subject`)), +
                    • (|t|', |p|') ∈ IEXT(IS(`unstar:predicate`)), +
                    • (|t|', |o|') ∈ IEXT(IS(`unstar:object`)) +
                    + then (|u|, |t|') must also be an element of IEXT(|p|). +
                  +
                +
              + +

              Given two RDF-star graphs |G| and |H|, and following standard terminology, we say that a simple RSV-interpretation |I| satisfies |G| if |I|(|G|) = true, and that |G| is (simply) RSV-satisfiable if a simple RSV-interpretation exists that satisfies |G|; otherwise, |G| is (simply) RSV-unsatisfiable. We say that |G| simply RSV-entails |H| if every simple RSV-interpretation that satisfies |G| also satisfies |H|. If |G| and |H| each RSV-entail the other, they are RSV-equivalent.

              + +

              RSV-entailment is defined here as an extension of simple entailment, but other entailment regimes (such as RDF entailment or RDFS entailment) can be extended in the exact same way (i.e., by extending their respective notion of interpretation with the aforementioned conditions).

              + +

              Some terms of the RDF-star vocabulary have no associated constraint in RSV-interpretations (for instance, `rdf-star:Graph`). The reason is that the intended meaning of these terms leads to no particular inference with this vocabulary.

              + +
              + +
              + This issue discusses the relevance of introducing a standard property to link a quoted triple to its occurrences (as illustrated in ), as well as other related properties and classes. +
              +
              + +
              +

              IANA Considerations

              + +

              In , we have proposed extensions to four existing media types, namely `text/turtle` [[TURTLE]], `application/trig` [[TRIG]], `application/n-triples` [[N-TRIPLES]] and `application/n-quads` [[N-QUADS]]. In , we have proposed extensions to three more existing media types, namely `application/sparql-query` [[SPARQL11-QUERY]], `application/sparql-results+json` [[SPARQL11-RESULTS-JSON]], and `application/sparql-result+xml` [[RDF-SPARQL-XMLRES]]. While the RDF-DEV Community Group has no authority to officially update these media-types, we hope that a future working group with such authority will consider doing so, and include extensions proposed in this report.

              + +

              In the meantime, implementers of RDF-star are faced with a dilemma: use the standard media-type identifiers as if their definition had been already updated (optimistic approach); or make it explicit that they are prone to produce or consume quoted triples (pessimistic approach), perhaps by using a different temporary media-type, or custom HTTP headers.

              + +

              The optimistic approach raises the risk of breaking the expectations of other applications that are not RDF-star-aware. For example, if a SPARQL-star endpoint responds to a CONSTRUCT query with the `text/turtle` media-type, and includes a quoted triple in the response, a legacy client will fail to parse that response. On the other hand, if the same server applies the pessimistic approach, it may simply reject any query requiring `text/turtle`, just in case the result contain quoted triples. Note that it is not always feasible for the server to decide beforehand whether the result is plain Turtle or Turtle-star, because the result is often produced in a streamed manner, after the headers containing the media-type have been sent to the client.

              + +

              Another problem with the pessimistic approach is that "temporary" media-types are known to actually become permanent. Old applications keep using them long after their intended expiration date. This a burden on all other implementations, which must handle the "temporary" media-types along the permanent one, as aliases, in order to maintain backward compatibility.

              + +

              The W3C Recommendation + Content Negotiation by Profile + [[DX-PROF-CONNEG]] describes a mechanism that separates content-type + negotiation from requesting a response conforming to a specific information model, + whether that model is a specific standard, specification or profile. + The operations of the abstract model + are "list profiles" and "get resource by profile". + The "get resource" operation can provide the profile requests with HTTP + header Accept-Profile and responses use Content-Profile, or + alternatively the request can use HTTP Query String parameters. +

              + +

              + This may be useful when the information is available in RDF-star or in non-RDF-star + RDF 1.1 form, whether using reification, or by omitting information expressed with + the RDF-star data model and responding with a restricted response. By lifting the + issue up to the information model, away from being purely about syntax, restricted + responses can be requested and returned which do not use RDF-star features. + However, it assumes both requestor and receiver adhere to the defined profile + negotiation and therefore does not address the dilemma of optimistic or pessimistic + approaches. +

              + +

              Although the examples in this document, and the tests in the test suite, adopt the optimistic approach, it should be noted that no clear consensus emerged from the group on which approach is the best.

              + +
              + +
              +

              Historical remarks

              + +
              +

              SA-mode and PG-mode

              + +

              A lot of discussions on the RDF-star mailing list and GitHub repository refer to SA-mode and PG-mode. Those abbreviations stand for "Separate Assertion mode" and "Property Graph mode". They originate in the fact that different versions of RDF-star have been published over the years, with different designs. In PG-mode, any quoted triple was also considered asserted. SA-mode, on the other hand, allowed the use of quoted triples without those triples being automatically asserted, requiring that they be asserted separately when that was intended. SA-mode was more flexible, but induced redundancy in the use-cases that PG-mode was designed to address.

              + +

              The notion of annotations in the Turtle-star syntax was introduced to remove the need for different modes. Rather than interpret the same syntax differently in each mode, which would have caused interoperability problems and required a switch for those modes, it was decided to provide a different syntax for each use case.

              + +
                +
              • The << ... >> syntax represents a triple that is quoted without being asserted, satisfying the need formerly filled by SA-mode.
              • +
              • The :a :b :c {| :p :o ... |} annotation syntax creates triples where the subject is a quoted version of the triple asserted just before the annotation (here, :a :b :c), without the need to repeat it, satisfying the need formerly filled by PG-mode.
              • +
              +
              + +
              +

              The seminal example

              + +

              The motivating example in the original RDF-star paper [[RDF-STAR-FOUNDATION]] was on a provenance use-case, and is repeated below.

              + +
              +        
              +      
              + +

              This example was further debated on the RDF-star mailing list, as it appears to have set wrong expectations about what quoted triples represent. More precisely, from this example, one may wrongly assume that `<<:bob foaf:age 23>>` represents the occurrence of the given triple at the address `http://example.net/listing.html` (see ). This impression may be reinforced by the use of `dct:creator`: arguably, a triple (as a unique abstract entity) is not "created" by anyone, while an occurrence thereof can be said to be created or authored.

              + +

              The problem with this interpretation is that it will break as soon as other creators and sources are added for the triple: one could not tell which source corresponds to which creator. Correctly capturing this information would require additional nodes to explicitly represent triple occurrences, as in . In summary, although RDF-star can be used for provenance, the seminal example does not work as stated and can lead to the fundamentally incorrect interpretation that RDF-star can represent multiple distinct quoted triples with the same subject, predicate, and object.

              + +
              + +
              + +
              +

              Complete EBNF Grammars

              + +
              +

              Turtle-Star EBNF Grammar

              +

              The following is a complete grammar for Turtle-Star. + The EBNF used here is defined in XML 1.0 [[EBNF-NOTATION]].

              + +
              +
              + +
              +

              TriG-Star EBNF Grammar

              +

              The following is a complete grammar for TriG-Star. + The EBNF used here is defined in XML 1.0 [[EBNF-NOTATION]].

              + +
              +
              + +
              +

              N-Triples-Star EBNF Grammar

              +

              The following is a complete grammar for N-Triples-Star. + The EBNF used here is defined in XML 1.0 [[EBNF-NOTATION]].

              + +
              +
              + +
              +

              N-Quads-Star EBNF Grammar

              +

              The following is a complete grammar for N-Quads-Star. + The EBNF used here is defined in XML 1.0 [[EBNF-NOTATION]].

              + +
              +
              + +
              +

              SPARQL-Star EBNF Grammar

              +

              The following is a complete grammar for SPARQL-Star. + The EBNF used here is defined in XML 1.0 [[EBNF-NOTATION]].

              + +
              +
              +
              + +
              + +
              + + diff --git a/corese-unit-test/src/test/resources/data/rdf-star-main/cg-spec/2021-12-17.html b/corese-unit-test/src/test/resources/data/rdf-star-main/cg-spec/2021-12-17.html new file mode 100644 index 0000000000..0e3a4aeaeb --- /dev/null +++ b/corese-unit-test/src/test/resources/data/rdf-star-main/cg-spec/2021-12-17.html @@ -0,0 +1,7629 @@ + + + + + + + + + +RDF-star and SPARQL-star + + + + + + + + + + + + + + + +
              +

              RDF-star and SPARQL-star

              + +

              + Final Community Group Report + +

              +
              + +
              This version:
              + https://w3c.github.io/rdf-star/cg-spec/2021-12-17.html +
              Latest published version:
              + https://w3c.github.io/rdf-star/cg-spec +
              +
              Latest editor's draft:
              https://w3c.github.io/rdf-star/cg-spec/editors_draft.html
              +
              Test suite:
              https://w3c.github.io/rdf-star/tests/
              +
              Implementation report:
              + https://w3c.github.io/rdf-star/reports/ +
              Previous version:
              + https://w3c.github.io/rdf-star/cg-spec/2021-07-01.html +
              + + +
              Editors:
              +
              + Olaf Hartig + + + + (Linköping University) +
              + Pierre-Antoine Champin + + + + (ERCIM) +
              + Gregg Kellogg (no affiliation) +
              + Andy Seaborne (Apache Software Foundation) +
              + +
              Authors:
              + Dörthe Arndt (TU Dresden) +
              + Jeen Broekstra (metaphacts) +
              + Bob DuCharme (CCRi) +
              + Ora Lassila (Amazon) +
              + Peter F. Patel-Schneider (PARC) +
              + Eric Prud'hommeaux (Janeiro Digital, W3C/MIT) +
              + Ted Thibodeau, Jr. (OpenLink Software, Inc.) +
              + Bryan Thompson (Amazon) +
              +
              Acknowledgements:
              + James Anderson (datagraph gmbh) +
              + Ghislain Atemezing (Mondeca) +
              + Pavel Klinov (Stardog Union) +
              + Bruno P. Kinoshita (Apache Software Foundation) +
              + Holger Knublauch (TopQuadrant, Inc.) +
              + Andreas Kuckartz +
              + Pete Rivett (agnos.ai) +
              + William Van Woensel (Dalhousie University) +
              + Miel Vander Sande (meemoo) +
              + Fabio Vitali (University of Bologna) +
              +
              + + +
              +
              +

              Abstract

              +

              The Resource Description Framework (RDF) is a general-purpose framework for representing information on the Web. RDF-star extends RDF with a convenient way to make statements about other statements. This specification defines the abstract syntax of RDF-star as an extension of RDF's. It extends a number of RDF concrete syntaxes to support the new abstract syntax. It also extends RDF's formal semantics. Finally, this specification extends the SPARQL language to allow querying and updating of RDF-star data.

              +
              +

              Status of This Document

              + This specification was published by the + RDF-DEV Community Group. It is not a W3C Standard nor is it + on the W3C Standards Track. + + Please note that under the + W3C Community Final Specification Agreement (FSA) + other conditions apply. + + Learn more about + W3C Community and Business Groups. +

              +

              + GitHub Issues are preferred for + discussion of this specification. + + Alternatively, you can send comments to our mailing list. + Please send them to + public-rdf-star@w3.org + (subscribe, + archives). + +

              + +
              +

              1. Introduction

              + +
              +

              1.1 Background and Motivation

              This section is non-normative.

              + +

              The RDF data model lets you state facts in three-part subject-predicate-object statements known as triples. For example, with a single RDF triple, you can say that employee38 has a familyName of "Smith". A triple's predicate is a property specified with an IRI (an Internationalized version of a URI), identifying that property in a globally unambiguous way. A triple's subject and object can each be an IRI referencing any entity, and the object can also be a literal value such as "Smith" or data of other types such as dates, numbers, or Boolean values.

              + +

              Sometimes, we want the subject or object of a triple to refer to another triple. For example, the statement "according to employee22, employee38 has a jobTitle of 'Assistant Designer'" can be modeled as a triple with "according to" as its predicate, employee22 as its object, and another triple as its subject, namely the triple "employee38 has a jobTitle of 'Assistant Designer'". This use of a triple as the subject or object resource of another triple so that we can say things about that triple is known as reification. + The concept of reification has always been part of RDF, but expressing it in most RDF concrete syntaxes such as Turtle and N-Triples, as well as processing or querying it with SPARQL, has been verbose and cumbersome [RDF-STAR-FOUNDATION].

              + +
              + +
              +

              1.2 Overview

              This section is non-normative.

              + +

              This specification describes RDF-star, an extension of RDF's conceptual data model and concrete syntaxes, which provides a compact alternative to standard RDF reification. This model and its syntaxes enable the creation of concise triples that reference other triples as subject and object resources. +Triples that include a triple as a subject or an object are known as RDF-star triples. The following dataset shows the example RDF-star triples from above using the Turtle-star syntax, which uses double angle brackets to enclose a triple serving as a subject or object resource:

              + +
              +
              + Example 1 +
              PREFIX :    <http://www.example.org/>
              +
              +:employee38 :familyName "Smith" .
              +<< :employee38 :jobTitle "Assistant Designer" >> :accordingTo :employee22 .
              +
              + +

              After declaring a prefix so that IRIs can be abbreviated, the first triple in this example asserts that employee38 has a familyName of "Smith". Note that this dataset does not assert that employee38 has a jobTitle of "Assistant Designer"; it says that employee22 has made that claim. In other words, the triple "employee38 has a jobTitle of 'Assistant Designer'" is not what we call an asserted triple, like "employee38 has a familyName of 'Smith'" above; rather, it is known as a quoted triple.

              + +

              If we added the triple :employee38 :jobTitle "Assistant Designer" to the example above, then this triple about employee38's jobTitle would be both a quoted and an asserted triple. +This pattern is quite common, so Turtle-star offers a dedicated syntax for it, called the annotation syntax, illustrated in Example 2 below. Note that this construct is purely syntactic sugar, as it can be expanded using only the double angle brackets.

              + +
              +
              + Example 2 +
              PREFIX :    <http://www.example.org/>
              +
              +:employee38
              +    :familyName "Smith" ;
              +    :jobTitle "Assistant Designer" {| :accordingTo :employee22 |} .
              +
              +# this is equivalent to:
              +#
              +# :employee38 :familyName "Smith" .
              +# :employee38 :jobTitle "Assistant Designer" .
              +# << :employee38 :jobTitle "Assistant Designer" >> :accordingTo :employee22 .
              +
              + + +

              This specification also describes an extension to the SPARQL Protocol and Query Language known as SPARQL-star for the querying of RDF-star triples. For example, the following SPARQL-star query asks "who has made any claims about employee38?"

              + +
              +
              + Example 3 +
              PREFIX : <http://www.example.org/> 
              +
              +SELECT ?claimer WHERE {
              +   << :employee38 ?property ?value >> :accordingTo ?claimer
              +}
              +
              + + +

              SPARQL can also be used to update RDF data, and SPARQL-star also extends that part. For example, the following SPARQL-star adds all the statements made by employee22 about employee38 as asserted triples, annotating them as "confirmed".

              + +
              +
              + Example 4 +
              PREFIX : <http://www.example.org/>
              +
              +INSERT {
              +  :employee38 ?p ?o {| :status "confirmed" |}
              +} WHERE {
              +   << :employee38 ?p ?o >> :accordingTo :employee22
              +}
              +
              + +
              +
              +

              1.3 Common misconceptions

              + +

              People coming to RDF-star may have wrong ideas about what it is or how to use it. The purpose of this section is to dispel the most common misconceptions. + +

              RDF-star is not syntactic sugar for standard reification. While the latter is a vocabulary that fits into the standard RDF model (abstract syntax), RDF-star extends that model (see § 2. Concepts and Abstract Syntax) with a new construct, namely quoted triples. Note also that the two are not mutually exclusive: standard reification can be used in conjunction with RDF-star. + +

              Unlike reified statements, RDF-star quoted triples are unique: wherever << :employee38 :jobTitle "Assistant Designer" >> appears, it always denotes one and the same thing. This impacts the modeling choices one has to make when using RDF-star; this is further discussed in § 2.3 Triples and occurrences. + +

              Finally, quoted triples are referentially opaque. This means that two quoted triples containing distinct but equivalent terms (i.e., coreferences, known to denote the same thing) are nonetheless considered to be different triples. § 6.4.4 Referential opacity and the following sections discuss the rationale for this design, and how some form of referential transparency can still be added to RDF-star if and when needed. +

              + +
              +

              1.4 Conventions

              +

              For the remainder of this document, examples will assume that the following prefixes have been declared to represent the IRIs shown with them here:

              + + + + + + + + + + + + +
              :<http://www.example.org/>
              rdf:<http://www.w3.org/1999/02/22-rdf-syntax-ns#>
              rdfs:<http://www.w3.org/2000/01/rdf-schema#>
              owl:<http://www.w3.org/2002/07/owl#>
              prov:<http://www.w3.org/ns/prov#>
              dbo:<http://dbpedia.org/ontology/>
              dbr:<http://dbpedia.org/resource/>
              dc:<http://purl.org/dc/elements/1.1/>
              dct:<http://purl.org/dc/terms/>
              rdf-star:<http://www.w3.org/ns/rdf-star#>
              + +
              + +
              +

              1.5 Structure of this document

              +

              This specification covers many aspects of RDF-star, and not all sections will be of interest to all readers.

              +

              Section 2 first defines the concepts and the abstract syntax of RDF-star, to which all following sections refer. + The next three sections focus on how users will interact with the abstract syntax, defining the concrete syntaxes, the query language SPARQL-star and its counterpart for updates. Section 6 then defines RDF-star's formal semantics, which lays the foundation for reasoning with RDF-star data. Finally, Section 7 defines an RDF vocabulary capturing the main concepts of RDF-star.

              + +
              + + + + +
              + + + +
              +
              + ... serialized with
              + § 3. Concrete Syntaxes +
              +
              +
              + ... represented by
              + § 7. RDF-star vocabulary +
              +
              +
              + ... queried with
              + § 4. SPARQL-star Query Language
              +
              +
              +
              + ... updated with
              + § 5. SPARQL-star Update +
              +
              +
              + ... interpreted through
              + § 6. RDF-star Semantics +
              +
              +
              Figure 1 A visual map of the sections of this document
              +
              +
              + +

              1.6 Conformance

              As well as sections marked as non-normative, all authoring guidelines, diagrams, examples, and notes in this specification are non-normative. Everything else in this specification is normative.

              + The key words MAY, MUST, MUST NOT, and OPTIONAL in this document + are to be interpreted as described in + BCP 14 + [RFC2119] [RFC8174] + when, and only when, they appear in all capitals, as shown here. +

              +

              A system supports RDF-star for input if it supports an input syntax for + an RDF 1.1 standard syntax that has additional syntax for + quoted triples. + Such input syntaxes include those in the + RDF-star test suite + (N-Triples-star syntax tests, + Turtle-star syntax tests, + or TriG-star syntax tests). +

              + +

              A system supports RDF-star for output if it supports an output syntax for + an RDF 1.1 standard syntax that has additional syntax for + quoted triples. + Such output syntaxes include those in the + RDF-star test suite + (N-Triples-star syntax tests, + Turtle-star syntax tests, + or TriG-star syntax tests). +

              +

              + A system supports SPARQL-star if it passes + the SPARQL-star syntax test suite + and the SPARQL-star evaluation test suites. +

              +
              + +
              + +
              +

              2. Concepts and Abstract Syntax

              + +

              In the following, we introduce a number of definitions specific to SPARQL-star, which rely on the following notions (extending some of them) defined in RDF 1.1 Concepts and Abstract Syntax [RDF11-CONCEPTS]: + blank node, + default graph, + graph name, + IRI, + literal, + named graphs, + subject, + predicate, + object, + RDF dataset, + RDF graph, + RDF triple, + and RDF term. +

              + +

              An RDF-star graph is a set of RDF-star triples.

              + +

              An RDF-star triple is a 3-tuple defined recursively as follows:

              + + +

              As for RDF triples, we call the 3 components of an RDF-star triple its subject, predicate and object, respectively. From the definitions above, it follows that any RDF graph is also an RDF-star graph. Note also that, by definition, an RDF-star triple cannot contain itself and cannot be nested infinitely.

              + +

              IRIs, literals, blank nodes and RDF-star triples are collectively known as RDF-star terms.

              + +

              For every RDF-star triple t, we define its constituent terms (or simply constituents) as the set containing its subject, its predicate, its object, plus all the constituent terms of its subject and/or its object if they are themselves RDF-star triples. By extension, we define the constituent terms of an RDF-star graph to be the union set of the constituent terms of all its triples.

              + +
              + Consider the following RDF-star triple (represented in Turtle-star): +
              +
              + Example 5 +
              << _:a :name "Alice" >> :statedBy :bob.
              +
              + Its set of constituent terms comprises the IRIs :name, :statedBy, :bob, the blank node _:a, the literal "Alice", and the triple << _:a :name "Alice" >>. +
              + +

              An RDF-star triple used as the subject or object of another RDF-star triple is called a quoted triple. An RDF-star triple that is an element of an RDF-star graph is called an asserted triple. Note that, in a given RDF-star graph, the same triple MAY be both quoted and asserted.

              + +

              An RDF-star dataset is a collection of RDF-star graphs, and comprises:

              + + + +

              Again, this definition is an extension of the notion of RDF dataset, hence it follows that any RDF dataset is also an RDF-star dataset.

              + +
              +

              2.1 Quoted and Asserted Triples

              This section is non-normative.

              + +

              + A triple in RDF is a tuple of three components: subject, predicate, and object. These are + collectively known as RDF Terms as defined in [RDF11-CONCEPTS]. +

              +

              + RDF-star introduces quoted triple, which is a new kind of RDF term. + A quoted triple is a triple used as the subject or object of another triple. Quoted + triples can also be called "embedded triples". +

              + +

              + in RDF 1.1, an asserted triple is an element of the set of triples that + make up an RDF graph. RDF-star does not change this except that an RDF-star + triple can contain quoted triples. A triple can be used as an asserted + triple, a quoted triple, or both, in a given graph. +

              + +

              + A quoted triple is written in Turtle-star and related syntaxes using delimiters << and >>. +

              +

              + + << :a :name "Alice" >> + +

              +

              + The definition of quoted triple is recursive. That is, a quoted triple can itself have a + subject or object component which is another quoted triple. Cycles of quoted + triples can not be created. In the next example, there is a quoted triple with + property :reportedBy, whose subject is another quoted triple, :a :name + "Alice". +

              +

              + + << << :a :name "Alice" >> :reportedBy :charlie >> + +

              +
              Note
              +

              + It may be apt to draw a parallel between "quoted" triples and + quoted expressions in the programming language Lisp. + Expressions in Lisp (called "s-expressions") are interpreted + through a process called "evaluation", and as a result they + have a value. A quoted expression evaluates to the expression itself - + you can imagine that quoting prevents the expression from being + evaluated. In RDF (as well as in RDF-star), asserting a triple + (i.e., considering it to be "true") serves as the analogue of + evaluation. Triples are asserted, unless (in RDF-star) they are quoted + which, effectively, prevents the triple from being asserted - thus a + quoted triple stands by itself and we assign no truth value to it. +

              +

              + Obviously this way of thinking is helpful only if you understand how Lisp works. +

              +
              +
              + +
              +

              2.2 RDF-star Graph Examples

              + +

              + In the example below, there is a quoted triple, :a :name "Alice", which is used + as the subject for an asserted triple: +

              +
              +
              + Example 6 +
              PREFIX : <http://www.example.org/> 
              +
              +:bob :name "Bob" .
              +<< :a :name "Alice" >> :statedBy :bob .
              +
              +

              + The graph of this example has two asserted triples: +

              +
                +
              1. :bob :name "Bob" .
              2. +
              3. << :a :name "Alice" >> :statedBy :bob .
              4. +
              +

              + This graph does not have an asserted triple, :a :name "Alice", because + that triple is not an element of the set of triples. +

              +

              + On the other hand, the graph in the example below contains three asserted triples: + the same two as the previous example, and :a :name "Alice". The latter is used + both as an asserted triple and a quoted triple in this graph. +

              +
              +
              + Example 7 +
              PREFIX : <http://www.example.org/> 
              +
              +:bob :name "Bob" .
              +:a :name "Alice" .
              +<< :a :name "Alice" >> :statedBy :bob .
              +
              +
              + +
              +

              2.3 Triples and occurrences

              This section is non-normative.

              + +

              According to the definitions above, an RDF-star triple is an abstract entity whose identity is entirely defined by its subject, predicate, and object. Conversely, given three RDF-star terms s, p, and o, there is exactly and only one RDF-star triple with subject s, predicate p, and object o. This unique triple (s, p, o) can be quoted as the subject or object of multiple other triples, but must be assumed to represent the same thing everywhere it occurs, just like the same IRI p is assumed to represent the same thing everywhere it occurs.

              + +

              In some situations, however, it might be necessary to distinguish the occurrences of a triple in different graphs. Consider the following sentence: "The triple <http://example.org/s> <http://example.org/p> <http://example.org/o> in (the graph represented by) file1.ttl was added by Alice, and the same triple in file2.ttl was added by Bob." Note that the words "same triple" in this sentence may be confusing, because although the triple (as an abstract entity) is the same, its respective occurrences are different things, each within a different file and with a different author (this is known, in philosophy and linguistics, as the type-token distinction). As the quoted triple represents a unique thing, adequately conveying the meaning of the sentence above requires additional nodes for representing the two distinct occurrences. One possible solution is illustrated in the following example (using the Turtle-star concrete syntax described in the next section).

              + +
              +
              + Example 8 +
              _:a :occurrenceOf << :s :p :o >> ;
              +    :in <file1.ttl> ;
              +    dct:creator :alice.
              +_:b :occurrenceOf << :s :p :o >> ;
              +    :in <file2.ttl> ;
              +    dct:creator :bob.
              +
              +
              + +
              + +
              +

              3. Concrete Syntaxes

              + +

              This section defines the following concrete syntaxes:

              + + +

              + Changes for SPARQL-star are given in + § 4.2 Grammar + and the changes for the result set formats in + § 4.7 Query Result Formats.

              + +
              +

              3.1 Annotation Syntax

              +

              There are syntax additions for quoted triples and also for + annotation syntax + which provides a convenient shortcut in Turtle-star and + TriG-star syntaxes. It is used to both assert a triple and have that triple be the + subject of further triples. It uses delimiters {| and |} following an asserted + triple to make that triple, as a quoted triple, the subject of the + RDF-star triples formed by combining it with the enclosed RDF predicate(s) and object(s). +

              +

              + Annotation syntax does not appear in the RDF-star abstract data model. It is + only a syntactic short cut and the RDF-star abstract data model does not + distinguished how the triples were written. +

              +
              +
              + Example 9 +
              :a :name "Alice" {| :statedBy :bob ; :recorded "2021-07-07"^^xsd:date |} .
              +
              +

              is the same set of triples as:

              +
              +
              << :a :name "Alice" >> :statedBy :bob .
              +<< :a :name "Alice" >> :recorded "2021-07-07"^^xsd:date .
              +:a :name "Alice"
              +
              +

              and RDF-star graph contains three asserted triples.

              +
              + +
              +

              3.2 Turtle-star

              +

              In this section, we present Turtle-star, + an extension of the Turtle format [TURTLE] + allowing the representation of RDF-star graphs. + For the sake of conciseness, + we only describe here the differences between Turtle-star and Turtle.

              + +
              +

              3.2.1 Grammar

              +

              Turtle-star is defined to follow the same grammar as Turtle, + except for the EBNF productions specified below, + which replace the productions having the same number (if any) in the original grammar.

              + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
              [8]objectList::= + object + annotation? + ( + ',' + object + annotation? + )* +
              [10]subject::= + iri | + BlankNode | + collection | + quotedTriple +
              [12]object::= + iri | + BlankNode | + collection | + blankNodePropertyList | + literal | + quotedTriple +
              [27t]quotedTriple::= + '<<' + qtSubject + verb + qtObject + '>>' +
              [28t]qtSubject::= + iri | + BlankNode | + quotedTriple +
              [29t]qtObject::= + iri | + BlankNode | + literal | + quotedTriple +
              [30t]annotation::= + '{|' + predicateObjectList + '|}' +
              + +
              Note

              The complete grammar may be found in § C.1 Turtle-Star EBNF Grammar.

              + +
              Note

              + The changes are that subject + and object productions + have been extended to accept quoted triples, + which are described by the new productions 27t + to 30t. + Note that quoted triples accept a more restricted range of + subject and object expressions + than asserted triples. + Additionally, the objectList production + now accepts an optional annotation after each object.

              +
              + +
              +

              3.2.2 Parsing

              +

              A Turtle-star parser is similar to a Turtle parser + as defined in Section 7 of the Turtle specification [TURTLE], + with an additional item in its state :

              + +

              Additionally, the curSubject + can be bound to any RDF-star term + (including a quoted triple).

              + +

              A Turtle-star document defines an RDF-star graph + composed of a set of RDF-star triples. + The subject + and qtSubject productions set the curSubject. + The verb production + sets the curPredicate. + The object + and qtObject productions + set the curObject. + Finishing the object production, + an RDF-star triple curSubject curPredicate curObject is produced + (added to the RDF-star graph).

              + +

              Beginning the quotedTriple production + records the curSubject and curPredicate. + Finishing the quotedTriple production + yields the RDF-star triple curSubject curPredicate curObject + and restores the recorded values of curSubject and curPredicate.

              + +

              Beginning the annotation production + records the curSubject and curPredicate, + and sets the curSubject to the RDF-star triple curSubject curPredicate curObject. + Finishing the annotation production + restores the recorded values of curSubject and curPredicate.

              + +

              All other productions MUST be handled as specified + by Section 7 of the Turtle specification [TURTLE], + while still applying the changes above recursively.

              + +
              +
              3.2.2.1 Discussion

              This section is non-normative.

              + +

              This section describes parser behavior when parsing + a Turtle-star document that contains quoted triples + and annotations.

              + +

              Consider a Turtle-star document that describes an RDF triple, + and also uses that triple as a quoted triple + as the subject of another RDF-star triple:

              + +
              +
              + Example 11: Turtle-star quoted triples +
              BASE <http://example.org/>
              +PREFIX : <#> 
              +_:a :name "Alice" .
              +<< _:a :name "Alice" >> :statedBy :bob .
              +
              + +

              The usual process of parsing a Turtle document + applies with the addition of matching the quoted triple + << _:a :name "Alice" >> + as part of the subject production. + The resulting RDF-star graph consists of two RDF-star triples:

              + +
                +
              1. (b, http://example.org/#name, "Alice"), + where b is a blank node
              2. +
              3. ((b, http://example.org/#name, "Alice"), http://example.org/#statedBy, http://example.org/#bob/), + where b is the same blank node
              4. +
              + +

              Because the above example includes the triple (b, http://example.org/#name, "Alice") + as an asserted triple, + the same RDF-star graph may also be represented + by using the Turtle-star annotation syntax as follows:

              + +
              +
              + Example 12: Turtle-star annotated triples +
              BASE <http://example.org/>
              +PREFIX : <#>
              +_:a :name "Alice" {| :statedBy :bob |} .
              +
              + +

              In this case, the objectList production + matches the annotation production on {| :source :bob |} + after parsing the object production on "Alice". + At this point, the curSubject, curPredicate, and curObject are saved, + and a new RDF-star triple _:a :name "Alice" is created + and used as curSubject while processing + the annotation production.

              +
              +
              +
              + +
              +

              3.3 TriG-star

              + +

              This section describes TriG-star, + a minimal extension of the TriG format [TRIG] + using the same production updates described in § 3.2 Turtle-star.

              + +
              Note

              RDF-star describes quoted triples, + which are not necessarily present in any named graph, + or within the default graph.

              + +

              A TriG-star document defines an RDF-star dataset, composed of + a single default graph and zero or more named graphs, + all of which are RDF-star graphs.

              + +
              +

              3.3.1 Grammar

              +

              TriG-star is defined to follow the same grammar as TriG, + except for the EBNF productions specified below, + which replace the productions having the same number (if any) in the original grammar.

              + +

              The TriG-star grammar contains exactly the same production updates + described in § 3.2.1 Grammar + with an additional change to the triplesOrGraph production.

              + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
              [3g]triplesOrGraph::= + labelOrSubject + ( + wrappedGraph + | + predicateObjectList + '.' ) + +
              [8]objectList::= + object + annotation? + ( + ',' + object + annotation? + )* +
              [10]subject::= + iri | + BlankNode | + collection | + quotedTriple +
              [12]object::= + iri | + BlankNode | + collection | + blankNodePropertyList | + literal | + quotedTriple +
              [27t]quotedTriple::= + '<<' + qtSubject + verb + qtObject + '>>' +
              [28t]qtSubject::= + iri | + BlankNode | + quotedTriple +
              [29t]qtObject::= + iri | + BlankNode | + literal | + quotedTriple +
              [30t]annotation::= + '{|' + predicateObjectList + '|}' +
              + +
              Note

              The complete grammar may be found in § C.2 TriG-Star EBNF Grammar.

              +
              + +
              +

              3.3.2 Parsing

              +

              TriG-star parsing uses the same updates described + in § 3.2.2 Parsing + as applied to Section 5 of the TriG specification [TRIG].

              + +
              Note

              As with Turtle-star, + the quotedTriple + and annotation + are used to set either the curSubject or curObject, + and do not directly add the associated quoted triple to curGraph. + Subsequent productions which use either curSubject or curObject + may result in adding triples to curGraph.

              + +

              A conforming TriG-star parser MUST parse any + valid TriG document and any + valid Turtle-star document in addition + to the Turtle-star grammar productions contained within a named graph.

              +
              + +
              +

              3.3.3 Discussion

              This section is non-normative.

              + +

              TriG-star allows the same expressivity as Turtle-star + with the addition of allowing quoted triples + and annotations + within named graphs.

              + +
              +
              + Example 13: TriG-star annotated triples +
              BASE <http://example.org/>
              +PREFIX : <#>
              +:G {
              +  _:a :name "Alice" {| :statedBy :bob |} .
              +}
              +
              + +

              The resulting RDF-star dataset consists of + an empty default graph, and a graph named http://example.org/#G + with two RDF-star triples:

              + +
                +
              1. (b, http://example.org/#name, "Alice"), + where b is a blank node
              2. +
              3. ((b, http://example.org/#name, "Alice"), http://example.org/#statedBy, http://example.org/#bob/), + where b is the same blank node
              4. +
              +
              +
              + +
              +

              3.4 N-Triples-star

              + +

              This section describes N-Triples-star, + a minimal extension of the N-Triples format [N-TRIPLES] + allowing a subject or an object + of an RDF-star triple to be a quoted triple.

              + +
              +

              3.4.1 Grammar

              +

              N-Triples-star is defined to follow the same grammar as + the N-Triples Grammar, + except for the EBNF productions specified below, + which replace the productions having the same number + (if any) in the original grammar.

              + + + + + + + + + + + + + + + + + + + + + + +
              [3]subject::=IRIREF | BLANK_NODE_LABEL | quotedTriple
              [5]object::=IRIREF | BLANK_NODE_LABEL | literal | quotedTriple
              [7t]quotedTriple::="<<" subject predicate object ">>"
              + +
              Note

              The complete grammar may be found in § C.3 N-Triples-Star EBNF Grammar.

              + +
              Note

              The changes are that + subject + and object productions + have been extended to accept quoted triples, + which are described by the new production + 7.

              +
              + +
              +

              3.4.2 Parsing

              +

              In contrast to [N-TRIPLES], + N-Triples-star allows recursion on the + subject + and object productions.

              + +

              An N-Triples-star document defines an RDF-star graph + composed of a set of RDF-star triples. + The triple production + produces an RDF-star triple + composed of a subject, + predicate, + and object.

              + +

              In addition to the Term Constructors defined in [N-TRIPLES], + an additional constructor is defined for quotedTriple + of type RDF-star triple + defined by the terms constructed + for subject, + predicate, + and object.

              + +

              All other productions MUST be handled as specified by + Section 8.1 of the N-Triples specification [N-TRIPLES], + while still applying the changes above recursively.

              +
              +
              + +
              +

              3.5 N-Quads-star

              + +

              The [N-QUADS] format is extended to describe the + N-Quads-star format using the same production updates described in the N-Triples-star Grammar.

              + +
              Note

              The complete grammar may be found in § C.4 N-Quads-Star EBNF Grammar.

              + +
              Note

              As RDF-star describes quoted triples and not quoted quads, + the graphLabel + component of an N-Quads statement + does not apply to the quotedTriple component.

              + +

              An N-Quads-star document defines an RDF-star dataset, + composed of a single default graph + and zero or more named graphs, + all of which are RDF-star graphs.

              + +

              A conforming N-Quads-star parser MUST parse any valid + N-Quads document and additionally parse the + subject and + object productions + from N-Triples-star to generate RDF-star triples which are + added to either the default graph or associated + named graph, as appropriate.

              +
              + +
              +

              3.6 Other Concrete Syntaxes

              This section is non-normative.

              + +

              While this document specifies a small number of concrete syntaxes, + nothing prevents other concrete syntaxes of RDF-star from being proposed. In particular, syntaxes such as + RDF/XML [RDF-SYNTAX-GRAMMAR], + and JSON-LD [JSON-LD], + could be extended to support RDF-star.

              +
              + +
              + +
              +

              4. SPARQL-star Query Language

              + +

              This Section introduces SPARQL-star, which is an RDF-star-aware extension of the RDF query language SPARQL [SPARQL11-QUERY]; i.e., SPARQL-star can be used to query RDF-star graphs.

              + +
              +

              4.1 Initial Definitions

              + +

              In the following, we introduce a number of SPARQL-star-specific definitions, which rely on the following notions, defined in SPARQL 1.1 Query Language [SPARQL11-QUERY]: + query variable, + triple pattern, + property path pattern, + property path expression, + and solution mapping.

              + +

              A SPARQL-star triple pattern is a 3-tuple that is defined recursively as follows:

              +
                +
              1. Every SPARQL triple pattern is a SPARQL-star triple pattern; +
              2. If t and t' are SPARQL-star triple patterns, x is an RDF term or a query variable, and p is an IRI or a query variable, then (tpx), (xpt), and (tpt') are SPARQL-star triple patterns. +
              + +

              As for RDF-star triples, a SPARQL-star triple pattern MUST NOT contain itself.

              + +

              A SPARQL-star basic graph pattern (BGP-star) is a set of SPARQL-star triple patterns.

              + +

              A SPARQL-star property path pattern is a 3-tuple (s,p,o) where

              + + +

              A SPARQL-star solution mapping μ is a partial function from the set of all query variables to the set of all RDF-star terms. + The domain of μ, denoted by dom(μ), is the set of query variables for which μ is defined.

              + +
              Note

              The notion of a SPARQL-star solution mapping extends the notion of a standard SPARQL solution mapping; that is, every SPARQL solution mapping is a SPARQL-star solution mapping. However, in contrast to SPARQL solution mappings, SPARQL-star solution mappings may map variables also to RDF-star triples.

              + +

              All notions related to SPARQL solution mappings carry over naturally to SPARQL-star solution mappings. In particular, the definition of compatibility extends naturally to SPARQL-star solution mappings: two SPARQL-star solution mappings μ1 and μ2 are compatible if, for every variable v that is both in dom(μ1) and in dom(μ2), μ1(v) and μ2(v) are the same RDF-star term. + In this case, μ1 ∪ μ2 is also a SPARQL-star solution mapping. + Moreover, for any SPARQL-star solution mapping μ we write card[Ω](μ) to denote the cardinality of μ in a multiset Ω of such mappings. + Finally, given a BGP-star B and a SPARQL-star solution mapping μ, we write μ(B) to denote the result of replacing every variable v in B for which μ is defined with μ(v). +

              + +

              Next, we aim to carry over the notion of solutions for BGPs to BGP-star. To this end, we first define an auxiliary concept that carries over the notion of an + RDF instance mapping [RDF11-MT] to RDF-star.

              + +

              An RDF-star instance mapping σ is a partial function from the set of all blank nodes to the set of all RDF-star terms. + The domain of σ, denoted by dom(σ), is the set of blank nodes for which σ is defined.

              + +

              Similar to the corresponding notation for solution mappings, for an RDF-star instance mapping σ and a BGP-star B we write σ(B) to denote the result of replacing every blank node b in B for which σ is defined with σ(b).

              + +

              Now we are ready to define the notion of solution for BGP-star.

              + +

              Given a BGP-star B and an RDF-star graph G, a SPARQL-star solution mapping μ is a solution for the BGP-star B over G if it has the following two properties

              +
                +
              • dom(μ) is equivalent to the set of query variables in B, and +
              • there exists an RDF-star instance mapping σ such that dom(σ) is equivalent to the set of blank nodes in B and μ(σ(B)) is a subgraph of G. +
              + +
              + +
              +

              4.2 Grammar

              + +

              SPARQL-star is defined to follow the same grammar as SPARQL 1.1, except for the EBNF productions specified below, which replace the productions having the same number (if any) in the original grammar. The parts in which these productions differ from the corresponding productions in the original grammar are marked in bold font. Productions [174] and following have been added and have no counterpart in the original grammar.

              + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
              [65]DataBlockValue::= + QuotedTriple | + iri | + RDFLiteral | + NumericLiteral | + BooleanLiteral | + 'UNDEF' +
              [75]TriplesSameSubject::= + VarOrTermOrQuotedTP + PropertyListNotEmpty + | + TriplesNode + PropertyList +
              [80]Object::= + GraphNode + AnnotationPattern? +
              [81]TriplesSameSubjectPath::= + VarOrTermOrQuotedTP + PropertyListPathNotEmpty + | + TriplesNode + PropertyListPath +
              [87]ObjectPath::= + GraphNodePath + AnnotationPatternPath? +
              [104]GraphNode::= + VarOrTermOrQuotedTP | + TriplesNode +
              [105]GraphNodePath::= + VarOrTermOrQuotedTP | + TriplesNodePath +
              [119]PrimaryExpression::= + BrackettedExpression | + BuiltInCall | + iriOrFunction | + RDFLiteral | + NumericLiteral | + BooleanLiteral | + Var +
              + | ExprQuotedTP +
              +
              [121]BuiltInCall::= +
                 Aggregate
              +
              + | + 'STR' + '(' + Expression + ')' +
              +
              + | + 'LANG' + '(' + Expression + ')' +
              +
              + | + 'LANGMATCHES' + '(' + Expression + ')' +
              +
              + | + 'DATATYPE' + '(' + Expression + ')' +
              +
              + | + 'BOUND' + '(' + Var + ')' +
              +
              + | + 'IRI' + '(' + Expression + ')' +
              +
              + | + 'URI' + '(' + Expression + ')' +
              +
              + | + 'BNODE' + ( + '(' + Expression + ')' + | + NIL + ) +
              +
              + | + 'RAND' + NIL +
              +
              + | + 'ABS' + '(' + Expression + ')' +
              +
              + | + 'CEIL' + '(' + Expression + ')' +
              +
              + | + 'FLOOR' + '(' + Expression + ')' +
              +
              + | + 'ROUND' + '(' + Expression + ')' +
              +
              + | + 'CONCAT' + ExpressionList +
              + +
              + | + 'STRLEN' + '(' + Expression + ')' +
              + +
              + | + 'UCASE' + '(' + Expression + ')' +
              +
              + | + 'LCASE' + '(' + Expression + ')' +
              +
              + | + 'ENCODE_FOR_URI' + '(' + Expression + ')' +
              +
              + | + 'CONTAINS' + '(' + Expression + ',' + Expression + ')' +
              +
              + | + 'STRSTARTS' + '(' + Expression + ',' + Expression + ')' +
              +
              + | + 'STRENDS' + '(' + Expression + ',' + Expression + ')' +
              +
              + | + 'STRBEFORE' + '(' + Expression + ',' + Expression + ')' +
              +
              + | + 'STRAFTER' + '(' + Expression + ',' + Expression + ')' +
              +
              + | + 'YEAR' + '(' + Expression + ')' +
              +
              + | + 'MONTH' + '(' + Expression + ')' +
              +
              + | + 'DAY' + '(' + Expression + ')' +
              +
              + | + 'HOURS' + '(' + Expression + ')' +
              +
              + | + 'MINUTES' + '(' + Expression + ')' +
              +
              + | + 'SECONDS' + '(' + Expression + ')' +
              +
              + | + 'TIMEZONE' + '(' + Expression + ')' +
              +
              + | + 'TZ' + '(' + Expression + ')' +
              +
              + | + 'NOW' + NIL +
              +
              + | + 'UUID' + NIL +
              +
              + | + 'STRUUID' + NIL +
              +
              + | + 'MD5' + '(' + Expression + ')' +
              +
              + | + 'SHA1' + '(' + Expression + ')' +
              +
              + | + 'SHA256' + '(' + Expression + ')' +
              +
              + | + 'SHA384' + '(' + Expression + ')' +
              +
              + | + 'SHA512' + '(' + Expression + ')' +
              +
              + | + 'COALESCE' + ExpressionList +
              +
              + | + 'IF' + '(' + Expression + ',' + Expression + ',' + Expression + ')' +
              +
              + | + 'STRLANG' + '(' + Expression + ',' + Expression + ')' +
              +
              + | + 'STRDT' + '(' + Expression + ',' + Expression + ')' +
              +
              + | + 'sameTerm' + '(' + Expression + ',' + Expression + ')' +
              +
              + | + 'isIRI' + '(' + Expression + ')' +
              +
              + | + 'isURI' + '(' + Expression + ')' +
              +
              + | + 'isBLANK' + '(' + Expression + ')' +
              +
              + | + 'isLITERAL' + '(' + Expression + ')' +
              +
              + | + 'isNUMERIC' + '(' + Expression + ')' +
              +
              + | + RegexExpression +
              +
              + | + ExistsFunc +
              +
              + | + NotExistsFunc +
              +
              + | + 'TRIPLE' + '(' + Expression + ',' + Expression + ',' + Expression + ')' +
              +
              + | + 'SUBJECT' + '(' + Expression + ')' +
              +
              + | + 'PREDICATE' + '(' + Expression + ')' +
              +
              + | + 'OBJECT' + '(' + Expression + ')' +
              +
              + | + 'isTRIPLE' + '(' + Expression + ')' +
              +
              [174]QuotedTP::= + '<<' + qtSubjectOrObject + Verb + qtSubjectOrObject + '>>' +
              [175]QuotedTriple::= + '<<' + DataValueTerm + ( + iri + | + 'a' + ) + DataValueTerm + '>>' +
              [176]qtSubjectOrObject::= + Var | + BlankNode | + iri | + RDFLiteral | + NumericLiteral | + BooleanLiteral | + QuotedTP +
              [177]DataValueTerm::= + iri | + RDFLiteral | + NumericLiteral | + BooleanLiteral | + QuotedTriple +
              [178]VarOrTermOrQuotedTP::= + Var | + GraphTerm | + QuotedTP +
              [179]AnnotationPattern::= + '{|' + PropertyListNotEmpty + '|}' +
              [180]AnnotationPatternPath::= + '{|' + PropertyListPathNotEmpty + '|}' +
              [181]ExprQuotedTP::= + '<<' + ExprVarOrTerm + Verb + ExprVarOrTerm + '>>' +
              [182]ExprVarOrTerm::= + iri | + RDFLiteral | + NumericLiteral | + BooleanLiteral | + Var | + ExprQuotedTP +
              + +
              Note

              The complete grammar may be found in § C.5 SPARQL-Star EBNF Grammar.

              + +

              + This introduces a notation for quoted triple patterns + (production [174]), + which is similar to the one defined for quoted triples in § 3.2 Turtle-star, + but accepting also variables. + These quoted triple patterns are allowed in both the subject position ([75], [81]) and the object position ([80], [87]) + of SPARQL-star triple patterns, as well as in the short-hand notation for querying collections ([102], [103]). +

              + +

              + Additionally, production [65] for values that can be used in the VALUES clause is extended to permit RDF-star triples as possible values, and the set of available built-in functions is extended with the five functions TRIPLE, SUBJECT, PREDICATE, OBJECT, and isTRIPLE ([121]) that are defined in § 4.4 Function and Operator Definitions. +

              + +
              Note

              As defined for all keywords in SPARQL, the names of the five new built-in functions added by SPARQL-star are matched in a case-insensitive manner.

              + +

              + Yet another extension is that both the Object and the ObjectPath productions now accept an optional annotation pattern after each object. The purpose of this feature is to enable users to use the same kind of annotation syntax that is supported in Turtle-star. As in the case of Turtle-star, the annotation syntax in SPARQL-star is purely syntactic sugar that has to be processed in accordance to the first expansion rule in § 4.3.2 Expand Syntax Forms. +

              + +

              + A restriction to the use of the annotation syntax in SPARQL-star exists that is not captured by the grammar as defined above: An AnnotationPatternPath may be added only to SPARQL-star property path patterns in which the property path expression is a PredicatePath (i.e., a single IRI) or the keyword a (as a short form for the IRI rdf:type). Hence, a query such as the following violates this restriction and, thus, is invalid. +

              + +
              +
              SELECT * WHERE {
              +    ?s :p/:q ?o {| ?pp ?oo |}.
              +}
              +
              + +

              + While annotation patterns must not be added to property path patterns other than the ones permitted by the restriction above, it is possible to use property path expressions within annotation patterns (but without violating the restriction in the case of nested annotation patterns). For instance, the following query is valid. +

              + +
              +
              SELECT * WHERE {
              +    ?s ?p ?o {| :p/:q ?oo |}.
              +}
              +
              + +
              + +
              +

              4.3 Translation to the Algebra

              + +

              Based on the SPARQL grammar, the SPARQL specification defines the process of converting graph patterns and solution modifiers in a SPARQL query string into a SPARQL algebra expression [SPARQL11-QUERY, Section 18.2]. This process must be adjusted to consider the extended grammar introduced above. In the following, any step of the conversion process that requires adjustment is discussed.

              + +
              +

              4.3.1 Variable Scope

              + +

              As a basis of the translation, the SPARQL specification introduces a notion of in-scope variables. To cover the new syntax elements introduced in § 4.2 Grammar this notion MUST be extended as follows.

              + +
                +
              • A variable is in-scope of a BGP-star B if the variable occurs in B, which includes an occurrence in any quoted triple pattern in B (independent of the level of nesting).
              • +
              • A variable is in-scope of a property path pattern if the variable occurs in that pattern, which includes an occurrence in any quoted triple pattern in the pattern (independent of the level of nesting).
              • +
              +
              + +
              +

              4.3.2 Expand Syntax Forms

              + +

              The translation process starts with expanding abbreviations for IRIs and triple patterns [SPARQL11-QUERY, Section 18.2.2.1]. This step MUST be extended in three ways:

              + +
                +
              1. +

                Annotation patterns MUST be replaced by additional SPARQL-star triple patterns that have the annotated triple pattern as a quoted triple pattern in their subject position.

                + + + +
              2. +
              3. +

                Abbreviations for triple patterns with quoted triple patterns MUST be expanded as if each quoted triple pattern was a variable (or an RDF term).

                + + +
              4. +
              5. +

                Abbreviations for IRIs in all quoted triple patterns MUST be expanded.

                + + +
              6. +
              +
              + +
              +

              4.3.3 Translate Property Path Patterns

              + +

              The translation of property path patterns has to be adjusted because the extended grammar allows for SPARQL-star property path patterns whose subject or object is a SPARQL-star triple pattern.

              + +

              The translation as specified in the W3C specification distinguishes four cases. The first three of these cases do not require adjustment because they are taken care of either by recursion or by the adjusted translation of basic graph patterns (as defined in § 4.3.4 Translate Basic Graph Patterns below). However, the fourth case MUST be adjusted as follows.

              + +

              Let X P Y be a string that corresponds to the fourth case in [SPARQL11-QUERY, Section 18.2.2.4]. Given the grammar introduced in § 4.2 Grammar, X and Y may be an RDF term, a variable, or a quoted triple pattern, respectively (and P is a property path expression). The string X P Y is translated to the algebra expression Path(X’,P,Y’) where X’ and Y’ are the result of calling a function named Lift for X and Y, respectively. For some input string Z (such as X or Y) that can be an RDF term, a variable, or a quoted triple pattern, the function Lift is defined recursively as follows:

              + +
                +
              1. If Z is a quoted triple pattern <<S,P,O>> then return the SPARQL-star triple pattern (Lift(S), P, Lift(O));
              2. +
              3. Otherwise, return Z.
              4. +
              + +
              Note
              + The purpose of this translation step is to convert any property path pattern as can be written based on the extended grammar for SPARQL-star (cf. § 4.2 Grammar) into a SPARQL-star property path pattern as considered in the algebra. To this end, the function Lift translates every quoted triple pattern as can be written in the SPARQL-star syntax into a SPARQL-star triple pattern. +
              +
              + +
              +

              4.3.4 Translate Basic Graph Patterns

              + +

              After translating property path patterns, the translation process collects any adjacent triple patterns [...] to form a basic graph pattern [SPARQL11-QUERY, Section 18.2.2.5]. This step has to be adjusted because triple patterns in the extended syntax may have a quoted triple pattern in their subject position or in their object position (or in both). To ensure that every result of this step is a BGP-star, before adding a triple pattern to its corresponding collection, its subject and object MUST be replaced by the result of calling function Lift for the subject and the object, respectively.

              +
              + +
              + +
              +

              4.4 Function and Operator Definitions

              + +

              SPARQL introduces operators and functions that can be used in an expression of a FILTER clause, a BIND clause, or a SELECT clause (see Section 17.3 and Section 17.4 in [SPARQL11-QUERY]). While these operators and functions are defined to operate on RDF terms and query variables, for SPARQL-star they have to be defined to operate on RDF-star terms and query variables. To this end, when using these operators and functions in the context of SPARQL-star, their definitions as given in Section 17.4 of [SPARQL11-QUERY] are extended by assuming that any mention of RDF term as a data type for operands is understood to be the type of all RDF-star terms.

              + +

              SPARQL-star introduces five new functions that are defined as follows (where the data types RDF-star term and RDF-star triple capture all RDF-star terms and all RDF-star triples, +respectively).

              + +

              The modifications to functions and operators for triple terms are:

              + + +
              +

              4.4.1 TRIPLE

              + +

              + RDF-star triple   + TRIPLE + ( + RDF-star term + term1, + RDF-star term + term2, + RDF-star term + term3 + ) +

              + +

              If the 3-tuple (term1, term2, term3) is an RDF-star triple, the function returns this triple. If the 3-tuple is not an RDF-star triple, then the function raises an error.

              + +
              + +
              +

              4.4.2 SUBJECT

              + +

              + RDF-star term   + SUBJECT + ( + RDF-star triple + triple + ) +

              + +

              If triple is an RDF-star triple, the function returns the subject of this triple. Passing anything other than an RDF-star triple is an error.

              + +
              + +
              +

              4.4.3 PREDICATE

              + +

              + RDF-star term   + PREDICATE + ( + RDF-star triple + triple + ) +

              + +

              If triple is an RDF-star triple, the function returns the predicate of this triple. Passing anything other than an RDF-star triple is an error.

              + +
              + +
              +

              4.4.4 OBJECT

              + +

              + RDF-star term   + OBJECT + ( + RDF-star triple + triple + ) +

              + +

              If triple is an RDF-star triple, the function returns the object of this triple. Passing anything other than an RDF-star triple is an error.

              + +
              + +
              +

              4.4.5 isTRIPLE

              + +

              + xsd:boolean   + isTRIPLE + ( + RDF-star term + term + ) +

              + +

              Returns true if term is an RDF-star triple. Returns false otherwise.

              + +
              + +
              +

              4.4.6 Quoted Triple Expression

              +

              + RDF-star triple   + << + RDF-star term term1, + RDF-star term term2, + RDF-star term term3 + >> +

              +

              + A Quoted Triple Expression + <<S P O>>, where S, + P and O conform to + ExprVarOrTerm, + is evaluated as TRIPLE(S, P, O). +

              +
              + +
              +

              4.4.7 sameTerm

              +

              + xsd:boolean + sameTerm + (term, term) +

              + +

              The function sameTerm is extended to support term comparison for + RDF-star triple terms by defining: +

              +
              +

              + Extended Definition: sameTerm +

              +

              + If both arguments are RDF-star triple terms: +

              + sameTerm(<<S1 P1 O1>>, + <<S2 P2 O2>>) +

              +

              + is evaluated as +

              +

              + sameTerm(S1, S2) && sameTerm(P1, P2) && sameTerm(O1, O2) +

              +

              This is applied recursively.

              +

              If one argument is an RDF-star triple term and the other argument is not, + the result is false. +

              +
              +
              + +
              +

              4.4.8 sparql-compare

              + +

              The function sparql-compare is defined to support value-comparison + operators such as = and ORDER BY. +

              +

              + xsd:boolean   + sparql-compare + (RDF-star term, + RDF-star term) +

              +

              + The function sparql-compare returns -1, 0, 1, or throws an + error, based on the comparison of two + RDF-star terms. + When comparing two RDF-star triple terms, comparison is + by pairwise comparison of subject, then predicate, then object. +

              +
              +

              + Definition: + + sparql-compare + +

              +
                +
              • If neither A nor B is an RDF-star triple term, + compare by SPARQL 1.1 operators + <, =, >) + and return the comparison value (-1, 0, +1) or throw an error + as defined by SPARQL 1.1.
                +
              • +
              • If either A or B is an RDF-star triple term, and the other is not + an RDF-star triple term, then error.
              • +
              • If sparql-compare(SUBJECT(A), SUBJECT(B)) != 0, + then return this value.
              • +
              • If sparql-compare(PREDICATE(A), PREDICATE(B)) != 0, + then return this value.
              • +
              • Return sparql-compare(OBJECT(A), OBJECT(B))
              • +
              +
              +
              + +
              +

              4.4.9 RDFterm-equal

              +

              + The function RDFterm-equal is the default dispatch for the + = operator. +

              +

              + This is extended to cover RDF-star terms so that it returns true + if term1 and term2 are both RDF-star triple + terms and RDFterm-equal is true + for pairwise comparison of the component RDF terms. +

              +
              +

              + Extended Definition: + RDFTerm-equal +

              +

              + If exactly one of the arguments is an RDF-star triple term, + return false. +

              +

              + If both arguments are RDF-star triple terms: +

              + RDFterm-equal(<<S1 P1 O1>>, + <<S2 P2 O2>>) +

              +

              + is evaluated as +

              +

              + RDFterm-equal(S1, S2) && RDFterm-equal(P1, P2) && RDFterm-equal(O1, O2) +

              +
              +

              + It produces an error if matching RDF terms in nested RDF triple terms when + both are literals but not the same RDF term. This is the same as the existing + RDFterm-equal. Operator mapping overrides this behavior. +

              +

              + The case of two RDF-star triple terms is covered by the operator dispatch mappings + and covers cases involving literals. +

              +
              + +
              +

              4.4.10 Operator Mappings

              + +

              New operator mappings are added for RDF-star triple terms for section + SPARQL 1.1 Query 17.3 Operator Mapping +

              + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
              SPARQL Binary Operators (SPARQL-star)
              OperatorType(A)Type(B)EvaluationResult type
              SPARQL-star Tests
              A = BRDF triple termRDF triple term + op:numeric-equal(sparql-compare(A, B), 0) + xsd:boolean
              A != BRDF triple termRDF triple term + fn:not(op:numeric-equal(sparql-compare(A, B), 0)) + xsd:boolean
              A < BRDF triple termRDF triple term + op:numeric-equal(sparql-compare(A, B), -1) + xsd:boolean
              A <= BRDF triple termRDF triple term + fn:not(op:numeric-equal(sparql-compare(A, B), 1)) + xsd:boolean
              A > BRDF triple termRDF triple term + op:numeric-equal(sparql-compare(A, B), 1) + xsd:boolean
              A >= B + RDF triple termRDF triple term + fn:not(op:numeric-equal(sparql-compare(A, B), -1)) + xsd:boolean
              +
              + +
              +

              4.4.11 Triple terms with ORDER BY

              + +

              There is an added item to the ordering of terms when they would not + otherwise be ordered. RDF-star triple terms are placed last (highest).

              +
                +
              1. (Lowest) no value assigned to the variable + or expression in this solution.
              2. +
              3. Blank nodes
              4. +
              5. IRIs
              6. +
              7. RDF literals
              8. +
              9. RDF-star triple terms
              10. +
              +

              + RDF-star triple terms are compared using the < operator. +

              +

              + While SPARQL-star does not define a total ordering of all possible RDF-star terms, + implementations should provide some ordering for ORDER BY + that does not change between queries if the data has not changed. +

              +
              +
              + +
              +

              4.5 Examples and Discussion

              This section is non-normative.

              + +

              By the evaluation semantics of SPARQL-star as defined in § 4.6 Evaluation Semantics, the five new built-in functions defined above can be used in exactly the same manner as the functions defined in the SPARQL 1.1 spec. For instance, the following SPARQL-star query retrieves every asserted triple that is both contained in the default graph of the queried RDF-star dataset and has a quoted triple as its subject.

              + +
              +
              SELECT ?t WHERE {
              +  ?s ?p ?o .
              +  BIND( TRIPLE(?s,?p,?o) AS ?t )
              +  FILTER( isTRIPLE(SUBJECT(?t)) )
              +}
              +
              + +

              Instead of accessing the subject of the triples in the FILTER after the BIND clause, as was done in the previous query, a semantically equivalent query may apply the FILTER directly on the variable ?s, as follows:

              + +
              +
              SELECT ?t WHERE {
              +  ?s ?p ?o .
              +  BIND( TRIPLE(?s,?p,?o) AS ?t )
              +  FILTER( isTRIPLE(?s) )
              +}
              +
              + +

              While the triples that the previous example queries bind to variable ?t occur in the queried data, the TRIPLE function can be used to construct triples that may not be in the data. For instance, the following query uses the subject of each asserted triple in the default graph of the queried RDF-star dataset to construct another triple, and bind it to the variable ?t. Notice that the result of this query contains as many SPARQL-star solution mappings as there are asserted triples in the queried graph, and there may be duplicates in the result if multiple asserted triples have the same subject.

              + +
              +
              PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
              +PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
              +
              +SELECT ?t WHERE {
              +  ?s ?p ?o .
              +  BIND( TRIPLE(?s,rdf:type,rdfs:Resource) AS ?t )
              +}
              +
              + +

              There are cases where the effects of using the new TRIPLE function are not immediately obvious just from its definition, particularly when considering the interplay of this function with the BNODE function when used within GRAPH clauses. Some of these cases are discussed below.

              + +

              Consider the following SPARQL-star query.

              + +
              +
              SELECT ( COUNT(?t1) AS ?t1Count )
              +       ( COUNT(?t2) AS ?t2Count )
              +       ( COUNT(?t3) AS ?t3Count )
              +       ( COUNT(DISTINCT ?t1) AS ?t1DistCount )
              +       ( COUNT(DISTINCT ?t2) AS ?t2DistCount )
              +       ( COUNT(DISTINCT ?t3) AS ?t3DistCount )
              +WHERE {
              +  GRAPH ?g {
              +    BIND( TRIPLE(BNODE(), :p, :o) AS ?t1 )
              +    BIND( TRIPLE(BNODE("id"), :p, :o) AS ?t2 )
              +    BIND( TRIPLE(:s, :p, :o) AS ?t3 )
              +  }
              +}
              +
              + +

              When evaluated over an RDF-star dataset that contains n named graphs, where n>0, the GRAPH clause results in one SPARQL-star solution mapping per named graph. The SELECT clause collapses these n mappings into a single mapping that is defined for the six variables introduced in the SELECT clause. (If n=0, the query result is the empty set.) Each of these six variables is mapped to an integer-typed literal with values as follows. For each of ?t1Count, ?t2Count, and ?t3Count, the value is n, because the variables ?t1, ?t2, and ?t3 are bound in each of the n solution mappings produced for the GRAPH clause. For the variable ?t1DistCount, the value is also n, because the BIND clauses are evaluated n times (once for each named graph) and the subexpression BNODE() always creates a different new blank node; thus, the triples created for variable ?t1 are all different from one another. This is also the case if the BNODE function is used with an argument; i.e., the value of ?t2DistCount is n too. In contrast, the variable ?t3 is mapped to the same triple within each evaluation of the third BIND clause; thus, the value for ?t3DistCount is 1.

              + +

              Notice that the BNODE function has to be used to create a blank node; simply writing a blank node directly in an expression is not permitted.

              + +

              Notice as well that the preceding query is special in two ways: its GRAPH clause does not actually consider the content of the named graphs; and the expressions in the BIND clauses do not contain variables. In contrast, the GRAPH clause and the BIND clauses in the following query do.

              + +
              +
              PREFIX rdf:  <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
              +PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
              +PREFIX rdfg: <http://www.w3.org/2004/03/trix/rdfg-1/>
              +
              +SELECT ( COUNT(?t1) AS ?t1Count )
              +       ( COUNT(?t2) AS ?t2Count )
              +WHERE {
              +  GRAPH ?g {
              +    ?g rdf:type rdfg:Graph .
              +    BIND( TRIPLE(?g, rdf:type, rdfs:Resource) AS ?t1 )
              +    BIND( TRIPLE(?x, rdf:type, rdfs:Resource) AS ?t2 )
              +  }
              +}
              +
              + +

              For every RDF-star dataset with n>0 named graphs, the result of this query consists of a single SPARQL-star solution mapping that is defined for the three variables introduced in the SELECT clause. The value of ?t1Count is the number of named graphs in the queried dataset that contain a triple of the form (u, rdf:type, rdfg:Graph) such that u is the name of the named graph in the dataset. The value of ?t2Count is always 0 (zero), because evaluating the expression of the second BIND clause results in an error, because the variable ?x is not bound in the scope of this evaluation. As a side note, evaluating the expression of the first BIND clause would also result in an error, if the variable ?g was not mentioned inside the GRAPH clause (e.g., if the given triple pattern was not there).

              + +
              + +
              +

              4.6 Evaluation Semantics

              + +

              The SPARQL specification defines a function eval(D(G), algebra expression) as the evaluation of an algebra expression with respect to a dataset D having active graph G [SPARQL11-QUERY, Section 18.6]. Recall that the dataset D in the context of SPARQL-star is an RDF-star dataset and, thus, the active graph G is an RDF-star graph, and so is any other graph in dataset D. The definition of the eval function is recursive; the base case of this definition for SPARQL-star are given as follows:

              + +
                +
              • For every BGP-star B, eval(D(G), B) is a multiset Ω that consists of all SPARQL-star solution mappings that are a solution for the BGP-star B over G. For every such mapping μ, card[Ω](μ) is the number of distinct RDF-star instance mappings σ such that dom(σ) is equivalent to the set of blank nodes in B and μ(σ(B)) is a subgraph of G. (For any SPARQL-star solution mapping μ' that is not a solution for B over G, we have that card[Ω](μ')=0; i.e., μ' is not in Ω.)
              • +
              + +

              For any other algebra expression, the SPARQL specification defines algebra operators [SPARQL11-QUERY]. These definitions can be extended naturally to operate over multisets of SPARQL-star solution mappings (instead of ordinary solution mappings). Given this extension, the recursive steps of the definition of the eval function for SPARQL-star are the same as in the SPARQL specification.

              +
              + +
              +

              4.7 Query Result Formats

              + +

              In SPARQL, queries can take four forms: SELECT, CONSTRUCT, DESCRIBE, and ASK - see SPARQL1.1 Query, Section 16 [SPARQL11-QUERY]. The first of these returns a sequence of solution mappings that contain variable bindings. The second and third both return an RDF graph, and the last returns a boolean value. +

              +

              The result of the ASK query form is not changed by the introduction of RDF-star, and the result of the CONSTRUCT and DESCRIBE forms can be represented by Turtle-star. However, since the SELECT form deals with returning individual RDF terms, the specific serialization formats for representing such query results need to be extended so that the new quoted triple RDF term can be represented. In this section, we propose extensions for the two most common formats for this purpose: SPARQL 1.1 Query Results JSON Format, and SPARQL Query Results XML Format (Second Edition).

              + +
              +

              4.7.1 SPARQL-star Query Results JSON Format

              +

              + The result of a SPARQL SELECT query is serialized in JSON as defined in SPARQL 1.1 Query Results JSON Format, which specifies a JSON representation of variable bindings to RDF terms (see [sparql11-results-json, Section 3.2]). To accommodate the new RDF term for quoted triples that RDF-star introduces, the table of RDF term JSON representations in sparql11-results-json, Section 3.2.2 is extended with the following entry: +

              +
              +
              A quoted triple with subject RDF term S, predicate RDF term P and object RDF term O
              +
              +
              {
              +  "type": "triple",
              +  "value": {
              +     "subject": S,
              +     "predicate": P,
              +     "object": O
              +  }
              +}
              + where S, P and O are encoded using the same format, recursively. +
              +
              + + +
              + +
              +

              4.7.2 SPARQL-star Query Results XML Format

              +

              + The result of a SPARQL SELECT query is serialized in XML as defined in SPARQL Query Results XML Format (Second Edition). This format proposes an XML representation of variable bindings to RDF terms. +

              +

              To accommodate the new RDF term for quoted triples that RDF-star introduces, the list of RDF terms and their XML representations in [RDF-SPARQL-XMLRES Section 2.3.1] is extended as follows: +

              +

              +

              +
              A quoted triple with subject term S, predicate term P, and object term O
              +
              +
              <binding>
              +  <triple>
              +    <subject>S</subject>
              +    <predicate>P</predicate>
              +    <object>O</object>
              +  </triple>
              +</binding>
              + where S, P and O are encoded recursively, using the same format, without the enclosing <binding> tag. +
              +
              + + + + +
              + +
              + +
              + +
              +

              5. SPARQL-star Update

              + +

              This section specifies SPARQL-star Update, an update language for RDF-star. This language extends SPARQL Update [SPARQL11-UPDATE], the update language for RDF, by adding RDF-star-specific features and semantics.

              + +
              +

              5.1 Informal Description

              This section is non-normative.

              + +

              While SPARQL Update operates over a graph store that consists of RDF graphs, SPARQL-star Update extends the notion of graph store to contain RDF-star graphs instead of RDF graphs. That is, a graph store in the context of SPARQL-star Update contains one (unnamed) slot holding an RDF-star graph, referred to as the default graph, and zero or more named slots holding other RDF-star graphs, referred to as named graphs. Then, all graph management operations in SPARQL Update (CREATE, DROP, COPY, MOVE, ADD) carry over directly to SPARQL-star Update with the only difference being that in SPARQL-star Update these operations manage RDF-star graphs. For instance, the CREATE operation in SPARQL-star Update creates an RDF-star graph rather than a pure RDF graph. Similarly, the graph update operations LOAD and CLEAR in SPARQL-star Update operate with RDF-star graphs in the same way as their SPARQL Update counterparts operate with RDF graphs.

              + +

              The only operations that SPARQL-star Update actually extends are the graph update operations INSERT DATA, DELETE DATA, and DELETE/INSERT. This section describes these extensions informally. While this description focuses mainly on updates to the default graph, the operations can also be applied to the named graphs.

              + +
              +

              5.1.1 INSERT DATA

              + +

              The INSERT DATA operation can be used to add a given set of triples into the graph store. In the context of SPARQL-star Update, these triples may be RDF-star triples. As an example, consider the following INSERT DATA operation.

              + +
              +
              PREFIX : <http://www.example.org/>
              +
              +INSERT DATA {
              +  :alice :claims << :bob :age 23 >> .
              +}
              +
              + +

              Suppose this INSERT DATA operation is executed over a graph store with an empty default graph. After executing this operation, the default graph contains the given (nested) RDF-star triple. Now, it is possible to query for this triple. For instance, the following SPARQL-star query returns a single solution mapping in which the variables ?p and ?a are mapped to the IRI :alice and the literal 23, respectively.

              + +
              +
              PREFIX : <http://www.example.org/>
              +
              +SELECT ?p ?a WHERE {
              +  ?p :claims << :bob :age ?a >> .
              +}
              +
              + +

              Notice that inserting a nested triple does not automatically also insert its quoted triple(s) as asserted triple(s) into the graph. Hence, in the previous example, after executing the given INSERT DATA operation, the default graph does not contain the triple :bob :age 23. In other words, a query such as the following would have an empty result.

              + +
              +
              PREFIX : <http://www.example.org/>
              +
              +SELECT ?a WHERE {
              +  :bob :age ?a .
              +}
              +
              + +

              For a quoted triple to be present in the graph as an asserted triple, it needs to be inserted as such. For instance, the INSERT DATA operation in the example above may be modified as follows in order to insert not only the nested triple but also the triple :bob :age 23.

              + +
              +
              PREFIX : <http://www.example.org/>
              +
              +INSERT DATA {
              +  :bob :age 23 .
              +  :alice :claims << :bob :age 23 >> .
              +}
              +
              + +
              + +
              +

              5.1.2 DELETE DATA

              + +

              The DELETE DATA operation can be used to remove a given set of triples from the graph store. In the context of SPARQL-star Update, this may include removing nested RDF-star triples as demonstrated in the following example.

              + +
              +
              PREFIX : <http://www.example.org/>
              +
              +DELETE DATA {
              +  :alice :claims << :bob :age 23 >> .
              +}
              +
              + +

              After executing this DELETE DATA operation over a graph store with a default graph that contains the given nested triple, the graph will not contain this triple any longer. If the graph did not contain that nested triple in the first place, the graph will remain unchanged by the given DELETE DATA operation.

              + +

              Notice that deleting triples by using the DELETE DATA operation does not affect any other triples in the corresponding graphs. For instance, for a default graph that contains the triple :bob :age 23 as an asserted triple, the DELETE DATA operation given above does not delete this asserted triple. In contrast, the following operation would delete this asserted triple but it would not delete any nested triple that contains the given triple as a quoted triple.

              + +
              +
              PREFIX : <http://www.example.org/>
              +
              +DELETE DATA {
              +  :bob :age 23 .
              +}
              +
              + +
              + +
              +

              5.1.3 DELETE/INSERT

              + +

              The DELETE/INSERT operation can be used to remove or add triples based on variable bindings obtained by evaluating a given WHERE clause. As an example, the following DELETE/INSERT operation replaces all nested triples in which :alice is the subject by nested triples in which :carol is the subject.

              + +
              +
              PREFIX : <http://www.example.org/>
              +
              +DELETE { :alice ?pp <<?s ?p ?o>> . }
              +INSERT { :carol ?pp <<?s ?p ?o>> . }
              +WHERE {  :alice ?pp <<?s ?p ?o>> . }
              +
              + +

              As in SPARQL Update, in SPARQL-star Update it is possible to use variations of the DELETE/INSERT operations in which either the DELETE clause or the INSERT clause are omitted.

              + +

              When removing triples via the DELETE clause (irrespective of whether the INSERT clause is omitted or not), the effects with respect to nested triples must be the same as described above for the DELETE DATA operation; i.e., only the triples that are explicitly identified to be deleted are deleted. Similarly, inserting triples via the INSERT clause has the same effects as described above for the INSERT DATA operation; i.e., inserting nested triples does not automatically also insert their quoted triples as asserted triples into the graph. Of course, it is possible to request such inserts explicitly as demonstrated in the following example.

              + +
              +
              PREFIX : <http://www.example.org/>
              +
              +DELETE { :alice ?pp <<?s ?p ?o>> . }
              +INSERT { :carol ?pp <<?s ?p ?o>> .  ?s ?p ?o .}
              +WHERE {  :alice ?pp <<?s ?p ?o>> . }
              +
              + +

              While all SPARQL-star Update examples above focus only on the default graph of a graph store, SPARQL-star Update can also be used to update the named graphs of a graph store, which works in exactly the same way as in SPARQL Update. As a possible example consider the following INSERT operation which retrieves all quoted triples found in nested triples in the default graph and inserts them as asserted triples into the named graph with IRI :graph2.

              + +
              +
              PREFIX : <http://www.example.org/>
              +
              +INSERT {
              +  GRAPH :graph2 { ?s ?p ?o }
              +}
              +WHERE {
              +  { <<?s ?p ?o>> ?pp ?oo }
              +  UNION
              +  { ?ss ?pp <<?s ?p ?o>> }
              +}
              +
              + +
              + +
              + + + +
              +

              5.2 Grammar

              + +

              SPARQL-star Update is an extension of the SPARQL Update language [SPARQL11-UPDATE]. As mentioned in SPARQL 1.1 Update, Appendix C [SPARQL11-UPDATE], the grammar of the latter is provided as part of the SPARQL 1.1 Query grammar. Similarly, the grammar of SPARQL-star Update is provided as part of the grammar of the SPARQL-star query language, which is defined by the SPARQL 1.1 Query grammar with the extensions specified in § 4.2 Grammar. As a result of these extensions, the production rules QuadData and QuadPattern, which are used in the definition of SPARQL Update [SPARQL11-UPDATE], are extended to capture nested triples and nested triple patterns as demonstrated in the examples above.

              + +
              + +
              +

              5.3 Semantics

              + +

              The semantics of SPARQL-star Update operations can also be defined by a simple extension of the formalization of SPARQL Update [SPARQL11-UPDATE]. This extension assumes that any mention of "RDF triple" or "triple" in the formalization of SPARQL Update is understood as an RDF-star triple. Similarly, "RDF graph" and "solution mapping" are understood as RDF-star graph and SPARQL-star solution mapping, respectively. Any mention of the "evaluation function eval()" is understood as the eval function for SPARQL-star as defined in § 4.6 Evaluation Semantics.

              + +
              + +
              + +
              +

              6. RDF-star Semantics

              + +

              In this section, we provide a model-theoretic semantics for RDF-star, based on the one defined in RDF 1.1 Semantics [RDF11-MT]. More precisely, we define a mapping from RDF-star's abstract syntax into standard RDF's abstract syntax, and define the semantics of RDF-star graphs in terms of the semantics of the mapped RDF graphs.

              + +

              In the following, we will use abbreviated IRIs using the prefix unstar: which is an alias for the namespace https://w3c.github.io/rdf-star/unstar#.

              + +

              We also introduce a number of definitions specific to RDF-star, which rely on the following notions, defined in RDF 1.1 Concepts and Abstract Syntax [RDF11-CONCEPTS] and RDF 1.1 Semantics [RDF11-MT]: + datatype, + lexical form, + ill-typed, + merging, + satisfiability, + unsatisfiability, + entailment, + and equivalence. +

              + +
              +

              6.1 Mapping RDF-star abstract syntax to RDF

              + +

              We define a mapping L that maps any IRI or literal t to a literal with:

              + + +

              Given an RDF-star graph G, the following steps define the unstar mapping, which transform G into an RDF graph that we call unstar(G).

              + +
              +
                +
              1. For each IRI i in the constituents of G starting with https://w3c.github.io/rdf-star/unstar#:
                  +
                1. Mint a new IRI j by appending an underscore (_) to i.
                2. +
                3. Replace with j all occurrences of i in the subject, predicate, or object position of an asserted or quoted triple of G.
                4. +
              2. +
              3. While G contains quoted triples:
                  +
                1. Pick an RDF-star triple (s, p, o) in the constituents of G such that neither s nor o is a quoted triple.
                2. +
                3. Mint a fresh blank node b (i.e., such that b is not in the constituents of G).
                4. +
                5. Replace with b all occurrences of (s, p, o) in the subject or object position of an asserted or quoted triple of G.
                6. +
                7. Add the following asserted triples to G:
                    +
                  • (b, unstar:subject,   s)
                  • +
                  • (b, unstar:predicate, p)
                  • +
                  • (b, unstar:object,    o) unless o is an ill-typed literal
                  • +
                  • (b, unstar:subjectLexical,   L(s)) unless s is a blank node
                  • +
                  • (b, unstar:predicateLexical, L(p))
                  • +
                  • (b, unstar:objectLexical,    L(o)) unless o is a blank node
                  • +
                8. +
              4. +
              +
              +

              After these steps, unstar(G) is an RDF graph, as it contains no quoted triples. Note that if G contains no quoted triple and no IRI in the unstar: namespace, then unstar(G) = G.

              + +
              + +
              +

              6.2 Entailment of RDF-star graphs

              + +

              Following RDF 1.1 Semantics, we define the notions of satisfiability and entailment for RDF-star graphs. Given two RDF-star graphs G and H:

              +

              + +

              It is easy to see that, in the special case of RDF graphs G and H (i.e. RDF-star graphs containing no quoted triple), G is star-satisfiable if and only if G is simply satisfiable, and G star-entails H if and only if G simply entails H. This is trivially true if G and H do not contain any unstar: IRI (in which case they are left unchanged by the unstar mapping). But this is also true if they do contain such IRIs (as the renaming performed by the unstar mapping has no significant impact on the semantic relationships between the two graphs). Star-entailment can therefore be considered as a natural extension of simple entailment to RDF-star graphs.

              + +
              Note

              Other notions of satisfiability and entailment, such as RDF entailment or RDFS entailment, can be extended in the same way for RDF-star graphs.

              +
              + +
              +

              6.3 Merging RDF-star graphs

              + +

              RDF 1.1 Semantics [RDF11-MT] defines the merging of two or more RDF graphs as "[taking their] union after forcing any shared blank nodes, which occur in more than one graph, to be distinct in each graph." Note that, in the case of RDF-star graphs, any blank node in the constituent terms of that graph is governed by the definition above, not only those in the subject or object position of some asserted triple.

              + +
              +
              #### graph #1
              +:alice :says
              +  << _:x :name "bob" >>,
              +  << _:x :likes :alice >>.
              +
              +#### graph #2
              +:bob :says
              +  << :alice :hates _:x >>.
              +
              +#### Merge of graphs #1 and #2 →
              +:alice :says
              +  << _:y :name "bob" >>,
              +  << _:y :likes :alice >>.
              +:bob :says
              +  << :alice :hates _:z >>.
              +
              + +
              + + +
              +

              6.4 Remarks

              This section is non-normative.

              + +
              +

              6.4.1 Implementing the RDF-star semantics

              + +

              It is important to notice that the definitions given above for satisfiability and entailment of RDF-star graphs do not mandate that implementations actually transform RDF-star graphs using the unstar mapping defined above. It should be possible to implement the semantics by directly handling RDF-star's abstract syntax.

              + +
              + +
              +

              6.4.2 Combining RDF-star graphs

              + +

              Care must be taken when implementations that rely on the unstar mapping combine the resulting RDF graphs through union or merge. Given two RDF-star graphs G and H, it may be the case that unstar(G ∪ H) ≠ unstar(G) ∪ unstar(H).

              + +

              In particular, if G and H contain the same quoted triple, this triple will be mapped to a single blank node in unstar(G ∪ H), but in two potentially different blank nodes in unstar(G) ∪ unstar(H). These blank nodes will need to be unified in order to reconstruct unstar(G ∪ H).

              + +

              Conversely, nothing in the definition of the unstar mapping prevents it from generating the same blank node b for a quoted triple of G, and for a different quoted triple of H (provided that b is not present in either G nor H). In that case, not only would unstar(G) ∪ unstar(H) be different from unstar(G ∪ H), but it would lose some information by mixing the descriptions of the two quoted triples.

              + +
              + +
              +

              6.4.3 Other uses of the unstar mapping

              + +

              Since the unstar mapping transforms any RDF-star graph into a standard ("non-star") RDF graph, it might be tempting to use this mapping for conveying RDF-star graphs to legacy RDF systems. However, this has a number of caveats.

              + +

              First, the unstar mapping alters the semantics of the graph: in general, a graph G is not equivalent to its "unstarred" version unstar(G), even if G is a standard RDF graph containing no quoted triples. (More precisely, they are equivalent only if G contains no quoted triples and no IRIs from the unstar: namespace.)

              + +

              Second, when a legacy RDF system communicates an RDF graph to an RDF-star-aware system, there is no means by which the latter can determine with certainty whether the graph is the result of applying the unstar mapping, and thus needs to be transformed back. (The presence of unstar: IRIs in the graph can be used as a hint, but such IRIs can also be used independently of the mapping.) Additional metadata should therefore be attached to unstarred graphs, so that RDF-star systems know whether or not they need to apply the inverse transformation of unstar.

              + +

              Finally, legacy RDF systems may alter unstarred graphs in ways that prevent their transformation back to the original RDF-star graph. For example, it has been pointed out above how combining several unstarred graphs may not yield the expected result. Another example is the removal of some arcs, such that a quoted triple is not completely described anymore, and can not be reconstructed.

              + +
              + +
              +

              6.4.4 Referential opacity

              + +

              The way the unstar mapping is defined, the denotation of a quoted triple does not only depend on the denotation of its component terms, but also on their syntactical form (for IRIs and literals). This behavior is referred to as referential opacity. A consequence is that two different triples, that would be semantically equivalent if asserted, are not automatically considered to denote the same thing when quoted. In the example below, assuming D-entailment: while "104232"^^xsd:nonNegativeInteger and "000104232"^^xsd:nonNegativeInteger denote the same thing (namely, the number 104232), the two quoted triples are allowed to have different denotations, and so the entailment does not hold.

              + +
              +
              #### under D-entailment
              +
              +<< dbr:Linköping dbo:populationTotal "104232"^^xsd::nonNegativeInteger >>
              +    :source <https://dbpedia.org/data/Linköping>.
              +
              +#### does NOT entail
              +
              +<< dbr:Linköping dbo:populationTotal "000104232"^^xsd::nonNegativeInteger >>
              +    :source <https://dbpedia.org/data/Linköping>.
              +
              +# (notice the leading zeros in the literal)
              +
              + +

              Similarly, in the example below and under OWL entailment [OWL2-Overview], while :superman and :clark are inferred to denote one and the same person (because of the owl:sameAs relationship between them), the two quoted triples are not automatically considered to denote the same thing.

              + +
              +
              #### under OWL-entailment
              +
              +:superman owl:sameAs :clark.
              +<< :superman :can :fly >> :reportedBy :clark.
              +
              +#### does NOT entail
              +
              +<< :clark :can :fly >> :reportedBy :clark.
              +
              + +

              Note that this may lead to counter-intuitive results when the annotation syntax is used, as illustrated in the example below.

              + +
              +
              #### under D-entailment
              +
              +dbr:Linköping dbo:populationTotal "104232"^^xsd::nonNegativeInteger
              +    {| :source <https://dbpedia.org/data/Linköping> |}.
              +
              +#### does NOT entail
              +
              +dbr:Linköping dbo:populationTotal "000104232"^^xsd::nonNegativeInteger
              +    {| :source <https://dbpedia.org/data/Linköping> |}.
              +
              +# (notice the leading zeros in the literal)
              +
              +#### more precisely, it DOES entail
              +
              +dbr:Linköping dbo:populationTotal "000104232"^^xsd::nonNegativeInteger.
              +
              +#### but it does NOT entail
              +
              +<< dbr:Linköping dbo:populationTotal "000104232"^^xsd::nonNegativeInteger >>
              +    :source <https://dbpedia.org/data/Linköping>.
              +
              + +
              + +
              +

              6.4.5 Selective referential transparency

              + +

              Referencial opacity is well suited for use-cases where the syntactical form of the annotated statements may be significant (like annotating statements from other graphs or annotating commit deltas). On the other hand, other use-cases would expect some degree of referential transparency. Consider the case of attributed/evidenced triples. The annotation is understood to be about the fact asserted by the triple rather than the triple itself. In this use case, one might then expect more inferences than provided by the base semantics. Consider the following example.

              + +
              +
              << dbr:Linköping dbo:populationTotal "104232"^^xsd::nonNegativeInteger >>
              +  :measuredOn "2010-12-31"^^xsd:date ;
              +  :source <https://dbpedia.org/data/Linköping.ttl> .
              +
              +### Candidate entailment #1
              +
              +<< dbr:Linköping dbo:populationTotal "000104232"^^xsd::nonNegativeInteger >>
              +  :measuredOn "2010-12-31"^^xsd:date .
              +
              +### Candidate entailment #2
              +
              +<< dbr:Linköping dbo:populationTotal "000104232"^^xsd::nonNegativeInteger >>
              +  :source <https://dbpedia.org/data/Linköping.ttl> .
              +
              +# (notice the leading zeros in the literal in both candidate entailments)
              +
              + +

              One could argue that the candidate entailment #1 is desirable because the property :measuredOn is understood to be about the statement made by the subject triple (that statement was true on the given date, regardless of its RDF expression, in this case using an object value equivalent to 104232). On the other hand, the candidate entailment #2 may be considered not desirable because the predicate :source is about the triple itself (that specific triple was parsed from the given Turtle file).

              + +

              In Section § 7. RDF-star vocabulary, we introduce the notion of transparency-enabling property (TEP), for selectively enabling this kind of entailment on specific properties. The basis of the idea is that each such property p is identified by adding to the RDF-star graph a triple of the form (p, rdf:type, rdf-star:TransparencyEnablingProperty); i.e., for the previous example, this triple would be (:measuredOn, rdf:type, rdf-star:TransparencyEnablingProperty). + This would make candidate entailment #1 above valid. The semantics of such TEPs is formally defined in Section § 7.3 Vocabulary semantics.

              + +

              Notice that enabling referential transparency based on such TEPs is only local to the RDF-star graph(s) in which the property is stated to be a TEP (or where this statement can be inferred as per the entailment regime considered). In other words, for every graph G in which a property is not stated to be transparency enabling, all quoted triples appearing in G as subject or object of that property are stilled considered as referentially opaque, even if there may exist some other graph in which the property is stated to be transparency enabling.

              + +
              Note

              This proposal for TEPs makes no distinction regarding the position (subject or object) of the quoted triples. The group did consider a finer-grained alternative, where selective transparency could also be enabled only for the subjects (resp. objects) of the TEP. This was however ruled out as overly complex for a limited added value.

              +
              + +
              +

              6.4.6 Other alternatives to referential opacity

              + +

              Given the potential drawbacks of the referential opacity provided by the current semantics, as described in the beginning of Section § 6.4.5 Selective referential transparency above, the group has considered other alternative semantics. No clear consensus was reached, however, to decide whether these alternatives should be used as a replacement, or as a semantic extension, of the current semantics.

              + +

              A fully referentially transparent semantics can be achieved by changing the step 2.4 of the unstar mapping algorithm as follows:

              + +
                +
              • Add the following asserted triples to G: +
                  +
                • (b, unstar:subject,   s)
                • +
                • (b, unstar:predicate, p)
                • +
                • (b, unstar:object,    o)
                • +
                +
              • +
              + +

              In the examples above (Example 36, Example 37, Example 38, Example 39), all the entailments would now hold automatically. This could be a problem in some use-cases, as such inferences could then not be cancelled, given the monotonic semantics of RDF.

              + +

              An intermediate alternative would be to make quoted triples referentially opaque for IRIs only, keeping it transparent for literals (and for blank nodes, as is already the case). This can be achieved by changing the step 2.4 of the unstar mapping algorithm as follows:

              + +
                +
              • Add the following asserted triples to G: +
                  +
                • (b, unstar:subject,   s)
                • +
                • (b, unstar:predicate, p)
                • +
                • (b, unstar:object,    o)
                • +
                • (b, unstar:subjectLexical,   L(s)) if s is an IRI
                • +
                • (b, unstar:predicateLexical, L(p))
                • +
                • (b, unstar:objectLexical,    L(o)) if o is an IRI
                • +
                +
              • +
              + +
              Note
              Other design choices for the semantics have also been discussed by the community group; these have been summarized in a Github issue.
              + +
              + +
              + +
              + +
              +

              7. RDF-star vocabulary

              This section is non-normative.

              + +

              In this section, we propose a minimal vocabulary that can be useful when working with RDF-star, especially when describing other vocabularies meant to be used with RDF-star triples and graphs.

              + +
              +

              7.1 Core vocabulary

              + +

              In this section we define IRIs for the concepts defined in other normative parts of this document.

              + +
              +
              rdf-star:Triple
              +
              This term identifies the class of all RDF-star triples. It is expected to serve, among other things, as the rdfs:domain or rdfs:range of properties meant to apply to quoted triples.
              + +
              rdf-star:Graph
              +
              This term identifies the class of all RDF-star graphs.
              + +
              rdf-star:Source
              +
              This term identifies the class of all RDF-star sources, an extension of the notion of RDF source: a persistent yet mutable source or container of RDF-star graphs.
              + +
              rdf-star:SPARQLStarQuery
              +
              This term identifies the extension of the SPARQL query language defined in Section § 4. SPARQL-star Query Language. It is expected to serve as the value of sd:supportedLanguage in SPARQL service descriptions [SPARQL11-SERVICE-DESCRIPTION].
              + +
              rdf-star:SPARQLStarUpdate
              +
              This term identifies the extension of the SPARQL update language defined in Section § 5. SPARQL-star Update. It is expected to value as the domain of sd:supportedLanguage in SPARQL service descriptions [SPARQL11-SERVICE-DESCRIPTION].
              +
              + +

              Below is a Turtle description of that vocabulary.

              + +
              +
              ## RDF-star core vocabulary
              +PREFIX rdf:       <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
              +PREFIX rdfs:      <http://www.w3.org/2000/01/rdf-schema#>
              +PREFIX rdf-star:  <http://www.w3.org/ns/rdf-star#>
              +PREFIX sd:        <http://www.w3.org/ns/sparql-service-description#>
              +
              +rdf-star:Triple      a rdfs:Class ;
              +    rdfs:isDefinedBy   <http://www.w3.org/ns/rdf-star#> ;
              +    rdfs:label         "RDF-star Triple" ;
              +    rdfs:comment       "The class of RDF-star triples." ;
              +    rdfs:subClassOf    rdfs:Resource .
              +
              +rdf-star:Graph       a rdfs:Class ;
              +    rdfs:isDefinedBy   <http://www.w3.org/ns/rdf-star#> ;
              +    rdfs:label         "RDF-star Graph" ;
              +    rdfs:comment       "The class of RDF-star graphs." ;
              +    rdfs:subClassOf    rdfs:Resource .
              +
              +rdf-star:Source      a rdfs:Class ;
              +    rdfs:isDefinedBy   <http://www.w3.org/ns/rdf-star#> ;
              +    rdfs:label         "RDF-star Source" ;
              +    rdfs:seeAlso       <https://www.w3.org/TR/rdf11-concepts/#h3_change-over-time> ;
              +    rdfs:comment       "The class of RDF-star sources." ;
              +    rdfs:subClassOf    rdfs:Resource .
              +
              +rdf-star:SPARQLStarQuery a sd:Language ;
              +    rdfs:isDefinedBy   <http://www.w3.org/ns/rdf-star#> ;
              +    rdfs:label         "SPARQL-star" ;
              +    rdfs:comment       "The SPARQL-star query language" .
              +
              +rdf-star:SPARQLStarUpdate a sd:Language ;
              +    rdfs:isDefinedBy   <http://www.w3.org/ns/rdf-star#> ;
              +    rdfs:label         "SPARQL-star Update" ;
              +    rdfs:comment       "The SPARQL-star update language" .
              +
              +
              + +
              +

              7.2 Extended vocabulary

              + +

              In this section we define IRIs for the concepts defined in other non-normative parts of this document.

              + +
              +
              rdf-star:TransparencyEnablingProperty
              +
              A special kind of property that, when applied to a quoted triple, also holds for any semantically equivalent triple, as discussed in § 6.4.5 Selective referential transparency.
              +
              + +

              Below is a Turtle description of that vocabulary.

              + +
              +
              ## RDF-star extended vocabulary
              +PREFIX rdf:       <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
              +PREFIX rdfs:      <http://www.w3.org/2000/01/rdf-schema#>
              +PREFIX rdf-star:  <http://www.w3.org/ns/rdf-star#>
              +
              +rdf-star:TransparencyEnablingProperty a rdfs:Class ;
              +    rdfs:isDefinedBy   <http://www.w3.org/ns/rdf-star#> ;
              +    rdfs:label         "RDF-star Source" ;
              +    rdfs:comment       "The class of transparency-enabling properties." ;
              +    rdfs:subClassOf    rdf:Property .
              +
              +
              + +
              +

              7.3 Vocabulary semantics

              + +

              We now describe a semantic extension of RDF-star, embedding the inherent semantics of the RDF-star vocabulary (RSV) described above (core and extended). A simple RSV-interpretation is a simple interpretation I that satisfies the following additional conditions:

              + +
                +
              1. Ensure that all quoted triples in this interpretations are instances of rdf-star:Triple.
                  +
                • For all t, x in the domain IR such that either
                    +
                  • (t, x) ∈ IEXT(IS(unstar:subject)), +
                  • (t, x) ∈ IEXT(IS(unstar:predicate)), +
                  • (t, x) ∈ IEXT(IS(unstar:object)), +
                  • (t, x) ∈ IEXT(IS(unstar:subjectLexical)), +
                  • (t, x) ∈ IEXT(IS(unstar:predicateLexical)), +
                  • (t, x) ∈ IEXT(IS(unstar:objectLexical)), +
                  +
                • then (t, IS(rdf-star:Triple)) must be an element of IEXT(IS(rdf:type)). +
                + + +
              2. Ensure that, for all quoted triples in this interpretation, all "equivalent" triples also exist in the interpretation.
                  +
                • For all t, s, p, o in the domain IR such that
                    +
                  • (t, s) ∈ IEXT(IS(unstar:subject)), +
                  • (t, p) ∈ IEXT(IS(unstar:predicate)), +
                  • (t, o) ∈ IEXT(IS(unstar:object)), +
                  +
                • and for all terms s', p', and o' such that
                    +
                  • I(s') = s, +
                  • I(p') = p, +
                  • I(o') = o, +
                  +
                • there must exist t' in IR such that
                    +
                  • (t', s) ∈ IEXT(IS(unstar:subject)), +
                  • (t', p) ∈ IEXT(IS(unstar:predicate)), +
                  • (t', o) ∈ IEXT(IS(unstar:object)), +
                  • (t', I(L(s'))) ∈ IEXT(IS(unstar:subjectLexical)), +
                  • (t', I(L(p'))) ∈ IEXT(IS(unstar:predicateLexical)), and +
                  • (t', I(L(o'))) ∈ IEXT(IS(unstar:objectLexical)). +
                  +
                + +
              3. Ensure that TEPs that hold for a triple also hold for all "equivalent" triples. +
                • For all p such that (p,IS(rdf-star:TransparencyEnablingProperty)) ∈ IEXT(IS(rdf:type)) +
                • then p must be an element of IP, and
                    + +
                  • For all t, u, s', p', o', t' in IR such that
                      +
                    • (t, u) ∈ IEXT(p) +
                    • (t, s') ∈ IEXT(IS(unstar:subject)), +
                    • (t, p') ∈ IEXT(IS(unstar:predicate)), +
                    • (t, o') ∈ IEXT(IS(unstar:object)), +
                    • (t', s') ∈ IEXT(IS(unstar:subject)), +
                    • (t', p') ∈ IEXT(IS(unstar:predicate)), +
                    • (t', o') ∈ IEXT(IS(unstar:object)) +
                    + then (t', u) must also be an element of IEXT(p). + +
                  • For all t, u, s', p', o', t' in IR such that
                      +
                    • (u, t) ∈ IEXT(p) +
                    • (t, s') ∈ IEXT(IS(unstar:subject)), +
                    • (t, p') ∈ IEXT(IS(unstar:predicate)), +
                    • (t, o') ∈ IEXT(IS(unstar:object)), +
                    • (t', s') ∈ IEXT(IS(unstar:subject)), +
                    • (t', p') ∈ IEXT(IS(unstar:predicate)), +
                    • (t', o') ∈ IEXT(IS(unstar:object)) +
                    + then (u, t') must also be an element of IEXT(p). +
                  +
                +
              + +

              Given two RDF-star graphs G and H, and following standard terminology, we say that a simple RSV-interpretation I satisfies G if I(G) = true, and that G is (simply) RSV-satisfiable if a simple RSV-interpretation exists that satisfies G; otherwise, G is (simply) RSV-unsatisfiable. We say that G simply RSV-entails H if every simple RSV-interpretation that satisfies G also satisfies H. If G and H each RSV-entail the other, they are RSV-equivalent.

              + +

              RSV-entailment is defined here as an extension of simple entailment, but other entailment regimes (such as RDF entailment or RDFS entailment) can be extended in the exact same way (i.e., by extending their respective notion of interpretation with the aforementioned conditions).

              + +
              Note

              Some terms of the RDF-star vocabulary have no associated constraint in RSV-interpretations (for instance, rdf-star:Graph). The reason is that the intended meaning of these terms leads to no particular inference with this vocabulary.

              + +
              + +
              Issue 169: Occurrences vocabulary latervocabulary
              + This issue discusses the relevance of introducing a standard property to link a quoted triple to its occurrences (as illustrated in Example 8), as well as other related properties and classes. +
              +
              + +
              +

              A. IANA Considerations

              This section is non-normative.

              + +

              In § 3. Concrete Syntaxes, we have proposed extensions to four existing media types, namely text/turtle [TURTLE], application/trig [TRIG], application/n-triples [N-TRIPLES] and application/n-quads [N-QUADS]. In § 4. SPARQL-star Query Language, we have proposed extensions to three more existing media types, namely application/sparql-query [SPARQL11-QUERY], application/sparql-results+json [SPARQL11-RESULTS-JSON], and application/sparql-result+xml [RDF-SPARQL-XMLRES]. While the RDF-DEV Community Group has no authority to officially update these media-types, we hope that a future working group with such authority will consider doing so, and include extensions proposed in this report.

              + +

              In the meantime, implementers of RDF-star are faced with a dilemma: use the standard media-type identifiers as if their definition had been already updated (optimistic approach); or make it explicit that they are prone to produce or consume quoted triples (pessimistic approach), perhaps by using a different temporary media-type, or custom HTTP headers.

              + +

              The optimistic approach raises the risk of breaking the expectations of other applications that are not RDF-star-aware. For example, if a SPARQL-star endpoint responds to a CONSTRUCT query with the text/turtle media-type, and includes a quoted triple in the response, a legacy client will fail to parse that response. On the other hand, if the same server applies the pessimistic approach, it may simply reject any query requiring text/turtle, just in case the result contain quoted triples. Note that it is not always feasible for the server to decide beforehand whether the result is plain Turtle or Turtle-star, because the result is often produced in a streamed manner, after the headers containing the media-type have been sent to the client.

              + +

              Another problem with the pessimistic approach is that "temporary" media-types are known to actually become permanent. Old applications keep using them long after their intended expiration date. This a burden on all other implementations, which must handle the "temporary" media-types along the permanent one, as aliases, in order to maintain backward compatibility.

              + +

              The W3C Recommendation + Content Negotiation by Profile + [DX-PROF-CONNEG] describes a mechanism that separates content-type + negotiation from requesting a response conforming to a specific information model, + whether that model is a specific standard, specification or profile. + The operations of the abstract model + are "list profiles" and "get resource by profile". + The "get resource" operation can provide the profile requests with HTTP + header Accept-Profile and responses use Content-Profile, or + alternatively the request can use HTTP Query String parameters. +

              + +

              + This may be useful when the information is available in RDF-star or in non-RDF-star + RDF 1.1 form, whether using reification, or by omitting information expressed with + the RDF-star data model and responding with a restricted response. By lifting the + issue up to the information model, away from being purely about syntax, restricted + responses can be requested and returned which do not use RDF-star features. + However, it assumes both requestor and receiver adhere to the defined profile + negotiation and therefore does not address the dilemma of optimistic or pessimistic + approaches. +

              + +
              Issue 43: New mime types for RDF-star serializations (inc. SPARQL results) sparql-starconcrete-syntaxlater

              Although the examples in this document, and the tests in the test suite, adopt the optimistic approach, it should be noted that no clear consensus emerged from the group on which approach is the best.

              + +
              + +
              +

              B. Historical remarks

              This section is non-normative.

              + +
              +

              B.1 SA-mode and PG-mode

              + +

              A lot of discussions on the RDF-star mailing list and GitHub repository refer to SA-mode and PG-mode. Those abbreviations stand for "Separate Assertion mode" and "Property Graph mode". They originate in the fact that different versions of RDF-star have been published over the years, with different designs. In PG-mode, any quoted triple was also considered asserted. SA-mode, on the other hand, allowed the use of quoted triples without those triples being automatically asserted, requiring that they be asserted separately when that was intended. SA-mode was more flexible, but induced redundancy in the use-cases that PG-mode was designed to address.

              + +

              The notion of annotations in the Turtle-star syntax was introduced to remove the need for different modes. Rather than interpret the same syntax differently in each mode, which would have caused interoperability problems and required a switch for those modes, it was decided to provide a different syntax for each use case.

              + +
                +
              • The << ... >> syntax represents a triple that is quoted without being asserted, satisfying the need formerly filled by SA-mode.
              • +
              • The :a :b :c {| :p :o ... |} annotation syntax creates triples where the subject is a quoted version of the triple asserted just before the annotation (here, :a :b :c), without the need to repeat it, satisfying the need formerly filled by PG-mode.
              • +
              +
              + +
              +

              B.2 The seminal example

              + +

              The motivating example in the original RDF-star paper [RDF-STAR-FOUNDATION] was on a provenance use-case, and is repeated below.

              + +
              +
              # the controversial seminal example
              +:bob foaf:name "Bob".
              +<<:bob foaf:age 23>> dct:creator <http://example.com/crawlers#c1> ;
              +                     dct:source <http://example.net/listing.html> .
              +
              + +

              This example was further debated on the RDF-star mailing list, as it appears to have set wrong expectations about what quoted triples represent. More precisely, from this example, one may wrongly assume that <<:bob foaf:age 23>> represents the occurrence of the given triple at the address http://example.net/listing.html (see § 2.3 Triples and occurrences). This impression may be reinforced by the use of dct:creator: arguably, a triple (as a unique abstract entity) is not "created" by anyone, while an occurrence thereof can be said to be created or authored.

              + +

              The problem with this interpretation is that it will break as soon as other creators and sources are added for the triple: one could not tell which source corresponds to which creator. Correctly capturing this information would require additional nodes to explicitly represent triple occurrences, as in Example 8. In summary, although RDF-star can be used for provenance, the seminal example does not work as stated and can lead to the fundamentally incorrect interpretation that RDF-star can represent multiple distinct quoted triples with the same subject, predicate, and object.

              + +
              + +
              + +
              +

              C. Complete EBNF Grammars

              + +
              +

              C.1 Turtle-Star EBNF Grammar

              This section is non-normative.

              +

              The following is a complete grammar for Turtle-Star. + The EBNF used here is defined in XML 1.0 [EBNF-NOTATION].

              + +
              + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
              [1]turtleDoc::=statement*
              [2]statement::=directive | ( triples ".")
              [3]directive::=prefixID | base | sparqlPrefix | sparqlBase
              [4]prefixID::="@prefix" PNAME_NS IRIREF "."?
              [5]base::="@base" IRIREF "."?
              [5s]sparqlPrefix::="PREFIX" PNAME_NS IRIREF
              [6s]sparqlBase::="BASE" IRIREF
              [6]triples::=( subject predicateObjectList) | ( blankNodePropertyList predicateObjectList? )
              [7]predicateObjectList::=verb objectList ( ";" ( verb objectList) ? ) *
              [8]objectList::=object annotation? ( "," object annotation? ) *
              [9]verb::=predicate | "a"
              [10]subject::=iri | BlankNode | collection | quotedTriple
              [11]predicate::=iri
              [12]object::=iri | BlankNode | collection | blankNodePropertyList | literal | quotedTriple
              [13]literal::=RDFLiteral | NumericLiteral | BooleanLiteral
              [14]blankNodePropertyList::="[" predicateObjectList "]"
              [15]collection::="(" object* ")"
              [16]NumericLiteral::=INTEGER | DECIMAL | DOUBLE
              [128s]RDFLiteral::=String ( LANGTAG | ( "^^" iri) ) ?
              [133s]BooleanLiteral::="true" | "false"
              [17]String::=STRING_LITERAL_QUOTE | STRING_LITERAL_SINGLE_QUOTE | STRING_LITERAL_LONG_SINGLE_QUOTE | STRING_LITERAL_LONG_QUOTE
              [135s]iri::=IRIREF | PrefixedName
              [136s]PrefixedName::=PNAME_LN | PNAME_NS
              [137s]BlankNode::=BLANK_NODE_LABEL | ANON
              [27]quotedTriple::="<<" qtSubject predicate qtObject ">>"
              [28]qtSubject::=iri | BlankNode | quotedTriple
              [29]qtObject::=iri | BlankNode | literal | quotedTriple
              [30]annotation::="{|" predicateObjectList "|}"
              @terminals# Productions for terminals
              [18]IRIREF::="<" ( [ ^#x00-#x20<>"{}|^`\] | UCHAR) * ">"
              [139s]PNAME_NS::=PN_PREFIX? ":"
              [140s]PNAME_LN::=PNAME_NS PN_LOCAL
              [141s]BLANK_NODE_LABEL::="_:" ( PN_CHARS_U | [ 0-9] ) ( ( PN_CHARS | ".") * PN_CHARS) ?
              [144s]LANGTAG::="@" [ a-zA-Z] + ( "-" [ a-zA-Z0-9] + ) *
              [19]INTEGER::=[ +-] ? [ 0-9] +
              [20]DECIMAL::=[ +-] ? ( [ 0-9] * "." [ 0-9] + )
              [21]DOUBLE::=[ +-] ? ( ( [ 0-9] + "." [ 0-9] * EXPONENT) | ( "." [ 0-9] + EXPONENT) | ( [ 0-9] + EXPONENT) )
              [154s]EXPONENT::=[ eE] [ +-] ? [ 0-9] +
              [22]STRING_LITERAL_QUOTE::='"' ( [ ^>"#x5C#x0A#x0D] | ECHAR | UCHAR) * '"'
              [23]STRING_LITERAL_SINGLE_QUOTE::="'" ( [ ^#x27#x5C#x0A#x0D] | ECHAR | UCHAR) * "'"
              [24]STRING_LITERAL_LONG_SINGLE_QUOTE::="'''" ( ( "'" | "''") ? ( [ ^'\] | ECHAR | UCHAR) ) * "'''"
              [25]STRING_LITERAL_LONG_QUOTE::='"""' ( ( '"' | '""') ? ( [ ^"\] | ECHAR | UCHAR) ) * '"""'
              [26]UCHAR::=( "\u" HEX HEX HEX HEX) | ( "\U" HEX HEX HEX HEX HEX HEX HEX HEX)
              [159s]ECHAR::="\" [ tbnrf\"']
              [161s]WS::=#x20 | #x09 | #x0D | #x0A
              [162s]ANON::="[" WS* "]"
              [163s]PN_CHARS_BASE::=[ A-Z]
              |[ a-z]
              |[ #xC0-#xD6]
              |[ #xD8-#xF6]
              |[ #xF8-#x02FF]
              |[ #x0370-#x037D]
              |[ #x037F-#x1FFF]
              |[ #x200C-#x200D]
              |[ #x2070-#x218F]
              |[ #x2C00-#x2FEF]
              |[ #x3001-#xD7FF]
              |[ #xF900-#xFDCF]
              |[ #xFDF0-#xFFFD]
              |[ #x00010000-#x000EFFFF]
              [164s]PN_CHARS_U::=PN_CHARS_BASE | "_"
              [166s]PN_CHARS::=PN_CHARS_U | "-" | [ 0-9] | #xB7 | [ #x0300-#x036F] | [ #x203F-#x2040]
              [167s]PN_PREFIX::=PN_CHARS_BASE ( ( PN_CHARS | ".") * PN_CHARS) ?
              [168s]PN_LOCAL::=( PN_CHARS_U | ":" | [ 0-9] | PLX) ( ( PN_CHARS | "." | ":" | PLX) * ( PN_CHARS | ":" | PLX) ) ?
              [169s]PLX::=PERCENT | PN_LOCAL_ESC
              [170s]PERCENT::="%" HEX HEX
              [171s]HEX::=[ 0-9] | [ A-F] | [ a-f]
              [172s]PN_LOCAL_ESC::="\" ( "_" | "~" | "." | "-" | "!" | "$" | "&" | "'" | "(" | ")" | "*" | "+" | "," | ";" | "=" | "/" | "?" | "#" | "@" | "%")
              + +
              +
              + +
              +

              C.2 TriG-Star EBNF Grammar

              This section is non-normative.

              +

              The following is a complete grammar for TriG-Star. + The EBNF used here is defined in XML 1.0 [EBNF-NOTATION].

              + +
              + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
              [1g]trigDoc::=( directive | block) *
              [2g]block::=triplesOrGraph | wrappedGraph | triples2 | ( "GRAPH" labelOrSubject wrappedGraph)
              [3g]triplesOrGraph::=( labelOrSubject ( wrappedGraph | ( predicateObjectList ".") ) ) | ( quotedTriple predicateObjectList ".")
              [4g]triples2::=( blankNodePropertyList predicateObjectList? ".") | ( collection predicateObjectList ".")
              [5g]wrappedGraph::="{" triplesBlock? "}"
              [6g]triplesBlock::=triples ( "." triplesBlock? ) ?
              [7g]labelOrSubject::=iri | BlankNode
              [3]directive::=prefixID | base | sparqlPrefix | sparqlBase
              [4]prefixID::="@prefix" PNAME_NS IRIREF "."?
              [5]base::="@base" IRIREF "."?
              [5s]sparqlPrefix::="PREFIX" PNAME_NS IRIREF
              [6s]sparqlBase::="BASE" IRIREF
              [6]triples::=( subject predicateObjectList) | ( blankNodePropertyList predicateObjectList? )
              [7]predicateObjectList::=verb objectList ( ";" ( verb objectList) ? ) *
              [8]objectList::=object annotation? ( "," object annotation? ) *
              [9]verb::=predicate | "a"
              [10]subject::=iri | blank | quotedTriple
              [11]predicate::=iri
              [12]object::=iri | blank | blankNodePropertyList | literal | quotedTriple
              [13]literal::=RDFLiteral | NumericLiteral | BooleanLiteral
              [14]blank::=BlankNode | collection
              [15]blankNodePropertyList::="[" predicateObjectList "]"
              [16]collection::="(" object* ")"
              [17]NumericLiteral::=INTEGER | DECIMAL | DOUBLE
              [128s]RDFLiteral::=String ( LANGTAG | ( "^^" iri) ) ?
              [133s]BooleanLiteral::="true" | "false"
              [18]String::=STRING_LITERAL_QUOTE | STRING_LITERAL_SINGLE_QUOTE | STRING_LITERAL_LONG_SINGLE_QUOTE | STRING_LITERAL_LONG_QUOTE
              [135s]iri::=IRIREF | PrefixedName
              [136s]PrefixedName::=PNAME_LN | PNAME_NS
              [137s]BlankNode::=BLANK_NODE_LABEL | ANON
              [27]quotedTriple::="<<" qtSubject predicate qtObject ">>"
              [28]qtSubject::=iri | BlankNode | quotedTriple
              [29]qtObject::=iri | BlankNode | literal | quotedTriple
              [30]annotation::="{|" predicateObjectList "|}"
              @terminals# Productions for terminals
              [19]IRIREF::="<" ( [ ^#x00-#x20<>"{}|^`\] | UCHAR) * ">"
              [139s]PNAME_NS::=PN_PREFIX? ":"
              [140s]PNAME_LN::=PNAME_NS PN_LOCAL
              [141s]BLANK_NODE_LABEL::="_:" ( PN_CHARS_U | [ 0-9] ) ( ( PN_CHARS | ".") * PN_CHARS) ?
              [144s]LANGTAG::="@" [ a-zA-Z] + ( "-" [ a-zA-Z0-9] + ) *
              [20]INTEGER::=[ +-] ? [ 0-9] +
              [21]DECIMAL::=[ +-] ? ( [ 0-9] * "." [ 0-9] + )
              [22]DOUBLE::=[ +-] ? ( ( [ 0-9] + "." [ 0-9] * EXPONENT) | ( "." [ 0-9] + EXPONENT) | ( [ 0-9] + EXPONENT) )
              [154s]EXPONENT::=[ eE] [ +-] ? [ 0-9] +
              [23]STRING_LITERAL_QUOTE::='"' ( [ ^>"#x5C#x0A#x0D] | ECHAR | UCHAR) * '"'
              [24]STRING_LITERAL_SINGLE_QUOTE::="'" ( [ ^#x27#x5C#x0A#x0D] | ECHAR | UCHAR) * "'"
              [25]STRING_LITERAL_LONG_SINGLE_QUOTE::="'''" ( ( "'" | "''") ? ( [ ^'\] | ECHAR | UCHAR) ) * "'''"
              [26]STRING_LITERAL_LONG_QUOTE::='"""' ( ( '"' | '""') ? ( [ ^"\] | ECHAR | UCHAR) ) * '"""'
              [27]UCHAR::=( "\u" HEX HEX HEX HEX) | ( "\U" HEX HEX HEX HEX HEX HEX HEX HEX)
              [159s]ECHAR::="\" [ tbnrf\"']
              [160s]NIL::="(" WS* ")"
              [161s]WS::=#x20 | #x09 | #x0D | #x0A
              [162s]ANON::="[" WS* "]"
              [163s]PN_CHARS_BASE::=[ A-Z]
              |[ a-z]
              |[ #xC0-#xD6]
              |[ #xD8-#xF6]
              |[ #xF8-#x02FF]
              |[ #x0370-#x037D]
              |[ #x037F-#x1FFF]
              |[ #x200C-#x200D]
              |[ #x2070-#x218F]
              |[ #x2C00-#x2FEF]
              |[ #x3001-#xD7FF]
              |[ #xF900-#xFDCF]
              |[ #xFDF0-#xFFFD]
              |[ #x00010000-#x000EFFFF]
              [164s]PN_CHARS_U::=PN_CHARS_BASE | "_"
              [166s]PN_CHARS::=PN_CHARS_U | "-" | [ 0-9] | #xB7 | [ #x0300-#x036F] | [ #x203F-#x2040]
              [167s]PN_PREFIX::=PN_CHARS_BASE ( ( PN_CHARS | ".") * PN_CHARS) ?
              [168s]PN_LOCAL::=( PN_CHARS_U | ":" | [ 0-9] | PLX) ( ( PN_CHARS | "." | ":" | PLX) * ( PN_CHARS | ":" | PLX) ) ?
              [169s]PLX::=PERCENT | PN_LOCAL_ESC
              [170s]PERCENT::="%" HEX HEX
              [171s]HEX::=[ 0-9] | [ A-F] | [ a-f]
              [172s]PN_LOCAL_ESC::="\" ( "_" | "~" | "." | "-" | "!" | "$" | "&" | "'" | "(" | ")" | "*" | "+" | "," | ";" | "=" | "/" | "?" | "#" | "@" | "%")
              + +
              +
              + +
              +

              C.3 N-Triples-Star EBNF Grammar

              This section is non-normative.

              +

              The following is a complete grammar for N-Triples-Star. + The EBNF used here is defined in XML 1.0 [EBNF-NOTATION].

              + +
              + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
              [1]ntriplesDoc::=triple? ( EOL triple) * EOL?
              [2]triple::=subject predicate object "."
              [3]subject::=IRIREF | BLANK_NODE_LABEL | quotedTriple
              [4]predicate::=IRIREF
              [5]object::=IRIREF | BLANK_NODE_LABEL | literal | quotedTriple
              [6]literal::=STRING_LITERAL_QUOTE ( ( "^^" IRIREF) | LANGTAG) ?
              [7t]quotedTriple::="<<" subject predicate object ">>"
              @terminals# Productions for terminals
              [144s]LANGTAG::="@" [ a-zA-Z] + ( "-" [ a-zA-Z0-9] + ) *
              [7]EOL::=[ #x0D#x0A] +
              [8]IRIREF::="<" ( [ ^#x00-#x20<>"{}|^`\] | UCHAR) * ">"
              [9]STRING_LITERAL_QUOTE::='"' ( [ ^>"#x5C#x0A#x0D] | ECHAR | UCHAR) * '"'
              [141s]BLANK_NODE_LABEL::="_:" ( PN_CHARS_U | [ 0-9] ) ( ( PN_CHARS | ".") * PN_CHARS) ?
              [10]UCHAR::=( "\u" HEX HEX HEX HEX) | ( "\U" HEX HEX HEX HEX HEX HEX HEX HEX)
              [153s]ECHAR::="\" [ tbnrf"'\]
              [157s]PN_CHARS_BASE::=[ A-Z]
              |[ a-z]
              |[ #xC0-#xD6]
              |[ #xD8-#xF6]
              |[ #xF8-#x02FF]
              |[ #x0370-#x037D]
              |[ #x037F-#x1FFF]
              |[ #x200C-#x200D]
              |[ #x2070-#x218F]
              |[ #x2C00-#x2FEF]
              |[ #x3001-#xD7FF]
              |[ #xF900-#xFDCF]
              |[ #xFDF0-#xFFFD]
              |[ #x00010000-#x000EFFFF]
              [158s]PN_CHARS_U::=PN_CHARS_BASE | "_" | ":"
              [160s]PN_CHARS::=PN_CHARS_U | "-" | [ 0-9] | #xB7 | [ #x0300-#x036F] | [ #x203F-#x2040]
              [162s]HEX::=[ 0-9] | [ A-F] | [ a-f]
              + +
              +
              + +
              +

              C.4 N-Quads-Star EBNF Grammar

              This section is non-normative.

              +

              The following is a complete grammar for N-Quads-Star. + The EBNF used here is defined in XML 1.0 [EBNF-NOTATION].

              + +
              + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
              [1]nquadsDoc::=statement? ( EOL statement) * EOL?
              [2]statement::=subject predicate object graphLabel "."
              [3]subject::=IRIREF | BLANK_NODE_LABEL | quotedTriple
              [4]predicate::=IRIREF
              [5]object::=IRIREF | BLANK_NODE_LABEL | literal | quotedTriple
              [6]graphLabel::=IRIREF | BLANK_NODE_LABEL
              [7]literal::=STRING_LITERAL_QUOTE ( ( "^^" IRIREF) | LANGTAG) ?
              [7t]quotedTriple::="<<" subject predicate object ">>"
              @terminals# Productions for terminals
              [144s]LANGTAG::="@" [ a-zA-Z] + ( "-" [ a-zA-Z0-9] + ) *
              [8]EOL::=[ #x0D#x0A] +
              [10]IRIREF::="<" ( [ ^#x00-#x20<>"{}|^`\] | UCHAR) * ">"
              [11]STRING_LITERAL_QUOTE::='"' ( [ ^>"#x5C#x0A#x0D] | ECHAR | UCHAR) * '"'
              [141s]BLANK_NODE_LABEL::="_:" ( PN_CHARS_U | [ 0-9] ) ( ( PN_CHARS | ".") * PN_CHARS) ?
              [12]UCHAR::=( "\u" HEX HEX HEX HEX) | ( "\U" HEX HEX HEX HEX HEX HEX HEX HEX)
              [153s]ECHAR::="\" [ tbnrf"'\]
              [157s]PN_CHARS_BASE::=[ A-Z]
              |[ a-z]
              |[ #xC0-#xD6]
              |[ #xD8-#xF6]
              |[ #xF8-#x02FF]
              |[ #x0370-#x037D]
              |[ #x037F-#x1FFF]
              |[ #x200C-#x200D]
              |[ #x2070-#x218F]
              |[ #x2C00-#x2FEF]
              |[ #x3001-#xD7FF]
              |[ #xF900-#xFDCF]
              |[ #xFDF0-#xFFFD]
              |[ #x00010000-#x000EFFFF]
              [158s]PN_CHARS_U::=PN_CHARS_BASE | "_" | ":"
              [160s]PN_CHARS::=PN_CHARS_U | "-" | [ 0-9] | #xB7 | [ #x0300-#x036F] | [ #x203F-#x2040]
              [162s]HEX::=[ 0-9] | [ A-F] | [ a-f]
              + +
              +
              + +
              +

              C.5 SPARQL-Star EBNF Grammar

              This section is non-normative.

              +

              The following is a complete grammar for SPARQL-Star. + The EBNF used here is defined in XML 1.0 [EBNF-NOTATION].

              + +
              + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
              [1]QueryUnit::=Query
              [2]Query::=Prologue ( SelectQuery | ConstructQuery | DescribeQuery | AskQuery) ValuesClause
              [3]UpdateUnit::=Update
              [4]Prologue::=( BaseDecl | PrefixDecl) *
              [5]BaseDecl::="BASE" IRIREF
              [6]PrefixDecl::="PREFIX" PNAME_NS IRIREF
              [7]SelectQuery::=SelectClause DatasetClause* WhereClause SolutionModifier
              [8]SubSelect::=SelectClause WhereClause SolutionModifier ValuesClause
              [9]SelectClause::="SELECT" ( "DISTINCT" | "REDUCED") ? ( ( Var | ( "(" Expression "AS" Var ")") ) + | "*")
              [10]ConstructQuery::="CONSTRUCT"
              ( ( ConstructTemplate DatasetClause* WhereClause SolutionModifier)( DatasetClause* "WHERE" "{" TriplesTemplate? "}" SolutionModifier) )
              [11]DescribeQuery::="DESCRIBE" ( VarOrIri+ | "*") DatasetClause* WhereClause? SolutionModifier
              [12]AskQuery::="ASK" DatasetClause* WhereClause ValuesClause
              [13]DatasetClause::="FROM" ( DefaultGraphClause | NamedGraphClause)
              [14]DefaultGraphClause::=SourceSelector
              [15]NamedGraphClause::="NAMED" SourceSelector
              [16]SourceSelector::=iri
              [17]WhereClause::="WHERE"? GroupGraphPattern
              [18]SolutionModifier::=GroupClause? HavingClause? OrderClause? LimitOffsetClauses?
              [19]GroupClause::="GROUP" "BY" GroupCondition+
              [20]GroupCondition::=BuiltInCall | FunctionCall | ( "(" Expression ( "AS" Var) ? ")") | Var
              [21]HavingClause::="HAVING" HavingCondition+
              [22]HavingCondition::=Constraint
              [23]OrderClause::="ORDER" "BY" OrderCondition+
              [24]OrderCondition::=( ( "ASC" | "DESC") BrackettedExpression) | ( Constraint | Var)
              [25]LimitOffsetClauses::=( LimitClause OffsetClause? ) | ( OffsetClause LimitClause? )
              [26]LimitClause::="LIMIT" INTEGER
              [27]OffsetClause::="OFFSET" INTEGER
              [28]ValuesClause::=( "VALUES" DataBlock) ?
              [29]Update::=Prologue ( Update1 ( ";" Update) ? ) ?
              [30]Update1::=Load | Clear | Drop | Add | Move | Copy | Create | InsertData | DeleteData | DeleteWhere | Modify
              [31]Load::="LOAD" "SILENT"? iri ( "INTO" GraphRef) ?
              [32]Clear::="CLEAR" "SILENT"? GraphRefAll
              [33]Drop::="DROP" "SILENT"? GraphRefAll
              [34]Create::="CREATE" "SILENT"? GraphRef
              [35]Add::="ADD" "SILENT"? GraphOrDefault "TO" GraphOrDefault
              [36]Move::="MOVE" "SILENT"? GraphOrDefault "TO" GraphOrDefault
              [37]Copy::="COPY" "SILENT"? GraphOrDefault "TO" GraphOrDefault
              [38]InsertData::="INSERT DATA" QuadData
              [39]DeleteData::="DELETE DATA" QuadData
              [40]DeleteWhere::="DELETE WHERE" QuadPattern
              [41]Modify::=( "WITH" iri) ? ( ( DeleteClause InsertClause? ) | InsertClause) UsingClause* "WHERE" GroupGraphPattern
              [42]DeleteClause::="DELETE" QuadPattern
              [43]InsertClause::="INSERT" QuadPattern
              [44]UsingClause::="USING" ( iri | ( "NAMED" iri) )
              [45]GraphOrDefault::="DEFAULT" | ( "GRAPH"? iri)
              [46]GraphRef::="GRAPH" iri
              [47]GraphRefAll::=GraphRef | "DEFAULT" | "NAMED" | "ALL"
              [48]QuadPattern::="{" Quads "}"
              [49]QuadData::="{" Quads "}"
              [50]Quads::=TriplesTemplate? ( QuadsNotTriples "."? TriplesTemplate? ) *
              [51]QuadsNotTriples::="GRAPH" VarOrIri "{" TriplesTemplate? "}"
              [52]TriplesTemplate::=TriplesSameSubject ( "." TriplesTemplate? ) ?
              [53]GroupGraphPattern::="{" ( SubSelect | GroupGraphPatternSub) "}"
              [54]GroupGraphPatternSub::=TriplesBlock? ( GraphPatternNotTriples "."? TriplesBlock? ) *
              [55]TriplesBlock::=TriplesSameSubjectPath ( "." TriplesBlock? ) ?
              [56]GraphPatternNotTriples::=GroupOrUnionGraphPattern | OptionalGraphPattern | MinusGraphPattern | GraphGraphPattern | ServiceGraphPattern | Filter | Bind | InlineData
              [57]OptionalGraphPattern::="OPTIONAL" GroupGraphPattern
              [58]GraphGraphPattern::="GRAPH" VarOrIri GroupGraphPattern
              [59]ServiceGraphPattern::="SERVICE" "SILENT"? VarOrIri GroupGraphPattern
              [60]Bind::="BIND" "(" Expression "AS" Var ")"
              [61]InlineData::="VALUES" DataBlock
              [62]DataBlock::=InlineDataOneVar | InlineDataFull
              [63]InlineDataOneVar::=Var "{" DataBlockValue* "}"
              [64]InlineDataFull::=( NIL | ( "(" Var* ")") ) "{" ( ( "(" DataBlockValue* ")") | NIL) * "}"
              [65]DataBlockValue::=QuotedTriple | iri | RDFLiteral | NumericLiteral | BooleanLiteral | "UNDEF"
              [66]MinusGraphPattern::="MINUS" GroupGraphPattern
              [67]GroupOrUnionGraphPattern::=GroupGraphPattern ( "UNION" GroupGraphPattern) *
              [68]Filter::="FILTER" Constraint
              [69]Constraint::=BrackettedExpression | BuiltInCall | FunctionCall
              [70]FunctionCall::=iri ArgList
              [71]ArgList::=NIL | ( "(" "DISTINCT"? Expression ( "," Expression) * ")")
              [72]ExpressionList::=NIL | ( "(" Expression ( "," Expression) * ")")
              [73]ConstructTemplate::="{" ConstructTriples? "}"
              [74]ConstructTriples::=TriplesSameSubject ( "." ConstructTriples? ) ?
              [75]TriplesSameSubject::=( VarOrTermOrQuotedTP PropertyListNotEmpty) | ( TriplesNode PropertyList)
              [76]PropertyList::=PropertyListNotEmpty?
              [77]PropertyListNotEmpty::=Verb ObjectList ( ";" ( Verb ObjectList) ? ) *
              [78]Verb::=VarOrIri | "a"
              [79]ObjectList::=Object ( "," Object) *
              [80]Object::=GraphNode AnnotationPattern?
              [81]TriplesSameSubjectPath::=( VarOrTermOrQuotedTP PropertyListPathNotEmpty) | ( TriplesNodePath PropertyListPath)
              [82]PropertyListPath::=PropertyListPathNotEmpty?
              [83]PropertyListPathNotEmpty::=( VerbPath | VerbSimple) ObjectListPath ( ";" ( ( VerbPath | VerbSimple) ObjectList) ? ) *
              [84]VerbPath::=Path
              [85]VerbSimple::=Var
              [86]ObjectListPath::=ObjectPath ( "," ObjectPath) *
              [87]ObjectPath::=GraphNodePath AnnotationPatternPath?
              [88]Path::=PathAlternative
              [89]PathAlternative::=PathSequence ( "|" PathSequence) *
              [90]PathSequence::=PathEltOrInverse ( "/" PathEltOrInverse) *
              [91]PathElt::=PathPrimary PathMod?
              [92]PathEltOrInverse::=PathElt | ( "^" PathElt)
              [93]PathMod::="*" | "?" | "+"
              [94]PathPrimary::=iri | "a" | ( "!" PathNegatedPropertySet) | ( "(" Path ")")
              [95]PathNegatedPropertySet::=PathOneInPropertySet | ( "(" ( PathOneInPropertySet ( "|" PathOneInPropertySet) * ) ? ")")
              [96]PathOneInPropertySet::=iri | "a" | ( "^" ( iri | "a") )
              [97]Integer::=INTEGER
              [98]TriplesNode::=Collection | BlankNodePropertyList
              [99]BlankNodePropertyList::="[" PropertyListNotEmpty "]"
              [100]TriplesNodePath::=CollectionPath | BlankNodePropertyListPath
              [101]BlankNodePropertyListPath::="[" PropertyListPathNotEmpty "]"
              [102]Collection::="(" GraphNode+ ")"
              [103]CollectionPath::="(" GraphNodePath+ ")"
              [104]GraphNode::=VarOrTermOrQuotedTP | TriplesNode
              [105]GraphNodePath::=VarOrTermOrQuotedTP | TriplesNodePath
              [106]VarOrTerm::=Var | GraphTerm
              [107]VarOrIri::=Var | iri
              [108]Var::=VAR1 | VAR2
              [109]GraphTerm::=iri | RDFLiteral | NumericLiteral | BooleanLiteral | BlankNode | NIL
              [110]Expression::=ConditionalOrExpression
              [111]ConditionalOrExpression::=ConditionalAndExpression ( "||" ConditionalAndExpression) *
              [112]ConditionalAndExpression::=ValueLogical ( "&&" ValueLogical) *
              [113]ValueLogical::=RelationalExpression
              [114]RelationalExpression::=NumericExpression
              ( ( "=" NumericExpression)( "!=" NumericExpression) | ( "<" NumericExpression) | ( ">" NumericExpression) | ( "<=" NumericExpression) | ( ">=" NumericExpression) | ( "IN" ExpressionList) | ( "NOT" "IN" ExpressionList) ) ?
              [115]NumericExpression::=AdditiveExpression
              [116]AdditiveExpression::=MultiplicativeExpression
              ( ( "+" MultiplicativeExpression)( "-" MultiplicativeExpression) | ( ( NumericLiteralPositive | NumericLiteralNegative) ( ( "*" UnaryExpression) | ( "/" UnaryExpression) ) ? ) ) *
              [117]MultiplicativeExpression::=UnaryExpression ( ( "*" UnaryExpression) | ( "/" UnaryExpression) ) *
              [118]UnaryExpression::=( "!" PrimaryExpression) | ( "+" PrimaryExpression) | ( "-" PrimaryExpression) | PrimaryExpression
              [119]PrimaryExpression::=BrackettedExpression | BuiltInCall | iriOrFunction | RDFLiteral | NumericLiteral | BooleanLiteral | Var | ExprQuotedTP
              [120]BrackettedExpression::="(" Expression ")"
              [121]BuiltInCall::=Aggregate
              |( "STR" "(" Expression ")")
              |( "LANG" "(" Expression ")")
              |( "LANGMATCHES" "(" Expression "," Expression ")")
              |( "DATATYPE" "(" Expression ")")
              |( "BOUND" "(" Var ")")
              |( "IRI" "(" Expression ")")
              |( "URI" "(" Expression ")")
              |( "BNODE" ( ( "(" Expression ")") | NIL) )
              |( "RAND" NIL)
              |( "ABS" "(" Expression ")")
              |( "CEIL" "(" Expression ")")
              |( "FLOOR" "(" Expression ")")
              |( "ROUND" "(" Expression ")")
              |( "CONCAT" ExpressionList)
              |SubstringExpression
              |( "STRLEN" "(" Expression ")")
              |StrReplaceExpression
              |( "UCASE" "(" Expression ")")
              |( "LCASE" "(" Expression ")")
              |( "ENCODE_FOR_URI" "(" Expression ")")
              |( "CONTAINS" "(" Expression "," Expression ")")
              |( "STRSTARTS" "(" Expression "," Expression ")")
              |( "STRENDS" "(" Expression "," Expression ")")
              |( "STRBEFORE" "(" Expression "," Expression ")")
              |( "STRAFTER" "(" Expression "," Expression ")")
              |( "YEAR" "(" Expression ")")
              |( "MONTH" "(" Expression ")")
              |( "DAY" "(" Expression ")")
              |( "HOURS" "(" Expression ")")
              |( "MINUTES" "(" Expression ")")
              |( "SECONDS" "(" Expression ")")
              |( "TIMEZONE" "(" Expression ")")
              |( "TZ" "(" Expression ")")
              |( "NOW" NIL)
              |( "UUID" NIL)
              |( "STRUUID" NIL)
              |( "MD5" "(" Expression ")")
              |( "SHA1" "(" Expression ")")
              |( "SHA224" "(" Expression ")")
              |( "SHA256" "(" Expression ")")
              |( "SHA384" "(" Expression ")")
              |( "SHA512" "(" Expression ")")
              |( "COALESCE" ExpressionList)
              |( "IF" "(" Expression "," Expression "," Expression ")")
              |( "STRLANG" "(" Expression "," Expression ")")
              |( "STRDT" "(" Expression "," Expression ")")
              |( "sameTerm" "(" Expression "," Expression ")")
              |( "isIRI" "(" Expression ")")
              |( "isURI" "(" Expression ")")
              |( "isBLANK" "(" Expression ")")
              |( "isLITERAL" "(" Expression ")")
              |( "isNUMERIC" "(" Expression ")")
              |( "TRIPLE" "(" Expression "," Expression "," Expression ")")
              |( "SUBJECT" "(" Expression ")")
              |( "PREDICATE" "(" Expression ")")
              |( "OBJECT" "(" Expression ")")
              |( "isTRIPLE" "(" Expression ")")
              |RegexExpression
              |ExistsFunc
              |NotExistsFunc
              [122]RegexExpression::="REGEX" "(" Expression "," Expression ( "," Expression) ? ")"
              [123]SubstringExpression::="SUBSTR" "(" Expression "," Expression ( "," Expression) ? ")"
              [124]StrReplaceExpression::="REPLACE" "(" Expression "," Expression "," Expression ( "," Expression) ? ")"
              [125]ExistsFunc::="EXISTS" GroupGraphPattern
              [126]NotExistsFunc::="NOT" "EXISTS" GroupGraphPattern
              [127]Aggregate::=( "COUNT" "(" "DISTINCT"? ( "*"Expression) ")")
              |( "SUM" "(" "DISTINCT"? Expression ")")
              |( "MIN" "(" "DISTINCT"? Expression ")")
              |( "MAX" "(" "DISTINCT"? Expression ")")
              |( "AVG" "(" "DISTINCT"? Expression ")")
              |( "SAMPLE" "(" "DISTINCT"? Expression ")")
              |( "GROUP_CONCAT" "(" "DISTINCT"? Expression ( ";" "SEPARATOR" "=" String) ? ")")
              [128]iriOrFunction::=iri ArgList?
              [129]RDFLiteral::=String ( LANGTAG | ( "^^" iri) ) ?
              [130]NumericLiteral::=NumericLiteralUnsigned | NumericLiteralPositive | NumericLiteralNegative
              [131]NumericLiteralUnsigned::=INTEGER | DECIMAL | DOUBLE
              [132]NumericLiteralPositive::=INTEGER_POSITIVE | DECIMAL_POSITIVE | DOUBLE_POSITIVE
              [133]NumericLiteralNegative::=INTEGER_NEGATIVE | DECIMAL_NEGATIVE | DOUBLE_NEGATIVE
              [134]BooleanLiteral::="true" | "false"
              [135]String::=STRING_LITERAL1 | STRING_LITERAL2 | STRING_LITERAL_LONG1 | STRING_LITERAL_LONG2
              [136]iri::=IRIREF | PrefixedName
              [137]PrefixedName::=PNAME_LN | PNAME_NS
              [138]BlankNode::=BLANK_NODE_LABEL | ANON
              [174]QuotedTP::="<<" qtSubjectOrObject Verb qtSubjectOrObject ">>"
              [175]QuotedTriple::="<<" DataValueTerm ( iri | "a") DataValueTerm ">>"
              [176]qtSubjectOrObject::=Var | BlankNode | iri | RDFLiteral | NumericLiteral | BooleanLiteral | QuotedTP
              [177]DataValueTerm::=iri | RDFLiteral | NumericLiteral | BooleanLiteral | QuotedTriple
              [178]VarOrTermOrQuotedTP::=Var | GraphTerm | QuotedTP
              [179]AnnotationPattern::="{|" PropertyListNotEmpty "|}"
              [180]AnnotationPatternPath::="{|" PropertyListPathNotEmpty "|}"
              [181]ExprQuotedTP::="<<" ExprVarOrTerm Verb ExprVarOrTerm ">>"
              [182]ExprVarOrTerm::=iri | RDFLiteral | NumericLiteral | BooleanLiteral | Var | ExprQuotedTP
              @terminals# Productions for terminals
              [139]IRIREF::="<" ( [ ^<>"{}|^`\] - [ #x00-#x20] ) * ">"
              [140]PNAME_NS::=PN_PREFIX? ":"
              [141]PNAME_LN::=PNAME_NS PN_LOCAL
              [142]BLANK_NODE_LABEL::="_:" ( PN_CHARS_U | [ 0-9] ) ( ( PN_CHARS | ".") * PN_CHARS) ?
              [143]VAR1::="?" VARNAME
              [144]VAR2::="$" VARNAME
              [145]LANGTAG::="@" [ a-zA-Z] + ( "-" [ a-zA-Z0-9] + ) *
              [146]INTEGER::=[ 0-9] +
              [147]DECIMAL::=[ 0-9] * "." [ 0-9] +
              [148]DOUBLE::=( [ 0-9] + "." [ 0-9] * EXPONENT) | ( "." [ 0-9] + EXPONENT) | ( [ 0-9] + EXPONENT)
              [149]INTEGER_POSITIVE::="+" INTEGER
              [150]DECIMAL_POSITIVE::="+" DECIMAL
              [151]DOUBLE_POSITIVE::="+" DOUBLE
              [152]INTEGER_NEGATIVE::="-" INTEGER
              [153]DECIMAL_NEGATIVE::="-" DECIMAL
              [154]DOUBLE_NEGATIVE::="-" DOUBLE
              [155]EXPONENT::=[ eE] [ +-] ? [ 0-9] +
              [156]STRING_LITERAL1::="'" ( [ ^#x27#x5C#x0A#x0D] | ECHAR) * "'"
              [157]STRING_LITERAL2::='"' ( [ ^>"#x5C#x0A#x0D] | ECHAR) * '"'
              [158]STRING_LITERAL_LONG1::="'''" ( ( "'" | "''") ? ( [ ^'\] | ECHAR) ) * "'''"
              [159]STRING_LITERAL_LONG2::='"""' ( ( '"' | '""') ? ( [ ^"\] | ECHAR) ) * '"""'
              [160]ECHAR::="\" [ tbnrf\"']
              [161]NIL::="(" WS* ")"
              [162]WS::=#x20 | #x09 | #x0D | #x0A
              [163]ANON::="[" WS* "]"
              [164]PN_CHARS_BASE::=[ A-Z]
              |[ a-z]
              |[ #xC0-#xD6]
              |[ #xD8-#xF6]
              |[ #xF8-#x02FF]
              |[ #x0370-#x037D]
              |[ #x037F-#x1FFF]
              |[ #x200C-#x200D]
              |[ #x2070-#x218F]
              |[ #x2C00-#x2FEF]
              |[ #x3001-#xD7FF]
              |[ #xF900-#xFDCF]
              |[ #xFDF0-#xFFFD]
              |[ #x00010000-#x000EFFFF]
              [165]PN_CHARS_U::=PN_CHARS_BASE | "_"
              [166]VARNAME::=( PN_CHARS_U | [ 0-9] ) ( PN_CHARS_U | [ 0-9] | #xB7 | [ #x0300-#x036F] | [ #x203F-#x2040] ) *
              [167]PN_CHARS::=PN_CHARS_U | "-" | [ 0-9] | #xB7 | [ #x0300-#x036F] | [ #x203F-#x2040]
              [168]PN_PREFIX::=PN_CHARS_BASE ( ( PN_CHARS | ".") * PN_CHARS) ?
              [169]PN_LOCAL::=( PN_CHARS_U | [ 0-9] ) ( ( PN_CHARS | ".") * PN_CHARS) ?
              [170]PLX::=PERCENT | PN_LOCAL_ESC
              [171]PERCENT::="%" HEX HEX
              [172]HEX::=[ 0-9] | [ A-F] | [ a-f]
              [173]PN_LOCAL_ESC::="\" ( "_" | "~" | "." | "-" | "!" | "$" | "&" | "'" | "(" | ")" | "*" | "+" | "," | ";" | "=" | "/" | "?" | "#" | "@" | "%")
              + +
              +
              +
              + +

              D. Issue Summary

              This section is non-normative.

              + +
              • Issue 169: Occurrences vocabulary
              • Issue 43: New mime types for RDF-star serializations (inc. SPARQL results)
              + + +

              E. References

              +

              E.1 Normative references

              +
              [N-QUADS]
              RDF 1.1 N-Quads. Gavin Carothers. W3C. 25 February 2014. W3C Recommendation. URL: https://www.w3.org/TR/n-quads/
              [N-TRIPLES]
              RDF 1.1 N-Triples. Gavin Carothers; Andy Seaborne. W3C. 25 February 2014. W3C Recommendation. URL: https://www.w3.org/TR/n-triples/
              [RDF-SPARQL-XMLRES]
              SPARQL Query Results XML Format (Second Edition). Dave Beckett; Jeen Broekstra. W3C. 21 March 2013. W3C Recommendation. URL: https://www.w3.org/TR/rdf-sparql-XMLres/
              [RDF11-CONCEPTS]
              RDF 1.1 Concepts and Abstract Syntax. Richard Cyganiak; David Wood; Markus Lanthaler. W3C. 25 February 2014. W3C Recommendation. URL: https://www.w3.org/TR/rdf11-concepts/
              [RDF11-MT]
              RDF 1.1 Semantics. Patrick Hayes; Peter Patel-Schneider. W3C. 25 February 2014. W3C Recommendation. URL: https://www.w3.org/TR/rdf11-mt/
              [RFC2119]
              Key words for use in RFCs to Indicate Requirement Levels. S. Bradner. IETF. March 1997. Best Current Practice. URL: https://www.rfc-editor.org/rfc/rfc2119
              [RFC8174]
              Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words. B. Leiba. IETF. May 2017. Best Current Practice. URL: https://www.rfc-editor.org/rfc/rfc8174
              [SPARQL11-QUERY]
              SPARQL 1.1 Query Language. Steven Harris; Andy Seaborne. W3C. 21 March 2013. W3C Recommendation. URL: https://www.w3.org/TR/sparql11-query/
              [SPARQL11-RESULTS-JSON]
              SPARQL 1.1 Query Results JSON Format. Andy Seaborne. W3C. 21 March 2013. W3C Recommendation. URL: https://www.w3.org/TR/sparql11-results-json/
              [SPARQL11-UPDATE]
              SPARQL 1.1 Update. Paula Gearon; Alexandre Passant; Axel Polleres. W3C. 21 March 2013. W3C Recommendation. URL: https://www.w3.org/TR/sparql11-update/
              [TRIG]
              RDF 1.1 TriG. Gavin Carothers; Andy Seaborne. W3C. 25 February 2014. W3C Recommendation. URL: https://www.w3.org/TR/trig/
              [TURTLE]
              RDF 1.1 Turtle. Eric Prud'hommeaux; Gavin Carothers. W3C. 25 February 2014. W3C Recommendation. URL: https://www.w3.org/TR/turtle/
              [XML]
              Extensible Markup Language (XML) 1.0 (Fifth Edition). Tim Bray; Jean Paoli; Michael Sperberg-McQueen; Eve Maler; François Yergeau et al. W3C. 26 November 2008. W3C Recommendation. URL: https://www.w3.org/TR/xml/
              [XPATH-FUNCTIONS]
              XQuery 1.0 and XPath 2.0 Functions and Operators (Second Edition). Ashok Malhotra; Jim Melton; Norman Walsh; Michael Kay. W3C. 14 December 2010. W3C Recommendation. URL: https://www.w3.org/TR/xpath-functions/
              +
              +

              E.2 Informative references

              +
              [DX-PROF-CONNEG]
              Content Negotiation by Profile. Lars G. Svensson; Nicholas Car. W3C. 26 November 2019. W3C Working Draft. URL: https://www.w3.org/TR/dx-prof-conneg/
              [EBNF-NOTATION]
              EBNF NOTATION. Tim Bray; Jean Paoli; C. M. Sperberg-McQueen; Eve Maler; François Yergeau. W3C. 26 November 2008. W3C Recommendation. URL: http://www.w3.org/TR/REC-xml/#sec-notation
              [JSON-LD]
              JSON-LD 1.0. Manu Sporny; Gregg Kellogg; Markus Lanthaler. W3C. 3 November 2020. W3C Recommendation. URL: https://www.w3.org/TR/json-ld/
              [OWL2-Overview]
              OWL 2 Web Ontology Language Document Overview (Second Edition). W3C OWL Working Group. W3C. 11 December 2012. W3C Recommendation. URL: https://www.w3.org/TR/owl2-overview/
              [RDF-STAR-FOUNDATION]
              Foundations of RDF* and SPARQL* - An Alternative Approach to Statement-Level Metadata in RDF.. Olaf Hartig. In Proceedings of the 11th Alberto Mendelzon International Workshop on Foundations of Data Management (AMW), Montevideo, Uruguay. June 2017. URL: http://ceur-ws.org/Vol-1912/paper12.pdf
              [RDF-SYNTAX-GRAMMAR]
              RDF 1.1 XML Syntax. Fabien Gandon; Guus Schreiber. W3C. 25 February 2014. W3C Recommendation. URL: https://www.w3.org/TR/rdf-syntax-grammar/
              [SPARQL11-SERVICE-DESCRIPTION]
              SPARQL 1.1 Service Description. Gregory Williams. W3C. 21 March 2013. W3C Recommendation. URL: https://www.w3.org/TR/sparql11-service-description/
              +
              \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/rdf-star-main/cg-spec/editors_draft.html b/corese-unit-test/src/test/resources/data/rdf-star-main/cg-spec/editors_draft.html new file mode 100644 index 0000000000..75028eda64 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/rdf-star-main/cg-spec/editors_draft.html @@ -0,0 +1,3564 @@ + + + + + RDF-star and SPARQL-star + + + + + + +
              +

              The Resource Description Framework (RDF) is a general-purpose framework for representing information on the Web. RDF-star extends RDF with a convenient way to make statements about other statements. This specification defines the abstract syntax of RDF-star as an extension of RDF's. It extends a number of RDF concrete syntaxes to support the new abstract syntax. It also extends RDF's formal semantics. Finally, this specification extends the SPARQL language to allow querying and updating of RDF-star data.

              +
              +
              +
              + +
              +

              Introduction

              + +
              +

              Background and Motivation

              + +

              The RDF data model lets you state facts in three-part subject-predicate-object statements known as triples. For example, with a single RDF triple, you can say that employee38 has a familyName of "Smith". A triple's predicate is a property specified with an IRI (an Internationalized version of a URI), identifying that property in a globally unambiguous way. A triple's subject and object can each be an IRI referencing any entity, and the object can also be a literal value such as "Smith" or data of other types such as dates, numbers, or Boolean values.

              + +

              Sometimes, we want the subject or object of a triple to refer to another triple. For example, the statement "according to employee22, employee38 has a jobTitle of 'Assistant Designer'" can be modeled as a triple with "according to" as its predicate, employee22 as its object, and another triple as its subject, namely the triple "employee38 has a jobTitle of 'Assistant Designer'". This use of a triple as the subject or object resource of another triple so that we can say things about that triple is known as reification. + The concept of reification has always been part of RDF, but expressing it in most RDF concrete syntaxes such as Turtle and N-Triples, as well as processing or querying it with SPARQL, has been verbose and cumbersome [[RDF-STAR-FOUNDATION]].

              + +
              + +
              +

              Overview

              + +

              This specification describes RDF-star, an extension of RDF's conceptual data model and concrete syntaxes, which provides a compact alternative to standard RDF reification. This model and its syntaxes enable the creation of concise triples that reference other triples as subject and object resources. +Triples that include a triple as a subject or an object are known as RDF-star triples. The following dataset shows the example RDF-star triples from above using the Turtle-star syntax, which uses double angle brackets to enclose a triple serving as a subject or object resource:

              + +
              +        
              +      
              + +

              After declaring a prefix so that IRIs can be abbreviated, the first triple in this example asserts that employee38 has a familyName of "Smith". Note that this dataset does not assert that employee38 has a jobTitle of "Assistant Designer"; it says that employee22 has made that claim. In other words, the triple "employee38 has a jobTitle of 'Assistant Designer'" is not what we call an asserted triple, like "employee38 has a familyName of 'Smith'" above; rather, it is known as a quoted triple.

              + +

              If we added the triple `:employee38 :jobTitle "Assistant Designer"` to the example above, then this triple about employee38's jobTitle would be both a quoted and an asserted triple. +This pattern is quite common, so Turtle-star offers a dedicated syntax for it, called the annotation syntax, illustrated in below. Note that this construct is purely syntactic sugar, as it can be expanded using only the double angle brackets.

              + +
              +  
              +
              + + +

              This specification also describes an extension to the SPARQL Protocol and Query Language known as SPARQL-star for the querying of RDF-star triples. For example, the following SPARQL-star query asks "who has made any claims about employee38?"

              + +
              +                
              +
              + + +

              SPARQL can also be used to update RDF data, and SPARQL-star also extends that part. For example, the following SPARQL-star adds all the statements made by employee22 about employee38 as asserted triples, annotating them as "confirmed".

              + +
              +                
              +
              + +
              +
              +

              Common misconceptions

              + +

              People coming to RDF-star may have wrong ideas about what it is or how to use it. The purpose of this section is to dispel the most common misconceptions. + +

              RDF-star is not syntactic sugar for standard reification. While the latter is a vocabulary that fits into the standard RDF model (abstract syntax), RDF-star extends that model (see ) with a new construct, namely quoted triples. Note also that the two are not mutually exclusive: standard reification can be used in conjunction with RDF-star. + +

              Unlike reified statements, RDF-star quoted triples are unique: wherever `<< :employee38 :jobTitle "Assistant Designer" >>` appears, it always denotes one and the same thing. This impacts the modeling choices one has to make when using RDF-star; this is further discussed in . + +

              Finally, quoted triples are referentially opaque. This means that two quoted triples containing distinct but equivalent terms (i.e., coreferences, known to denote the same thing) are nonetheless considered to be different triples. and the following sections discuss the rationale for this design, and how some form of referential transparency can still be added to RDF-star if and when needed. +

              + +
              +

              Conventions

              +

              For the remainder of this document, examples will assume that the following prefixes have been declared to represent the IRIs shown with them here:

              + + + + + + + + + + + + +
              `:``<http://www.example.org/>`
              `rdf:``<http://www.w3.org/1999/02/22-rdf-syntax-ns#>`
              `rdfs:``<http://www.w3.org/2000/01/rdf-schema#>`
              `owl:``<http://www.w3.org/2002/07/owl#>`
              `prov:``<http://www.w3.org/ns/prov#>`
              `dbo:``<http://dbpedia.org/ontology/>`
              `dbr:``<http://dbpedia.org/resource/>`
              `dc:``<http://purl.org/dc/elements/1.1/>`
              `dct:``<http://purl.org/dc/terms/>`
              `rdf-star:``<http://www.w3.org/ns/rdf-star#>`
              + +
              + +
              +

              Structure of this document

              +

              This specification covers many aspects of RDF-star, and not all sections will be of interest to all readers.

              +

              Section 2 first defines the concepts and the abstract syntax of RDF-star, to which all following sections refer. + The next three sections focus on how users will interact with the abstract syntax, defining the concrete syntaxes, the query language SPARQL-star and its counterpart for updates. Section 6 then defines RDF-star's formal semantics, which lays the foundation for reasoning with RDF-star data. Finally, Section 7 defines an RDF vocabulary capturing the main concepts of RDF-star.

              + +
              + + + + +
              + +
              +
              + can be... +
              +
              +
              +
              + ... serialized with
              + +
              +
              +
              + ... represented by
              + +
              +
              +
              + ... queried with
              +
              +
              +
              +
              + ... updated with
              + +
              +
              +
              + ... interpreted through
              + +
              +
              +
              A visual map of the sections of this document
              +
              +
              + +
              +

              A system supports RDF-star for input if it supports an input syntax for + an RDF 1.1 standard syntax that has additional syntax for + quoted triples. + Such input syntaxes include those in the + RDF-star test suite + (N-Triples-star syntax tests, + Turtle-star syntax tests, + or TriG-star syntax tests). +

              + +

              A system supports RDF-star for output if it supports an output syntax for + an RDF 1.1 standard syntax that has additional syntax for + quoted triples. + Such output syntaxes include those in the + RDF-star test suite + (N-Triples-star syntax tests, + Turtle-star syntax tests, + or TriG-star syntax tests). +

              +

              + A system supports SPARQL-star if it passes + the SPARQL-star syntax test suite + and the SPARQL-star evaluation test suites. +

              +
              + +
              + +
              +

              Concepts and Abstract Syntax

              + +

              In the following, we introduce a number of definitions specific to RDF-star, which rely on the following notions (extending some of them) defined in [[[RDF11-CONCEPTS]]] [[RDF11-CONCEPTS]]: + blank node, + default graph, + graph name, + IRI, + literal, + named graphs, + subject, + predicate, + object, + RDF dataset, + RDF graph, + RDF triple, + and RDF term. +

              + +

              An RDF-star graph is a set of RDF-star triples.

              + +

              An RDF-star triple is a 3-tuple defined recursively as follows:

              + + +

              As for RDF triples, we call the 3 components of an RDF-star triple its subject, predicate and object, respectively. From the definitions above, it follows that any RDF graph is also an RDF-star graph. Note also that, by definition, an RDF-star triple cannot contain itself and cannot be nested infinitely.

              + +

              IRIs, literals, blank nodes and RDF-star triples are collectively known as RDF-star terms.

              + +

              For every RDF-star triple t, we define its constituent terms (or simply constituents) as the set containing its subject, its predicate, its object, plus all the constituent terms of its subject and/or its object if they are themselves RDF-star triples. By extension, we define the constituent terms of an RDF-star graph to be the union set of the constituent terms of all its triples.

              + +
              + Consider the following RDF-star triple (represented in Turtle-star): +
              +        
              +      
              + Its set of constituent terms comprises the IRIs `:name`, `:statedBy`, `:bob`, the blank node `_:a`, the literal `"Alice"`, and the triple `<< _:a :name "Alice" >>`. +
              + +

              An RDF-star triple used as the subject or object of another RDF-star triple is called a quoted triple. An RDF-star triple that is an element of an RDF-star graph is called an asserted triple. Note that, in a given RDF-star graph, the same triple MAY be both quoted and asserted.

              + +

              An RDF-star dataset is a collection of RDF-star graphs, and comprises:

              + + + +

              Again, this definition is an extension of the notion of RDF dataset, hence it follows that any RDF dataset is also an RDF-star dataset.

              + +
              +

              Quoted and Asserted Triples

              + +

              + A triple in RDF is a tuple of three components: subject, predicate, and object. These are + collectively known as RDF Terms as defined in [[RDF11-CONCEPTS]]. +

              +

              + RDF-star introduces quoted triple, which is a new kind of RDF term. + A quoted triple is a triple used as the subject or object of another triple. Quoted + triples can also be called "embedded triples". +

              + +

              + In RDF 1.1, an asserted triple is an element of the set of triples that + make up an RDF graph. RDF-star does not change this except that an RDF-star + triple can contain quoted triples. A triple can be used as an asserted + triple, a quoted triple, or both, in a given graph. +

              + +

              + A quoted triple is written in Turtle-star and related syntaxes using delimiters `<<` and `>>`. +

              +

              + + << :a :name "Alice" >> + +

              +

              + The definition of quoted triple is recursive. That is, a quoted triple can itself have a + subject or object component which is another quoted triple. Cycles of quoted + triples can not be created. In the next example, there is a quoted triple with + property `:reportedBy`, whose subject is another quoted triple, `:a :name + "Alice"`. +

              +

              + + << << :a :name "Alice" >> :reportedBy :charlie >> + +

              +
              +

              + It may be apt to draw a parallel between "quoted" triples and + quoted expressions in the programming language Lisp. + Expressions in Lisp (called "s-expressions") are interpreted + through a process called "evaluation", and as a result they + have a value. A quoted expression evaluates to the expression itself - + you can imagine that quoting prevents the expression from being + evaluated. In RDF (as well as in RDF-star), asserting a triple + (i.e., considering it to be "true") serves as the analogue of + evaluation. Triples are asserted, unless (in RDF-star) they are quoted + which, effectively, prevents the triple from being asserted - thus a + quoted triple stands by itself and we assign no truth value to it. +

              +

              + Obviously this way of thinking is helpful only if you understand how Lisp works. +

              +
              +
              + +
              +

              RDF-star Graph Examples

              + +

              + In the example below, there is a quoted triple, `:a :name "Alice"`, which is used + as the subject for an asserted triple: +

              +
              +        
              +      
              +

              + The graph of this example has two asserted triples: +

              +
                +
              1. `:bob :name "Bob" .`
              2. +
              3. `<< :a :name "Alice" >> :statedBy :bob .`
              4. +
              +

              + This graph does not have an asserted triple, `:a :name "Alice"`, because + that triple is not an element of the set of triples. +

              +

              + On the other hand, the graph in the example below contains three asserted triples: + the same two as the previous example, and `:a :name "Alice"`. The latter is used + both as an asserted triple and a quoted triple in this graph. +

              +
              +        
              +      
              +
              + +
              +

              Triples and occurrences

              + +

              According to the definitions above, an RDF-star triple is an abstract entity whose identity is entirely defined by its subject, predicate, and object. Conversely, given three RDF-star terms |s|, |p|, and |o|, there is exactly and only one RDF-star triple with subject |s|, predicate |p|, and object |o|. This unique triple (|s|, |p|, |o|) can be quoted as the subject or object of multiple other triples, but must be assumed to represent the same thing everywhere it occurs, just like the same IRI |p| is assumed to represent the same thing everywhere it occurs.

              + +

              In some situations, however, it might be necessary to distinguish the occurrences of a triple in different graphs. Consider the following sentence: "The triple `<http://example.org/s> <http://example.org/p> <http://example.org/o>` in (the graph represented by) file1.ttl was added by Alice, and the same triple in file2.ttl was added by Bob." Note that the words "same triple" in this sentence may be confusing, because although the triple (as an abstract entity) is the same, its respective occurrences are different things, each within a different file and with a different author (this is known, in philosophy and linguistics, as the type-token distinction). As the quoted triple represents a unique thing, adequately conveying the meaning of the sentence above requires additional nodes for representing the two distinct occurrences. One possible solution is illustrated in the following example (using the Turtle-star concrete syntax described in the next section).

              + +
              +        
              +      
              +
              + +
              + +
              +

              Concrete Syntaxes

              + +

              This section defines the following concrete syntaxes:

              +
                +
              • +
              • +
              • +
              • +
              • +
              + +

              + Changes for SPARQL-star are given in + + and the changes for the result set formats in + .

              + +
              +

              Annotation Syntax

              +

              There are syntax additions for quoted triples and also for + annotation syntax + which provides a convenient shortcut in Turtle-star and + TriG-star syntaxes. It is used to both assert a triple and have that triple be the + subject of further triples. It uses delimiters `{|` and `|}` following an asserted + triple to make that triple, as a quoted triple, the subject of the + RDF-star triples formed by combining it with the enclosed RDF predicate(s) and object(s). +

              +

              + Annotation syntax does not appear in the RDF-star abstract data model. It is + only a syntactic short cut and the RDF-star abstract data model does not + distinguished how the triples were written. +

              +
              +        
              +      
              +

              is the same set of triples as:

              +
              +        
              +      
              +

              and RDF-star graph contains three asserted triples.

              +
              + +
              +

              Turtle-star

              +

              In this section, we present Turtle-star, + an extension of the Turtle format [[TURTLE]] + allowing the representation of RDF-star graphs. + For the sake of conciseness, + we only describe here the differences between Turtle-star and Turtle.

              + +
              +

              Grammar

              +

              Turtle-star is defined to follow the same grammar as Turtle, + except for the EBNF productions specified below, + which replace the productions having the same number (if any) in the original grammar.

              + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
              [8]`objectList`::= + object + annotation`?` + `(` + ',' + object + annotation`?` + `)*` +
              [10]`subject`::= + iri `|` + BlankNode `|` + collection `|` + quotedTriple +
              [12]`object`::= + iri `|` + BlankNode `|` + collection `|` + blankNodePropertyList `|` + literal `|` + quotedTriple +
              [27t]`quotedTriple`::= + '<<' + qtSubject + verb + qtObject + '>>' +
              [28t]`qtSubject`::= + iri `|` + BlankNode `|` + quotedTriple +
              [29t]`qtObject`::= + iri `|` + BlankNode `|` + literal `|` + quotedTriple +
              [30t]`annotation`::= + '{|' + predicateObjectList + '|}' +
              + +

              The complete grammar may be found in .

              + +

              + The changes are that `subject` + and `object` productions + have been extended to accept quoted triples, + which are described by the new productions 27t + to 30t. + Note that quoted triples accept a more restricted range of + subject and object expressions + than asserted triples. + Additionally, the `objectList` production + now accepts an optional annotation after each object.

              +
              + +
              +

              Parsing

              +

              A Turtle-star parser is similar to a Turtle parser + as defined in Section 7 of the Turtle specification [[TURTLE]], + with an additional item in its state :

              + +

              Additionally, the |curSubject| + can be bound to any RDF-star term + (including a quoted triple).

              + +

              A Turtle-star document defines an RDF-star graph + composed of a set of RDF-star triples. + The `subject` + and `qtSubject` productions set the |curSubject|. + The `verb` production + sets the |curPredicate|. + The `object` + and `qtObject` productions + set the |curObject|. + Finishing the `object` production, + an RDF-star triple |curSubject| |curPredicate| |curObject| is produced + (added to the RDF-star graph).

              + +

              Beginning the `quotedTriple` production + records the |curSubject| and |curPredicate|. + Finishing the `quotedTriple` production + yields the RDF-star triple |curSubject| |curPredicate| |curObject| + and restores the recorded values of |curSubject| and |curPredicate|.

              + +

              Beginning the `annotation` production + records the |curSubject| and |curPredicate|, + and sets the |curSubject| to the RDF-star triple |curSubject| |curPredicate| |curObject|. + Finishing the `annotation` production + restores the recorded values of |curSubject| and |curPredicate|.

              + +

              All other productions MUST be handled as specified + by Section 7 of the Turtle specification [[TURTLE]], + while still applying the changes above recursively.

              + +
              +

              Discussion

              + +

              This section describes parser behavior when parsing + a Turtle-star document that contains quoted triples + and annotations.

              + +

              Consider a Turtle-star document that describes an RDF triple, + and also uses that triple as a quoted triple + as the subject of another RDF-star triple:

              + +
              +      
              +      
              + +

              The usual process of parsing a Turtle document + applies with the addition of matching the quoted triple + `<< _:a :name "Alice" >>` + as part of the `subject` production. + The resulting RDF-star graph consists of two RDF-star triples:

              + +
                +
              1. (|b|, `http://example.org/#name`, `"Alice"`), + where |b| is a blank node
              2. +
              3. ((|b|, `http://example.org/#name`, `"Alice"`), `http://example.org/#statedBy`, `http://example.org/#bob/`), + where |b| is the same blank node
              4. +
              + +

              Because the above example includes the triple (|b|, `http://example.org/#name`, `"Alice"`) + as an asserted triple, + the same RDF-star graph may also be represented + by using the Turtle-star annotation syntax as follows:

              + +
              +      
              +      
              + +

              In this case, the `objectList` production + matches the `annotation` production on `{| :source :bob |}` + after parsing the `object` production on `"Alice"`. + At this point, the |curSubject|, |curPredicate|, and |curObject| are saved, + and a new RDF-star triple `_:a :name "Alice"` is created + and used as |curSubject| while processing + the `annotation` production.

              +
              +
              +
              + +
              +

              TriG-star

              + +

              This section describes TriG-star, + a minimal extension of the TriG format [[TRIG]] + using the same production updates described in .

              + +

              RDF-star describes quoted triples, + which are not necessarily present in any named graph, + or within the default graph.

              + +

              A TriG-star document defines an RDF-star dataset, composed of + a single default graph and zero or more named graphs, + all of which are RDF-star graphs.

              + +
              +

              Grammar

              +

              TriG-star is defined to follow the same grammar as TriG, + except for the EBNF productions specified below, + which replace the productions having the same number (if any) in the original grammar.

              + +

              The TriG-star grammar contains exactly the same production updates + described in + with an additional change to the triplesOrGraph production.

              + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
              [3g]`triplesOrGraph`::= + labelOrSubject + `(` + wrappedGraph + `|` + predicateObjectList + `'.' )` +
              + `|` + quotedTriple + predicateObjectList + `'.'` +
              +
              [8]`objectList`::= + object + annotation`?` + `(` + ',' + object + annotation`?` + `)*` +
              [10]`subject`::= + iri `|` + BlankNode `|` + collection `|` + quotedTriple +
              [12]`object`::= + iri `|` + BlankNode `|` + collection `|` + blankNodePropertyList `|` + literal `|` + quotedTriple +
              [27t]`quotedTriple`::= + '<<' + qtSubject + verb + qtObject + '>>' +
              [28t]`qtSubject`::= + iri `|` + BlankNode `|` + quotedTriple +
              [29t]`qtObject`::= + iri `|` + BlankNode `|` + literal `|` + quotedTriple +
              [30t]`annotation`::= + '{|' + predicateObjectList + '|}' +
              + +

              The complete grammar may be found in .

              +
              + +
              +

              Parsing

              +

              TriG-star parsing uses the same updates described + in + as applied to Section 5 of the TriG specification [[TRIG]].

              + +

              As with Turtle-star, + the `quotedTriple` + and `annotation` + are used to set either the |curSubject| or |curObject|, + and do not directly add the associated quoted triple to |curGraph|. + Subsequent productions which use either |curSubject| or |curObject| + may result in adding triples to |curGraph|.

              + +

              A conforming TriG-star parser MUST parse any + valid TriG document and any + valid Turtle-star document in addition + to the Turtle-star grammar productions contained within a named graph.

              +
              + +
              +

              Discussion

              + +

              TriG-star allows the same expressivity as Turtle-star + with the addition of allowing quoted triples + and annotations + within named graphs.

              + +
              +      
              +      
              + +

              The resulting RDF-star dataset consists of + an empty default graph, and a graph named `http://example.org/#G` + with two RDF-star triples:

              + +
                +
              1. (|b|, `http://example.org/#name`, `"Alice"`), + where |b| is a blank node
              2. +
              3. ((|b|, `http://example.org/#name`, `"Alice"`), `http://example.org/#statedBy`, `http://example.org/#bob/`), + where |b| is the same blank node
              4. +
              +
              +
              + +
              +

              N-Triples-star

              + +

              This section describes N-Triples-star, + a minimal extension of the N-Triples format [[N-TRIPLES]] + allowing a subject or an object + of an RDF-star triple to be a quoted triple.

              + +
              +

              Grammar

              +

              N-Triples-star is defined to follow the same grammar as + the N-Triples Grammar, + except for the EBNF productions specified below, + which replace the productions having the same number + (if any) in the original grammar.

              + + + + + + + + + + + + + + + + + + + + + + +
              [3]`subject`::=IRIREF | BLANK_NODE_LABEL | quotedTriple
              [5]`object`::=IRIREF | BLANK_NODE_LABEL | literal | quotedTriple
              [7t]`quotedTriple`::="<<" subject predicate object ">>"
              + +

              The complete grammar may be found in .

              + +

              The changes are that + `subject` + and `object` productions + have been extended to accept quoted triples, + which are described by the new production + 7.

              +
              + +
              +

              Parsing

              +

              In contrast to [[N-TRIPLES]], + N-Triples-star allows recursion on the + `subject` + and `object` productions.

              + +

              An N-Triples-star document defines an RDF-star graph + composed of a set of RDF-star triples. + The `triple` production + produces an RDF-star triple + composed of a `subject`, + `predicate`, + and `object`.

              + +

              In addition to the Term Constructors defined in [[N-TRIPLES]], + an additional constructor is defined for `quotedTriple` + of type RDF-star triple + defined by the terms constructed + for `subject`, + `predicate`, + and `object`.

              + +

              All other productions MUST be handled as specified by + Section 8.1 of the N-Triples specification [[N-TRIPLES]], + while still applying the changes above recursively.

              +
              +
              + +
              +

              N-Quads-star

              + +

              The [[N-QUADS]] format is extended to describe the + N-Quads-star format using the same production updates described in the N-Triples-star Grammar.

              + +

              The complete grammar may be found in .

              + +

              As RDF-star describes quoted triples and not quoted quads, + the `graphLabel` + component of an N-Quads `statement` + does not apply to the `quotedTriple` component.

              + +

              An N-Quads-star document defines an RDF-star dataset, + composed of a single default graph + and zero or more named graphs, + all of which are RDF-star graphs.

              + +

              A conforming N-Quads-star parser MUST parse any valid + N-Quads document and additionally parse the + subject and + object productions + from N-Triples-star to generate RDF-star triples which are + added to either the default graph or associated + named graph, as appropriate.

              +
              + +
              +

              Other Concrete Syntaxes

              + +

              While this document specifies a small number of concrete syntaxes, + nothing prevents other concrete syntaxes of RDF-star from being proposed. In particular, syntaxes such as + RDF/XML [[RDF-SYNTAX-GRAMMAR]], + and JSON-LD [[JSON-LD]], + could be extended to support RDF-star.

              +
              + +
              + +
              +

              SPARQL-star Query Language

              + +

              This Section introduces SPARQL-star, which is an RDF-star-aware extension of the RDF query language SPARQL [[SPARQL11-QUERY]]; i.e., SPARQL-star can be used to query RDF-star graphs.

              + +
              +

              Initial Definitions

              + +

              In the following, we introduce a number of SPARQL-star-specific definitions, which rely on the following notions, defined in [[[SPARQL11-QUERY]]] [[SPARQL11-QUERY]]: + query variable, + triple pattern, + property path pattern, + property path expression, + and solution mapping.

              + +

              A SPARQL-star triple pattern is a 3-tuple that is defined recursively as follows:

              +
                +
              1. Every SPARQL triple pattern is a SPARQL-star triple pattern; +
              2. If |t| and t' are SPARQL-star triple patterns, |x| is an RDF term or a query variable, and |p| is an IRI or a query variable, then (|t|, |p|, |x|), (|x|, |p|, |t|), and (|t|, |p|, t') are SPARQL-star triple patterns. +
              + +

              As for RDF-star triples, a SPARQL-star triple pattern MUST NOT contain itself.

              + +

              A SPARQL-star basic graph pattern (BGP-star) is a set of SPARQL-star triple patterns.

              + +

              A SPARQL-star property path pattern is a 3-tuple (|s|,|p|,|o|) where

              + + +

              A SPARQL-star solution mapping μ is a partial function from the set of all query variables to the set of all RDF-star terms. + The domain of μ, denoted by dom(μ), is the set of query variables for which μ is defined.

              + +

              The notion of a SPARQL-star solution mapping extends the notion of a standard SPARQL solution mapping; that is, every SPARQL solution mapping is a SPARQL-star solution mapping. However, in contrast to SPARQL solution mappings, SPARQL-star solution mappings may map variables also to RDF-star triples.

              + +

              All notions related to SPARQL solution mappings carry over naturally to SPARQL-star solution mappings. In particular, the definition of compatibility extends naturally to SPARQL-star solution mappings: two SPARQL-star solution mappings μ1 and μ2 are compatible if, for every variable v that is both in dom(μ1) and in dom(μ2), μ1(v) and μ2(v) are the same RDF-star term. + In this case, μ1 ∪ μ2 is also a SPARQL-star solution mapping. + Moreover, for any SPARQL-star solution mapping μ we write card[Ω](μ) to denote the cardinality of μ in a multiset Ω of such mappings. + Finally, given a BGP-star |B| and a SPARQL-star solution mapping μ, we write μ(|B|) to denote the result of replacing every variable |v| in |B| for which μ is defined with μ(v). +

              + +

              Next, we aim to carry over the notion of solutions for BGPs to BGP-star. To this end, we first define an auxiliary concept that carries over the notion of an + RDF instance mapping [[RDF11-MT]] to RDF-star.

              + +

              An RDF-star instance mapping σ is a partial function from the set of all blank nodes to the set of all RDF-star terms. + The domain of σ, denoted by dom(σ), is the set of blank nodes for which σ is defined.

              + +

              Similar to the corresponding notation for solution mappings, for an RDF-star instance mapping σ and a BGP-star |B| we write σ(|B|) to denote the result of replacing every blank node |b| in |B| for which σ is defined with σ(b).

              + +

              Now we are ready to define the notion of solution for BGP-star.

              + +

              Given a BGP-star |B| and an RDF-star graph |G|, a SPARQL-star solution mapping μ is a solution for the BGP-star |B| over |G| if it has the following two properties

              +
                +
              • dom(μ) is equivalent to the set of query variables in |B|, and +
              • there exists an RDF-star instance mapping σ such that dom(σ) is equivalent to the set of blank nodes in |B| and μ(σ(|B|)) is a subgraph of |G|. +
              + +
              + +
              +

              Grammar

              + +

              SPARQL-star is defined to follow the same grammar as SPARQL 1.1, except for the EBNF productions specified below, which replace the productions having the same number (if any) in the original grammar. The parts in which these productions differ from the corresponding productions in the original grammar are marked in bold font. Productions [174] and following have been added and have no counterpart in the original grammar.

              + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
              [65]`DataBlockValue`::= + QuotedTriple `|` + iri `|` + RDFLiteral `|` + NumericLiteral `|` + BooleanLiteral `|` + 'UNDEF' +
              [75]`TriplesSameSubject`::= + VarOrTermOrQuotedTP + PropertyListNotEmpty + `|` + TriplesNode + PropertyList +
              [80]`Object`::= + GraphNode + AnnotationPattern`?` +
              [81]`TriplesSameSubjectPath`::= + VarOrTermOrQuotedTP + PropertyListPathNotEmpty + `|` + TriplesNode + PropertyListPath +
              [87]`ObjectPath`::= + GraphNodePath + AnnotationPatternPath`?` +
              [104]`GraphNode`::= + VarOrTermOrQuotedTP `|` + TriplesNode +
              [105]`GraphNodePath`::= + VarOrTermOrQuotedTP `|` + TriplesNodePath +
              [119]`PrimaryExpression`::= + BrackettedExpression `|` + BuiltInCall `|` + iriOrFunction `|` + RDFLiteral `|` + NumericLiteral `|` + BooleanLiteral `|` + Var +
              + `|` ExprQuotedTP +
              +
              [121]`BuiltInCall`::= +
                 Aggregate
              +
              + `|` + 'STR' + '(' + Expression + ')' +
              +
              + `|` + 'LANG' + '(' + Expression + ')' +
              +
              + `|` + 'LANGMATCHES' + '(' + Expression + ')' +
              +
              + `|` + 'DATATYPE' + '(' + Expression + ')' +
              +
              + `|` + 'BOUND' + '(' + Var + ')' +
              +
              + `|` + 'IRI' + '(' + Expression + ')' +
              +
              + `|` + 'URI' + '(' + Expression + ')' +
              +
              + `|` + 'BNODE' + `(` + '(' + Expression + ')' + `|` + NIL + `)` +
              +
              + `|` + 'RAND' + NIL +
              +
              + `|` + 'ABS' + '(' + Expression + ')' +
              +
              + `|` + 'CEIL' + '(' + Expression + ')' +
              +
              + `|` + 'FLOOR' + '(' + Expression + ')' +
              +
              + `|` + 'ROUND' + '(' + Expression + ')' +
              +
              + `|` + 'CONCAT' + ExpressionList +
              + +
              + `|` + 'STRLEN' + '(' + Expression + ')' +
              + +
              + `|` + 'UCASE' + '(' + Expression + ')' +
              +
              + `|` + 'LCASE' + '(' + Expression + ')' +
              +
              + `|` + 'ENCODE_FOR_URI' + '(' + Expression + ')' +
              +
              + `|` + 'CONTAINS' + '(' + Expression + ',' + Expression + ')' +
              +
              + `|` + 'STRSTARTS' + '(' + Expression + ',' + Expression + ')' +
              +
              + `|` + 'STRENDS' + '(' + Expression + ',' + Expression + ')' +
              +
              + `|` + 'STRBEFORE' + '(' + Expression + ',' + Expression + ')' +
              +
              + `|` + 'STRAFTER' + '(' + Expression + ',' + Expression + ')' +
              +
              + `|` + 'YEAR' + '(' + Expression + ')' +
              +
              + `|` + 'MONTH' + '(' + Expression + ')' +
              +
              + `|` + 'DAY' + '(' + Expression + ')' +
              +
              + `|` + 'HOURS' + '(' + Expression + ')' +
              +
              + `|` + 'MINUTES' + '(' + Expression + ')' +
              +
              + `|` + 'SECONDS' + '(' + Expression + ')' +
              +
              + `|` + 'TIMEZONE' + '(' + Expression + ')' +
              +
              + `|` + 'TZ' + '(' + Expression + ')' +
              +
              + `|` + 'NOW' + NIL +
              +
              + `|` + 'UUID' + NIL +
              +
              + `|` + 'STRUUID' + NIL +
              +
              + `|` + 'MD5' + '(' + Expression + ')' +
              +
              + `|` + 'SHA1' + '(' + Expression + ')' +
              +
              + `|` + 'SHA256' + '(' + Expression + ')' +
              +
              + `|` + 'SHA384' + '(' + Expression + ')' +
              +
              + `|` + 'SHA512' + '(' + Expression + ')' +
              +
              + `|` + 'COALESCE' + ExpressionList +
              +
              + `|` + 'IF' + '(' + Expression + ',' + Expression + ',' + Expression + ')' +
              +
              + `|` + 'STRLANG' + '(' + Expression + ',' + Expression + ')' +
              +
              + `|` + 'STRDT' + '(' + Expression + ',' + Expression + ')' +
              +
              + `|` + 'sameTerm' + '(' + Expression + ',' + Expression + ')' +
              +
              + `|` + 'isIRI' + '(' + Expression + ')' +
              +
              + `|` + 'isURI' + '(' + Expression + ')' +
              +
              + `|` + 'isBLANK' + '(' + Expression + ')' +
              +
              + `|` + 'isLITERAL' + '(' + Expression + ')' +
              +
              + `|` + 'isNUMERIC' + '(' + Expression + ')' +
              +
              + `|` + RegexExpression +
              +
              + `|` + ExistsFunc +
              +
              + `|` + NotExistsFunc +
              +
              + `|` + 'TRIPLE' + '(' + Expression + ',' + Expression + ',' + Expression + ')' +
              +
              + `|` + 'SUBJECT' + '(' + Expression + ')' +
              +
              + `|` + 'PREDICATE' + '(' + Expression + ')' +
              +
              + `|` + 'OBJECT' + '(' + Expression + ')' +
              +
              + `|` + 'isTRIPLE' + '(' + Expression + ')' +
              +
              [174]`QuotedTP`::= + '<<' + qtSubjectOrObject + Verb + qtSubjectOrObject + '>>' +
              [175]`QuotedTriple`::= + '<<' + DataValueTerm + `(` + iri + `|` + 'a' + `)` + DataValueTerm + '>>' +
              [176]`qtSubjectOrObject`::= + Var `|` + BlankNode `|` + iri `|` + RDFLiteral `|` + NumericLiteral `|` + BooleanLiteral `|` + QuotedTP +
              [177]`DataValueTerm`::= + iri `|` + RDFLiteral `|` + NumericLiteral `|` + BooleanLiteral `|` + QuotedTriple +
              [178]`VarOrTermOrQuotedTP`::= + Var `|` + GraphTerm `|` + QuotedTP +
              [179]`AnnotationPattern`::= + '{|' + PropertyListNotEmpty + '|}' +
              [180]`AnnotationPatternPath`::= + '{|' + PropertyListPathNotEmpty + '|}' +
              [181]`ExprQuotedTP`::= + '<<' + ExprVarOrTerm + Verb + ExprVarOrTerm + '>>' +
              [182]`ExprVarOrTerm`::= + iri `|` + RDFLiteral `|` + NumericLiteral `|` + BooleanLiteral `|` + Var `|` + ExprQuotedTP +
              + +

              The complete grammar may be found in .

              + +

              + This introduces a notation for quoted triple patterns + (production [174]), + which is similar to the one defined for quoted triples in , + but accepting also variables. + These quoted triple patterns are allowed in both the subject position ([75], [81]) and the object position ([80], [87]) + of SPARQL-star triple patterns, as well as in the short-hand notation for querying collections ([102], [103]). +

              + +

              + Additionally, production [65] for values that can be used in the VALUES clause is extended to permit RDF-star triples as possible values, and the set of available built-in functions is extended with the five functions TRIPLE, SUBJECT, PREDICATE, OBJECT, and isTRIPLE ([121]) that are defined in . +

              + +

              As defined for all keywords in SPARQL, the names of the five new built-in functions added by SPARQL-star are matched in a case-insensitive manner.

              + +

              + Yet another extension is that both the Object and the ObjectPath productions now accept an optional annotation pattern after each object. The purpose of this feature is to enable users to use the same kind of annotation syntax that is supported in Turtle-star. As in the case of Turtle-star, the annotation syntax in SPARQL-star is purely syntactic sugar that has to be processed in accordance to the first expansion rule in . +

              + +

              + A restriction to the use of the annotation syntax in SPARQL-star exists that is not captured by the grammar as defined above: An AnnotationPatternPath may be added only to SPARQL-star property path patterns in which the property path expression is a PredicatePath (i.e., a single IRI) or the keyword a (as a short form for the IRI rdf:type). Hence, a query such as the following violates this restriction and, thus, is invalid. +

              + +
              +        
              +      
              + +

              + While annotation patterns must not be added to property path patterns other than the ones permitted by the restriction above, it is possible to use property path expressions within annotation patterns (but without violating the restriction in the case of nested annotation patterns). For instance, the following query is valid. +

              + +
              +        
              +      
              + +
              + +
              +

              Translation to the Algebra

              + +

              Based on the SPARQL grammar, the SPARQL specification defines the process of converting graph patterns and solution modifiers in a SPARQL query string into a SPARQL algebra expression [SPARQL11-QUERY, Section 18.2]. This process must be adjusted to consider the extended grammar introduced above. In the following, any step of the conversion process that requires adjustment is discussed.

              + +
              +

              Variable Scope

              + +

              As a basis of the translation, the SPARQL specification introduces a notion of in-scope variables. To cover the new syntax elements introduced in this notion MUST be extended as follows.

              + +
                +
              • A variable is in-scope of a BGP-star |B| if the variable occurs in |B|, which includes an occurrence in any quoted triple pattern in |B| (independent of the level of nesting).
              • +
              • A variable is in-scope of a property path pattern if the variable occurs in that pattern, which includes an occurrence in any quoted triple pattern in the pattern (independent of the level of nesting).
              • +
              +
              + +
              +

              Expand Syntax Forms

              + +

              The translation process starts with expanding abbreviations for IRIs and triple patterns [SPARQL11-QUERY, Section 18.2.2.1]. This step MUST be extended in three ways:

              + +
                +
              1. +

                Annotation patterns MUST be replaced by additional SPARQL-star triple patterns that have the annotated triple pattern as a quoted triple pattern in their subject position.

                + + + +
              2. +
              3. +

                Abbreviations for triple patterns with quoted triple patterns MUST be expanded as if each quoted triple pattern was a variable (or an RDF term).

                + + +
              4. +
              5. +

                Abbreviations for IRIs in all quoted triple patterns MUST be expanded.

                + + +
              6. +
              +
              + +
              +

              Translate Property Path Patterns

              + +

              The translation of property path patterns has to be adjusted because the extended grammar allows for SPARQL-star property path patterns whose subject or object is a SPARQL-star triple pattern.

              + +

              The translation as specified in the W3C specification distinguishes four cases. The first three of these cases do not require adjustment because they are taken care of either by recursion or by the adjusted translation of basic graph patterns (as defined in below). However, the fourth case MUST be adjusted as follows.

              + +

              Let |X| |P| |Y| be a string that corresponds to the fourth case in [SPARQL11-QUERY, Section 18.2.2.4]. Given the grammar introduced in , |X| and |Y| may be an RDF term, a variable, or a quoted triple pattern, respectively (and |P| is a property path expression). The string |X| |P| |Y| is translated to the algebra expression `Path`(X’,|P|,Y’) where X’ and Y’ are the result of calling a function named `Lift` for |X| and |Y|, respectively. For some input string |Z| (such as |X| or |Y|) that can be an RDF term, a variable, or a quoted triple pattern, the function `Lift` is defined recursively as follows:

              + +
                +
              1. If |Z| is a quoted triple pattern <<|S|,|P|,|O|>> then return the SPARQL-star triple pattern (`Lift`(|S|), |P|, `Lift`(|O|));
              2. +
              3. Otherwise, return |Z|.
              4. +
              + +
              + The purpose of this translation step is to convert any property path pattern as can be written based on the extended grammar for SPARQL-star (cf. ) into a SPARQL-star property path pattern as considered in the algebra. To this end, the function `Lift` translates every quoted triple pattern as can be written in the SPARQL-star syntax into a SPARQL-star triple pattern. +
              +
              + +
              +

              Translate Basic Graph Patterns

              + +

              After translating property path patterns, the translation process collects any adjacent triple patterns [...] to form a basic graph pattern [SPARQL11-QUERY, Section 18.2.2.5]. This step has to be adjusted because triple patterns in the extended syntax may have a quoted triple pattern in their subject position or in their object position (or in both). To ensure that every result of this step is a BGP-star, before adding a triple pattern to its corresponding collection, its subject and object MUST be replaced by the result of calling function `Lift` for the subject and the object, respectively.

              +
              + +
              + +
              +

              Function and Operator Definitions

              + +

              SPARQL introduces operators and functions that can be used in an expression of a FILTER clause, a BIND clause, or a SELECT clause (see Section 17.3 and Section 17.4 in [[SPARQL11-QUERY]]). While these operators and functions are defined to operate on RDF terms and query variables, for SPARQL-star they have to be defined to operate on RDF-star terms and query variables. To this end, when using these operators and functions in the context of SPARQL-star, their definitions as given in Section 17.4 of [[SPARQL11-QUERY]] are extended by assuming that any mention of RDF term as a data type for operands is understood to be the type of all RDF-star terms.

              + +

              SPARQL-star introduces five new functions that are defined as follows (where the data types RDF-star term and RDF-star triple capture all RDF-star terms and all RDF-star triples, +respectively).

              + +

              The modifications to functions and operators for triple terms are:

              + + +
              +

              TRIPLE

              + +

              + RDF-star triple   + TRIPLE + ( + RDF-star term term, + RDF-star term term, + RDF-star term term + ) +

              + +

              If the 3-tuple (term1, term2, term3) is an RDF-star triple, the function returns this triple. If the 3-tuple is not an RDF-star triple, then the function raises an error.

              + +
              + +
              +

              SUBJECT

              + +

              + RDF-star term   + SUBJECT + ( + RDF-star term term + ) +

              + +

              If triple is an RDF-star triple, the function returns the subject of this triple. Passing anything other than an RDF-star triple is an error.

              + +
              + +
              +

              PREDICATE

              + +

              + RDF-star term   + PREDICATE + ( + RDF-star term term + ) +

              + +

              If triple is an RDF-star triple, the function returns the predicate of this triple. Passing anything other than an RDF-star triple is an error.

              + +
              + +
              +

              OBJECT

              + +

              + RDF-star term   + OBJECT + ( + RDF-star term term + ) +

              + +

              If triple is an RDF-star triple, the function returns the object of this triple. Passing anything other than an RDF-star triple is an error.

              + +
              + +
              +

              isTRIPLE

              + +

              + xsd:boolean   + isTRIPLE + ( + RDF-star term term + ) +

              + +

              Returns true if term is an RDF-star triple. Returns false otherwise.

              + +
              + +
              +

              Quoted Triple Expression

              +

              + RDF-star triple   + << + RDF-star term term1, + RDF-star term term2, + RDF-star term term3 + >> +

              +

              + A Quoted Triple Expression + <<S P O>>, where S, + P and O conform to + ExprVarOrTerm, + is evaluated as TRIPLE(S, P, O). +

              +
              + +
              +

              sameTerm

              +

              + xsd:boolean + sameTerm + ( + RDF-star term term1, + RDF-star term term2 + ) +

              + +

              The function sameTerm is extended to support term comparison for + RDF-star triple terms by defining: +

              +
              +

              + Extended Definition: sameTerm +

              +

              + If both arguments are RDF-star triple terms: +

              + sameTerm(<<S1 P1 O1>>, + <<S2 P2 O2>>) +

              +

              + is evaluated as +

              +

              + sameTerm(S1, S2) && sameTerm(P1, P2) && sameTerm(O1, O2) +

              +

              This is applied recursively.

              +

              If one argument is an RDF-star triple term and the other argument is not, + the result is false. +

              +
              +
              + +
              +

              sparql-compare

              + +

              + The function sparql-compare is defined to support value-comparison + operators, such as = and <. +

              +

              + xsd:integer   + sparql-compare + (RDF-star term, + RDF-star term) +

              +

              + The function sparql-compare returns `-1`, `0`, `1`, or throws an + error. Comparison is performed pairwise on the components of the + RDF-star terms in the order subject, + predicate, object until the result is determined. + An error is thrown if comparing two components results in an error. +

              +
              +

              + Definition: + + sparql-compare + +

              +
                +
              • + If neither A nor B is an RDF-star triple term, apply + the SPARQL 1.1 operator mappings. + If none apply, raise an error. + Return `-1`, `0`, or `+1` based on which + of <, = and > + returns true. +
              • +
              • + If either A or B is an RDF-star triple term, and the other is not + an RDF-star triple term, then raise an error. +
              • +
              • + Evaluate sparql-compare(SUBJECT(A), SUBJECT(B)). + If the evalution causes an error, raise an error. + If the evaluation result is `-1` or `+1`, return this result. +
              • +
              • + Evaluate sparql-compare(PREDICATE(A), PREDICATE(B)). + If the evalution causes an error, raise an error. + If the evaluation result is `-1` or `+1`, return this result. +
              • + Evaluate sparql-compare(OBJECT(A), OBJECT(B)). + If the evalution causes an error, raise an error. + Otherwise, return the evaluation result. +
              • +
              +
              +
              + +
              +

              RDFterm-equal

              +

              + The function RDFterm-equal is the default dispatch for the + = operator. +

              +

              + This is extended to cover RDF-star terms so that it returns true + if term1 and term2 are both RDF-star triple + terms and RDFterm-equal is true + for pairwise comparison of the component RDF terms. +

              +
              +

              + Extended Definition: + RDFTerm-equal +

              +

              + If exactly one of the arguments is an RDF-star triple term, + return false. +

              +

              + If both arguments are RDF-star triple terms: +

              + RDFterm-equal(<<S1 P1 O1>>, + <<S2 P2 O2>>) +

              +

              + is evaluated as +

              +

              + RDFterm-equal(S1, S2) && RDFterm-equal(P1, P2) && RDFterm-equal(O1, O2) +

              +
              +

              + It produces an error if matching RDF terms in nested RDF triple terms when + both are literals but not the same RDF term. This is the same as the existing + RDFterm-equal. Operator mapping overrides this behavior. +

              +

              + The case of two RDF-star triple terms is covered by the operator dispatch mappings + and covers cases involving literals. +

              +
              +
              +

              Operator Mappings

              + +

              New operator mappings are added for RDF-star triple terms for section + SPARQL 1.1 Query 17.3 Operator Mapping +

              + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
              SPARQL Binary Operators (SPARQL-star)
              OperatorType(A)Type(B)EvaluationResult type
              SPARQL-star Tests
              A = BRDF triple termRDF triple term + op:numeric-equal(sparql-compare(A, B), 0) + xsd:boolean
              A != BRDF triple termRDF triple term + fn:not(op:numeric-equal(sparql-compare(A, B), 0)) + xsd:boolean
              A < BRDF triple termRDF triple term + op:numeric-equal(sparql-compare(A, B), -1) + xsd:boolean
              A <= BRDF triple termRDF triple term + fn:not(op:numeric-equal(sparql-compare(A, B), 1)) + xsd:boolean
              A > BRDF triple termRDF triple term + op:numeric-equal(sparql-compare(A, B), 1) + xsd:boolean
              A >= B + RDF triple termRDF triple term + fn:not(op:numeric-equal(sparql-compare(A, B), -1)) + xsd:boolean
              +
              + +
              +

              Triple terms with ORDER BY

              +

              + There is an item added to the ordering of terms when they would not + otherwise be ordered: RDF-star triple terms are placed last (highest). +

              +
                +
              1. (Lowest) no value assigned to the variable + or expression in this solution.
              2. +
              3. Blank nodes
              4. +
              5. IRIs
              6. +
              7. RDF literals
              8. +
              9. RDF-star triple terms
              10. +
              +

              + RDF-star triple terms are compared for ordering using an extended + sparql-compare function. + When two RDF 1.1 terms are compared, the rules of + SPARQL 1.1 ORDER BY + apply which uses the < operator, extended to cover pairs of IRIs which + are ordered by comparing them as simple literals. +

              +

              + While SPARQL-star does not define a total ordering of all possible RDF-star terms, + implementations should provide some ordering for ORDER BY + that does not change between queries if the data has not changed. +

              +
              +
              + +
              +

              Examples and Discussion

              + +

              By the evaluation semantics of SPARQL-star as defined in , the five new built-in functions defined above can be used in exactly the same manner as the functions defined in the SPARQL 1.1 spec. For instance, the following SPARQL-star query retrieves every asserted triple that is both contained in the default graph of the queried RDF-star dataset and has a quoted triple as its subject.

              + +
              +        
              +      
              + +

              Instead of accessing the subject of the triples in the FILTER after the BIND clause, as was done in the previous query, a semantically equivalent query may apply the FILTER directly on the variable ?s, as follows:

              + +
              +        
              +      
              + +

              While the triples that the previous example queries bind to variable ?t occur in the queried data, the TRIPLE function can be used to construct triples that may not be in the data. For instance, the following query uses the subject of each asserted triple in the default graph of the queried RDF-star dataset to construct another triple, and bind it to the variable ?t. Notice that the result of this query contains as many SPARQL-star solution mappings as there are asserted triples in the queried graph, and there may be duplicates in the result if multiple asserted triples have the same subject.

              + +
              +        
              +      
              + +

              There are cases where the effects of using the new TRIPLE function are not immediately obvious just from its definition, particularly when considering the interplay of this function with the BNODE function when used within GRAPH clauses. Some of these cases are discussed below.

              + +

              Consider the following SPARQL-star query.

              + +
              +        
              +      
              + +

              When evaluated over an RDF-star dataset that contains |n| named graphs, where |n|>0, the GRAPH clause results in one SPARQL-star solution mapping per named graph. The SELECT clause collapses these |n| mappings into a single mapping that is defined for the six variables introduced in the SELECT clause. (If |n|=0, the query result is the empty set.) Each of these six variables is mapped to an integer-typed literal with values as follows. For each of ?t1Count, ?t2Count, and ?t3Count, the value is |n|, because the variables ?t1, ?t2, and ?t3 are bound in each of the |n| solution mappings produced for the GRAPH clause. For the variable ?t1DistCount, the value is also |n|, because the BIND clauses are evaluated |n| times (once for each named graph) and the subexpression BNODE() always creates a different new blank node; thus, the triples created for variable ?t1 are all different from one another. This is also the case if the BNODE function is used with an argument; i.e., the value of ?t2DistCount is |n| too. In contrast, the variable ?t3 is mapped to the same triple within each evaluation of the third BIND clause; thus, the value for ?t3DistCount is 1.

              + +

              Notice that the BNODE function has to be used to create a blank node; simply writing a blank node directly in an expression is not permitted.

              + +

              Notice as well that the preceding query is special in two ways: its GRAPH clause does not actually consider the content of the named graphs; and the expressions in the BIND clauses do not contain variables. In contrast, the GRAPH clause and the BIND clauses in the following query do.

              + +
              +        
              +      
              + +

              For every RDF-star dataset with |n|>0 named graphs, the result of this query consists of a single SPARQL-star solution mapping that is defined for the three variables introduced in the SELECT clause. The value of ?t1Count is the number of named graphs in the queried dataset that contain a triple of the form (|u|, rdf:type, rdfg:Graph) such that |u| is the name of the named graph in the dataset. The value of ?t2Count is always 0 (zero), because evaluating the expression of the second BIND clause results in an error, because the variable ?x is not bound in the scope of this evaluation. As a side note, evaluating the expression of the first BIND clause would also result in an error, if the variable ?g was not mentioned inside the GRAPH clause (e.g., if the given triple pattern was not there).

              + +
              + +
              +

              Evaluation Semantics

              + +

              The SPARQL specification defines a function eval(|D|(|G|), algebra expression) as the evaluation of an algebra expression with respect to a dataset |D| having active graph |G| [SPARQL11-QUERY, Section 18.6]. Recall that the dataset |D| in the context of SPARQL-star is an RDF-star dataset and, thus, the active graph |G| is an RDF-star graph, and so is any other graph in dataset |D|. The definition of the eval function is recursive; the base case of this definition for SPARQL-star are given as follows:

              + +
                +
              • For every BGP-star |B|, eval(|D|(|G|), |B|) is a multiset Ω that consists of all SPARQL-star solution mappings that are a solution for the BGP-star |B| over |G|. For every such mapping μ, card[Ω](μ) is the number of distinct RDF-star instance mappings σ such that dom(σ) is equivalent to the set of blank nodes in |B| and μ(σ(|B|)) is a subgraph of |G|. (For any SPARQL-star solution mapping μ' that is not a solution for |B| over |G|, we have that card[Ω](μ')=0; i.e., μ' is not in Ω.)
              • +
              + +

              For any other algebra expression, the SPARQL specification defines algebra operators [[SPARQL11-QUERY]]. These definitions can be extended naturally to operate over multisets of SPARQL-star solution mappings (instead of ordinary solution mappings). Given this extension, the recursive steps of the definition of the eval function for SPARQL-star are the same as in the SPARQL specification.

              +
              + +
              +

              Query Result Formats

              + +

              In SPARQL, queries can take four forms: SELECT, CONSTRUCT, DESCRIBE, and ASK - see SPARQL1.1 Query, Section 16 [[SPARQL11-QUERY]]. The first of these returns a sequence of solution mappings that contain variable bindings. The second and third both return an RDF graph, and the last returns a boolean value. +

              +

              The result of the ASK query form is not changed by the introduction of RDF-star, and the result of the CONSTRUCT and DESCRIBE forms can be represented by Turtle-star. However, since the SELECT form deals with returning individual RDF terms, the specific serialization formats for representing such query results need to be extended so that the new quoted triple RDF term can be represented. In this section, we propose extensions for the two most common formats for this purpose: [[[SPARQL11-RESULTS-JSON]]], and [[[RDF-SPARQL-XMLRES]]].

              + +
              +

              SPARQL-star Query Results JSON Format

              +

              + The result of a SPARQL SELECT query is serialized in JSON as defined in [[[SPARQL11-RESULTS-JSON]]], which specifies a JSON representation of variable bindings to RDF terms (see [sparql11-results-json, Section 3.2]). To accommodate the new RDF term for quoted triples that RDF-star introduces, the table of RDF term JSON representations in sparql11-results-json, Section 3.2.2 is extended with the following entry: +

              +
              +
              A quoted triple with subject RDF term `S`, predicate RDF term `P` and object RDF term `O`
              +
              +
              +                {
              +                  "type": "triple",
              +                  "value": {
              +                     "subject": S,
              +                     "predicate": P,
              +                     "object": O
              +                  }
              +                }
              +              
              + where `S`, `P` and `O` are encoded using the same format, recursively. +
              +
              + + +
              + +
              +

              SPARQL-star Query Results XML Format

              +

              + The result of a SPARQL SELECT query is serialized in XML as defined in [[[RDF-SPARQL-XMLRES]]]. This format proposes an XML representation of variable bindings to RDF terms. +

              +

              To accommodate the new RDF term for quoted triples that RDF-star introduces, the list of RDF terms and their XML representations in [RDF-SPARQL-XMLRES Section 2.3.1] is extended as follows: +

              +

              +

              +
              A quoted triple with subject term `S`, predicate term `P`, and object term `O`
              +
              +
              +              
              +            
              + where `S`, `P` and `O` are encoded recursively, using the same format, without the enclosing `<binding>` tag. +
              +
              + + + + +
              + +
              + +
              + +
              +

              SPARQL-star Update

              + +

              This section specifies SPARQL-star Update, an update language for RDF-star. This language extends SPARQL Update [[SPARQL11-UPDATE]], the update language for RDF, by adding RDF-star-specific features and semantics.

              + +
              +

              Informal Description

              + +

              While SPARQL Update operates over a graph store that consists of RDF graphs, SPARQL-star Update extends the notion of graph store to contain RDF-star graphs instead of RDF graphs. That is, a graph store in the context of SPARQL-star Update contains one (unnamed) slot holding an RDF-star graph, referred to as the default graph, and zero or more named slots holding other RDF-star graphs, referred to as named graphs. Then, all graph management operations in SPARQL Update (CREATE, DROP, COPY, MOVE, ADD) carry over directly to SPARQL-star Update with the only difference being that in SPARQL-star Update these operations manage RDF-star graphs. For instance, the CREATE operation in SPARQL-star Update creates an RDF-star graph rather than a pure RDF graph. Similarly, the graph update operations LOAD and CLEAR in SPARQL-star Update operate with RDF-star graphs in the same way as their SPARQL Update counterparts operate with RDF graphs.

              + +

              The only operations that SPARQL-star Update actually extends are the graph update operations INSERT DATA, DELETE DATA, and DELETE/INSERT. This section describes these extensions informally. While this description focuses mainly on updates to the default graph, the operations can also be applied to the named graphs.

              + +
              +

              INSERT DATA

              + +

              The INSERT DATA operation can be used to add a given set of triples into the graph store. In the context of SPARQL-star Update, these triples may be RDF-star triples. As an example, consider the following INSERT DATA operation.

              + +
              +          
              +        
              + +

              Suppose this INSERT DATA operation is executed over a graph store with an empty default graph. After executing this operation, the default graph contains the given (nested) RDF-star triple. Now, it is possible to query for this triple. For instance, the following SPARQL-star query returns a single solution mapping in which the variables ?p and ?a are mapped to the IRI :alice and the literal 23, respectively.

              + +
              +          
              +        
              + +

              Notice that inserting a nested triple does not automatically also insert its quoted triple(s) as asserted triple(s) into the graph. Hence, in the previous example, after executing the given INSERT DATA operation, the default graph does not contain the triple :bob :age 23. In other words, a query such as the following would have an empty result.

              + +
              +          
              +        
              + +

              For a quoted triple to be present in the graph as an asserted triple, it needs to be inserted as such. For instance, the INSERT DATA operation in the example above may be modified as follows in order to insert not only the nested triple but also the triple :bob :age 23.

              + +
              +          
              +        
              + +
              + +
              +

              DELETE DATA

              + +

              The DELETE DATA operation can be used to remove a given set of triples from the graph store. In the context of SPARQL-star Update, this may include removing nested RDF-star triples as demonstrated in the following example.

              + +
              +          
              +        
              + +

              After executing this DELETE DATA operation over a graph store with a default graph that contains the given nested triple, the graph will not contain this triple any longer. If the graph did not contain that nested triple in the first place, the graph will remain unchanged by the given DELETE DATA operation.

              + +

              Notice that deleting triples by using the DELETE DATA operation does not affect any other triples in the corresponding graphs. For instance, for a default graph that contains the triple :bob :age 23 as an asserted triple, the DELETE DATA operation given above does not delete this asserted triple. In contrast, the following operation would delete this asserted triple but it would not delete any nested triple that contains the given triple as a quoted triple.

              + +
              +          
              +        
              + +
              + +
              +

              DELETE/INSERT

              + +

              The DELETE/INSERT operation can be used to remove or add triples based on variable bindings obtained by evaluating a given WHERE clause. As an example, the following DELETE/INSERT operation replaces all nested triples in which :alice is the subject by nested triples in which :carol is the subject.

              + +
              +          
              +        
              + +

              As in SPARQL Update, in SPARQL-star Update it is possible to use variations of the DELETE/INSERT operations in which either the DELETE clause or the INSERT clause are omitted.

              + +

              When removing triples via the DELETE clause (irrespective of whether the INSERT clause is omitted or not), the effects with respect to nested triples must be the same as described above for the DELETE DATA operation; i.e., only the triples that are explicitly identified to be deleted are deleted. Similarly, inserting triples via the INSERT clause has the same effects as described above for the INSERT DATA operation; i.e., inserting nested triples does not automatically also insert their quoted triples as asserted triples into the graph. Of course, it is possible to request such inserts explicitly as demonstrated in the following example.

              + +
              +          
              +        
              + +

              While all SPARQL-star Update examples above focus only on the default graph of a graph store, SPARQL-star Update can also be used to update the named graphs of a graph store, which works in exactly the same way as in SPARQL Update. As a possible example consider the following INSERT operation which retrieves all quoted triples found in nested triples in the default graph and inserts them as asserted triples into the named graph with IRI :graph2.

              + +
              +          
              +        
              + +
              + +
              + + + +
              +

              Grammar

              + +

              SPARQL-star Update is an extension of the SPARQL Update language [[SPARQL11-UPDATE]]. As mentioned in SPARQL 1.1 Update, Appendix C [[SPARQL11-UPDATE]], the grammar of the latter is provided as part of the SPARQL 1.1 Query grammar. Similarly, the grammar of SPARQL-star Update is provided as part of the grammar of the SPARQL-star query language, which is defined by the SPARQL 1.1 Query grammar with the extensions specified in . As a result of these extensions, the production rules QuadData and QuadPattern, which are used in the definition of SPARQL Update [[SPARQL11-UPDATE]], are extended to capture nested triples and nested triple patterns as demonstrated in the examples above.

              + +
              + +
              +

              Semantics

              + +

              The semantics of SPARQL-star Update operations can also be defined by a simple extension of the formalization of SPARQL Update [[SPARQL11-UPDATE]]. This extension assumes that any mention of "RDF triple" or "triple" in the formalization of SPARQL Update is understood as an RDF-star triple. Similarly, "RDF graph" and "solution mapping" are understood as RDF-star graph and SPARQL-star solution mapping, respectively. Any mention of the "evaluation function eval()" is understood as the eval function for SPARQL-star as defined in .

              + +
              + +
              + +
              +

              RDF-star Semantics

              + +

              In this section, we provide a model-theoretic semantics for RDF-star, based on the one defined in [[[RDF11-MT]]] [[RDF11-MT]]. More precisely, we define a mapping from RDF-star's abstract syntax into standard RDF's abstract syntax, and define the semantics of RDF-star graphs in terms of the semantics of the mapped RDF graphs.

              + +

              In the following, we will use abbreviated IRIs using the prefix `unstar:` which is an alias for the namespace `https://w3c.github.io/rdf-star/unstar#`.

              + +

              We also introduce a number of definitions specific to RDF-star, which rely on the following notions, defined in [[[RDF11-CONCEPTS]]] [[RDF11-CONCEPTS]] and [[[RDF11-MT]]] [[RDF11-MT]]: + datatype, + lexical form, + ill-typed, + merging, + satisfiability, + unsatisfiability, + entailment, + and equivalence. +

              + +
              +

              Mapping RDF-star abstract syntax to RDF

              + +

              We define a mapping |L| that maps any IRI or literal |t| to a literal with:

              + + +

              Given an RDF-star graph |G|, the following steps define the unstar mapping, which transform |G| into an RDF graph that we call unstar(|G|).

              + +
              +
                +
              1. For each IRI |i| in the constituents of |G| starting with `https://w3c.github.io/rdf-star/unstar#`:
                  +
                1. Mint a new IRI |j| by appending an underscore (`_`) to |i|.
                2. +
                3. Replace with |j| all occurrences of |i| in the subject, predicate, or object position of an asserted or quoted triple of |G|.
                4. +
              2. +
              3. While |G| contains quoted triples:
                  +
                1. Pick an RDF-star triple (|s|, |p|, |o|) in the constituents of |G| such that neither |s| nor |o| is a quoted triple.
                2. +
                3. Mint a fresh blank node |b| (i.e., such that |b| is not in the constituents of |G|).
                4. +
                5. Replace with |b| all occurrences of (|s|, |p|, |o|) in the subject or object position of an asserted or quoted triple of |G|.
                6. +
                7. Add the following asserted triples to |G|:
                    +
                  • (|b|, `unstar:subject`,`   `|s|)
                  • +
                  • (|b|, `unstar:predicate`,` `|p|)
                  • +
                  • (|b|, `unstar:object`,`    `|o|) unless |o| is an ill-typed literal
                  • +
                  • (|b|, `unstar:subjectLexical`,`   `|L|(|s|)) unless |s| is a blank node
                  • +
                  • (|b|, `unstar:predicateLexical`,` `|L|(|p|))
                  • +
                  • (|b|, `unstar:objectLexical`,`    `|L|(|o|)) unless |o| is a blank node
                  • +
                8. +
              4. +
              +
              +

              After these steps, unstar(|G|) is an RDF graph, as it contains no quoted triples. Note that if |G| contains no quoted triple and no IRI in the `unstar:` namespace, then unstar(|G|) = |G|.

              + +
              + +
              +

              Entailment of RDF-star graphs

              + +

              Following [[[RDF11-MT]]], we define the notions of satisfiability and entailment for RDF-star graphs. Given two RDF-star graphs |G| and |H|:

              +

              + +

              It is easy to see that, in the special case of RDF graphs |G| and |H| (i.e. RDF-star graphs containing no quoted triple), |G| is star-satisfiable if and only if |G| is simply satisfiable, and |G| star-entails |H| if and only if |G| simply entails |H|. This is trivially true if |G| and |H| do not contain any `unstar:` IRI (in which case they are left unchanged by the unstar mapping). But this is also true if they do contain such IRIs (as the renaming performed by the unstar mapping has no significant impact on the semantic relationships between the two graphs). Star-entailment can therefore be considered as a natural extension of simple entailment to RDF-star graphs.

              + +

              Other notions of satisfiability and entailment, such as RDF entailment or RDFS entailment, can be extended in the same way for RDF-star graphs.

              +
              + +
              +

              Merging RDF-star graphs

              + +

              [[[RDF11-MT]]] [[RDF11-MT]] defines the merging of two or more RDF graphs as "[taking their] union after forcing any shared blank nodes, which occur in more than one graph, to be distinct in each graph." Note that, in the case of RDF-star graphs, any blank node in the constituent terms of that graph is governed by the definition above, not only those in the subject or object position of some asserted triple.

              + +
              +        
              +      
              + +
              + + +
              +

              Remarks

              + +
              +

              Implementing the RDF-star semantics

              + +

              It is important to notice that the definitions given above for satisfiability and entailment of RDF-star graphs do not mandate that implementations actually transform RDF-star graphs using the unstar mapping defined above. It should be possible to implement the semantics by directly handling RDF-star's abstract syntax.

              + +
              + +
              +

              Combining RDF-star graphs

              + +

              Care must be taken when implementations that rely on the unstar mapping combine the resulting RDF graphs through union or merge. Given two RDF-star graphs |G| and |H|, it may be the case that unstar(|G| ∪ |H|) ≠ unstar(|G|) ∪ unstar(|H|).

              + +

              In particular, if |G| and |H| contain the same quoted triple, this triple will be mapped to a single blank node in unstar(|G| ∪ |H|), but in two potentially different blank nodes in unstar(|G|) ∪ unstar(|H|). These blank nodes will need to be unified in order to reconstruct unstar(|G| ∪ |H|).

              + +

              Conversely, nothing in the definition of the unstar mapping prevents it from generating the same blank node |b| for a quoted triple of |G|, and for a different quoted triple of |H| (provided that |b| is not present in either |G| nor |H|). In that case, not only would unstar(|G|) ∪ unstar(|H|) be different from unstar(|G| ∪ |H|), but it would lose some information by mixing the descriptions of the two quoted triples.

              + +
              + +
              +

              Other uses of the unstar mapping

              + +

              Since the unstar mapping transforms any RDF-star graph into a standard ("non-star") RDF graph, it might be tempting to use this mapping for conveying RDF-star graphs to legacy RDF systems. However, this has a number of caveats.

              + +

              First, the unstar mapping alters the semantics of the graph: in general, a graph |G| is not equivalent to its "unstarred" version unstar(|G|), even if |G| is a standard RDF graph containing no quoted triples. (More precisely, they are equivalent only if |G| contains no quoted triples and no IRIs from the `unstar:` namespace.)

              + +

              Second, when a legacy RDF system communicates an RDF graph to an RDF-star-aware system, there is no means by which the latter can determine with certainty whether the graph is the result of applying the unstar mapping, and thus needs to be transformed back. (The presence of `unstar:` IRIs in the graph can be used as a hint, but such IRIs can also be used independently of the mapping.) Additional metadata should therefore be attached to unstarred graphs, so that RDF-star systems know whether or not they need to apply the inverse transformation of unstar.

              + +

              Finally, legacy RDF systems may alter unstarred graphs in ways that prevent their transformation back to the original RDF-star graph. For example, it has been pointed out above how combining several unstarred graphs may not yield the expected result. Another example is the removal of some arcs, such that a quoted triple is not completely described anymore, and can not be reconstructed.

              + +
              + +
              +

              Referential opacity

              + +

              The way the unstar mapping is defined, the denotation of a quoted triple does not only depend on the denotation of its component terms, but also on their syntactical form (for IRIs and literals). This behavior is referred to as referential opacity. A consequence is that two different triples, that would be semantically equivalent if asserted, are not automatically considered to denote the same thing when quoted. In the example below, assuming D-entailment: while `"104232"^^xsd:nonNegativeInteger` and `"000104232"^^xsd:nonNegativeInteger` denote the same thing (namely, the number 104232), the two quoted triples are allowed to have different denotations, and so the entailment does not hold.

              + +
              +        
              +        
              + +

              Similarly, in the example below and under OWL entailment [[OWL2-Overview]], while `:superman` and `:clark` are inferred to denote one and the same person (because of the `owl:sameAs` relationship between them), the two quoted triples are not automatically considered to denote the same thing.

              + +
              +        
              +        
              + +

              Note that this may lead to counter-intuitive results when the annotation syntax is used, as illustrated in the example below.

              + +
              +        
              +        
              + +
              + +
              +

              Selective referential transparency

              + +

              Referencial opacity is well suited for use-cases where the syntactical form of the annotated statements may be significant (like annotating statements from other graphs or annotating commit deltas). On the other hand, other use-cases would expect some degree of referential transparency. Consider the case of attributed/evidenced triples. The annotation is understood to be about the fact asserted by the triple rather than the triple itself. In this use case, one might then expect more inferences than provided by the base semantics. Consider the following example.

              + +
              +        
              +        
              + +

              One could argue that the candidate entailment #1 is desirable because the property `:measuredOn` is understood to be about the statement made by the subject triple (that statement was true on the given date, regardless of its RDF expression, in this case using an object value equivalent to `104232`). On the other hand, the candidate entailment #2 may be considered not desirable because the predicate `:source` is about the triple itself (that specific triple was parsed from the given Turtle file).

              + +

              In Section , we introduce the notion of transparency-enabling property (TEP), for selectively enabling this kind of entailment on specific properties. The basis of the idea is that each such property |p| is identified by adding to the RDF-star graph a triple of the form (|p|, `rdf:type`, `rdf-star:TransparencyEnablingProperty`); i.e., for the previous example, this triple would be (`:measuredOn`, `rdf:type`, `rdf-star:TransparencyEnablingProperty`). + This would make candidate entailment #1 above valid. The semantics of such TEPs is formally defined in Section .

              + +

              Notice that enabling referential transparency based on such TEPs is only local to the RDF-star graph(s) in which the property is stated to be a TEP (or where this statement can be inferred as per the entailment regime considered). In other words, for every graph |G| in which a property is not stated to be transparency enabling, all quoted triples appearing in |G| as subject or object of that property are stilled considered as referentially opaque, even if there may exist some other graph in which the property is stated to be transparency enabling.

              + +

              This proposal for TEPs makes no distinction regarding the position (subject or object) of the quoted triples. The group did consider a finer-grained alternative, where selective transparency could also be enabled only for the subjects (resp. objects) of the TEP. This was however ruled out as overly complex for a limited added value.

              +
              + +
              +

              Other alternatives to referential opacity

              + +

              Given the potential drawbacks of the referential opacity provided by the current semantics, as described in the beginning of Section  above, the group has considered other alternative semantics. No clear consensus was reached, however, to decide whether these alternatives should be used as a replacement, or as a semantic extension, of the current semantics.

              + +

              A fully referentially transparent semantics can be achieved by changing the step 2.4 of the unstar mapping algorithm as follows:

              + +
                +
              • Add the following asserted triples to |G|: +
                  +
                • (|b|, `unstar:subject`,`   `|s|)
                • +
                • (|b|, `unstar:predicate`,` `|p|)
                • +
                • (|b|, `unstar:object`,`    `|o|)
                • +
                +
              • +
              + +

              In the examples above (, , , ), all the entailments would now hold automatically. This could be a problem in some use-cases, as such inferences could then not be cancelled, given the monotonic semantics of RDF.

              + +

              An intermediate alternative would be to make quoted triples referentially opaque for IRIs only, keeping it transparent for literals (and for blank nodes, as is already the case). This can be achieved by changing the step 2.4 of the unstar mapping algorithm as follows:

              + +
                +
              • Add the following asserted triples to |G|: +
                  +
                • (|b|, `unstar:subject`,`   `|s|)
                • +
                • (|b|, `unstar:predicate`,` `|p|)
                • +
                • (|b|, `unstar:object`,`    `|o|)
                • +
                • (|b|, `unstar:subjectLexical`,`   `|L|(|s|)) if |s| is an IRI
                • +
                • (|b|, `unstar:predicateLexical`,` `|L|(|p|))
                • +
                • (|b|, `unstar:objectLexical`,`    `|L|(|o|)) if |o| is an IRI
                • +
                +
              • +
              + +
              Other design choices for the semantics have also been discussed by the community group; these have been summarized in a Github issue.
              + +
              + +
              + +
              + +
              +

              RDF-star vocabulary

              + +

              In this section, we propose a minimal vocabulary that can be useful when working with RDF-star, especially when describing other vocabularies meant to be used with RDF-star triples and graphs.

              + +
              +

              Core vocabulary

              + +

              In this section we define IRIs for the concepts defined in other normative parts of this document.

              + +
              +
              `rdf-star:Triple`
              +
              This term identifies the class of all RDF-star triples. It is expected to serve, among other things, as the `rdfs:domain` or `rdfs:range` of properties meant to apply to quoted triples.
              + +
              `rdf-star:Graph`
              +
              This term identifies the class of all RDF-star graphs.
              + +
              `rdf-star:Source`
              +
              This term identifies the class of all RDF-star sources, an extension of the notion of RDF source: a persistent yet mutable source or container of RDF-star graphs.
              + +
              `rdf-star:SPARQLStarQuery`
              +
              This term identifies the extension of the SPARQL query language defined in Section . It is expected to serve as the value of `sd:supportedLanguage` in SPARQL service descriptions [[SPARQL11-SERVICE-DESCRIPTION]].
              + +
              `rdf-star:SPARQLStarUpdate`
              +
              This term identifies the extension of the SPARQL update language defined in Section . It is expected to value as the domain of `sd:supportedLanguage` in SPARQL service descriptions [[SPARQL11-SERVICE-DESCRIPTION]].
              +
              + +

              Below is a Turtle description of that vocabulary.

              + +
              +
              ## RDF-star core vocabulary
              +PREFIX rdf:       <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
              +PREFIX rdfs:      <http://www.w3.org/2000/01/rdf-schema#>
              +PREFIX rdf-star:  <http://www.w3.org/ns/rdf-star#>
              +PREFIX sd:        <http://www.w3.org/ns/sparql-service-description#>
              +
              +rdf-star:Triple      a rdfs:Class ;
              +    rdfs:isDefinedBy   <http://www.w3.org/ns/rdf-star#> ;
              +    rdfs:label         "RDF-star Triple" ;
              +    rdfs:comment       "The class of RDF-star triples." ;
              +    rdfs:subClassOf    rdfs:Resource .
              +
              +rdf-star:Graph       a rdfs:Class ;
              +    rdfs:isDefinedBy   <http://www.w3.org/ns/rdf-star#> ;
              +    rdfs:label         "RDF-star Graph" ;
              +    rdfs:comment       "The class of RDF-star graphs." ;
              +    rdfs:subClassOf    rdfs:Resource .
              +
              +rdf-star:Source      a rdfs:Class ;
              +    rdfs:isDefinedBy   <http://www.w3.org/ns/rdf-star#> ;
              +    rdfs:label         "RDF-star Source" ;
              +    rdfs:seeAlso       <https://www.w3.org/TR/rdf11-concepts/#h3_change-over-time> ;
              +    rdfs:comment       "The class of RDF-star sources." ;
              +    rdfs:subClassOf    rdfs:Resource .
              +
              +rdf-star:SPARQLStarQuery a sd:Language ;
              +    rdfs:isDefinedBy   <http://www.w3.org/ns/rdf-star#> ;
              +    rdfs:label         "SPARQL-star" ;
              +    rdfs:comment       "The SPARQL-star query language" .
              +
              +rdf-star:SPARQLStarUpdate a sd:Language ;
              +    rdfs:isDefinedBy   <http://www.w3.org/ns/rdf-star#> ;
              +    rdfs:label         "SPARQL-star Update" ;
              +    rdfs:comment       "The SPARQL-star update language" .
              +        
              +
              +
              + +
              +

              Extended vocabulary

              + +

              In this section we define IRIs for the concepts defined in other non-normative parts of this document.

              + +
              +
              `rdf-star:TransparencyEnablingProperty`
              +
              A special kind of property that, when applied to a quoted triple, also holds for any semantically equivalent triple, as discussed in .
              +
              + +

              Below is a Turtle description of that vocabulary.

              + +
              +
              ## RDF-star extended vocabulary
              +PREFIX rdf:       <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
              +PREFIX rdfs:      <http://www.w3.org/2000/01/rdf-schema#>
              +PREFIX rdf-star:  <http://www.w3.org/ns/rdf-star#>
              +
              +rdf-star:TransparencyEnablingProperty a rdfs:Class ;
              +    rdfs:isDefinedBy   <http://www.w3.org/ns/rdf-star#> ;
              +    rdfs:label         "RDF-star Source" ;
              +    rdfs:comment       "The class of transparency-enabling properties." ;
              +    rdfs:subClassOf    rdf:Property .
              +        
              +
              +
              + +
              +

              Vocabulary semantics

              + +

              We now describe a semantic extension of RDF-star, embedding the inherent semantics of the RDF-star vocabulary (RSV) described above (core and extended). A simple RSV-interpretation is a simple interpretation |I| that satisfies the following additional conditions:

              + +
                +
              1. Ensure that all quoted triples in this interpretations are instances of `rdf-star:Triple`.
                  +
                • For all |t|, |x| in the domain IR such that either
                    +
                  • (|t|, |x|) ∈ IEXT(IS(`unstar:subject`)), +
                  • (|t|, |x|) ∈ IEXT(IS(`unstar:predicate`)), +
                  • (|t|, |x|) ∈ IEXT(IS(`unstar:object`)), +
                  • (|t|, |x|) ∈ IEXT(IS(`unstar:subjectLexical`)), +
                  • (|t|, |x|) ∈ IEXT(IS(`unstar:predicateLexical`)), +
                  • (|t|, |x|) ∈ IEXT(IS(`unstar:objectLexical`)), +
                  +
                • then (|t|, IS(`rdf-star:Triple`)) must be an element of IEXT(IS(`rdf:type`)). +
                + + +
              2. Ensure that, for all quoted triples in this interpretation, all "equivalent" triples also exist in the interpretation.
                  +
                • For all |t|, |s|, |p|, |o| in the domain IR such that
                    +
                  • (|t|, |s|) ∈ IEXT(IS(`unstar:subject`)), +
                  • (|t|, |p|) ∈ IEXT(IS(`unstar:predicate`)), +
                  • (|t|, |o|) ∈ IEXT(IS(`unstar:object`)), +
                  +
                • and for all terms |s|', |p|', and |o|' such that
                    +
                  • |I|(|s|') = |s|, +
                  • |I|(|p|') = |p|, +
                  • |I|(|o|') = |o|, +
                  +
                • there must exist |t|' in IR such that
                    +
                  • (|t|', |s|) ∈ IEXT(IS(`unstar:subject`)), +
                  • (|t|', |p|) ∈ IEXT(IS(`unstar:predicate`)), +
                  • (|t|', |o|) ∈ IEXT(IS(`unstar:object`)), +
                  • (|t|', |I|(L(|s|'))) ∈ IEXT(IS(`unstar:subjectLexical`)), +
                  • (|t|', |I|(L(|p|'))) ∈ IEXT(IS(`unstar:predicateLexical`)), and +
                  • (|t|', |I|(L(|o|'))) ∈ IEXT(IS(`unstar:objectLexical`)). +
                  +
                + +
              3. Ensure that TEPs that hold for a triple also hold for all "equivalent" triples. +
                • For all |p| such that (|p|,IS(`rdf-star:TransparencyEnablingProperty`)) ∈ IEXT(IS(`rdf:type`)) +
                • then |p| must be an element of IP, and
                    + +
                  • For all |t|, |u|, |s|', |p|', |o|', |t|' in IR such that
                      +
                    • (|t|, |u|) ∈ IEXT(`p`) +
                    • (|t|, |s|') ∈ IEXT(IS(`unstar:subject`)), +
                    • (|t|, |p|') ∈ IEXT(IS(`unstar:predicate`)), +
                    • (|t|, |o|') ∈ IEXT(IS(`unstar:object`)), +
                    • (|t|', |s|') ∈ IEXT(IS(`unstar:subject`)), +
                    • (|t|', |p|') ∈ IEXT(IS(`unstar:predicate`)), +
                    • (|t|', |o|') ∈ IEXT(IS(`unstar:object`)) +
                    + then (|t|', |u|) must also be an element of IEXT(|p|). + +
                  • For all |t|, |u|, |s|', |p|', |o|', |t|' in IR such that
                      +
                    • (|u|, |t|) ∈ IEXT(`p`) +
                    • (|t|, |s|') ∈ IEXT(IS(`unstar:subject`)), +
                    • (|t|, |p|') ∈ IEXT(IS(`unstar:predicate`)), +
                    • (|t|, |o|') ∈ IEXT(IS(`unstar:object`)), +
                    • (|t|', |s|') ∈ IEXT(IS(`unstar:subject`)), +
                    • (|t|', |p|') ∈ IEXT(IS(`unstar:predicate`)), +
                    • (|t|', |o|') ∈ IEXT(IS(`unstar:object`)) +
                    + then (|u|, |t|') must also be an element of IEXT(|p|). +
                  +
                +
              + +

              Given two RDF-star graphs |G| and |H|, and following standard terminology, we say that a simple RSV-interpretation |I| satisfies |G| if |I|(|G|) = true, and that |G| is (simply) RSV-satisfiable if a simple RSV-interpretation exists that satisfies |G|; otherwise, |G| is (simply) RSV-unsatisfiable. We say that |G| simply RSV-entails |H| if every simple RSV-interpretation that satisfies |G| also satisfies |H|. If |G| and |H| each RSV-entail the other, they are RSV-equivalent.

              + +

              RSV-entailment is defined here as an extension of simple entailment, but other entailment regimes (such as RDF entailment or RDFS entailment) can be extended in the exact same way (i.e., by extending their respective notion of interpretation with the aforementioned conditions).

              + +

              Some terms of the RDF-star vocabulary have no associated constraint in RSV-interpretations (for instance, `rdf-star:Graph`). The reason is that the intended meaning of these terms leads to no particular inference with this vocabulary.

              + +
              + +
              + This issue discusses the relevance of introducing a standard property to link a quoted triple to its occurrences (as illustrated in ), as well as other related properties and classes. +
              +
              + +
              +

              IANA Considerations

              + +

              In , we have proposed extensions to four existing media types, namely `text/turtle` [[TURTLE]], `application/trig` [[TRIG]], `application/n-triples` [[N-TRIPLES]] and `application/n-quads` [[N-QUADS]]. In , we have proposed extensions to three more existing media types, namely `application/sparql-query` [[SPARQL11-QUERY]], `application/sparql-results+json` [[SPARQL11-RESULTS-JSON]], and `application/sparql-result+xml` [[RDF-SPARQL-XMLRES]]. While the RDF-DEV Community Group has no authority to officially update these media-types, we hope that a future working group with such authority will consider doing so, and include extensions proposed in this report.

              + +

              In the meantime, implementers of RDF-star are faced with a dilemma: use the standard media-type identifiers as if their definition had been already updated (optimistic approach); or make it explicit that they are prone to produce or consume quoted triples (pessimistic approach), perhaps by using a different temporary media-type, or custom HTTP headers.

              + +

              The optimistic approach raises the risk of breaking the expectations of other applications that are not RDF-star-aware. For example, if a SPARQL-star endpoint responds to a CONSTRUCT query with the `text/turtle` media-type, and includes a quoted triple in the response, a legacy client will fail to parse that response. On the other hand, if the same server applies the pessimistic approach, it may simply reject any query requiring `text/turtle`, just in case the result contain quoted triples. Note that it is not always feasible for the server to decide beforehand whether the result is plain Turtle or Turtle-star, because the result is often produced in a streamed manner, after the headers containing the media-type have been sent to the client.

              + +

              Another problem with the pessimistic approach is that "temporary" media-types are known to actually become permanent. Old applications keep using them long after their intended expiration date. This a burden on all other implementations, which must handle the "temporary" media-types along the permanent one, as aliases, in order to maintain backward compatibility.

              + +

              The W3C Recommendation + Content Negotiation by Profile + [[DX-PROF-CONNEG]] describes a mechanism that separates content-type + negotiation from requesting a response conforming to a specific information model, + whether that model is a specific standard, specification or profile. + The operations of the abstract model + are "list profiles" and "get resource by profile". + The "get resource" operation can provide the profile requests with HTTP + header Accept-Profile and responses use Content-Profile, or + alternatively the request can use HTTP Query String parameters. +

              + +

              + This may be useful when the information is available in RDF-star or in non-RDF-star + RDF 1.1 form, whether using reification, or by omitting information expressed with + the RDF-star data model and responding with a restricted response. By lifting the + issue up to the information model, away from being purely about syntax, restricted + responses can be requested and returned which do not use RDF-star features. + However, it assumes both requestor and receiver adhere to the defined profile + negotiation and therefore does not address the dilemma of optimistic or pessimistic + approaches. +

              + +

              Although the examples in this document, and the tests in the test suite, adopt the optimistic approach, it should be noted that no clear consensus emerged from the group on which approach is the best.

              + +
              + +
              +

              Historical remarks

              + +
              +

              SA-mode and PG-mode

              + +

              A lot of discussions on the RDF-star mailing list and GitHub repository refer to SA-mode and PG-mode. Those abbreviations stand for "Separate Assertion mode" and "Property Graph mode". They originate in the fact that different versions of RDF-star have been published over the years, with different designs. In PG-mode, any quoted triple was also considered asserted. SA-mode, on the other hand, allowed the use of quoted triples without those triples being automatically asserted, requiring that they be asserted separately when that was intended. SA-mode was more flexible, but induced redundancy in the use-cases that PG-mode was designed to address.

              + +

              The notion of annotations in the Turtle-star syntax was introduced to remove the need for different modes. Rather than interpret the same syntax differently in each mode, which would have caused interoperability problems and required a switch for those modes, it was decided to provide a different syntax for each use case.

              + +
                +
              • The << ... >> syntax represents a triple that is quoted without being asserted, satisfying the need formerly filled by SA-mode.
              • +
              • The :a :b :c {| :p :o ... |} annotation syntax creates triples where the subject is a quoted version of the triple asserted just before the annotation (here, :a :b :c), without the need to repeat it, satisfying the need formerly filled by PG-mode.
              • +
              +
              + +
              +

              The seminal example

              + +

              The motivating example in the original RDF-star paper [[RDF-STAR-FOUNDATION]] was on a provenance use-case, and is repeated below.

              + +
              +        
              +      
              + +

              This example was further debated on the RDF-star mailing list, as it appears to have set wrong expectations about what quoted triples represent. More precisely, from this example, one may wrongly assume that `<<:bob foaf:age 23>>` represents the occurrence of the given triple at the address `http://example.net/listing.html` (see ). This impression may be reinforced by the use of `dct:creator`: arguably, a triple (as a unique abstract entity) is not "created" by anyone, while an occurrence thereof can be said to be created or authored.

              + +

              The problem with this interpretation is that it will break as soon as other creators and sources are added for the triple: one could not tell which source corresponds to which creator. Correctly capturing this information would require additional nodes to explicitly represent triple occurrences, as in . In summary, although RDF-star can be used for provenance, the seminal example does not work as stated and can lead to the fundamentally incorrect interpretation that RDF-star can represent multiple distinct quoted triples with the same subject, predicate, and object.

              + +
              + +
              + +
              +

              Complete EBNF Grammars

              + +
              +

              Turtle-Star EBNF Grammar

              +

              The following is a complete grammar for Turtle-Star. + The EBNF used here is defined in XML 1.0 [[EBNF-NOTATION]].

              + +
              +
              + +
              +

              TriG-Star EBNF Grammar

              +

              The following is a complete grammar for TriG-Star. + The EBNF used here is defined in XML 1.0 [[EBNF-NOTATION]].

              + +
              +
              + +
              +

              N-Triples-Star EBNF Grammar

              +

              The following is a complete grammar for N-Triples-Star. + The EBNF used here is defined in XML 1.0 [[EBNF-NOTATION]].

              + +
              +
              + +
              +

              N-Quads-Star EBNF Grammar

              +

              The following is a complete grammar for N-Quads-Star. + The EBNF used here is defined in XML 1.0 [[EBNF-NOTATION]].

              + +
              +
              + +
              +

              SPARQL-Star EBNF Grammar

              +

              The following is a complete grammar for SPARQL-Star. + The EBNF used here is defined in XML 1.0 [[EBNF-NOTATION]].

              + +
              +
              +
              + +
              + +
              + + diff --git a/corese-unit-test/src/test/resources/data/rdf-star-main/cg-spec/index.html b/corese-unit-test/src/test/resources/data/rdf-star-main/cg-spec/index.html new file mode 100644 index 0000000000..aa926c97eb --- /dev/null +++ b/corese-unit-test/src/test/resources/data/rdf-star-main/cg-spec/index.html @@ -0,0 +1,16 @@ + + +Latest published RDF-star CG-draft + + + + + +

              The latest RDF-star CG-draft is + 2021-12-17.html. + You should be redirected soon. +

              diff --git a/corese-unit-test/src/test/resources/data/rdf-star-main/cg-spec/visual-map-bg.svg b/corese-unit-test/src/test/resources/data/rdf-star-main/cg-spec/visual-map-bg.svg new file mode 100644 index 0000000000..6a9e85fc67 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/rdf-star-main/cg-spec/visual-map-bg.svg @@ -0,0 +1,66 @@ + + + + + + + + + + + + + + diff --git a/corese-unit-test/src/test/resources/data/rdf-star-main/css/README.md b/corese-unit-test/src/test/resources/data/rdf-star-main/css/README.md new file mode 100644 index 0000000000..2aea21ae68 --- /dev/null +++ b/corese-unit-test/src/test/resources/data/rdf-star-main/css/README.md @@ -0,0 +1 @@ +CSS from bootstrap-4.5.3-dist.zip diff --git a/corese-unit-test/src/test/resources/data/rdf-star-main/css/bootstrap.css b/corese-unit-test/src/test/resources/data/rdf-star-main/css/bootstrap.css new file mode 100644 index 0000000000..a3171bef4d --- /dev/null +++ b/corese-unit-test/src/test/resources/data/rdf-star-main/css/bootstrap.css @@ -0,0 +1,10263 @@ +/*! + * Bootstrap v4.5.3 (https://getbootstrap.com/) + * Copyright 2011-2020 The Bootstrap Authors + * Copyright 2011-2020 Twitter, Inc. + * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) + */ +:root { + --blue: #007bff; + --indigo: #6610f2; + --purple: #6f42c1; + --pink: #e83e8c; + --red: #dc3545; + --orange: #fd7e14; + --yellow: #ffc107; + --green: #28a745; + --teal: #20c997; + --cyan: #17a2b8; + --white: #fff; + --gray: #6c757d; + --gray-dark: #343a40; + --primary: #007bff; + --secondary: #6c757d; + --success: #28a745; + --info: #17a2b8; + --warning: #ffc107; + --danger: #dc3545; + --light: #f8f9fa; + --dark: #343a40; + --breakpoint-xs: 0; + --breakpoint-sm: 576px; + --breakpoint-md: 768px; + --breakpoint-lg: 992px; + --breakpoint-xl: 1200px; + --font-family-sans-serif: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji"; + --font-family-monospace: SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace; +} + +*, +*::before, +*::after { + box-sizing: border-box; +} + +html { + font-family: sans-serif; + line-height: 1.15; + -webkit-text-size-adjust: 100%; + -webkit-tap-highlight-color: rgba(0, 0, 0, 0); +} + +article, aside, figcaption, figure, footer, header, hgroup, main, nav, section { + display: block; +} + +body { + margin: 0; + font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji"; + font-size: 1rem; + font-weight: 400; + line-height: 1.5; + color: #212529; + text-align: left; + background-color: #fff; +} + +[tabindex="-1"]:focus:not(:focus-visible) { + outline: 0 !important; +} + +hr { + box-sizing: content-box; + height: 0; + overflow: visible; +} + +h1, h2, h3, h4, h5, h6 { + margin-top: 0; + margin-bottom: 0.5rem; +} + +p { + margin-top: 0; + margin-bottom: 1rem; +} + +abbr[title], +abbr[data-original-title] { + text-decoration: underline; + -webkit-text-decoration: underline dotted; + text-decoration: underline dotted; + cursor: help; + border-bottom: 0; + -webkit-text-decoration-skip-ink: none; + text-decoration-skip-ink: none; +} + +address { + margin-bottom: 1rem; + font-style: normal; + line-height: inherit; +} + +ol, +ul, +dl { + margin-top: 0; + margin-bottom: 1rem; +} + +ol ol, +ul ul, +ol ul, +ul ol { + margin-bottom: 0; +} + +dt { + font-weight: 700; +} + +dd { + margin-bottom: .5rem; + margin-left: 0; +} + +blockquote { + margin: 0 0 1rem; +} + +b, +strong { + font-weight: bolder; +} + +small { + font-size: 80%; +} + +sub, +sup { + position: relative; + font-size: 75%; + line-height: 0; + vertical-align: baseline; +} + +sub { + bottom: -.25em; +} + +sup { + top: -.5em; +} + +a { + color: #007bff; + text-decoration: none; + background-color: transparent; +} + +a:hover { + color: #0056b3; + text-decoration: underline; +} + +a:not([href]):not([class]) { + color: inherit; + text-decoration: none; +} + +a:not([href]):not([class]):hover { + color: inherit; + text-decoration: none; +} + +pre, +code, +kbd, +samp { + font-family: SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace; + font-size: 1em; +} + +pre { + margin-top: 0; + margin-bottom: 1rem; + overflow: auto; + -ms-overflow-style: scrollbar; +} + +figure { + margin: 0 0 1rem; +} + +img { + vertical-align: middle; + border-style: none; +} + +svg { + overflow: hidden; + vertical-align: middle; +} + +table { + border-collapse: collapse; +} + +caption { + padding-top: 0.75rem; + padding-bottom: 0.75rem; + color: #6c757d; + text-align: left; + caption-side: bottom; +} + +th { + text-align: inherit; + text-align: -webkit-match-parent; +} + +label { + display: inline-block; + margin-bottom: 0.5rem; +} + +button { + border-radius: 0; +} + +button:focus { + outline: 1px dotted; + outline: 5px auto -webkit-focus-ring-color; +} + +input, +button, +select, +optgroup, +textarea { + margin: 0; + font-family: inherit; + font-size: inherit; + line-height: inherit; +} + +button, +input { + overflow: visible; +} + +button, +select { + text-transform: none; +} + +[role="button"] { + cursor: pointer; +} + +select { + word-wrap: normal; +} + +button, +[type="button"], +[type="reset"], +[type="submit"] { + -webkit-appearance: button; +} + +button:not(:disabled), +[type="button"]:not(:disabled), +[type="reset"]:not(:disabled), +[type="submit"]:not(:disabled) { + cursor: pointer; +} + +button::-moz-focus-inner, +[type="button"]::-moz-focus-inner, +[type="reset"]::-moz-focus-inner, +[type="submit"]::-moz-focus-inner { + padding: 0; + border-style: none; +} + +input[type="radio"], +input[type="checkbox"] { + box-sizing: border-box; + padding: 0; +} + +textarea { + overflow: auto; + resize: vertical; +} + +fieldset { + min-width: 0; + padding: 0; + margin: 0; + border: 0; +} + +legend { + display: block; + width: 100%; + max-width: 100%; + padding: 0; + margin-bottom: .5rem; + font-size: 1.5rem; + line-height: inherit; + color: inherit; + white-space: normal; +} + +progress { + vertical-align: baseline; +} + +[type="number"]::-webkit-inner-spin-button, +[type="number"]::-webkit-outer-spin-button { + height: auto; +} + +[type="search"] { + outline-offset: -2px; + -webkit-appearance: none; +} + +[type="search"]::-webkit-search-decoration { + -webkit-appearance: none; +} + +::-webkit-file-upload-button { + font: inherit; + -webkit-appearance: button; +} + +output { + display: inline-block; +} + +summary { + display: list-item; + cursor: pointer; +} + +template { + display: none; +} + +[hidden] { + display: none !important; +} + +h1, h2, h3, h4, h5, h6, +.h1, .h2, .h3, .h4, .h5, .h6 { + margin-bottom: 0.5rem; + font-weight: 500; + line-height: 1.2; +} + +h1, .h1 { + font-size: 2.5rem; +} + +h2, .h2 { + font-size: 2rem; +} + +h3, .h3 { + font-size: 1.75rem; +} + +h4, .h4 { + font-size: 1.5rem; +} + +h5, .h5 { + font-size: 1.25rem; +} + +h6, .h6 { + font-size: 1rem; +} + +.lead { + font-size: 1.25rem; + font-weight: 300; +} + +.display-1 { + font-size: 6rem; + font-weight: 300; + line-height: 1.2; +} + +.display-2 { + font-size: 5.5rem; + font-weight: 300; + line-height: 1.2; +} + +.display-3 { + font-size: 4.5rem; + font-weight: 300; + line-height: 1.2; +} + +.display-4 { + font-size: 3.5rem; + font-weight: 300; + line-height: 1.2; +} + +hr { + margin-top: 1rem; + margin-bottom: 1rem; + border: 0; + border-top: 1px solid rgba(0, 0, 0, 0.1); +} + +small, +.small { + font-size: 80%; + font-weight: 400; +} + +mark, +.mark { + padding: 0.2em; + background-color: #fcf8e3; +} + +.list-unstyled { + padding-left: 0; + list-style: none; +} + +.list-inline { + padding-left: 0; + list-style: none; +} + +.list-inline-item { + display: inline-block; +} + +.list-inline-item:not(:last-child) { + margin-right: 0.5rem; +} + +.initialism { + font-size: 90%; + text-transform: uppercase; +} + +.blockquote { + margin-bottom: 1rem; + font-size: 1.25rem; +} + +.blockquote-footer { + display: block; + font-size: 80%; + color: #6c757d; +} + +.blockquote-footer::before { + content: "\2014\00A0"; +} + +.img-fluid { + max-width: 100%; + height: auto; +} + +.img-thumbnail { + padding: 0.25rem; + background-color: #fff; + border: 1px solid #dee2e6; + border-radius: 0.25rem; + max-width: 100%; + height: auto; +} + +.figure { + display: inline-block; +} + +.figure-img { + margin-bottom: 0.5rem; + line-height: 1; +} + +.figure-caption { + font-size: 90%; + color: #6c757d; +} + +code { + font-size: 87.5%; + color: #e83e8c; + word-wrap: break-word; +} + +a > code { + color: inherit; +} + +kbd { + padding: 0.2rem 0.4rem; + font-size: 87.5%; + color: #fff; + background-color: #212529; + border-radius: 0.2rem; +} + +kbd kbd { + padding: 0; + font-size: 100%; + font-weight: 700; +} + +pre { + display: block; + font-size: 87.5%; + color: #212529; +} + +pre code { + font-size: inherit; + color: inherit; + word-break: normal; +} + +.pre-scrollable { + max-height: 340px; + overflow-y: scroll; +} + +.container, +.container-fluid, +.container-sm, +.container-md, +.container-lg, +.container-xl { + width: 100%; + padding-right: 15px; + padding-left: 15px; + margin-right: auto; + margin-left: auto; +} + +@media (min-width: 576px) { + .container, .container-sm { + max-width: 540px; + } +} + +@media (min-width: 768px) { + .container, .container-sm, .container-md { + max-width: 720px; + } +} + +@media (min-width: 992px) { + .container, .container-sm, .container-md, .container-lg { + max-width: 960px; + } +} + +@media (min-width: 1200px) { + .container, .container-sm, .container-md, .container-lg, .container-xl { + max-width: 1140px; + } +} + +.row { + display: -ms-flexbox; + display: flex; + -ms-flex-wrap: wrap; + flex-wrap: wrap; + margin-right: -15px; + margin-left: -15px; +} + +.no-gutters { + margin-right: 0; + margin-left: 0; +} + +.no-gutters > .col, +.no-gutters > [class*="col-"] { + padding-right: 0; + padding-left: 0; +} + +.col-1, .col-2, .col-3, .col-4, .col-5, .col-6, .col-7, .col-8, .col-9, .col-10, .col-11, .col-12, .col, +.col-auto, .col-sm-1, .col-sm-2, .col-sm-3, .col-sm-4, .col-sm-5, .col-sm-6, .col-sm-7, .col-sm-8, .col-sm-9, .col-sm-10, .col-sm-11, .col-sm-12, .col-sm, +.col-sm-auto, .col-md-1, .col-md-2, .col-md-3, .col-md-4, .col-md-5, .col-md-6, .col-md-7, .col-md-8, .col-md-9, .col-md-10, .col-md-11, .col-md-12, .col-md, +.col-md-auto, .col-lg-1, .col-lg-2, .col-lg-3, .col-lg-4, .col-lg-5, .col-lg-6, .col-lg-7, .col-lg-8, .col-lg-9, .col-lg-10, .col-lg-11, .col-lg-12, .col-lg, +.col-lg-auto, .col-xl-1, .col-xl-2, .col-xl-3, .col-xl-4, .col-xl-5, .col-xl-6, .col-xl-7, .col-xl-8, .col-xl-9, .col-xl-10, .col-xl-11, .col-xl-12, .col-xl, +.col-xl-auto { + position: relative; + width: 100%; + padding-right: 15px; + padding-left: 15px; +} + +.col { + -ms-flex-preferred-size: 0; + flex-basis: 0; + -ms-flex-positive: 1; + flex-grow: 1; + max-width: 100%; +} + +.row-cols-1 > * { + -ms-flex: 0 0 100%; + flex: 0 0 100%; + max-width: 100%; +} + +.row-cols-2 > * { + -ms-flex: 0 0 50%; + flex: 0 0 50%; + max-width: 50%; +} + +.row-cols-3 > * { + -ms-flex: 0 0 33.333333%; + flex: 0 0 33.333333%; + max-width: 33.333333%; +} + +.row-cols-4 > * { + -ms-flex: 0 0 25%; + flex: 0 0 25%; + max-width: 25%; +} + +.row-cols-5 > * { + -ms-flex: 0 0 20%; + flex: 0 0 20%; + max-width: 20%; +} + +.row-cols-6 > * { + -ms-flex: 0 0 16.666667%; + flex: 0 0 16.666667%; + max-width: 16.666667%; +} + +.col-auto { + -ms-flex: 0 0 auto; + flex: 0 0 auto; + width: auto; + max-width: 100%; +} + +.col-1 { + -ms-flex: 0 0 8.333333%; + flex: 0 0 8.333333%; + max-width: 8.333333%; +} + +.col-2 { + -ms-flex: 0 0 16.666667%; + flex: 0 0 16.666667%; + max-width: 16.666667%; +} + +.col-3 { + -ms-flex: 0 0 25%; + flex: 0 0 25%; + max-width: 25%; +} + +.col-4 { + -ms-flex: 0 0 33.333333%; + flex: 0 0 33.333333%; + max-width: 33.333333%; +} + +.col-5 { + -ms-flex: 0 0 41.666667%; + flex: 0 0 41.666667%; + max-width: 41.666667%; +} + +.col-6 { + -ms-flex: 0 0 50%; + flex: 0 0 50%; + max-width: 50%; +} + +.col-7 { + -ms-flex: 0 0 58.333333%; + flex: 0 0 58.333333%; + max-width: 58.333333%; +} + +.col-8 { + -ms-flex: 0 0 66.666667%; + flex: 0 0 66.666667%; + max-width: 66.666667%; +} + +.col-9 { + -ms-flex: 0 0 75%; + flex: 0 0 75%; + max-width: 75%; +} + +.col-10 { + -ms-flex: 0 0 83.333333%; + flex: 0 0 83.333333%; + max-width: 83.333333%; +} + +.col-11 { + -ms-flex: 0 0 91.666667%; + flex: 0 0 91.666667%; + max-width: 91.666667%; +} + +.col-12 { + -ms-flex: 0 0 100%; + flex: 0 0 100%; + max-width: 100%; +} + +.order-first { + -ms-flex-order: -1; + order: -1; +} + +.order-last { + -ms-flex-order: 13; + order: 13; +} + +.order-0 { + -ms-flex-order: 0; + order: 0; +} + +.order-1 { + -ms-flex-order: 1; + order: 1; +} + +.order-2 { + -ms-flex-order: 2; + order: 2; +} + +.order-3 { + -ms-flex-order: 3; + order: 3; +} + +.order-4 { + -ms-flex-order: 4; + order: 4; +} + +.order-5 { + -ms-flex-order: 5; + order: 5; +} + +.order-6 { + -ms-flex-order: 6; + order: 6; +} + +.order-7 { + -ms-flex-order: 7; + order: 7; +} + +.order-8 { + -ms-flex-order: 8; + order: 8; +} + +.order-9 { + -ms-flex-order: 9; + order: 9; +} + +.order-10 { + -ms-flex-order: 10; + order: 10; +} + +.order-11 { + -ms-flex-order: 11; + order: 11; +} + +.order-12 { + -ms-flex-order: 12; + order: 12; +} + +.offset-1 { + margin-left: 8.333333%; +} + +.offset-2 { + margin-left: 16.666667%; +} + +.offset-3 { + margin-left: 25%; +} + +.offset-4 { + margin-left: 33.333333%; +} + +.offset-5 { + margin-left: 41.666667%; +} + +.offset-6 { + margin-left: 50%; +} + +.offset-7 { + margin-left: 58.333333%; +} + +.offset-8 { + margin-left: 66.666667%; +} + +.offset-9 { + margin-left: 75%; +} + +.offset-10 { + margin-left: 83.333333%; +} + +.offset-11 { + margin-left: 91.666667%; +} + +@media (min-width: 576px) { + .col-sm { + -ms-flex-preferred-size: 0; + flex-basis: 0; + -ms-flex-positive: 1; + flex-grow: 1; + max-width: 100%; + } + .row-cols-sm-1 > * { + -ms-flex: 0 0 100%; + flex: 0 0 100%; + max-width: 100%; + } + .row-cols-sm-2 > * { + -ms-flex: 0 0 50%; + flex: 0 0 50%; + max-width: 50%; + } + .row-cols-sm-3 > * { + -ms-flex: 0 0 33.333333%; + flex: 0 0 33.333333%; + max-width: 33.333333%; + } + .row-cols-sm-4 > * { + -ms-flex: 0 0 25%; + flex: 0 0 25%; + max-width: 25%; + } + .row-cols-sm-5 > * { + -ms-flex: 0 0 20%; + flex: 0 0 20%; + max-width: 20%; + } + .row-cols-sm-6 > * { + -ms-flex: 0 0 16.666667%; + flex: 0 0 16.666667%; + max-width: 16.666667%; + } + .col-sm-auto { + -ms-flex: 0 0 auto; + flex: 0 0 auto; + width: auto; + max-width: 100%; + } + .col-sm-1 { + -ms-flex: 0 0 8.333333%; + flex: 0 0 8.333333%; + max-width: 8.333333%; + } + .col-sm-2 { + -ms-flex: 0 0 16.666667%; + flex: 0 0 16.666667%; + max-width: 16.666667%; + } + .col-sm-3 { + -ms-flex: 0 0 25%; + flex: 0 0 25%; + max-width: 25%; + } + .col-sm-4 { + -ms-flex: 0 0 33.333333%; + flex: 0 0 33.333333%; + max-width: 33.333333%; + } + .col-sm-5 { + -ms-flex: 0 0 41.666667%; + flex: 0 0 41.666667%; + max-width: 41.666667%; + } + .col-sm-6 { + -ms-flex: 0 0 50%; + flex: 0 0 50%; + max-width: 50%; + } + .col-sm-7 { + -ms-flex: 0 0 58.333333%; + flex: 0 0 58.333333%; + max-width: 58.333333%; + } + .col-sm-8 { + -ms-flex: 0 0 66.666667%; + flex: 0 0 66.666667%; + max-width: 66.666667%; + } + .col-sm-9 { + -ms-flex: 0 0 75%; + flex: 0 0 75%; + max-width: 75%; + } + .col-sm-10 { + -ms-flex: 0 0 83.333333%; + flex: 0 0 83.333333%; + max-width: 83.333333%; + } + .col-sm-11 { + -ms-flex: 0 0 91.666667%; + flex: 0 0 91.666667%; + max-width: 91.666667%; + } + .col-sm-12 { + -ms-flex: 0 0 100%; + flex: 0 0 100%; + max-width: 100%; + } + .order-sm-first { + -ms-flex-order: -1; + order: -1; + } + .order-sm-last { + -ms-flex-order: 13; + order: 13; + } + .order-sm-0 { + -ms-flex-order: 0; + order: 0; + } + .order-sm-1 { + -ms-flex-order: 1; + order: 1; + } + .order-sm-2 { + -ms-flex-order: 2; + order: 2; + } + .order-sm-3 { + -ms-flex-order: 3; + order: 3; + } + .order-sm-4 { + -ms-flex-order: 4; + order: 4; + } + .order-sm-5 { + -ms-flex-order: 5; + order: 5; + } + .order-sm-6 { + -ms-flex-order: 6; + order: 6; + } + .order-sm-7 { + -ms-flex-order: 7; + order: 7; + } + .order-sm-8 { + -ms-flex-order: 8; + order: 8; + } + .order-sm-9 { + -ms-flex-order: 9; + order: 9; + } + .order-sm-10 { + -ms-flex-order: 10; + order: 10; + } + .order-sm-11 { + -ms-flex-order: 11; + order: 11; + } + .order-sm-12 { + -ms-flex-order: 12; + order: 12; + } + .offset-sm-0 { + margin-left: 0; + } + .offset-sm-1 { + margin-left: 8.333333%; + } + .offset-sm-2 { + margin-left: 16.666667%; + } + .offset-sm-3 { + margin-left: 25%; + } + .offset-sm-4 { + margin-left: 33.333333%; + } + .offset-sm-5 { + margin-left: 41.666667%; + } + .offset-sm-6 { + margin-left: 50%; + } + .offset-sm-7 { + margin-left: 58.333333%; + } + .offset-sm-8 { + margin-left: 66.666667%; + } + .offset-sm-9 { + margin-left: 75%; + } + .offset-sm-10 { + margin-left: 83.333333%; + } + .offset-sm-11 { + margin-left: 91.666667%; + } +} + +@media (min-width: 768px) { + .col-md { + -ms-flex-preferred-size: 0; + flex-basis: 0; + -ms-flex-positive: 1; + flex-grow: 1; + max-width: 100%; + } + .row-cols-md-1 > * { + -ms-flex: 0 0 100%; + flex: 0 0 100%; + max-width: 100%; + } + .row-cols-md-2 > * { + -ms-flex: 0 0 50%; + flex: 0 0 50%; + max-width: 50%; + } + .row-cols-md-3 > * { + -ms-flex: 0 0 33.333333%; + flex: 0 0 33.333333%; + max-width: 33.333333%; + } + .row-cols-md-4 > * { + -ms-flex: 0 0 25%; + flex: 0 0 25%; + max-width: 25%; + } + .row-cols-md-5 > * { + -ms-flex: 0 0 20%; + flex: 0 0 20%; + max-width: 20%; + } + .row-cols-md-6 > * { + -ms-flex: 0 0 16.666667%; + flex: 0 0 16.666667%; + max-width: 16.666667%; + } + .col-md-auto { + -ms-flex: 0 0 auto; + flex: 0 0 auto; + width: auto; + max-width: 100%; + } + .col-md-1 { + -ms-flex: 0 0 8.333333%; + flex: 0 0 8.333333%; + max-width: 8.333333%; + } + .col-md-2 { + -ms-flex: 0 0 16.666667%; + flex: 0 0 16.666667%; + max-width: 16.666667%; + } + .col-md-3 { + -ms-flex: 0 0 25%; + flex: 0 0 25%; + max-width: 25%; + } + .col-md-4 { + -ms-flex: 0 0 33.333333%; + flex: 0 0 33.333333%; + max-width: 33.333333%; + } + .col-md-5 { + -ms-flex: 0 0 41.666667%; + flex: 0 0 41.666667%; + max-width: 41.666667%; + } + .col-md-6 { + -ms-flex: 0 0 50%; + flex: 0 0 50%; + max-width: 50%; + } + .col-md-7 { + -ms-flex: 0 0 58.333333%; + flex: 0 0 58.333333%; + max-width: 58.333333%; + } + .col-md-8 { + -ms-flex: 0 0 66.666667%; + flex: 0 0 66.666667%; + max-width: 66.666667%; + } + .col-md-9 { + -ms-flex: 0 0 75%; + flex: 0 0 75%; + max-width: 75%; + } + .col-md-10 { + -ms-flex: 0 0 83.333333%; + flex: 0 0 83.333333%; + max-width: 83.333333%; + } + .col-md-11 { + -ms-flex: 0 0 91.666667%; + flex: 0 0 91.666667%; + max-width: 91.666667%; + } + .col-md-12 { + -ms-flex: 0 0 100%; + flex: 0 0 100%; + max-width: 100%; + } + .order-md-first { + -ms-flex-order: -1; + order: -1; + } + .order-md-last { + -ms-flex-order: 13; + order: 13; + } + .order-md-0 { + -ms-flex-order: 0; + order: 0; + } + .order-md-1 { + -ms-flex-order: 1; + order: 1; + } + .order-md-2 { + -ms-flex-order: 2; + order: 2; + } + .order-md-3 { + -ms-flex-order: 3; + order: 3; + } + .order-md-4 { + -ms-flex-order: 4; + order: 4; + } + .order-md-5 { + -ms-flex-order: 5; + order: 5; + } + .order-md-6 { + -ms-flex-order: 6; + order: 6; + } + .order-md-7 { + -ms-flex-order: 7; + order: 7; + } + .order-md-8 { + -ms-flex-order: 8; + order: 8; + } + .order-md-9 { + -ms-flex-order: 9; + order: 9; + } + .order-md-10 { + -ms-flex-order: 10; + order: 10; + } + .order-md-11 { + -ms-flex-order: 11; + order: 11; + } + .order-md-12 { + -ms-flex-order: 12; + order: 12; + } + .offset-md-0 { + margin-left: 0; + } + .offset-md-1 { + margin-left: 8.333333%; + } + .offset-md-2 { + margin-left: 16.666667%; + } + .offset-md-3 { + margin-left: 25%; + } + .offset-md-4 { + margin-left: 33.333333%; + } + .offset-md-5 { + margin-left: 41.666667%; + } + .offset-md-6 { + margin-left: 50%; + } + .offset-md-7 { + margin-left: 58.333333%; + } + .offset-md-8 { + margin-left: 66.666667%; + } + .offset-md-9 { + margin-left: 75%; + } + .offset-md-10 { + margin-left: 83.333333%; + } + .offset-md-11 { + margin-left: 91.666667%; + } +} + +@media (min-width: 992px) { + .col-lg { + -ms-flex-preferred-size: 0; + flex-basis: 0; + -ms-flex-positive: 1; + flex-grow: 1; + max-width: 100%; + } + .row-cols-lg-1 > * { + -ms-flex: 0 0 100%; + flex: 0 0 100%; + max-width: 100%; + } + .row-cols-lg-2 > * { + -ms-flex: 0 0 50%; + flex: 0 0 50%; + max-width: 50%; + } + .row-cols-lg-3 > * { + -ms-flex: 0 0 33.333333%; + flex: 0 0 33.333333%; + max-width: 33.333333%; + } + .row-cols-lg-4 > * { + -ms-flex: 0 0 25%; + flex: 0 0 25%; + max-width: 25%; + } + .row-cols-lg-5 > * { + -ms-flex: 0 0 20%; + flex: 0 0 20%; + max-width: 20%; + } + .row-cols-lg-6 > * { + -ms-flex: 0 0 16.666667%; + flex: 0 0 16.666667%; + max-width: 16.666667%; + } + .col-lg-auto { + -ms-flex: 0 0 auto; + flex: 0 0 auto; + width: auto; + max-width: 100%; + } + .col-lg-1 { + -ms-flex: 0 0 8.333333%; + flex: 0 0 8.333333%; + max-width: 8.333333%; + } + .col-lg-2 { + -ms-flex: 0 0 16.666667%; + flex: 0 0 16.666667%; + max-width: 16.666667%; + } + .col-lg-3 { + -ms-flex: 0 0 25%; + flex: 0 0 25%; + max-width: 25%; + } + .col-lg-4 { + -ms-flex: 0 0 33.333333%; + flex: 0 0 33.333333%; + max-width: 33.333333%; + } + .col-lg-5 { + -ms-flex: 0 0 41.666667%; + flex: 0 0 41.666667%; + max-width: 41.666667%; + } + .col-lg-6 { + -ms-flex: 0 0 50%; + flex: 0 0 50%; + max-width: 50%; + } + .col-lg-7 { + -ms-flex: 0 0 58.333333%; + flex: 0 0 58.333333%; + max-width: 58.333333%; + } + .col-lg-8 { + -ms-flex: 0 0 66.666667%; + flex: 0 0 66.666667%; + max-width: 66.666667%; + } + .col-lg-9 { + -ms-flex: 0 0 75%; + flex: 0 0 75%; + max-width: 75%; + } + .col-lg-10 { + -ms-flex: 0 0 83.333333%; + flex: 0 0 83.333333%; + max-width: 83.333333%; + } + .col-lg-11 { + -ms-flex: 0 0 91.666667%; + flex: 0 0 91.666667%; + max-width: 91.666667%; + } + .col-lg-12 { + -ms-flex: 0 0 100%; + flex: 0 0 100%; + max-width: 100%; + } + .order-lg-first { + -ms-flex-order: -1; + order: -1; + } + .order-lg-last { + -ms-flex-order: 13; + order: 13; + } + .order-lg-0 { + -ms-flex-order: 0; + order: 0; + } + .order-lg-1 { + -ms-flex-order: 1; + order: 1; + } + .order-lg-2 { + -ms-flex-order: 2; + order: 2; + } + .order-lg-3 { + -ms-flex-order: 3; + order: 3; + } + .order-lg-4 { + -ms-flex-order: 4; + order: 4; + } + .order-lg-5 { + -ms-flex-order: 5; + order: 5; + } + .order-lg-6 { + -ms-flex-order: 6; + order: 6; + } + .order-lg-7 { + -ms-flex-order: 7; + order: 7; + } + .order-lg-8 { + -ms-flex-order: 8; + order: 8; + } + .order-lg-9 { + -ms-flex-order: 9; + order: 9; + } + .order-lg-10 { + -ms-flex-order: 10; + order: 10; + } + .order-lg-11 { + -ms-flex-order: 11; + order: 11; + } + .order-lg-12 { + -ms-flex-order: 12; + order: 12; + } + .offset-lg-0 { + margin-left: 0; + } + .offset-lg-1 { + margin-left: 8.333333%; + } + .offset-lg-2 { + margin-left: 16.666667%; + } + .offset-lg-3 { + margin-left: 25%; + } + .offset-lg-4 { + margin-left: 33.333333%; + } + .offset-lg-5 { + margin-left: 41.666667%; + } + .offset-lg-6 { + margin-left: 50%; + } + .offset-lg-7 { + margin-left: 58.333333%; + } + .offset-lg-8 { + margin-left: 66.666667%; + } + .offset-lg-9 { + margin-left: 75%; + } + .offset-lg-10 { + margin-left: 83.333333%; + } + .offset-lg-11 { + margin-left: 91.666667%; + } +} + +@media (min-width: 1200px) { + .col-xl { + -ms-flex-preferred-size: 0; + flex-basis: 0; + -ms-flex-positive: 1; + flex-grow: 1; + max-width: 100%; + } + .row-cols-xl-1 > * { + -ms-flex: 0 0 100%; + flex: 0 0 100%; + max-width: 100%; + } + .row-cols-xl-2 > * { + -ms-flex: 0 0 50%; + flex: 0 0 50%; + max-width: 50%; + } + .row-cols-xl-3 > * { + -ms-flex: 0 0 33.333333%; + flex: 0 0 33.333333%; + max-width: 33.333333%; + } + .row-cols-xl-4 > * { + -ms-flex: 0 0 25%; + flex: 0 0 25%; + max-width: 25%; + } + .row-cols-xl-5 > * { + -ms-flex: 0 0 20%; + flex: 0 0 20%; + max-width: 20%; + } + .row-cols-xl-6 > * { + -ms-flex: 0 0 16.666667%; + flex: 0 0 16.666667%; + max-width: 16.666667%; + } + .col-xl-auto { + -ms-flex: 0 0 auto; + flex: 0 0 auto; + width: auto; + max-width: 100%; + } + .col-xl-1 { + -ms-flex: 0 0 8.333333%; + flex: 0 0 8.333333%; + max-width: 8.333333%; + } + .col-xl-2 { + -ms-flex: 0 0 16.666667%; + flex: 0 0 16.666667%; + max-width: 16.666667%; + } + .col-xl-3 { + -ms-flex: 0 0 25%; + flex: 0 0 25%; + max-width: 25%; + } + .col-xl-4 { + -ms-flex: 0 0 33.333333%; + flex: 0 0 33.333333%; + max-width: 33.333333%; + } + .col-xl-5 { + -ms-flex: 0 0 41.666667%; + flex: 0 0 41.666667%; + max-width: 41.666667%; + } + .col-xl-6 { + -ms-flex: 0 0 50%; + flex: 0 0 50%; + max-width: 50%; + } + .col-xl-7 { + -ms-flex: 0 0 58.333333%; + flex: 0 0 58.333333%; + max-width: 58.333333%; + } + .col-xl-8 { + -ms-flex: 0 0 66.666667%; + flex: 0 0 66.666667%; + max-width: 66.666667%; + } + .col-xl-9 { + -ms-flex: 0 0 75%; + flex: 0 0 75%; + max-width: 75%; + } + .col-xl-10 { + -ms-flex: 0 0 83.333333%; + flex: 0 0 83.333333%; + max-width: 83.333333%; + } + .col-xl-11 { + -ms-flex: 0 0 91.666667%; + flex: 0 0 91.666667%; + max-width: 91.666667%; + } + .col-xl-12 { + -ms-flex: 0 0 100%; + flex: 0 0 100%; + max-width: 100%; + } + .order-xl-first { + -ms-flex-order: -1; + order: -1; + } + .order-xl-last { + -ms-flex-order: 13; + order: 13; + } + .order-xl-0 { + -ms-flex-order: 0; + order: 0; + } + .order-xl-1 { + -ms-flex-order: 1; + order: 1; + } + .order-xl-2 { + -ms-flex-order: 2; + order: 2; + } + .order-xl-3 { + -ms-flex-order: 3; + order: 3; + } + .order-xl-4 { + -ms-flex-order: 4; + order: 4; + } + .order-xl-5 { + -ms-flex-order: 5; + order: 5; + } + .order-xl-6 { + -ms-flex-order: 6; + order: 6; + } + .order-xl-7 { + -ms-flex-order: 7; + order: 7; + } + .order-xl-8 { + -ms-flex-order: 8; + order: 8; + } + .order-xl-9 { + -ms-flex-order: 9; + order: 9; + } + .order-xl-10 { + -ms-flex-order: 10; + order: 10; + } + .order-xl-11 { + -ms-flex-order: 11; + order: 11; + } + .order-xl-12 { + -ms-flex-order: 12; + order: 12; + } + .offset-xl-0 { + margin-left: 0; + } + .offset-xl-1 { + margin-left: 8.333333%; + } + .offset-xl-2 { + margin-left: 16.666667%; + } + .offset-xl-3 { + margin-left: 25%; + } + .offset-xl-4 { + margin-left: 33.333333%; + } + .offset-xl-5 { + margin-left: 41.666667%; + } + .offset-xl-6 { + margin-left: 50%; + } + .offset-xl-7 { + margin-left: 58.333333%; + } + .offset-xl-8 { + margin-left: 66.666667%; + } + .offset-xl-9 { + margin-left: 75%; + } + .offset-xl-10 { + margin-left: 83.333333%; + } + .offset-xl-11 { + margin-left: 91.666667%; + } +} + +.table { + width: 100%; + margin-bottom: 1rem; + color: #212529; +} + +.table th, +.table td { + padding: 0.75rem; + vertical-align: top; + border-top: 1px solid #dee2e6; +} + +.table thead th { + vertical-align: bottom; + border-bottom: 2px solid #dee2e6; +} + +.table tbody + tbody { + border-top: 2px solid #dee2e6; +} + +.table-sm th, +.table-sm td { + padding: 0.3rem; +} + +.table-bordered { + border: 1px solid #dee2e6; +} + +.table-bordered th, +.table-bordered td { + border: 1px solid #dee2e6; +} + +.table-bordered thead th, +.table-bordered thead td { + border-bottom-width: 2px; +} + +.table-borderless th, +.table-borderless td, +.table-borderless thead th, +.table-borderless tbody + tbody { + border: 0; +} + +.table-striped tbody tr:nth-of-type(odd) { + background-color: rgba(0, 0, 0, 0.05); +} + +.table-hover tbody tr:hover { + color: #212529; + background-color: rgba(0, 0, 0, 0.075); +} + +.table-primary, +.table-primary > th, +.table-primary > td { + background-color: #b8daff; +} + +.table-primary th, +.table-primary td, +.table-primary thead th, +.table-primary tbody + tbody { + border-color: #7abaff; +} + +.table-hover .table-primary:hover { + background-color: #9fcdff; +} + +.table-hover .table-primary:hover > td, +.table-hover .table-primary:hover > th { + background-color: #9fcdff; +} + +.table-secondary, +.table-secondary > th, +.table-secondary > td { + background-color: #d6d8db; +} + +.table-secondary th, +.table-secondary td, +.table-secondary thead th, +.table-secondary tbody + tbody { + border-color: #b3b7bb; +} + +.table-hover .table-secondary:hover { + background-color: #c8cbcf; +} + +.table-hover .table-secondary:hover > td, +.table-hover .table-secondary:hover > th { + background-color: #c8cbcf; +} + +.table-success, +.table-success > th, +.table-success > td { + background-color: #c3e6cb; +} + +.table-success th, +.table-success td, +.table-success thead th, +.table-success tbody + tbody { + border-color: #8fd19e; +} + +.table-hover .table-success:hover { + background-color: #b1dfbb; +} + +.table-hover .table-success:hover > td, +.table-hover .table-success:hover > th { + background-color: #b1dfbb; +} + +.table-info, +.table-info > th, +.table-info > td { + background-color: #bee5eb; +} + +.table-info th, +.table-info td, +.table-info thead th, +.table-info tbody + tbody { + border-color: #86cfda; +} + +.table-hover .table-info:hover { + background-color: #abdde5; +} + +.table-hover .table-info:hover > td, +.table-hover .table-info:hover > th { + background-color: #abdde5; +} + +.table-warning, +.table-warning > th, +.table-warning > td { + background-color: #ffeeba; +} + +.table-warning th, +.table-warning td, +.table-warning thead th, +.table-warning tbody + tbody { + border-color: #ffdf7e; +} + +.table-hover .table-warning:hover { + background-color: #ffe8a1; +} + +.table-hover .table-warning:hover > td, +.table-hover .table-warning:hover > th { + background-color: #ffe8a1; +} + +.table-danger, +.table-danger > th, +.table-danger > td { + background-color: #f5c6cb; +} + +.table-danger th, +.table-danger td, +.table-danger thead th, +.table-danger tbody + tbody { + border-color: #ed969e; +} + +.table-hover .table-danger:hover { + background-color: #f1b0b7; +} + +.table-hover .table-danger:hover > td, +.table-hover .table-danger:hover > th { + background-color: #f1b0b7; +} + +.table-light, +.table-light > th, +.table-light > td { + background-color: #fdfdfe; +} + +.table-light th, +.table-light td, +.table-light thead th, +.table-light tbody + tbody { + border-color: #fbfcfc; +} + +.table-hover .table-light:hover { + background-color: #ececf6; +} + +.table-hover .table-light:hover > td, +.table-hover .table-light:hover > th { + background-color: #ececf6; +} + +.table-dark, +.table-dark > th, +.table-dark > td { + background-color: #c6c8ca; +} + +.table-dark th, +.table-dark td, +.table-dark thead th, +.table-dark tbody + tbody { + border-color: #95999c; +} + +.table-hover .table-dark:hover { + background-color: #b9bbbe; +} + +.table-hover .table-dark:hover > td, +.table-hover .table-dark:hover > th { + background-color: #b9bbbe; +} + +.table-active, +.table-active > th, +.table-active > td { + background-color: rgba(0, 0, 0, 0.075); +} + +.table-hover .table-active:hover { + background-color: rgba(0, 0, 0, 0.075); +} + +.table-hover .table-active:hover > td, +.table-hover .table-active:hover > th { + background-color: rgba(0, 0, 0, 0.075); +} + +.table .thead-dark th { + color: #fff; + background-color: #343a40; + border-color: #454d55; +} + +.table .thead-light th { + color: #495057; + background-color: #e9ecef; + border-color: #dee2e6; +} + +.table-dark { + color: #fff; + background-color: #343a40; +} + +.table-dark th, +.table-dark td, +.table-dark thead th { + border-color: #454d55; +} + +.table-dark.table-bordered { + border: 0; +} + +.table-dark.table-striped tbody tr:nth-of-type(odd) { + background-color: rgba(255, 255, 255, 0.05); +} + +.table-dark.table-hover tbody tr:hover { + color: #fff; + background-color: rgba(255, 255, 255, 0.075); +} + +@media (max-width: 575.98px) { + .table-responsive-sm { + display: block; + width: 100%; + overflow-x: auto; + -webkit-overflow-scrolling: touch; + } + .table-responsive-sm > .table-bordered { + border: 0; + } +} + +@media (max-width: 767.98px) { + .table-responsive-md { + display: block; + width: 100%; + overflow-x: auto; + -webkit-overflow-scrolling: touch; + } + .table-responsive-md > .table-bordered { + border: 0; + } +} + +@media (max-width: 991.98px) { + .table-responsive-lg { + display: block; + width: 100%; + overflow-x: auto; + -webkit-overflow-scrolling: touch; + } + .table-responsive-lg > .table-bordered { + border: 0; + } +} + +@media (max-width: 1199.98px) { + .table-responsive-xl { + display: block; + width: 100%; + overflow-x: auto; + -webkit-overflow-scrolling: touch; + } + .table-responsive-xl > .table-bordered { + border: 0; + } +} + +.table-responsive { + display: block; + width: 100%; + overflow-x: auto; + -webkit-overflow-scrolling: touch; +} + +.table-responsive > .table-bordered { + border: 0; +} + +.form-control { + display: block; + width: 100%; + height: calc(1.5em + 0.75rem + 2px); + padding: 0.375rem 0.75rem; + font-size: 1rem; + font-weight: 400; + line-height: 1.5; + color: #495057; + background-color: #fff; + background-clip: padding-box; + border: 1px solid #ced4da; + border-radius: 0.25rem; + transition: border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out; +} + +@media (prefers-reduced-motion: reduce) { + .form-control { + transition: none; + } +} + +.form-control::-ms-expand { + background-color: transparent; + border: 0; +} + +.form-control:-moz-focusring { + color: transparent; + text-shadow: 0 0 0 #495057; +} + +.form-control:focus { + color: #495057; + background-color: #fff; + border-color: #80bdff; + outline: 0; + box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.25); +} + +.form-control::-webkit-input-placeholder { + color: #6c757d; + opacity: 1; +} + +.form-control::-moz-placeholder { + color: #6c757d; + opacity: 1; +} + +.form-control:-ms-input-placeholder { + color: #6c757d; + opacity: 1; +} + +.form-control::-ms-input-placeholder { + color: #6c757d; + opacity: 1; +} + +.form-control::placeholder { + color: #6c757d; + opacity: 1; +} + +.form-control:disabled, .form-control[readonly] { + background-color: #e9ecef; + opacity: 1; +} + +input[type="date"].form-control, +input[type="time"].form-control, +input[type="datetime-local"].form-control, +input[type="month"].form-control { + -webkit-appearance: none; + -moz-appearance: none; + appearance: none; +} + +select.form-control:focus::-ms-value { + color: #495057; + background-color: #fff; +} + +.form-control-file, +.form-control-range { + display: block; + width: 100%; +} + +.col-form-label { + padding-top: calc(0.375rem + 1px); + padding-bottom: calc(0.375rem + 1px); + margin-bottom: 0; + font-size: inherit; + line-height: 1.5; +} + +.col-form-label-lg { + padding-top: calc(0.5rem + 1px); + padding-bottom: calc(0.5rem + 1px); + font-size: 1.25rem; + line-height: 1.5; +} + +.col-form-label-sm { + padding-top: calc(0.25rem + 1px); + padding-bottom: calc(0.25rem + 1px); + font-size: 0.875rem; + line-height: 1.5; +} + +.form-control-plaintext { + display: block; + width: 100%; + padding: 0.375rem 0; + margin-bottom: 0; + font-size: 1rem; + line-height: 1.5; + color: #212529; + background-color: transparent; + border: solid transparent; + border-width: 1px 0; +} + +.form-control-plaintext.form-control-sm, .form-control-plaintext.form-control-lg { + padding-right: 0; + padding-left: 0; +} + +.form-control-sm { + height: calc(1.5em + 0.5rem + 2px); + padding: 0.25rem 0.5rem; + font-size: 0.875rem; + line-height: 1.5; + border-radius: 0.2rem; +} + +.form-control-lg { + height: calc(1.5em + 1rem + 2px); + padding: 0.5rem 1rem; + font-size: 1.25rem; + line-height: 1.5; + border-radius: 0.3rem; +} + +select.form-control[size], select.form-control[multiple] { + height: auto; +} + +textarea.form-control { + height: auto; +} + +.form-group { + margin-bottom: 1rem; +} + +.form-text { + display: block; + margin-top: 0.25rem; +} + +.form-row { + display: -ms-flexbox; + display: flex; + -ms-flex-wrap: wrap; + flex-wrap: wrap; + margin-right: -5px; + margin-left: -5px; +} + +.form-row > .col, +.form-row > [class*="col-"] { + padding-right: 5px; + padding-left: 5px; +} + +.form-check { + position: relative; + display: block; + padding-left: 1.25rem; +} + +.form-check-input { + position: absolute; + margin-top: 0.3rem; + margin-left: -1.25rem; +} + +.form-check-input[disabled] ~ .form-check-label, +.form-check-input:disabled ~ .form-check-label { + color: #6c757d; +} + +.form-check-label { + margin-bottom: 0; +} + +.form-check-inline { + display: -ms-inline-flexbox; + display: inline-flex; + -ms-flex-align: center; + align-items: center; + padding-left: 0; + margin-right: 0.75rem; +} + +.form-check-inline .form-check-input { + position: static; + margin-top: 0; + margin-right: 0.3125rem; + margin-left: 0; +} + +.valid-feedback { + display: none; + width: 100%; + margin-top: 0.25rem; + font-size: 80%; + color: #28a745; +} + +.valid-tooltip { + position: absolute; + top: 100%; + left: 0; + z-index: 5; + display: none; + max-width: 100%; + padding: 0.25rem 0.5rem; + margin-top: .1rem; + font-size: 0.875rem; + line-height: 1.5; + color: #fff; + background-color: rgba(40, 167, 69, 0.9); + border-radius: 0.25rem; +} + +.was-validated :valid ~ .valid-feedback, +.was-validated :valid ~ .valid-tooltip, +.is-valid ~ .valid-feedback, +.is-valid ~ .valid-tooltip { + display: block; +} + +.was-validated .form-control:valid, .form-control.is-valid { + border-color: #28a745; + padding-right: calc(1.5em + 0.75rem); + background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='8' height='8' viewBox='0 0 8 8'%3e%3cpath fill='%2328a745' d='M2.3 6.73L.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3e%3c/svg%3e"); + background-repeat: no-repeat; + background-position: right calc(0.375em + 0.1875rem) center; + background-size: calc(0.75em + 0.375rem) calc(0.75em + 0.375rem); +} + +.was-validated .form-control:valid:focus, .form-control.is-valid:focus { + border-color: #28a745; + box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.25); +} + +.was-validated textarea.form-control:valid, textarea.form-control.is-valid { + padding-right: calc(1.5em + 0.75rem); + background-position: top calc(0.375em + 0.1875rem) right calc(0.375em + 0.1875rem); +} + +.was-validated .custom-select:valid, .custom-select.is-valid { + border-color: #28a745; + padding-right: calc(0.75em + 2.3125rem); + background: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='4' height='5' viewBox='0 0 4 5'%3e%3cpath fill='%23343a40' d='M2 0L0 2h4zm0 5L0 3h4z'/%3e%3c/svg%3e") no-repeat right 0.75rem center/8px 10px, url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='8' height='8' viewBox='0 0 8 8'%3e%3cpath fill='%2328a745' d='M2.3 6.73L.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3e%3c/svg%3e") #fff no-repeat center right 1.75rem/calc(0.75em + 0.375rem) calc(0.75em + 0.375rem); +} + +.was-validated .custom-select:valid:focus, .custom-select.is-valid:focus { + border-color: #28a745; + box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.25); +} + +.was-validated .form-check-input:valid ~ .form-check-label, .form-check-input.is-valid ~ .form-check-label { + color: #28a745; +} + +.was-validated .form-check-input:valid ~ .valid-feedback, +.was-validated .form-check-input:valid ~ .valid-tooltip, .form-check-input.is-valid ~ .valid-feedback, +.form-check-input.is-valid ~ .valid-tooltip { + display: block; +} + +.was-validated .custom-control-input:valid ~ .custom-control-label, .custom-control-input.is-valid ~ .custom-control-label { + color: #28a745; +} + +.was-validated .custom-control-input:valid ~ .custom-control-label::before, .custom-control-input.is-valid ~ .custom-control-label::before { + border-color: #28a745; +} + +.was-validated .custom-control-input:valid:checked ~ .custom-control-label::before, .custom-control-input.is-valid:checked ~ .custom-control-label::before { + border-color: #34ce57; + background-color: #34ce57; +} + +.was-validated .custom-control-input:valid:focus ~ .custom-control-label::before, .custom-control-input.is-valid:focus ~ .custom-control-label::before { + box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.25); +} + +.was-validated .custom-control-input:valid:focus:not(:checked) ~ .custom-control-label::before, .custom-control-input.is-valid:focus:not(:checked) ~ .custom-control-label::before { + border-color: #28a745; +} + +.was-validated .custom-file-input:valid ~ .custom-file-label, .custom-file-input.is-valid ~ .custom-file-label { + border-color: #28a745; +} + +.was-validated .custom-file-input:valid:focus ~ .custom-file-label, .custom-file-input.is-valid:focus ~ .custom-file-label { + border-color: #28a745; + box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.25); +} + +.invalid-feedback { + display: none; + width: 100%; + margin-top: 0.25rem; + font-size: 80%; + color: #dc3545; +} + +.invalid-tooltip { + position: absolute; + top: 100%; + left: 0; + z-index: 5; + display: none; + max-width: 100%; + padding: 0.25rem 0.5rem; + margin-top: .1rem; + font-size: 0.875rem; + line-height: 1.5; + color: #fff; + background-color: rgba(220, 53, 69, 0.9); + border-radius: 0.25rem; +} + +.was-validated :invalid ~ .invalid-feedback, +.was-validated :invalid ~ .invalid-tooltip, +.is-invalid ~ .invalid-feedback, +.is-invalid ~ .invalid-tooltip { + display: block; +} + +.was-validated .form-control:invalid, .form-control.is-invalid { + border-color: #dc3545; + padding-right: calc(1.5em + 0.75rem); + background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' fill='none' stroke='%23dc3545' viewBox='0 0 12 12'%3e%3ccircle cx='6' cy='6' r='4.5'/%3e%3cpath stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/%3e%3ccircle cx='6' cy='8.2' r='.6' fill='%23dc3545' stroke='none'/%3e%3c/svg%3e"); + background-repeat: no-repeat; + background-position: right calc(0.375em + 0.1875rem) center; + background-size: calc(0.75em + 0.375rem) calc(0.75em + 0.375rem); +} + +.was-validated .form-control:invalid:focus, .form-control.is-invalid:focus { + border-color: #dc3545; + box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.25); +} + +.was-validated textarea.form-control:invalid, textarea.form-control.is-invalid { + padding-right: calc(1.5em + 0.75rem); + background-position: top calc(0.375em + 0.1875rem) right calc(0.375em + 0.1875rem); +} + +.was-validated .custom-select:invalid, .custom-select.is-invalid { + border-color: #dc3545; + padding-right: calc(0.75em + 2.3125rem); + background: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='4' height='5' viewBox='0 0 4 5'%3e%3cpath fill='%23343a40' d='M2 0L0 2h4zm0 5L0 3h4z'/%3e%3c/svg%3e") no-repeat right 0.75rem center/8px 10px, url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' fill='none' stroke='%23dc3545' viewBox='0 0 12 12'%3e%3ccircle cx='6' cy='6' r='4.5'/%3e%3cpath stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/%3e%3ccircle cx='6' cy='8.2' r='.6' fill='%23dc3545' stroke='none'/%3e%3c/svg%3e") #fff no-repeat center right 1.75rem/calc(0.75em + 0.375rem) calc(0.75em + 0.375rem); +} + +.was-validated .custom-select:invalid:focus, .custom-select.is-invalid:focus { + border-color: #dc3545; + box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.25); +} + +.was-validated .form-check-input:invalid ~ .form-check-label, .form-check-input.is-invalid ~ .form-check-label { + color: #dc3545; +} + +.was-validated .form-check-input:invalid ~ .invalid-feedback, +.was-validated .form-check-input:invalid ~ .invalid-tooltip, .form-check-input.is-invalid ~ .invalid-feedback, +.form-check-input.is-invalid ~ .invalid-tooltip { + display: block; +} + +.was-validated .custom-control-input:invalid ~ .custom-control-label, .custom-control-input.is-invalid ~ .custom-control-label { + color: #dc3545; +} + +.was-validated .custom-control-input:invalid ~ .custom-control-label::before, .custom-control-input.is-invalid ~ .custom-control-label::before { + border-color: #dc3545; +} + +.was-validated .custom-control-input:invalid:checked ~ .custom-control-label::before, .custom-control-input.is-invalid:checked ~ .custom-control-label::before { + border-color: #e4606d; + background-color: #e4606d; +} + +.was-validated .custom-control-input:invalid:focus ~ .custom-control-label::before, .custom-control-input.is-invalid:focus ~ .custom-control-label::before { + box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.25); +} + +.was-validated .custom-control-input:invalid:focus:not(:checked) ~ .custom-control-label::before, .custom-control-input.is-invalid:focus:not(:checked) ~ .custom-control-label::before { + border-color: #dc3545; +} + +.was-validated .custom-file-input:invalid ~ .custom-file-label, .custom-file-input.is-invalid ~ .custom-file-label { + border-color: #dc3545; +} + +.was-validated .custom-file-input:invalid:focus ~ .custom-file-label, .custom-file-input.is-invalid:focus ~ .custom-file-label { + border-color: #dc3545; + box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.25); +} + +.form-inline { + display: -ms-flexbox; + display: flex; + -ms-flex-flow: row wrap; + flex-flow: row wrap; + -ms-flex-align: center; + align-items: center; +} + +.form-inline .form-check { + width: 100%; +} + +@media (min-width: 576px) { + .form-inline label { + display: -ms-flexbox; + display: flex; + -ms-flex-align: center; + align-items: center; + -ms-flex-pack: center; + justify-content: center; + margin-bottom: 0; + } + .form-inline .form-group { + display: -ms-flexbox; + display: flex; + -ms-flex: 0 0 auto; + flex: 0 0 auto; + -ms-flex-flow: row wrap; + flex-flow: row wrap; + -ms-flex-align: center; + align-items: center; + margin-bottom: 0; + } + .form-inline .form-control { + display: inline-block; + width: auto; + vertical-align: middle; + } + .form-inline .form-control-plaintext { + display: inline-block; + } + .form-inline .input-group, + .form-inline .custom-select { + width: auto; + } + .form-inline .form-check { + display: -ms-flexbox; + display: flex; + -ms-flex-align: center; + align-items: center; + -ms-flex-pack: center; + justify-content: center; + width: auto; + padding-left: 0; + } + .form-inline .form-check-input { + position: relative; + -ms-flex-negative: 0; + flex-shrink: 0; + margin-top: 0; + margin-right: 0.25rem; + margin-left: 0; + } + .form-inline .custom-control { + -ms-flex-align: center; + align-items: center; + -ms-flex-pack: center; + justify-content: center; + } + .form-inline .custom-control-label { + margin-bottom: 0; + } +} + +.btn { + display: inline-block; + font-weight: 400; + color: #212529; + text-align: center; + vertical-align: middle; + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; + background-color: transparent; + border: 1px solid transparent; + padding: 0.375rem 0.75rem; + font-size: 1rem; + line-height: 1.5; + border-radius: 0.25rem; + transition: color 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out; +} + +@media (prefers-reduced-motion: reduce) { + .btn { + transition: none; + } +} + +.btn:hover { + color: #212529; + text-decoration: none; +} + +.btn:focus, .btn.focus { + outline: 0; + box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.25); +} + +.btn.disabled, .btn:disabled { + opacity: 0.65; +} + +.btn:not(:disabled):not(.disabled) { + cursor: pointer; +} + +a.btn.disabled, +fieldset:disabled a.btn { + pointer-events: none; +} + +.btn-primary { + color: #fff; + background-color: #007bff; + border-color: #007bff; +} + +.btn-primary:hover { + color: #fff; + background-color: #0069d9; + border-color: #0062cc; +} + +.btn-primary:focus, .btn-primary.focus { + color: #fff; + background-color: #0069d9; + border-color: #0062cc; + box-shadow: 0 0 0 0.2rem rgba(38, 143, 255, 0.5); +} + +.btn-primary.disabled, .btn-primary:disabled { + color: #fff; + background-color: #007bff; + border-color: #007bff; +} + +.btn-primary:not(:disabled):not(.disabled):active, .btn-primary:not(:disabled):not(.disabled).active, +.show > .btn-primary.dropdown-toggle { + color: #fff; + background-color: #0062cc; + border-color: #005cbf; +} + +.btn-primary:not(:disabled):not(.disabled):active:focus, .btn-primary:not(:disabled):not(.disabled).active:focus, +.show > .btn-primary.dropdown-toggle:focus { + box-shadow: 0 0 0 0.2rem rgba(38, 143, 255, 0.5); +} + +.btn-secondary { + color: #fff; + background-color: #6c757d; + border-color: #6c757d; +} + +.btn-secondary:hover { + color: #fff; + background-color: #5a6268; + border-color: #545b62; +} + +.btn-secondary:focus, .btn-secondary.focus { + color: #fff; + background-color: #5a6268; + border-color: #545b62; + box-shadow: 0 0 0 0.2rem rgba(130, 138, 145, 0.5); +} + +.btn-secondary.disabled, .btn-secondary:disabled { + color: #fff; + background-color: #6c757d; + border-color: #6c757d; +} + +.btn-secondary:not(:disabled):not(.disabled):active, .btn-secondary:not(:disabled):not(.disabled).active, +.show > .btn-secondary.dropdown-toggle { + color: #fff; + background-color: #545b62; + border-color: #4e555b; +} + +.btn-secondary:not(:disabled):not(.disabled):active:focus, .btn-secondary:not(:disabled):not(.disabled).active:focus, +.show > .btn-secondary.dropdown-toggle:focus { + box-shadow: 0 0 0 0.2rem rgba(130, 138, 145, 0.5); +} + +.btn-success { + color: #fff; + background-color: #28a745; + border-color: #28a745; +} + +.btn-success:hover { + color: #fff; + background-color: #218838; + border-color: #1e7e34; +} + +.btn-success:focus, .btn-success.focus { + color: #fff; + background-color: #218838; + border-color: #1e7e34; + box-shadow: 0 0 0 0.2rem rgba(72, 180, 97, 0.5); +} + +.btn-success.disabled, .btn-success:disabled { + color: #fff; + background-color: #28a745; + border-color: #28a745; +} + +.btn-success:not(:disabled):not(.disabled):active, .btn-success:not(:disabled):not(.disabled).active, +.show > .btn-success.dropdown-toggle { + color: #fff; + background-color: #1e7e34; + border-color: #1c7430; +} + +.btn-success:not(:disabled):not(.disabled):active:focus, .btn-success:not(:disabled):not(.disabled).active:focus, +.show > .btn-success.dropdown-toggle:focus { + box-shadow: 0 0 0 0.2rem rgba(72, 180, 97, 0.5); +} + +.btn-info { + color: #fff; + background-color: #17a2b8; + border-color: #17a2b8; +} + +.btn-info:hover { + color: #fff; + background-color: #138496; + border-color: #117a8b; +} + +.btn-info:focus, .btn-info.focus { + color: #fff; + background-color: #138496; + border-color: #117a8b; + box-shadow: 0 0 0 0.2rem rgba(58, 176, 195, 0.5); +} + +.btn-info.disabled, .btn-info:disabled { + color: #fff; + background-color: #17a2b8; + border-color: #17a2b8; +} + +.btn-info:not(:disabled):not(.disabled):active, .btn-info:not(:disabled):not(.disabled).active, +.show > .btn-info.dropdown-toggle { + color: #fff; + background-color: #117a8b; + border-color: #10707f; +} + +.btn-info:not(:disabled):not(.disabled):active:focus, .btn-info:not(:disabled):not(.disabled).active:focus, +.show > .btn-info.dropdown-toggle:focus { + box-shadow: 0 0 0 0.2rem rgba(58, 176, 195, 0.5); +} + +.btn-warning { + color: #212529; + background-color: #ffc107; + border-color: #ffc107; +} + +.btn-warning:hover { + color: #212529; + background-color: #e0a800; + border-color: #d39e00; +} + +.btn-warning:focus, .btn-warning.focus { + color: #212529; + background-color: #e0a800; + border-color: #d39e00; + box-shadow: 0 0 0 0.2rem rgba(222, 170, 12, 0.5); +} + +.btn-warning.disabled, .btn-warning:disabled { + color: #212529; + background-color: #ffc107; + border-color: #ffc107; +} + +.btn-warning:not(:disabled):not(.disabled):active, .btn-warning:not(:disabled):not(.disabled).active, +.show > .btn-warning.dropdown-toggle { + color: #212529; + background-color: #d39e00; + border-color: #c69500; +} + +.btn-warning:not(:disabled):not(.disabled):active:focus, .btn-warning:not(:disabled):not(.disabled).active:focus, +.show > .btn-warning.dropdown-toggle:focus { + box-shadow: 0 0 0 0.2rem rgba(222, 170, 12, 0.5); +} + +.btn-danger { + color: #fff; + background-color: #dc3545; + border-color: #dc3545; +} + +.btn-danger:hover { + color: #fff; + background-color: #c82333; + border-color: #bd2130; +} + +.btn-danger:focus, .btn-danger.focus { + color: #fff; + background-color: #c82333; + border-color: #bd2130; + box-shadow: 0 0 0 0.2rem rgba(225, 83, 97, 0.5); +} + +.btn-danger.disabled, .btn-danger:disabled { + color: #fff; + background-color: #dc3545; + border-color: #dc3545; +} + +.btn-danger:not(:disabled):not(.disabled):active, .btn-danger:not(:disabled):not(.disabled).active, +.show > .btn-danger.dropdown-toggle { + color: #fff; + background-color: #bd2130; + border-color: #b21f2d; +} + +.btn-danger:not(:disabled):not(.disabled):active:focus, .btn-danger:not(:disabled):not(.disabled).active:focus, +.show > .btn-danger.dropdown-toggle:focus { + box-shadow: 0 0 0 0.2rem rgba(225, 83, 97, 0.5); +} + +.btn-light { + color: #212529; + background-color: #f8f9fa; + border-color: #f8f9fa; +} + +.btn-light:hover { + color: #212529; + background-color: #e2e6ea; + border-color: #dae0e5; +} + +.btn-light:focus, .btn-light.focus { + color: #212529; + background-color: #e2e6ea; + border-color: #dae0e5; + box-shadow: 0 0 0 0.2rem rgba(216, 217, 219, 0.5); +} + +.btn-light.disabled, .btn-light:disabled { + color: #212529; + background-color: #f8f9fa; + border-color: #f8f9fa; +} + +.btn-light:not(:disabled):not(.disabled):active, .btn-light:not(:disabled):not(.disabled).active, +.show > .btn-light.dropdown-toggle { + color: #212529; + background-color: #dae0e5; + border-color: #d3d9df; +} + +.btn-light:not(:disabled):not(.disabled):active:focus, .btn-light:not(:disabled):not(.disabled).active:focus, +.show > .btn-light.dropdown-toggle:focus { + box-shadow: 0 0 0 0.2rem rgba(216, 217, 219, 0.5); +} + +.btn-dark { + color: #fff; + background-color: #343a40; + border-color: #343a40; +} + +.btn-dark:hover { + color: #fff; + background-color: #23272b; + border-color: #1d2124; +} + +.btn-dark:focus, .btn-dark.focus { + color: #fff; + background-color: #23272b; + border-color: #1d2124; + box-shadow: 0 0 0 0.2rem rgba(82, 88, 93, 0.5); +} + +.btn-dark.disabled, .btn-dark:disabled { + color: #fff; + background-color: #343a40; + border-color: #343a40; +} + +.btn-dark:not(:disabled):not(.disabled):active, .btn-dark:not(:disabled):not(.disabled).active, +.show > .btn-dark.dropdown-toggle { + color: #fff; + background-color: #1d2124; + border-color: #171a1d; +} + +.btn-dark:not(:disabled):not(.disabled):active:focus, .btn-dark:not(:disabled):not(.disabled).active:focus, +.show > .btn-dark.dropdown-toggle:focus { + box-shadow: 0 0 0 0.2rem rgba(82, 88, 93, 0.5); +} + +.btn-outline-primary { + color: #007bff; + border-color: #007bff; +} + +.btn-outline-primary:hover { + color: #fff; + background-color: #007bff; + border-color: #007bff; +} + +.btn-outline-primary:focus, .btn-outline-primary.focus { + box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.5); +} + +.btn-outline-primary.disabled, .btn-outline-primary:disabled { + color: #007bff; + background-color: transparent; +} + +.btn-outline-primary:not(:disabled):not(.disabled):active, .btn-outline-primary:not(:disabled):not(.disabled).active, +.show > .btn-outline-primary.dropdown-toggle { + color: #fff; + background-color: #007bff; + border-color: #007bff; +} + +.btn-outline-primary:not(:disabled):not(.disabled):active:focus, .btn-outline-primary:not(:disabled):not(.disabled).active:focus, +.show > .btn-outline-primary.dropdown-toggle:focus { + box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.5); +} + +.btn-outline-secondary { + color: #6c757d; + border-color: #6c757d; +} + +.btn-outline-secondary:hover { + color: #fff; + background-color: #6c757d; + border-color: #6c757d; +} + +.btn-outline-secondary:focus, .btn-outline-secondary.focus { + box-shadow: 0 0 0 0.2rem rgba(108, 117, 125, 0.5); +} + +.btn-outline-secondary.disabled, .btn-outline-secondary:disabled { + color: #6c757d; + background-color: transparent; +} + +.btn-outline-secondary:not(:disabled):not(.disabled):active, .btn-outline-secondary:not(:disabled):not(.disabled).active, +.show > .btn-outline-secondary.dropdown-toggle { + color: #fff; + background-color: #6c757d; + border-color: #6c757d; +} + +.btn-outline-secondary:not(:disabled):not(.disabled):active:focus, .btn-outline-secondary:not(:disabled):not(.disabled).active:focus, +.show > .btn-outline-secondary.dropdown-toggle:focus { + box-shadow: 0 0 0 0.2rem rgba(108, 117, 125, 0.5); +} + +.btn-outline-success { + color: #28a745; + border-color: #28a745; +} + +.btn-outline-success:hover { + color: #fff; + background-color: #28a745; + border-color: #28a745; +} + +.btn-outline-success:focus, .btn-outline-success.focus { + box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.5); +} + +.btn-outline-success.disabled, .btn-outline-success:disabled { + color: #28a745; + background-color: transparent; +} + +.btn-outline-success:not(:disabled):not(.disabled):active, .btn-outline-success:not(:disabled):not(.disabled).active, +.show > .btn-outline-success.dropdown-toggle { + color: #fff; + background-color: #28a745; + border-color: #28a745; +} + +.btn-outline-success:not(:disabled):not(.disabled):active:focus, .btn-outline-success:not(:disabled):not(.disabled).active:focus, +.show > .btn-outline-success.dropdown-toggle:focus { + box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.5); +} + +.btn-outline-info { + color: #17a2b8; + border-color: #17a2b8; +} + +.btn-outline-info:hover { + color: #fff; + background-color: #17a2b8; + border-color: #17a2b8; +} + +.btn-outline-info:focus, .btn-outline-info.focus { + box-shadow: 0 0 0 0.2rem rgba(23, 162, 184, 0.5); +} + +.btn-outline-info.disabled, .btn-outline-info:disabled { + color: #17a2b8; + background-color: transparent; +} + +.btn-outline-info:not(:disabled):not(.disabled):active, .btn-outline-info:not(:disabled):not(.disabled).active, +.show > .btn-outline-info.dropdown-toggle { + color: #fff; + background-color: #17a2b8; + border-color: #17a2b8; +} + +.btn-outline-info:not(:disabled):not(.disabled):active:focus, .btn-outline-info:not(:disabled):not(.disabled).active:focus, +.show > .btn-outline-info.dropdown-toggle:focus { + box-shadow: 0 0 0 0.2rem rgba(23, 162, 184, 0.5); +} + +.btn-outline-warning { + color: #ffc107; + border-color: #ffc107; +} + +.btn-outline-warning:hover { + color: #212529; + background-color: #ffc107; + border-color: #ffc107; +} + +.btn-outline-warning:focus, .btn-outline-warning.focus { + box-shadow: 0 0 0 0.2rem rgba(255, 193, 7, 0.5); +} + +.btn-outline-warning.disabled, .btn-outline-warning:disabled { + color: #ffc107; + background-color: transparent; +} + +.btn-outline-warning:not(:disabled):not(.disabled):active, .btn-outline-warning:not(:disabled):not(.disabled).active, +.show > .btn-outline-warning.dropdown-toggle { + color: #212529; + background-color: #ffc107; + border-color: #ffc107; +} + +.btn-outline-warning:not(:disabled):not(.disabled):active:focus, .btn-outline-warning:not(:disabled):not(.disabled).active:focus, +.show > .btn-outline-warning.dropdown-toggle:focus { + box-shadow: 0 0 0 0.2rem rgba(255, 193, 7, 0.5); +} + +.btn-outline-danger { + color: #dc3545; + border-color: #dc3545; +} + +.btn-outline-danger:hover { + color: #fff; + background-color: #dc3545; + border-color: #dc3545; +} + +.btn-outline-danger:focus, .btn-outline-danger.focus { + box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.5); +} + +.btn-outline-danger.disabled, .btn-outline-danger:disabled { + color: #dc3545; + background-color: transparent; +} + +.btn-outline-danger:not(:disabled):not(.disabled):active, .btn-outline-danger:not(:disabled):not(.disabled).active, +.show > .btn-outline-danger.dropdown-toggle { + color: #fff; + background-color: #dc3545; + border-color: #dc3545; +} + +.btn-outline-danger:not(:disabled):not(.disabled):active:focus, .btn-outline-danger:not(:disabled):not(.disabled).active:focus, +.show > .btn-outline-danger.dropdown-toggle:focus { + box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.5); +} + +.btn-outline-light { + color: #f8f9fa; + border-color: #f8f9fa; +} + +.btn-outline-light:hover { + color: #212529; + background-color: #f8f9fa; + border-color: #f8f9fa; +} + +.btn-outline-light:focus, .btn-outline-light.focus { + box-shadow: 0 0 0 0.2rem rgba(248, 249, 250, 0.5); +} + +.btn-outline-light.disabled, .btn-outline-light:disabled { + color: #f8f9fa; + background-color: transparent; +} + +.btn-outline-light:not(:disabled):not(.disabled):active, .btn-outline-light:not(:disabled):not(.disabled).active, +.show > .btn-outline-light.dropdown-toggle { + color: #212529; + background-color: #f8f9fa; + border-color: #f8f9fa; +} + +.btn-outline-light:not(:disabled):not(.disabled):active:focus, .btn-outline-light:not(:disabled):not(.disabled).active:focus, +.show > .btn-outline-light.dropdown-toggle:focus { + box-shadow: 0 0 0 0.2rem rgba(248, 249, 250, 0.5); +} + +.btn-outline-dark { + color: #343a40; + border-color: #343a40; +} + +.btn-outline-dark:hover { + color: #fff; + background-color: #343a40; + border-color: #343a40; +} + +.btn-outline-dark:focus, .btn-outline-dark.focus { + box-shadow: 0 0 0 0.2rem rgba(52, 58, 64, 0.5); +} + +.btn-outline-dark.disabled, .btn-outline-dark:disabled { + color: #343a40; + background-color: transparent; +} + +.btn-outline-dark:not(:disabled):not(.disabled):active, .btn-outline-dark:not(:disabled):not(.disabled).active, +.show > .btn-outline-dark.dropdown-toggle { + color: #fff; + background-color: #343a40; + border-color: #343a40; +} + +.btn-outline-dark:not(:disabled):not(.disabled):active:focus, .btn-outline-dark:not(:disabled):not(.disabled).active:focus, +.show > .btn-outline-dark.dropdown-toggle:focus { + box-shadow: 0 0 0 0.2rem rgba(52, 58, 64, 0.5); +} + +.btn-link { + font-weight: 400; + color: #007bff; + text-decoration: none; +} + +.btn-link:hover { + color: #0056b3; + text-decoration: underline; +} + +.btn-link:focus, .btn-link.focus { + text-decoration: underline; +} + +.btn-link:disabled, .btn-link.disabled { + color: #6c757d; + pointer-events: none; +} + +.btn-lg, .btn-group-lg > .btn { + padding: 0.5rem 1rem; + font-size: 1.25rem; + line-height: 1.5; + border-radius: 0.3rem; +} + +.btn-sm, .btn-group-sm > .btn { + padding: 0.25rem 0.5rem; + font-size: 0.875rem; + line-height: 1.5; + border-radius: 0.2rem; +} + +.btn-block { + display: block; + width: 100%; +} + +.btn-block + .btn-block { + margin-top: 0.5rem; +} + +input[type="submit"].btn-block, +input[type="reset"].btn-block, +input[type="button"].btn-block { + width: 100%; +} + +.fade { + transition: opacity 0.15s linear; +} + +@media (prefers-reduced-motion: reduce) { + .fade { + transition: none; + } +} + +.fade:not(.show) { + opacity: 0; +} + +.collapse:not(.show) { + display: none; +} + +.collapsing { + position: relative; + height: 0; + overflow: hidden; + transition: height 0.35s ease; +} + +@media (prefers-reduced-motion: reduce) { + .collapsing { + transition: none; + } +} + +.dropup, +.dropright, +.dropdown, +.dropleft { + position: relative; +} + +.dropdown-toggle { + white-space: nowrap; +} + +.dropdown-toggle::after { + display: inline-block; + margin-left: 0.255em; + vertical-align: 0.255em; + content: ""; + border-top: 0.3em solid; + border-right: 0.3em solid transparent; + border-bottom: 0; + border-left: 0.3em solid transparent; +} + +.dropdown-toggle:empty::after { + margin-left: 0; +} + +.dropdown-menu { + position: absolute; + top: 100%; + left: 0; + z-index: 1000; + display: none; + float: left; + min-width: 10rem; + padding: 0.5rem 0; + margin: 0.125rem 0 0; + font-size: 1rem; + color: #212529; + text-align: left; + list-style: none; + background-color: #fff; + background-clip: padding-box; + border: 1px solid rgba(0, 0, 0, 0.15); + border-radius: 0.25rem; +} + +.dropdown-menu-left { + right: auto; + left: 0; +} + +.dropdown-menu-right { + right: 0; + left: auto; +} + +@media (min-width: 576px) { + .dropdown-menu-sm-left { + right: auto; + left: 0; + } + .dropdown-menu-sm-right { + right: 0; + left: auto; + } +} + +@media (min-width: 768px) { + .dropdown-menu-md-left { + right: auto; + left: 0; + } + .dropdown-menu-md-right { + right: 0; + left: auto; + } +} + +@media (min-width: 992px) { + .dropdown-menu-lg-left { + right: auto; + left: 0; + } + .dropdown-menu-lg-right { + right: 0; + left: auto; + } +} + +@media (min-width: 1200px) { + .dropdown-menu-xl-left { + right: auto; + left: 0; + } + .dropdown-menu-xl-right { + right: 0; + left: auto; + } +} + +.dropup .dropdown-menu { + top: auto; + bottom: 100%; + margin-top: 0; + margin-bottom: 0.125rem; +} + +.dropup .dropdown-toggle::after { + display: inline-block; + margin-left: 0.255em; + vertical-align: 0.255em; + content: ""; + border-top: 0; + border-right: 0.3em solid transparent; + border-bottom: 0.3em solid; + border-left: 0.3em solid transparent; +} + +.dropup .dropdown-toggle:empty::after { + margin-left: 0; +} + +.dropright .dropdown-menu { + top: 0; + right: auto; + left: 100%; + margin-top: 0; + margin-left: 0.125rem; +} + +.dropright .dropdown-toggle::after { + display: inline-block; + margin-left: 0.255em; + vertical-align: 0.255em; + content: ""; + border-top: 0.3em solid transparent; + border-right: 0; + border-bottom: 0.3em solid transparent; + border-left: 0.3em solid; +} + +.dropright .dropdown-toggle:empty::after { + margin-left: 0; +} + +.dropright .dropdown-toggle::after { + vertical-align: 0; +} + +.dropleft .dropdown-menu { + top: 0; + right: 100%; + left: auto; + margin-top: 0; + margin-right: 0.125rem; +} + +.dropleft .dropdown-toggle::after { + display: inline-block; + margin-left: 0.255em; + vertical-align: 0.255em; + content: ""; +} + +.dropleft .dropdown-toggle::after { + display: none; +} + +.dropleft .dropdown-toggle::before { + display: inline-block; + margin-right: 0.255em; + vertical-align: 0.255em; + content: ""; + border-top: 0.3em solid transparent; + border-right: 0.3em solid; + border-bottom: 0.3em solid transparent; +} + +.dropleft .dropdown-toggle:empty::after { + margin-left: 0; +} + +.dropleft .dropdown-toggle::before { + vertical-align: 0; +} + +.dropdown-menu[x-placement^="top"], .dropdown-menu[x-placement^="right"], .dropdown-menu[x-placement^="bottom"], .dropdown-menu[x-placement^="left"] { + right: auto; + bottom: auto; +} + +.dropdown-divider { + height: 0; + margin: 0.5rem 0; + overflow: hidden; + border-top: 1px solid #e9ecef; +} + +.dropdown-item { + display: block; + width: 100%; + padding: 0.25rem 1.5rem; + clear: both; + font-weight: 400; + color: #212529; + text-align: inherit; + white-space: nowrap; + background-color: transparent; + border: 0; +} + +.dropdown-item:hover, .dropdown-item:focus { + color: #16181b; + text-decoration: none; + background-color: #f8f9fa; +} + +.dropdown-item.active, .dropdown-item:active { + color: #fff; + text-decoration: none; + background-color: #007bff; +} + +.dropdown-item.disabled, .dropdown-item:disabled { + color: #6c757d; + pointer-events: none; + background-color: transparent; +} + +.dropdown-menu.show { + display: block; +} + +.dropdown-header { + display: block; + padding: 0.5rem 1.5rem; + margin-bottom: 0; + font-size: 0.875rem; + color: #6c757d; + white-space: nowrap; +} + +.dropdown-item-text { + display: block; + padding: 0.25rem 1.5rem; + color: #212529; +} + +.btn-group, +.btn-group-vertical { + position: relative; + display: -ms-inline-flexbox; + display: inline-flex; + vertical-align: middle; +} + +.btn-group > .btn, +.btn-group-vertical > .btn { + position: relative; + -ms-flex: 1 1 auto; + flex: 1 1 auto; +} + +.btn-group > .btn:hover, +.btn-group-vertical > .btn:hover { + z-index: 1; +} + +.btn-group > .btn:focus, .btn-group > .btn:active, .btn-group > .btn.active, +.btn-group-vertical > .btn:focus, +.btn-group-vertical > .btn:active, +.btn-group-vertical > .btn.active { + z-index: 1; +} + +.btn-toolbar { + display: -ms-flexbox; + display: flex; + -ms-flex-wrap: wrap; + flex-wrap: wrap; + -ms-flex-pack: start; + justify-content: flex-start; +} + +.btn-toolbar .input-group { + width: auto; +} + +.btn-group > .btn:not(:first-child), +.btn-group > .btn-group:not(:first-child) { + margin-left: -1px; +} + +.btn-group > .btn:not(:last-child):not(.dropdown-toggle), +.btn-group > .btn-group:not(:last-child) > .btn { + border-top-right-radius: 0; + border-bottom-right-radius: 0; +} + +.btn-group > .btn:not(:first-child), +.btn-group > .btn-group:not(:first-child) > .btn { + border-top-left-radius: 0; + border-bottom-left-radius: 0; +} + +.dropdown-toggle-split { + padding-right: 0.5625rem; + padding-left: 0.5625rem; +} + +.dropdown-toggle-split::after, +.dropup .dropdown-toggle-split::after, +.dropright .dropdown-toggle-split::after { + margin-left: 0; +} + +.dropleft .dropdown-toggle-split::before { + margin-right: 0; +} + +.btn-sm + .dropdown-toggle-split, .btn-group-sm > .btn + .dropdown-toggle-split { + padding-right: 0.375rem; + padding-left: 0.375rem; +} + +.btn-lg + .dropdown-toggle-split, .btn-group-lg > .btn + .dropdown-toggle-split { + padding-right: 0.75rem; + padding-left: 0.75rem; +} + +.btn-group-vertical { + -ms-flex-direction: column; + flex-direction: column; + -ms-flex-align: start; + align-items: flex-start; + -ms-flex-pack: center; + justify-content: center; +} + +.btn-group-vertical > .btn, +.btn-group-vertical > .btn-group { + width: 100%; +} + +.btn-group-vertical > .btn:not(:first-child), +.btn-group-vertical > .btn-group:not(:first-child) { + margin-top: -1px; +} + +.btn-group-vertical > .btn:not(:last-child):not(.dropdown-toggle), +.btn-group-vertical > .btn-group:not(:last-child) > .btn { + border-bottom-right-radius: 0; + border-bottom-left-radius: 0; +} + +.btn-group-vertical > .btn:not(:first-child), +.btn-group-vertical > .btn-group:not(:first-child) > .btn { + border-top-left-radius: 0; + border-top-right-radius: 0; +} + +.btn-group-toggle > .btn, +.btn-group-toggle > .btn-group > .btn { + margin-bottom: 0; +} + +.btn-group-toggle > .btn input[type="radio"], +.btn-group-toggle > .btn input[type="checkbox"], +.btn-group-toggle > .btn-group > .btn input[type="radio"], +.btn-group-toggle > .btn-group > .btn input[type="checkbox"] { + position: absolute; + clip: rect(0, 0, 0, 0); + pointer-events: none; +} + +.input-group { + position: relative; + display: -ms-flexbox; + display: flex; + -ms-flex-wrap: wrap; + flex-wrap: wrap; + -ms-flex-align: stretch; + align-items: stretch; + width: 100%; +} + +.input-group > .form-control, +.input-group > .form-control-plaintext, +.input-group > .custom-select, +.input-group > .custom-file { + position: relative; + -ms-flex: 1 1 auto; + flex: 1 1 auto; + width: 1%; + min-width: 0; + margin-bottom: 0; +} + +.input-group > .form-control + .form-control, +.input-group > .form-control + .custom-select, +.input-group > .form-control + .custom-file, +.input-group > .form-control-plaintext + .form-control, +.input-group > .form-control-plaintext + .custom-select, +.input-group > .form-control-plaintext + .custom-file, +.input-group > .custom-select + .form-control, +.input-group > .custom-select + .custom-select, +.input-group > .custom-select + .custom-file, +.input-group > .custom-file + .form-control, +.input-group > .custom-file + .custom-select, +.input-group > .custom-file + .custom-file { + margin-left: -1px; +} + +.input-group > .form-control:focus, +.input-group > .custom-select:focus, +.input-group > .custom-file .custom-file-input:focus ~ .custom-file-label { + z-index: 3; +} + +.input-group > .custom-file .custom-file-input:focus { + z-index: 4; +} + +.input-group > .form-control:not(:last-child), +.input-group > .custom-select:not(:last-child) { + border-top-right-radius: 0; + border-bottom-right-radius: 0; +} + +.input-group > .form-control:not(:first-child), +.input-group > .custom-select:not(:first-child) { + border-top-left-radius: 0; + border-bottom-left-radius: 0; +} + +.input-group > .custom-file { + display: -ms-flexbox; + display: flex; + -ms-flex-align: center; + align-items: center; +} + +.input-group > .custom-file:not(:last-child) .custom-file-label, +.input-group > .custom-file:not(:last-child) .custom-file-label::after { + border-top-right-radius: 0; + border-bottom-right-radius: 0; +} + +.input-group > .custom-file:not(:first-child) .custom-file-label { + border-top-left-radius: 0; + border-bottom-left-radius: 0; +} + +.input-group-prepend, +.input-group-append { + display: -ms-flexbox; + display: flex; +} + +.input-group-prepend .btn, +.input-group-append .btn { + position: relative; + z-index: 2; +} + +.input-group-prepend .btn:focus, +.input-group-append .btn:focus { + z-index: 3; +} + +.input-group-prepend .btn + .btn, +.input-group-prepend .btn + .input-group-text, +.input-group-prepend .input-group-text + .input-group-text, +.input-group-prepend .input-group-text + .btn, +.input-group-append .btn + .btn, +.input-group-append .btn + .input-group-text, +.input-group-append .input-group-text + .input-group-text, +.input-group-append .input-group-text + .btn { + margin-left: -1px; +} + +.input-group-prepend { + margin-right: -1px; +} + +.input-group-append { + margin-left: -1px; +} + +.input-group-text { + display: -ms-flexbox; + display: flex; + -ms-flex-align: center; + align-items: center; + padding: 0.375rem 0.75rem; + margin-bottom: 0; + font-size: 1rem; + font-weight: 400; + line-height: 1.5; + color: #495057; + text-align: center; + white-space: nowrap; + background-color: #e9ecef; + border: 1px solid #ced4da; + border-radius: 0.25rem; +} + +.input-group-text input[type="radio"], +.input-group-text input[type="checkbox"] { + margin-top: 0; +} + +.input-group-lg > .form-control:not(textarea), +.input-group-lg > .custom-select { + height: calc(1.5em + 1rem + 2px); +} + +.input-group-lg > .form-control, +.input-group-lg > .custom-select, +.input-group-lg > .input-group-prepend > .input-group-text, +.input-group-lg > .input-group-append > .input-group-text, +.input-group-lg > .input-group-prepend > .btn, +.input-group-lg > .input-group-append > .btn { + padding: 0.5rem 1rem; + font-size: 1.25rem; + line-height: 1.5; + border-radius: 0.3rem; +} + +.input-group-sm > .form-control:not(textarea), +.input-group-sm > .custom-select { + height: calc(1.5em + 0.5rem + 2px); +} + +.input-group-sm > .form-control, +.input-group-sm > .custom-select, +.input-group-sm > .input-group-prepend > .input-group-text, +.input-group-sm > .input-group-append > .input-group-text, +.input-group-sm > .input-group-prepend > .btn, +.input-group-sm > .input-group-append > .btn { + padding: 0.25rem 0.5rem; + font-size: 0.875rem; + line-height: 1.5; + border-radius: 0.2rem; +} + +.input-group-lg > .custom-select, +.input-group-sm > .custom-select { + padding-right: 1.75rem; +} + +.input-group > .input-group-prepend > .btn, +.input-group > .input-group-prepend > .input-group-text, +.input-group > .input-group-append:not(:last-child) > .btn, +.input-group > .input-group-append:not(:last-child) > .input-group-text, +.input-group > .input-group-append:last-child > .btn:not(:last-child):not(.dropdown-toggle), +.input-group > .input-group-append:last-child > .input-group-text:not(:last-child) { + border-top-right-radius: 0; + border-bottom-right-radius: 0; +} + +.input-group > .input-group-append > .btn, +.input-group > .input-group-append > .input-group-text, +.input-group > .input-group-prepend:not(:first-child) > .btn, +.input-group > .input-group-prepend:not(:first-child) > .input-group-text, +.input-group > .input-group-prepend:first-child > .btn:not(:first-child), +.input-group > .input-group-prepend:first-child > .input-group-text:not(:first-child) { + border-top-left-radius: 0; + border-bottom-left-radius: 0; +} + +.custom-control { + position: relative; + z-index: 1; + display: block; + min-height: 1.5rem; + padding-left: 1.5rem; + -webkit-print-color-adjust: exact; + color-adjust: exact; +} + +.custom-control-inline { + display: -ms-inline-flexbox; + display: inline-flex; + margin-right: 1rem; +} + +.custom-control-input { + position: absolute; + left: 0; + z-index: -1; + width: 1rem; + height: 1.25rem; + opacity: 0; +} + +.custom-control-input:checked ~ .custom-control-label::before { + color: #fff; + border-color: #007bff; + background-color: #007bff; +} + +.custom-control-input:focus ~ .custom-control-label::before { + box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.25); +} + +.custom-control-input:focus:not(:checked) ~ .custom-control-label::before { + border-color: #80bdff; +} + +.custom-control-input:not(:disabled):active ~ .custom-control-label::before { + color: #fff; + background-color: #b3d7ff; + border-color: #b3d7ff; +} + +.custom-control-input[disabled] ~ .custom-control-label, .custom-control-input:disabled ~ .custom-control-label { + color: #6c757d; +} + +.custom-control-input[disabled] ~ .custom-control-label::before, .custom-control-input:disabled ~ .custom-control-label::before { + background-color: #e9ecef; +} + +.custom-control-label { + position: relative; + margin-bottom: 0; + vertical-align: top; +} + +.custom-control-label::before { + position: absolute; + top: 0.25rem; + left: -1.5rem; + display: block; + width: 1rem; + height: 1rem; + pointer-events: none; + content: ""; + background-color: #fff; + border: #adb5bd solid 1px; +} + +.custom-control-label::after { + position: absolute; + top: 0.25rem; + left: -1.5rem; + display: block; + width: 1rem; + height: 1rem; + content: ""; + background: no-repeat 50% / 50% 50%; +} + +.custom-checkbox .custom-control-label::before { + border-radius: 0.25rem; +} + +.custom-checkbox .custom-control-input:checked ~ .custom-control-label::after { + background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='8' height='8' viewBox='0 0 8 8'%3e%3cpath fill='%23fff' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26l2.974 2.99L8 2.193z'/%3e%3c/svg%3e"); +} + +.custom-checkbox .custom-control-input:indeterminate ~ .custom-control-label::before { + border-color: #007bff; + background-color: #007bff; +} + +.custom-checkbox .custom-control-input:indeterminate ~ .custom-control-label::after { + background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='4' height='4' viewBox='0 0 4 4'%3e%3cpath stroke='%23fff' d='M0 2h4'/%3e%3c/svg%3e"); +} + +.custom-checkbox .custom-control-input:disabled:checked ~ .custom-control-label::before { + background-color: rgba(0, 123, 255, 0.5); +} + +.custom-checkbox .custom-control-input:disabled:indeterminate ~ .custom-control-label::before { + background-color: rgba(0, 123, 255, 0.5); +} + +.custom-radio .custom-control-label::before { + border-radius: 50%; +} + +.custom-radio .custom-control-input:checked ~ .custom-control-label::after { + background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='%23fff'/%3e%3c/svg%3e"); +} + +.custom-radio .custom-control-input:disabled:checked ~ .custom-control-label::before { + background-color: rgba(0, 123, 255, 0.5); +} + +.custom-switch { + padding-left: 2.25rem; +} + +.custom-switch .custom-control-label::before { + left: -2.25rem; + width: 1.75rem; + pointer-events: all; + border-radius: 0.5rem; +} + +.custom-switch .custom-control-label::after { + top: calc(0.25rem + 2px); + left: calc(-2.25rem + 2px); + width: calc(1rem - 4px); + height: calc(1rem - 4px); + background-color: #adb5bd; + border-radius: 0.5rem; + transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out, -webkit-transform 0.15s ease-in-out; + transition: transform 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out; + transition: transform 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out, -webkit-transform 0.15s ease-in-out; +} + +@media (prefers-reduced-motion: reduce) { + .custom-switch .custom-control-label::after { + transition: none; + } +} + +.custom-switch .custom-control-input:checked ~ .custom-control-label::after { + background-color: #fff; + -webkit-transform: translateX(0.75rem); + transform: translateX(0.75rem); +} + +.custom-switch .custom-control-input:disabled:checked ~ .custom-control-label::before { + background-color: rgba(0, 123, 255, 0.5); +} + +.custom-select { + display: inline-block; + width: 100%; + height: calc(1.5em + 0.75rem + 2px); + padding: 0.375rem 1.75rem 0.375rem 0.75rem; + font-size: 1rem; + font-weight: 400; + line-height: 1.5; + color: #495057; + vertical-align: middle; + background: #fff url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='4' height='5' viewBox='0 0 4 5'%3e%3cpath fill='%23343a40' d='M2 0L0 2h4zm0 5L0 3h4z'/%3e%3c/svg%3e") no-repeat right 0.75rem center/8px 10px; + border: 1px solid #ced4da; + border-radius: 0.25rem; + -webkit-appearance: none; + -moz-appearance: none; + appearance: none; +} + +.custom-select:focus { + border-color: #80bdff; + outline: 0; + box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.25); +} + +.custom-select:focus::-ms-value { + color: #495057; + background-color: #fff; +} + +.custom-select[multiple], .custom-select[size]:not([size="1"]) { + height: auto; + padding-right: 0.75rem; + background-image: none; +} + +.custom-select:disabled { + color: #6c757d; + background-color: #e9ecef; +} + +.custom-select::-ms-expand { + display: none; +} + +.custom-select:-moz-focusring { + color: transparent; + text-shadow: 0 0 0 #495057; +} + +.custom-select-sm { + height: calc(1.5em + 0.5rem + 2px); + padding-top: 0.25rem; + padding-bottom: 0.25rem; + padding-left: 0.5rem; + font-size: 0.875rem; +} + +.custom-select-lg { + height: calc(1.5em + 1rem + 2px); + padding-top: 0.5rem; + padding-bottom: 0.5rem; + padding-left: 1rem; + font-size: 1.25rem; +} + +.custom-file { + position: relative; + display: inline-block; + width: 100%; + height: calc(1.5em + 0.75rem + 2px); + margin-bottom: 0; +} + +.custom-file-input { + position: relative; + z-index: 2; + width: 100%; + height: calc(1.5em + 0.75rem + 2px); + margin: 0; + opacity: 0; +} + +.custom-file-input:focus ~ .custom-file-label { + border-color: #80bdff; + box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.25); +} + +.custom-file-input[disabled] ~ .custom-file-label, +.custom-file-input:disabled ~ .custom-file-label { + background-color: #e9ecef; +} + +.custom-file-input:lang(en) ~ .custom-file-label::after { + content: "Browse"; +} + +.custom-file-input ~ .custom-file-label[data-browse]::after { + content: attr(data-browse); +} + +.custom-file-label { + position: absolute; + top: 0; + right: 0; + left: 0; + z-index: 1; + height: calc(1.5em + 0.75rem + 2px); + padding: 0.375rem 0.75rem; + font-weight: 400; + line-height: 1.5; + color: #495057; + background-color: #fff; + border: 1px solid #ced4da; + border-radius: 0.25rem; +} + +.custom-file-label::after { + position: absolute; + top: 0; + right: 0; + bottom: 0; + z-index: 3; + display: block; + height: calc(1.5em + 0.75rem); + padding: 0.375rem 0.75rem; + line-height: 1.5; + color: #495057; + content: "Browse"; + background-color: #e9ecef; + border-left: inherit; + border-radius: 0 0.25rem 0.25rem 0; +} + +.custom-range { + width: 100%; + height: 1.4rem; + padding: 0; + background-color: transparent; + -webkit-appearance: none; + -moz-appearance: none; + appearance: none; +} + +.custom-range:focus { + outline: none; +} + +.custom-range:focus::-webkit-slider-thumb { + box-shadow: 0 0 0 1px #fff, 0 0 0 0.2rem rgba(0, 123, 255, 0.25); +} + +.custom-range:focus::-moz-range-thumb { + box-shadow: 0 0 0 1px #fff, 0 0 0 0.2rem rgba(0, 123, 255, 0.25); +} + +.custom-range:focus::-ms-thumb { + box-shadow: 0 0 0 1px #fff, 0 0 0 0.2rem rgba(0, 123, 255, 0.25); +} + +.custom-range::-moz-focus-outer { + border: 0; +} + +.custom-range::-webkit-slider-thumb { + width: 1rem; + height: 1rem; + margin-top: -0.25rem; + background-color: #007bff; + border: 0; + border-radius: 1rem; + -webkit-transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out; + transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out; + -webkit-appearance: none; + appearance: none; +} + +@media (prefers-reduced-motion: reduce) { + .custom-range::-webkit-slider-thumb { + -webkit-transition: none; + transition: none; + } +} + +.custom-range::-webkit-slider-thumb:active { + background-color: #b3d7ff; +} + +.custom-range::-webkit-slider-runnable-track { + width: 100%; + height: 0.5rem; + color: transparent; + cursor: pointer; + background-color: #dee2e6; + border-color: transparent; + border-radius: 1rem; +} + +.custom-range::-moz-range-thumb { + width: 1rem; + height: 1rem; + background-color: #007bff; + border: 0; + border-radius: 1rem; + -moz-transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out; + transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out; + -moz-appearance: none; + appearance: none; +} + +@media (prefers-reduced-motion: reduce) { + .custom-range::-moz-range-thumb { + -moz-transition: none; + transition: none; + } +} + +.custom-range::-moz-range-thumb:active { + background-color: #b3d7ff; +} + +.custom-range::-moz-range-track { + width: 100%; + height: 0.5rem; + color: transparent; + cursor: pointer; + background-color: #dee2e6; + border-color: transparent; + border-radius: 1rem; +} + +.custom-range::-ms-thumb { + width: 1rem; + height: 1rem; + margin-top: 0; + margin-right: 0.2rem; + margin-left: 0.2rem; + background-color: #007bff; + border: 0; + border-radius: 1rem; + -ms-transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out; + transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out; + appearance: none; +} + +@media (prefers-reduced-motion: reduce) { + .custom-range::-ms-thumb { + -ms-transition: none; + transition: none; + } +} + +.custom-range::-ms-thumb:active { + background-color: #b3d7ff; +} + +.custom-range::-ms-track { + width: 100%; + height: 0.5rem; + color: transparent; + cursor: pointer; + background-color: transparent; + border-color: transparent; + border-width: 0.5rem; +} + +.custom-range::-ms-fill-lower { + background-color: #dee2e6; + border-radius: 1rem; +} + +.custom-range::-ms-fill-upper { + margin-right: 15px; + background-color: #dee2e6; + border-radius: 1rem; +} + +.custom-range:disabled::-webkit-slider-thumb { + background-color: #adb5bd; +} + +.custom-range:disabled::-webkit-slider-runnable-track { + cursor: default; +} + +.custom-range:disabled::-moz-range-thumb { + background-color: #adb5bd; +} + +.custom-range:disabled::-moz-range-track { + cursor: default; +} + +.custom-range:disabled::-ms-thumb { + background-color: #adb5bd; +} + +.custom-control-label::before, +.custom-file-label, +.custom-select { + transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out; +} + +@media (prefers-reduced-motion: reduce) { + .custom-control-label::before, + .custom-file-label, + .custom-select { + transition: none; + } +} + +.nav { + display: -ms-flexbox; + display: flex; + -ms-flex-wrap: wrap; + flex-wrap: wrap; + padding-left: 0; + margin-bottom: 0; + list-style: none; +} + +.nav-link { + display: block; + padding: 0.5rem 1rem; +} + +.nav-link:hover, .nav-link:focus { + text-decoration: none; +} + +.nav-link.disabled { + color: #6c757d; + pointer-events: none; + cursor: default; +} + +.nav-tabs { + border-bottom: 1px solid #dee2e6; +} + +.nav-tabs .nav-item { + margin-bottom: -1px; +} + +.nav-tabs .nav-link { + border: 1px solid transparent; + border-top-left-radius: 0.25rem; + border-top-right-radius: 0.25rem; +} + +.nav-tabs .nav-link:hover, .nav-tabs .nav-link:focus { + border-color: #e9ecef #e9ecef #dee2e6; +} + +.nav-tabs .nav-link.disabled { + color: #6c757d; + background-color: transparent; + border-color: transparent; +} + +.nav-tabs .nav-link.active, +.nav-tabs .nav-item.show .nav-link { + color: #495057; + background-color: #fff; + border-color: #dee2e6 #dee2e6 #fff; +} + +.nav-tabs .dropdown-menu { + margin-top: -1px; + border-top-left-radius: 0; + border-top-right-radius: 0; +} + +.nav-pills .nav-link { + border-radius: 0.25rem; +} + +.nav-pills .nav-link.active, +.nav-pills .show > .nav-link { + color: #fff; + background-color: #007bff; +} + +.nav-fill > .nav-link, +.nav-fill .nav-item { + -ms-flex: 1 1 auto; + flex: 1 1 auto; + text-align: center; +} + +.nav-justified > .nav-link, +.nav-justified .nav-item { + -ms-flex-preferred-size: 0; + flex-basis: 0; + -ms-flex-positive: 1; + flex-grow: 1; + text-align: center; +} + +.tab-content > .tab-pane { + display: none; +} + +.tab-content > .active { + display: block; +} + +.navbar { + position: relative; + display: -ms-flexbox; + display: flex; + -ms-flex-wrap: wrap; + flex-wrap: wrap; + -ms-flex-align: center; + align-items: center; + -ms-flex-pack: justify; + justify-content: space-between; + padding: 0.5rem 1rem; +} + +.navbar .container, +.navbar .container-fluid, .navbar .container-sm, .navbar .container-md, .navbar .container-lg, .navbar .container-xl { + display: -ms-flexbox; + display: flex; + -ms-flex-wrap: wrap; + flex-wrap: wrap; + -ms-flex-align: center; + align-items: center; + -ms-flex-pack: justify; + justify-content: space-between; +} + +.navbar-brand { + display: inline-block; + padding-top: 0.3125rem; + padding-bottom: 0.3125rem; + margin-right: 1rem; + font-size: 1.25rem; + line-height: inherit; + white-space: nowrap; +} + +.navbar-brand:hover, .navbar-brand:focus { + text-decoration: none; +} + +.navbar-nav { + display: -ms-flexbox; + display: flex; + -ms-flex-direction: column; + flex-direction: column; + padding-left: 0; + margin-bottom: 0; + list-style: none; +} + +.navbar-nav .nav-link { + padding-right: 0; + padding-left: 0; +} + +.navbar-nav .dropdown-menu { + position: static; + float: none; +} + +.navbar-text { + display: inline-block; + padding-top: 0.5rem; + padding-bottom: 0.5rem; +} + +.navbar-collapse { + -ms-flex-preferred-size: 100%; + flex-basis: 100%; + -ms-flex-positive: 1; + flex-grow: 1; + -ms-flex-align: center; + align-items: center; +} + +.navbar-toggler { + padding: 0.25rem 0.75rem; + font-size: 1.25rem; + line-height: 1; + background-color: transparent; + border: 1px solid transparent; + border-radius: 0.25rem; +} + +.navbar-toggler:hover, .navbar-toggler:focus { + text-decoration: none; +} + +.navbar-toggler-icon { + display: inline-block; + width: 1.5em; + height: 1.5em; + vertical-align: middle; + content: ""; + background: no-repeat center center; + background-size: 100% 100%; +} + +@media (max-width: 575.98px) { + .navbar-expand-sm > .container, + .navbar-expand-sm > .container-fluid, .navbar-expand-sm > .container-sm, .navbar-expand-sm > .container-md, .navbar-expand-sm > .container-lg, .navbar-expand-sm > .container-xl { + padding-right: 0; + padding-left: 0; + } +} + +@media (min-width: 576px) { + .navbar-expand-sm { + -ms-flex-flow: row nowrap; + flex-flow: row nowrap; + -ms-flex-pack: start; + justify-content: flex-start; + } + .navbar-expand-sm .navbar-nav { + -ms-flex-direction: row; + flex-direction: row; + } + .navbar-expand-sm .navbar-nav .dropdown-menu { + position: absolute; + } + .navbar-expand-sm .navbar-nav .nav-link { + padding-right: 0.5rem; + padding-left: 0.5rem; + } + .navbar-expand-sm > .container, + .navbar-expand-sm > .container-fluid, .navbar-expand-sm > .container-sm, .navbar-expand-sm > .container-md, .navbar-expand-sm > .container-lg, .navbar-expand-sm > .container-xl { + -ms-flex-wrap: nowrap; + flex-wrap: nowrap; + } + .navbar-expand-sm .navbar-collapse { + display: -ms-flexbox !important; + display: flex !important; + -ms-flex-preferred-size: auto; + flex-basis: auto; + } + .navbar-expand-sm .navbar-toggler { + display: none; + } +} + +@media (max-width: 767.98px) { + .navbar-expand-md > .container, + .navbar-expand-md > .container-fluid, .navbar-expand-md > .container-sm, .navbar-expand-md > .container-md, .navbar-expand-md > .container-lg, .navbar-expand-md > .container-xl { + padding-right: 0; + padding-left: 0; + } +} + +@media (min-width: 768px) { + .navbar-expand-md { + -ms-flex-flow: row nowrap; + flex-flow: row nowrap; + -ms-flex-pack: start; + justify-content: flex-start; + } + .navbar-expand-md .navbar-nav { + -ms-flex-direction: row; + flex-direction: row; + } + .navbar-expand-md .navbar-nav .dropdown-menu { + position: absolute; + } + .navbar-expand-md .navbar-nav .nav-link { + padding-right: 0.5rem; + padding-left: 0.5rem; + } + .navbar-expand-md > .container, + .navbar-expand-md > .container-fluid, .navbar-expand-md > .container-sm, .navbar-expand-md > .container-md, .navbar-expand-md > .container-lg, .navbar-expand-md > .container-xl { + -ms-flex-wrap: nowrap; + flex-wrap: nowrap; + } + .navbar-expand-md .navbar-collapse { + display: -ms-flexbox !important; + display: flex !important; + -ms-flex-preferred-size: auto; + flex-basis: auto; + } + .navbar-expand-md .navbar-toggler { + display: none; + } +} + +@media (max-width: 991.98px) { + .navbar-expand-lg > .container, + .navbar-expand-lg > .container-fluid, .navbar-expand-lg > .container-sm, .navbar-expand-lg > .container-md, .navbar-expand-lg > .container-lg, .navbar-expand-lg > .container-xl { + padding-right: 0; + padding-left: 0; + } +} + +@media (min-width: 992px) { + .navbar-expand-lg { + -ms-flex-flow: row nowrap; + flex-flow: row nowrap; + -ms-flex-pack: start; + justify-content: flex-start; + } + .navbar-expand-lg .navbar-nav { + -ms-flex-direction: row; + flex-direction: row; + } + .navbar-expand-lg .navbar-nav .dropdown-menu { + position: absolute; + } + .navbar-expand-lg .navbar-nav .nav-link { + padding-right: 0.5rem; + padding-left: 0.5rem; + } + .navbar-expand-lg > .container, + .navbar-expand-lg > .container-fluid, .navbar-expand-lg > .container-sm, .navbar-expand-lg > .container-md, .navbar-expand-lg > .container-lg, .navbar-expand-lg > .container-xl { + -ms-flex-wrap: nowrap; + flex-wrap: nowrap; + } + .navbar-expand-lg .navbar-collapse { + display: -ms-flexbox !important; + display: flex !important; + -ms-flex-preferred-size: auto; + flex-basis: auto; + } + .navbar-expand-lg .navbar-toggler { + display: none; + } +} + +@media (max-width: 1199.98px) { + .navbar-expand-xl > .container, + .navbar-expand-xl > .container-fluid, .navbar-expand-xl > .container-sm, .navbar-expand-xl > .container-md, .navbar-expand-xl > .container-lg, .navbar-expand-xl > .container-xl { + padding-right: 0; + padding-left: 0; + } +} + +@media (min-width: 1200px) { + .navbar-expand-xl { + -ms-flex-flow: row nowrap; + flex-flow: row nowrap; + -ms-flex-pack: start; + justify-content: flex-start; + } + .navbar-expand-xl .navbar-nav { + -ms-flex-direction: row; + flex-direction: row; + } + .navbar-expand-xl .navbar-nav .dropdown-menu { + position: absolute; + } + .navbar-expand-xl .navbar-nav .nav-link { + padding-right: 0.5rem; + padding-left: 0.5rem; + } + .navbar-expand-xl > .container, + .navbar-expand-xl > .container-fluid, .navbar-expand-xl > .container-sm, .navbar-expand-xl > .container-md, .navbar-expand-xl > .container-lg, .navbar-expand-xl > .container-xl { + -ms-flex-wrap: nowrap; + flex-wrap: nowrap; + } + .navbar-expand-xl .navbar-collapse { + display: -ms-flexbox !important; + display: flex !important; + -ms-flex-preferred-size: auto; + flex-basis: auto; + } + .navbar-expand-xl .navbar-toggler { + display: none; + } +} + +.navbar-expand { + -ms-flex-flow: row nowrap; + flex-flow: row nowrap; + -ms-flex-pack: start; + justify-content: flex-start; +} + +.navbar-expand > .container, +.navbar-expand > .container-fluid, .navbar-expand > .container-sm, .navbar-expand > .container-md, .navbar-expand > .container-lg, .navbar-expand > .container-xl { + padding-right: 0; + padding-left: 0; +} + +.navbar-expand .navbar-nav { + -ms-flex-direction: row; + flex-direction: row; +} + +.navbar-expand .navbar-nav .dropdown-menu { + position: absolute; +} + +.navbar-expand .navbar-nav .nav-link { + padding-right: 0.5rem; + padding-left: 0.5rem; +} + +.navbar-expand > .container, +.navbar-expand > .container-fluid, .navbar-expand > .container-sm, .navbar-expand > .container-md, .navbar-expand > .container-lg, .navbar-expand > .container-xl { + -ms-flex-wrap: nowrap; + flex-wrap: nowrap; +} + +.navbar-expand .navbar-collapse { + display: -ms-flexbox !important; + display: flex !important; + -ms-flex-preferred-size: auto; + flex-basis: auto; +} + +.navbar-expand .navbar-toggler { + display: none; +} + +.navbar-light .navbar-brand { + color: rgba(0, 0, 0, 0.9); +} + +.navbar-light .navbar-brand:hover, .navbar-light .navbar-brand:focus { + color: rgba(0, 0, 0, 0.9); +} + +.navbar-light .navbar-nav .nav-link { + color: rgba(0, 0, 0, 0.5); +} + +.navbar-light .navbar-nav .nav-link:hover, .navbar-light .navbar-nav .nav-link:focus { + color: rgba(0, 0, 0, 0.7); +} + +.navbar-light .navbar-nav .nav-link.disabled { + color: rgba(0, 0, 0, 0.3); +} + +.navbar-light .navbar-nav .show > .nav-link, +.navbar-light .navbar-nav .active > .nav-link, +.navbar-light .navbar-nav .nav-link.show, +.navbar-light .navbar-nav .nav-link.active { + color: rgba(0, 0, 0, 0.9); +} + +.navbar-light .navbar-toggler { + color: rgba(0, 0, 0, 0.5); + border-color: rgba(0, 0, 0, 0.1); +} + +.navbar-light .navbar-toggler-icon { + background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='30' height='30' viewBox='0 0 30 30'%3e%3cpath stroke='rgba%280, 0, 0, 0.5%29' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e"); +} + +.navbar-light .navbar-text { + color: rgba(0, 0, 0, 0.5); +} + +.navbar-light .navbar-text a { + color: rgba(0, 0, 0, 0.9); +} + +.navbar-light .navbar-text a:hover, .navbar-light .navbar-text a:focus { + color: rgba(0, 0, 0, 0.9); +} + +.navbar-dark .navbar-brand { + color: #fff; +} + +.navbar-dark .navbar-brand:hover, .navbar-dark .navbar-brand:focus { + color: #fff; +} + +.navbar-dark .navbar-nav .nav-link { + color: rgba(255, 255, 255, 0.5); +} + +.navbar-dark .navbar-nav .nav-link:hover, .navbar-dark .navbar-nav .nav-link:focus { + color: rgba(255, 255, 255, 0.75); +} + +.navbar-dark .navbar-nav .nav-link.disabled { + color: rgba(255, 255, 255, 0.25); +} + +.navbar-dark .navbar-nav .show > .nav-link, +.navbar-dark .navbar-nav .active > .nav-link, +.navbar-dark .navbar-nav .nav-link.show, +.navbar-dark .navbar-nav .nav-link.active { + color: #fff; +} + +.navbar-dark .navbar-toggler { + color: rgba(255, 255, 255, 0.5); + border-color: rgba(255, 255, 255, 0.1); +} + +.navbar-dark .navbar-toggler-icon { + background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='30' height='30' viewBox='0 0 30 30'%3e%3cpath stroke='rgba%28255, 255, 255, 0.5%29' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e"); +} + +.navbar-dark .navbar-text { + color: rgba(255, 255, 255, 0.5); +} + +.navbar-dark .navbar-text a { + color: #fff; +} + +.navbar-dark .navbar-text a:hover, .navbar-dark .navbar-text a:focus { + color: #fff; +} + +.card { + position: relative; + display: -ms-flexbox; + display: flex; + -ms-flex-direction: column; + flex-direction: column; + min-width: 0; + word-wrap: break-word; + background-color: #fff; + background-clip: border-box; + border: 1px solid rgba(0, 0, 0, 0.125); + border-radius: 0.25rem; +} + +.card > hr { + margin-right: 0; + margin-left: 0; +} + +.card > .list-group { + border-top: inherit; + border-bottom: inherit; +} + +.card > .list-group:first-child { + border-top-width: 0; + border-top-left-radius: calc(0.25rem - 1px); + border-top-right-radius: calc(0.25rem - 1px); +} + +.card > .list-group:last-child { + border-bottom-width: 0; + border-bottom-right-radius: calc(0.25rem - 1px); + border-bottom-left-radius: calc(0.25rem - 1px); +} + +.card > .card-header + .list-group, +.card > .list-group + .card-footer { + border-top: 0; +} + +.card-body { + -ms-flex: 1 1 auto; + flex: 1 1 auto; + min-height: 1px; + padding: 1.25rem; +} + +.card-title { + margin-bottom: 0.75rem; +} + +.card-subtitle { + margin-top: -0.375rem; + margin-bottom: 0; +} + +.card-text:last-child { + margin-bottom: 0; +} + +.card-link:hover { + text-decoration: none; +} + +.card-link + .card-link { + margin-left: 1.25rem; +} + +.card-header { + padding: 0.75rem 1.25rem; + margin-bottom: 0; + background-color: rgba(0, 0, 0, 0.03); + border-bottom: 1px solid rgba(0, 0, 0, 0.125); +} + +.card-header:first-child { + border-radius: calc(0.25rem - 1px) calc(0.25rem - 1px) 0 0; +} + +.card-footer { + padding: 0.75rem 1.25rem; + background-color: rgba(0, 0, 0, 0.03); + border-top: 1px solid rgba(0, 0, 0, 0.125); +} + +.card-footer:last-child { + border-radius: 0 0 calc(0.25rem - 1px) calc(0.25rem - 1px); +} + +.card-header-tabs { + margin-right: -0.625rem; + margin-bottom: -0.75rem; + margin-left: -0.625rem; + border-bottom: 0; +} + +.card-header-pills { + margin-right: -0.625rem; + margin-left: -0.625rem; +} + +.card-img-overlay { + position: absolute; + top: 0; + right: 0; + bottom: 0; + left: 0; + padding: 1.25rem; + border-radius: calc(0.25rem - 1px); +} + +.card-img, +.card-img-top, +.card-img-bottom { + -ms-flex-negative: 0; + flex-shrink: 0; + width: 100%; +} + +.card-img, +.card-img-top { + border-top-left-radius: calc(0.25rem - 1px); + border-top-right-radius: calc(0.25rem - 1px); +} + +.card-img, +.card-img-bottom { + border-bottom-right-radius: calc(0.25rem - 1px); + border-bottom-left-radius: calc(0.25rem - 1px); +} + +.card-deck .card { + margin-bottom: 15px; +} + +@media (min-width: 576px) { + .card-deck { + display: -ms-flexbox; + display: flex; + -ms-flex-flow: row wrap; + flex-flow: row wrap; + margin-right: -15px; + margin-left: -15px; + } + .card-deck .card { + -ms-flex: 1 0 0%; + flex: 1 0 0%; + margin-right: 15px; + margin-bottom: 0; + margin-left: 15px; + } +} + +.card-group > .card { + margin-bottom: 15px; +} + +@media (min-width: 576px) { + .card-group { + display: -ms-flexbox; + display: flex; + -ms-flex-flow: row wrap; + flex-flow: row wrap; + } + .card-group > .card { + -ms-flex: 1 0 0%; + flex: 1 0 0%; + margin-bottom: 0; + } + .card-group > .card + .card { + margin-left: 0; + border-left: 0; + } + .card-group > .card:not(:last-child) { + border-top-right-radius: 0; + border-bottom-right-radius: 0; + } + .card-group > .card:not(:last-child) .card-img-top, + .card-group > .card:not(:last-child) .card-header { + border-top-right-radius: 0; + } + .card-group > .card:not(:last-child) .card-img-bottom, + .card-group > .card:not(:last-child) .card-footer { + border-bottom-right-radius: 0; + } + .card-group > .card:not(:first-child) { + border-top-left-radius: 0; + border-bottom-left-radius: 0; + } + .card-group > .card:not(:first-child) .card-img-top, + .card-group > .card:not(:first-child) .card-header { + border-top-left-radius: 0; + } + .card-group > .card:not(:first-child) .card-img-bottom, + .card-group > .card:not(:first-child) .card-footer { + border-bottom-left-radius: 0; + } +} + +.card-columns .card { + margin-bottom: 0.75rem; +} + +@media (min-width: 576px) { + .card-columns { + -webkit-column-count: 3; + -moz-column-count: 3; + column-count: 3; + -webkit-column-gap: 1.25rem; + -moz-column-gap: 1.25rem; + column-gap: 1.25rem; + orphans: 1; + widows: 1; + } + .card-columns .card { + display: inline-block; + width: 100%; + } +} + +.accordion { + overflow-anchor: none; +} + +.accordion > .card { + overflow: hidden; +} + +.accordion > .card:not(:last-of-type) { + border-bottom: 0; + border-bottom-right-radius: 0; + border-bottom-left-radius: 0; +} + +.accordion > .card:not(:first-of-type) { + border-top-left-radius: 0; + border-top-right-radius: 0; +} + +.accordion > .card > .card-header { + border-radius: 0; + margin-bottom: -1px; +} + +.breadcrumb { + display: -ms-flexbox; + display: flex; + -ms-flex-wrap: wrap; + flex-wrap: wrap; + padding: 0.75rem 1rem; + margin-bottom: 1rem; + list-style: none; + background-color: #e9ecef; + border-radius: 0.25rem; +} + +.breadcrumb-item { + display: -ms-flexbox; + display: flex; +} + +.breadcrumb-item + .breadcrumb-item { + padding-left: 0.5rem; +} + +.breadcrumb-item + .breadcrumb-item::before { + display: inline-block; + padding-right: 0.5rem; + color: #6c757d; + content: "/"; +} + +.breadcrumb-item + .breadcrumb-item:hover::before { + text-decoration: underline; +} + +.breadcrumb-item + .breadcrumb-item:hover::before { + text-decoration: none; +} + +.breadcrumb-item.active { + color: #6c757d; +} + +.pagination { + display: -ms-flexbox; + display: flex; + padding-left: 0; + list-style: none; + border-radius: 0.25rem; +} + +.page-link { + position: relative; + display: block; + padding: 0.5rem 0.75rem; + margin-left: -1px; + line-height: 1.25; + color: #007bff; + background-color: #fff; + border: 1px solid #dee2e6; +} + +.page-link:hover { + z-index: 2; + color: #0056b3; + text-decoration: none; + background-color: #e9ecef; + border-color: #dee2e6; +} + +.page-link:focus { + z-index: 3; + outline: 0; + box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.25); +} + +.page-item:first-child .page-link { + margin-left: 0; + border-top-left-radius: 0.25rem; + border-bottom-left-radius: 0.25rem; +} + +.page-item:last-child .page-link { + border-top-right-radius: 0.25rem; + border-bottom-right-radius: 0.25rem; +} + +.page-item.active .page-link { + z-index: 3; + color: #fff; + background-color: #007bff; + border-color: #007bff; +} + +.page-item.disabled .page-link { + color: #6c757d; + pointer-events: none; + cursor: auto; + background-color: #fff; + border-color: #dee2e6; +} + +.pagination-lg .page-link { + padding: 0.75rem 1.5rem; + font-size: 1.25rem; + line-height: 1.5; +} + +.pagination-lg .page-item:first-child .page-link { + border-top-left-radius: 0.3rem; + border-bottom-left-radius: 0.3rem; +} + +.pagination-lg .page-item:last-child .page-link { + border-top-right-radius: 0.3rem; + border-bottom-right-radius: 0.3rem; +} + +.pagination-sm .page-link { + padding: 0.25rem 0.5rem; + font-size: 0.875rem; + line-height: 1.5; +} + +.pagination-sm .page-item:first-child .page-link { + border-top-left-radius: 0.2rem; + border-bottom-left-radius: 0.2rem; +} + +.pagination-sm .page-item:last-child .page-link { + border-top-right-radius: 0.2rem; + border-bottom-right-radius: 0.2rem; +} + +.badge { + display: inline-block; + padding: 0.25em 0.4em; + font-size: 75%; + font-weight: 700; + line-height: 1; + text-align: center; + white-space: nowrap; + vertical-align: baseline; + border-radius: 0.25rem; + transition: color 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out; +} + +@media (prefers-reduced-motion: reduce) { + .badge { + transition: none; + } +} + +a.badge:hover, a.badge:focus { + text-decoration: none; +} + +.badge:empty { + display: none; +} + +.btn .badge { + position: relative; + top: -1px; +} + +.badge-pill { + padding-right: 0.6em; + padding-left: 0.6em; + border-radius: 10rem; +} + +.badge-primary { + color: #fff; + background-color: #007bff; +} + +a.badge-primary:hover, a.badge-primary:focus { + color: #fff; + background-color: #0062cc; +} + +a.badge-primary:focus, a.badge-primary.focus { + outline: 0; + box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.5); +} + +.badge-secondary { + color: #fff; + background-color: #6c757d; +} + +a.badge-secondary:hover, a.badge-secondary:focus { + color: #fff; + background-color: #545b62; +} + +a.badge-secondary:focus, a.badge-secondary.focus { + outline: 0; + box-shadow: 0 0 0 0.2rem rgba(108, 117, 125, 0.5); +} + +.badge-success { + color: #fff; + background-color: #28a745; +} + +a.badge-success:hover, a.badge-success:focus { + color: #fff; + background-color: #1e7e34; +} + +a.badge-success:focus, a.badge-success.focus { + outline: 0; + box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.5); +} + +.badge-info { + color: #fff; + background-color: #17a2b8; +} + +a.badge-info:hover, a.badge-info:focus { + color: #fff; + background-color: #117a8b; +} + +a.badge-info:focus, a.badge-info.focus { + outline: 0; + box-shadow: 0 0 0 0.2rem rgba(23, 162, 184, 0.5); +} + +.badge-warning { + color: #212529; + background-color: #ffc107; +} + +a.badge-warning:hover, a.badge-warning:focus { + color: #212529; + background-color: #d39e00; +} + +a.badge-warning:focus, a.badge-warning.focus { + outline: 0; + box-shadow: 0 0 0 0.2rem rgba(255, 193, 7, 0.5); +} + +.badge-danger { + color: #fff; + background-color: #dc3545; +} + +a.badge-danger:hover, a.badge-danger:focus { + color: #fff; + background-color: #bd2130; +} + +a.badge-danger:focus, a.badge-danger.focus { + outline: 0; + box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.5); +} + +.badge-light { + color: #212529; + background-color: #f8f9fa; +} + +a.badge-light:hover, a.badge-light:focus { + color: #212529; + background-color: #dae0e5; +} + +a.badge-light:focus, a.badge-light.focus { + outline: 0; + box-shadow: 0 0 0 0.2rem rgba(248, 249, 250, 0.5); +} + +.badge-dark { + color: #fff; + background-color: #343a40; +} + +a.badge-dark:hover, a.badge-dark:focus { + color: #fff; + background-color: #1d2124; +} + +a.badge-dark:focus, a.badge-dark.focus { + outline: 0; + box-shadow: 0 0 0 0.2rem rgba(52, 58, 64, 0.5); +} + +.jumbotron { + padding: 2rem 1rem; + margin-bottom: 2rem; + background-color: #e9ecef; + border-radius: 0.3rem; +} + +@media (min-width: 576px) { + .jumbotron { + padding: 4rem 2rem; + } +} + +.jumbotron-fluid { + padding-right: 0; + padding-left: 0; + border-radius: 0; +} + +.alert { + position: relative; + padding: 0.75rem 1.25rem; + margin-bottom: 1rem; + border: 1px solid transparent; + border-radius: 0.25rem; +} + +.alert-heading { + color: inherit; +} + +.alert-link { + font-weight: 700; +} + +.alert-dismissible { + padding-right: 4rem; +} + +.alert-dismissible .close { + position: absolute; + top: 0; + right: 0; + z-index: 2; + padding: 0.75rem 1.25rem; + color: inherit; +} + +.alert-primary { + color: #004085; + background-color: #cce5ff; + border-color: #b8daff; +} + +.alert-primary hr { + border-top-color: #9fcdff; +} + +.alert-primary .alert-link { + color: #002752; +} + +.alert-secondary { + color: #383d41; + background-color: #e2e3e5; + border-color: #d6d8db; +} + +.alert-secondary hr { + border-top-color: #c8cbcf; +} + +.alert-secondary .alert-link { + color: #202326; +} + +.alert-success { + color: #155724; + background-color: #d4edda; + border-color: #c3e6cb; +} + +.alert-success hr { + border-top-color: #b1dfbb; +} + +.alert-success .alert-link { + color: #0b2e13; +} + +.alert-info { + color: #0c5460; + background-color: #d1ecf1; + border-color: #bee5eb; +} + +.alert-info hr { + border-top-color: #abdde5; +} + +.alert-info .alert-link { + color: #062c33; +} + +.alert-warning { + color: #856404; + background-color: #fff3cd; + border-color: #ffeeba; +} + +.alert-warning hr { + border-top-color: #ffe8a1; +} + +.alert-warning .alert-link { + color: #533f03; +} + +.alert-danger { + color: #721c24; + background-color: #f8d7da; + border-color: #f5c6cb; +} + +.alert-danger hr { + border-top-color: #f1b0b7; +} + +.alert-danger .alert-link { + color: #491217; +} + +.alert-light { + color: #818182; + background-color: #fefefe; + border-color: #fdfdfe; +} + +.alert-light hr { + border-top-color: #ececf6; +} + +.alert-light .alert-link { + color: #686868; +} + +.alert-dark { + color: #1b1e21; + background-color: #d6d8d9; + border-color: #c6c8ca; +} + +.alert-dark hr { + border-top-color: #b9bbbe; +} + +.alert-dark .alert-link { + color: #040505; +} + +@-webkit-keyframes progress-bar-stripes { + from { + background-position: 1rem 0; + } + to { + background-position: 0 0; + } +} + +@keyframes progress-bar-stripes { + from { + background-position: 1rem 0; + } + to { + background-position: 0 0; + } +} + +.progress { + display: -ms-flexbox; + display: flex; + height: 1rem; + overflow: hidden; + line-height: 0; + font-size: 0.75rem; + background-color: #e9ecef; + border-radius: 0.25rem; +} + +.progress-bar { + display: -ms-flexbox; + display: flex; + -ms-flex-direction: column; + flex-direction: column; + -ms-flex-pack: center; + justify-content: center; + overflow: hidden; + color: #fff; + text-align: center; + white-space: nowrap; + background-color: #007bff; + transition: width 0.6s ease; +} + +@media (prefers-reduced-motion: reduce) { + .progress-bar { + transition: none; + } +} + +.progress-bar-striped { + background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); + background-size: 1rem 1rem; +} + +.progress-bar-animated { + -webkit-animation: progress-bar-stripes 1s linear infinite; + animation: progress-bar-stripes 1s linear infinite; +} + +@media (prefers-reduced-motion: reduce) { + .progress-bar-animated { + -webkit-animation: none; + animation: none; + } +} + +.media { + display: -ms-flexbox; + display: flex; + -ms-flex-align: start; + align-items: flex-start; +} + +.media-body { + -ms-flex: 1; + flex: 1; +} + +.list-group { + display: -ms-flexbox; + display: flex; + -ms-flex-direction: column; + flex-direction: column; + padding-left: 0; + margin-bottom: 0; + border-radius: 0.25rem; +} + +.list-group-item-action { + width: 100%; + color: #495057; + text-align: inherit; +} + +.list-group-item-action:hover, .list-group-item-action:focus { + z-index: 1; + color: #495057; + text-decoration: none; + background-color: #f8f9fa; +} + +.list-group-item-action:active { + color: #212529; + background-color: #e9ecef; +} + +.list-group-item { + position: relative; + display: block; + padding: 0.75rem 1.25rem; + background-color: #fff; + border: 1px solid rgba(0, 0, 0, 0.125); +} + +.list-group-item:first-child { + border-top-left-radius: inherit; + border-top-right-radius: inherit; +} + +.list-group-item:last-child { + border-bottom-right-radius: inherit; + border-bottom-left-radius: inherit; +} + +.list-group-item.disabled, .list-group-item:disabled { + color: #6c757d; + pointer-events: none; + background-color: #fff; +} + +.list-group-item.active { + z-index: 2; + color: #fff; + background-color: #007bff; + border-color: #007bff; +} + +.list-group-item + .list-group-item { + border-top-width: 0; +} + +.list-group-item + .list-group-item.active { + margin-top: -1px; + border-top-width: 1px; +} + +.list-group-horizontal { + -ms-flex-direction: row; + flex-direction: row; +} + +.list-group-horizontal > .list-group-item:first-child { + border-bottom-left-radius: 0.25rem; + border-top-right-radius: 0; +} + +.list-group-horizontal > .list-group-item:last-child { + border-top-right-radius: 0.25rem; + border-bottom-left-radius: 0; +} + +.list-group-horizontal > .list-group-item.active { + margin-top: 0; +} + +.list-group-horizontal > .list-group-item + .list-group-item { + border-top-width: 1px; + border-left-width: 0; +} + +.list-group-horizontal > .list-group-item + .list-group-item.active { + margin-left: -1px; + border-left-width: 1px; +} + +@media (min-width: 576px) { + .list-group-horizontal-sm { + -ms-flex-direction: row; + flex-direction: row; + } + .list-group-horizontal-sm > .list-group-item:first-child { + border-bottom-left-radius: 0.25rem; + border-top-right-radius: 0; + } + .list-group-horizontal-sm > .list-group-item:last-child { + border-top-right-radius: 0.25rem; + border-bottom-left-radius: 0; + } + .list-group-horizontal-sm > .list-group-item.active { + margin-top: 0; + } + .list-group-horizontal-sm > .list-group-item + .list-group-item { + border-top-width: 1px; + border-left-width: 0; + } + .list-group-horizontal-sm > .list-group-item + .list-group-item.active { + margin-left: -1px; + border-left-width: 1px; + } +} + +@media (min-width: 768px) { + .list-group-horizontal-md { + -ms-flex-direction: row; + flex-direction: row; + } + .list-group-horizontal-md > .list-group-item:first-child { + border-bottom-left-radius: 0.25rem; + border-top-right-radius: 0; + } + .list-group-horizontal-md > .list-group-item:last-child { + border-top-right-radius: 0.25rem; + border-bottom-left-radius: 0; + } + .list-group-horizontal-md > .list-group-item.active { + margin-top: 0; + } + .list-group-horizontal-md > .list-group-item + .list-group-item { + border-top-width: 1px; + border-left-width: 0; + } + .list-group-horizontal-md > .list-group-item + .list-group-item.active { + margin-left: -1px; + border-left-width: 1px; + } +} + +@media (min-width: 992px) { + .list-group-horizontal-lg { + -ms-flex-direction: row; + flex-direction: row; + } + .list-group-horizontal-lg > .list-group-item:first-child { + border-bottom-left-radius: 0.25rem; + border-top-right-radius: 0; + } + .list-group-horizontal-lg > .list-group-item:last-child { + border-top-right-radius: 0.25rem; + border-bottom-left-radius: 0; + } + .list-group-horizontal-lg > .list-group-item.active { + margin-top: 0; + } + .list-group-horizontal-lg > .list-group-item + .list-group-item { + border-top-width: 1px; + border-left-width: 0; + } + .list-group-horizontal-lg > .list-group-item + .list-group-item.active { + margin-left: -1px; + border-left-width: 1px; + } +} + +@media (min-width: 1200px) { + .list-group-horizontal-xl { + -ms-flex-direction: row; + flex-direction: row; + } + .list-group-horizontal-xl > .list-group-item:first-child { + border-bottom-left-radius: 0.25rem; + border-top-right-radius: 0; + } + .list-group-horizontal-xl > .list-group-item:last-child { + border-top-right-radius: 0.25rem; + border-bottom-left-radius: 0; + } + .list-group-horizontal-xl > .list-group-item.active { + margin-top: 0; + } + .list-group-horizontal-xl > .list-group-item + .list-group-item { + border-top-width: 1px; + border-left-width: 0; + } + .list-group-horizontal-xl > .list-group-item + .list-group-item.active { + margin-left: -1px; + border-left-width: 1px; + } +} + +.list-group-flush { + border-radius: 0; +} + +.list-group-flush > .list-group-item { + border-width: 0 0 1px; +} + +.list-group-flush > .list-group-item:last-child { + border-bottom-width: 0; +} + +.list-group-item-primary { + color: #004085; + background-color: #b8daff; +} + +.list-group-item-primary.list-group-item-action:hover, .list-group-item-primary.list-group-item-action:focus { + color: #004085; + background-color: #9fcdff; +} + +.list-group-item-primary.list-group-item-action.active { + color: #fff; + background-color: #004085; + border-color: #004085; +} + +.list-group-item-secondary { + color: #383d41; + background-color: #d6d8db; +} + +.list-group-item-secondary.list-group-item-action:hover, .list-group-item-secondary.list-group-item-action:focus { + color: #383d41; + background-color: #c8cbcf; +} + +.list-group-item-secondary.list-group-item-action.active { + color: #fff; + background-color: #383d41; + border-color: #383d41; +} + +.list-group-item-success { + color: #155724; + background-color: #c3e6cb; +} + +.list-group-item-success.list-group-item-action:hover, .list-group-item-success.list-group-item-action:focus { + color: #155724; + background-color: #b1dfbb; +} + +.list-group-item-success.list-group-item-action.active { + color: #fff; + background-color: #155724; + border-color: #155724; +} + +.list-group-item-info { + color: #0c5460; + background-color: #bee5eb; +} + +.list-group-item-info.list-group-item-action:hover, .list-group-item-info.list-group-item-action:focus { + color: #0c5460; + background-color: #abdde5; +} + +.list-group-item-info.list-group-item-action.active { + color: #fff; + background-color: #0c5460; + border-color: #0c5460; +} + +.list-group-item-warning { + color: #856404; + background-color: #ffeeba; +} + +.list-group-item-warning.list-group-item-action:hover, .list-group-item-warning.list-group-item-action:focus { + color: #856404; + background-color: #ffe8a1; +} + +.list-group-item-warning.list-group-item-action.active { + color: #fff; + background-color: #856404; + border-color: #856404; +} + +.list-group-item-danger { + color: #721c24; + background-color: #f5c6cb; +} + +.list-group-item-danger.list-group-item-action:hover, .list-group-item-danger.list-group-item-action:focus { + color: #721c24; + background-color: #f1b0b7; +} + +.list-group-item-danger.list-group-item-action.active { + color: #fff; + background-color: #721c24; + border-color: #721c24; +} + +.list-group-item-light { + color: #818182; + background-color: #fdfdfe; +} + +.list-group-item-light.list-group-item-action:hover, .list-group-item-light.list-group-item-action:focus { + color: #818182; + background-color: #ececf6; +} + +.list-group-item-light.list-group-item-action.active { + color: #fff; + background-color: #818182; + border-color: #818182; +} + +.list-group-item-dark { + color: #1b1e21; + background-color: #c6c8ca; +} + +.list-group-item-dark.list-group-item-action:hover, .list-group-item-dark.list-group-item-action:focus { + color: #1b1e21; + background-color: #b9bbbe; +} + +.list-group-item-dark.list-group-item-action.active { + color: #fff; + background-color: #1b1e21; + border-color: #1b1e21; +} + +.close { + float: right; + font-size: 1.5rem; + font-weight: 700; + line-height: 1; + color: #000; + text-shadow: 0 1px 0 #fff; + opacity: .5; +} + +.close:hover { + color: #000; + text-decoration: none; +} + +.close:not(:disabled):not(.disabled):hover, .close:not(:disabled):not(.disabled):focus { + opacity: .75; +} + +button.close { + padding: 0; + background-color: transparent; + border: 0; +} + +a.close.disabled { + pointer-events: none; +} + +.toast { + -ms-flex-preferred-size: 350px; + flex-basis: 350px; + max-width: 350px; + font-size: 0.875rem; + background-color: rgba(255, 255, 255, 0.85); + background-clip: padding-box; + border: 1px solid rgba(0, 0, 0, 0.1); + box-shadow: 0 0.25rem 0.75rem rgba(0, 0, 0, 0.1); + opacity: 0; + border-radius: 0.25rem; +} + +.toast:not(:last-child) { + margin-bottom: 0.75rem; +} + +.toast.showing { + opacity: 1; +} + +.toast.show { + display: block; + opacity: 1; +} + +.toast.hide { + display: none; +} + +.toast-header { + display: -ms-flexbox; + display: flex; + -ms-flex-align: center; + align-items: center; + padding: 0.25rem 0.75rem; + color: #6c757d; + background-color: rgba(255, 255, 255, 0.85); + background-clip: padding-box; + border-bottom: 1px solid rgba(0, 0, 0, 0.05); + border-top-left-radius: calc(0.25rem - 1px); + border-top-right-radius: calc(0.25rem - 1px); +} + +.toast-body { + padding: 0.75rem; +} + +.modal-open { + overflow: hidden; +} + +.modal-open .modal { + overflow-x: hidden; + overflow-y: auto; +} + +.modal { + position: fixed; + top: 0; + left: 0; + z-index: 1050; + display: none; + width: 100%; + height: 100%; + overflow: hidden; + outline: 0; +} + +.modal-dialog { + position: relative; + width: auto; + margin: 0.5rem; + pointer-events: none; +} + +.modal.fade .modal-dialog { + transition: -webkit-transform 0.3s ease-out; + transition: transform 0.3s ease-out; + transition: transform 0.3s ease-out, -webkit-transform 0.3s ease-out; + -webkit-transform: translate(0, -50px); + transform: translate(0, -50px); +} + +@media (prefers-reduced-motion: reduce) { + .modal.fade .modal-dialog { + transition: none; + } +} + +.modal.show .modal-dialog { + -webkit-transform: none; + transform: none; +} + +.modal.modal-static .modal-dialog { + -webkit-transform: scale(1.02); + transform: scale(1.02); +} + +.modal-dialog-scrollable { + display: -ms-flexbox; + display: flex; + max-height: calc(100% - 1rem); +} + +.modal-dialog-scrollable .modal-content { + max-height: calc(100vh - 1rem); + overflow: hidden; +} + +.modal-dialog-scrollable .modal-header, +.modal-dialog-scrollable .modal-footer { + -ms-flex-negative: 0; + flex-shrink: 0; +} + +.modal-dialog-scrollable .modal-body { + overflow-y: auto; +} + +.modal-dialog-centered { + display: -ms-flexbox; + display: flex; + -ms-flex-align: center; + align-items: center; + min-height: calc(100% - 1rem); +} + +.modal-dialog-centered::before { + display: block; + height: calc(100vh - 1rem); + height: -webkit-min-content; + height: -moz-min-content; + height: min-content; + content: ""; +} + +.modal-dialog-centered.modal-dialog-scrollable { + -ms-flex-direction: column; + flex-direction: column; + -ms-flex-pack: center; + justify-content: center; + height: 100%; +} + +.modal-dialog-centered.modal-dialog-scrollable .modal-content { + max-height: none; +} + +.modal-dialog-centered.modal-dialog-scrollable::before { + content: none; +} + +.modal-content { + position: relative; + display: -ms-flexbox; + display: flex; + -ms-flex-direction: column; + flex-direction: column; + width: 100%; + pointer-events: auto; + background-color: #fff; + background-clip: padding-box; + border: 1px solid rgba(0, 0, 0, 0.2); + border-radius: 0.3rem; + outline: 0; +} + +.modal-backdrop { + position: fixed; + top: 0; + left: 0; + z-index: 1040; + width: 100vw; + height: 100vh; + background-color: #000; +} + +.modal-backdrop.fade { + opacity: 0; +} + +.modal-backdrop.show { + opacity: 0.5; +} + +.modal-header { + display: -ms-flexbox; + display: flex; + -ms-flex-align: start; + align-items: flex-start; + -ms-flex-pack: justify; + justify-content: space-between; + padding: 1rem 1rem; + border-bottom: 1px solid #dee2e6; + border-top-left-radius: calc(0.3rem - 1px); + border-top-right-radius: calc(0.3rem - 1px); +} + +.modal-header .close { + padding: 1rem 1rem; + margin: -1rem -1rem -1rem auto; +} + +.modal-title { + margin-bottom: 0; + line-height: 1.5; +} + +.modal-body { + position: relative; + -ms-flex: 1 1 auto; + flex: 1 1 auto; + padding: 1rem; +} + +.modal-footer { + display: -ms-flexbox; + display: flex; + -ms-flex-wrap: wrap; + flex-wrap: wrap; + -ms-flex-align: center; + align-items: center; + -ms-flex-pack: end; + justify-content: flex-end; + padding: 0.75rem; + border-top: 1px solid #dee2e6; + border-bottom-right-radius: calc(0.3rem - 1px); + border-bottom-left-radius: calc(0.3rem - 1px); +} + +.modal-footer > * { + margin: 0.25rem; +} + +.modal-scrollbar-measure { + position: absolute; + top: -9999px; + width: 50px; + height: 50px; + overflow: scroll; +} + +@media (min-width: 576px) { + .modal-dialog { + max-width: 500px; + margin: 1.75rem auto; + } + .modal-dialog-scrollable { + max-height: calc(100% - 3.5rem); + } + .modal-dialog-scrollable .modal-content { + max-height: calc(100vh - 3.5rem); + } + .modal-dialog-centered { + min-height: calc(100% - 3.5rem); + } + .modal-dialog-centered::before { + height: calc(100vh - 3.5rem); + height: -webkit-min-content; + height: -moz-min-content; + height: min-content; + } + .modal-sm { + max-width: 300px; + } +} + +@media (min-width: 992px) { + .modal-lg, + .modal-xl { + max-width: 800px; + } +} + +@media (min-width: 1200px) { + .modal-xl { + max-width: 1140px; + } +} + +.tooltip { + position: absolute; + z-index: 1070; + display: block; + margin: 0; + font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji"; + font-style: normal; + font-weight: 400; + line-height: 1.5; + text-align: left; + text-align: start; + text-decoration: none; + text-shadow: none; + text-transform: none; + letter-spacing: normal; + word-break: normal; + word-spacing: normal; + white-space: normal; + line-break: auto; + font-size: 0.875rem; + word-wrap: break-word; + opacity: 0; +} + +.tooltip.show { + opacity: 0.9; +} + +.tooltip .arrow { + position: absolute; + display: block; + width: 0.8rem; + height: 0.4rem; +} + +.tooltip .arrow::before { + position: absolute; + content: ""; + border-color: transparent; + border-style: solid; +} + +.bs-tooltip-top, .bs-tooltip-auto[x-placement^="top"] { + padding: 0.4rem 0; +} + +.bs-tooltip-top .arrow, .bs-tooltip-auto[x-placement^="top"] .arrow { + bottom: 0; +} + +.bs-tooltip-top .arrow::before, .bs-tooltip-auto[x-placement^="top"] .arrow::before { + top: 0; + border-width: 0.4rem 0.4rem 0; + border-top-color: #000; +} + +.bs-tooltip-right, .bs-tooltip-auto[x-placement^="right"] { + padding: 0 0.4rem; +} + +.bs-tooltip-right .arrow, .bs-tooltip-auto[x-placement^="right"] .arrow { + left: 0; + width: 0.4rem; + height: 0.8rem; +} + +.bs-tooltip-right .arrow::before, .bs-tooltip-auto[x-placement^="right"] .arrow::before { + right: 0; + border-width: 0.4rem 0.4rem 0.4rem 0; + border-right-color: #000; +} + +.bs-tooltip-bottom, .bs-tooltip-auto[x-placement^="bottom"] { + padding: 0.4rem 0; +} + +.bs-tooltip-bottom .arrow, .bs-tooltip-auto[x-placement^="bottom"] .arrow { + top: 0; +} + +.bs-tooltip-bottom .arrow::before, .bs-tooltip-auto[x-placement^="bottom"] .arrow::before { + bottom: 0; + border-width: 0 0.4rem 0.4rem; + border-bottom-color: #000; +} + +.bs-tooltip-left, .bs-tooltip-auto[x-placement^="left"] { + padding: 0 0.4rem; +} + +.bs-tooltip-left .arrow, .bs-tooltip-auto[x-placement^="left"] .arrow { + right: 0; + width: 0.4rem; + height: 0.8rem; +} + +.bs-tooltip-left .arrow::before, .bs-tooltip-auto[x-placement^="left"] .arrow::before { + left: 0; + border-width: 0.4rem 0 0.4rem 0.4rem; + border-left-color: #000; +} + +.tooltip-inner { + max-width: 200px; + padding: 0.25rem 0.5rem; + color: #fff; + text-align: center; + background-color: #000; + border-radius: 0.25rem; +} + +.popover { + position: absolute; + top: 0; + left: 0; + z-index: 1060; + display: block; + max-width: 276px; + font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji"; + font-style: normal; + font-weight: 400; + line-height: 1.5; + text-align: left; + text-align: start; + text-decoration: none; + text-shadow: none; + text-transform: none; + letter-spacing: normal; + word-break: normal; + word-spacing: normal; + white-space: normal; + line-break: auto; + font-size: 0.875rem; + word-wrap: break-word; + background-color: #fff; + background-clip: padding-box; + border: 1px solid rgba(0, 0, 0, 0.2); + border-radius: 0.3rem; +} + +.popover .arrow { + position: absolute; + display: block; + width: 1rem; + height: 0.5rem; + margin: 0 0.3rem; +} + +.popover .arrow::before, .popover .arrow::after { + position: absolute; + display: block; + content: ""; + border-color: transparent; + border-style: solid; +} + +.bs-popover-top, .bs-popover-auto[x-placement^="top"] { + margin-bottom: 0.5rem; +} + +.bs-popover-top > .arrow, .bs-popover-auto[x-placement^="top"] > .arrow { + bottom: calc(-0.5rem - 1px); +} + +.bs-popover-top > .arrow::before, .bs-popover-auto[x-placement^="top"] > .arrow::before { + bottom: 0; + border-width: 0.5rem 0.5rem 0; + border-top-color: rgba(0, 0, 0, 0.25); +} + +.bs-popover-top > .arrow::after, .bs-popover-auto[x-placement^="top"] > .arrow::after { + bottom: 1px; + border-width: 0.5rem 0.5rem 0; + border-top-color: #fff; +} + +.bs-popover-right, .bs-popover-auto[x-placement^="right"] { + margin-left: 0.5rem; +} + +.bs-popover-right > .arrow, .bs-popover-auto[x-placement^="right"] > .arrow { + left: calc(-0.5rem - 1px); + width: 0.5rem; + height: 1rem; + margin: 0.3rem 0; +} + +.bs-popover-right > .arrow::before, .bs-popover-auto[x-placement^="right"] > .arrow::before { + left: 0; + border-width: 0.5rem 0.5rem 0.5rem 0; + border-right-color: rgba(0, 0, 0, 0.25); +} + +.bs-popover-right > .arrow::after, .bs-popover-auto[x-placement^="right"] > .arrow::after { + left: 1px; + border-width: 0.5rem 0.5rem 0.5rem 0; + border-right-color: #fff; +} + +.bs-popover-bottom, .bs-popover-auto[x-placement^="bottom"] { + margin-top: 0.5rem; +} + +.bs-popover-bottom > .arrow, .bs-popover-auto[x-placement^="bottom"] > .arrow { + top: calc(-0.5rem - 1px); +} + +.bs-popover-bottom > .arrow::before, .bs-popover-auto[x-placement^="bottom"] > .arrow::before { + top: 0; + border-width: 0 0.5rem 0.5rem 0.5rem; + border-bottom-color: rgba(0, 0, 0, 0.25); +} + +.bs-popover-bottom > .arrow::after, .bs-popover-auto[x-placement^="bottom"] > .arrow::after { + top: 1px; + border-width: 0 0.5rem 0.5rem 0.5rem; + border-bottom-color: #fff; +} + +.bs-popover-bottom .popover-header::before, .bs-popover-auto[x-placement^="bottom"] .popover-header::before { + position: absolute; + top: 0; + left: 50%; + display: block; + width: 1rem; + margin-left: -0.5rem; + content: ""; + border-bottom: 1px solid #f7f7f7; +} + +.bs-popover-left, .bs-popover-auto[x-placement^="left"] { + margin-right: 0.5rem; +} + +.bs-popover-left > .arrow, .bs-popover-auto[x-placement^="left"] > .arrow { + right: calc(-0.5rem - 1px); + width: 0.5rem; + height: 1rem; + margin: 0.3rem 0; +} + +.bs-popover-left > .arrow::before, .bs-popover-auto[x-placement^="left"] > .arrow::before { + right: 0; + border-width: 0.5rem 0 0.5rem 0.5rem; + border-left-color: rgba(0, 0, 0, 0.25); +} + +.bs-popover-left > .arrow::after, .bs-popover-auto[x-placement^="left"] > .arrow::after { + right: 1px; + border-width: 0.5rem 0 0.5rem 0.5rem; + border-left-color: #fff; +} + +.popover-header { + padding: 0.5rem 0.75rem; + margin-bottom: 0; + font-size: 1rem; + background-color: #f7f7f7; + border-bottom: 1px solid #ebebeb; + border-top-left-radius: calc(0.3rem - 1px); + border-top-right-radius: calc(0.3rem - 1px); +} + +.popover-header:empty { + display: none; +} + +.popover-body { + padding: 0.5rem 0.75rem; + color: #212529; +} + +.carousel { + position: relative; +} + +.carousel.pointer-event { + -ms-touch-action: pan-y; + touch-action: pan-y; +} + +.carousel-inner { + position: relative; + width: 100%; + overflow: hidden; +} + +.carousel-inner::after { + display: block; + clear: both; + content: ""; +} + +.carousel-item { + position: relative; + display: none; + float: left; + width: 100%; + margin-right: -100%; + -webkit-backface-visibility: hidden; + backface-visibility: hidden; + transition: -webkit-transform 0.6s ease-in-out; + transition: transform 0.6s ease-in-out; + transition: transform 0.6s ease-in-out, -webkit-transform 0.6s ease-in-out; +} + +@media (prefers-reduced-motion: reduce) { + .carousel-item { + transition: none; + } +} + +.carousel-item.active, +.carousel-item-next, +.carousel-item-prev { + display: block; +} + +.carousel-item-next:not(.carousel-item-left), +.active.carousel-item-right { + -webkit-transform: translateX(100%); + transform: translateX(100%); +} + +.carousel-item-prev:not(.carousel-item-right), +.active.carousel-item-left { + -webkit-transform: translateX(-100%); + transform: translateX(-100%); +} + +.carousel-fade .carousel-item { + opacity: 0; + transition-property: opacity; + -webkit-transform: none; + transform: none; +} + +.carousel-fade .carousel-item.active, +.carousel-fade .carousel-item-next.carousel-item-left, +.carousel-fade .carousel-item-prev.carousel-item-right { + z-index: 1; + opacity: 1; +} + +.carousel-fade .active.carousel-item-left, +.carousel-fade .active.carousel-item-right { + z-index: 0; + opacity: 0; + transition: opacity 0s 0.6s; +} + +@media (prefers-reduced-motion: reduce) { + .carousel-fade .active.carousel-item-left, + .carousel-fade .active.carousel-item-right { + transition: none; + } +} + +.carousel-control-prev, +.carousel-control-next { + position: absolute; + top: 0; + bottom: 0; + z-index: 1; + display: -ms-flexbox; + display: flex; + -ms-flex-align: center; + align-items: center; + -ms-flex-pack: center; + justify-content: center; + width: 15%; + color: #fff; + text-align: center; + opacity: 0.5; + transition: opacity 0.15s ease; +} + +@media (prefers-reduced-motion: reduce) { + .carousel-control-prev, + .carousel-control-next { + transition: none; + } +} + +.carousel-control-prev:hover, .carousel-control-prev:focus, +.carousel-control-next:hover, +.carousel-control-next:focus { + color: #fff; + text-decoration: none; + outline: 0; + opacity: 0.9; +} + +.carousel-control-prev { + left: 0; +} + +.carousel-control-next { + right: 0; +} + +.carousel-control-prev-icon, +.carousel-control-next-icon { + display: inline-block; + width: 20px; + height: 20px; + background: no-repeat 50% / 100% 100%; +} + +.carousel-control-prev-icon { + background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' width='8' height='8' viewBox='0 0 8 8'%3e%3cpath d='M5.25 0l-4 4 4 4 1.5-1.5L4.25 4l2.5-2.5L5.25 0z'/%3e%3c/svg%3e"); +} + +.carousel-control-next-icon { + background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' width='8' height='8' viewBox='0 0 8 8'%3e%3cpath d='M2.75 0l-1.5 1.5L3.75 4l-2.5 2.5L2.75 8l4-4-4-4z'/%3e%3c/svg%3e"); +} + +.carousel-indicators { + position: absolute; + right: 0; + bottom: 0; + left: 0; + z-index: 15; + display: -ms-flexbox; + display: flex; + -ms-flex-pack: center; + justify-content: center; + padding-left: 0; + margin-right: 15%; + margin-left: 15%; + list-style: none; +} + +.carousel-indicators li { + box-sizing: content-box; + -ms-flex: 0 1 auto; + flex: 0 1 auto; + width: 30px; + height: 3px; + margin-right: 3px; + margin-left: 3px; + text-indent: -999px; + cursor: pointer; + background-color: #fff; + background-clip: padding-box; + border-top: 10px solid transparent; + border-bottom: 10px solid transparent; + opacity: .5; + transition: opacity 0.6s ease; +} + +@media (prefers-reduced-motion: reduce) { + .carousel-indicators li { + transition: none; + } +} + +.carousel-indicators .active { + opacity: 1; +} + +.carousel-caption { + position: absolute; + right: 15%; + bottom: 20px; + left: 15%; + z-index: 10; + padding-top: 20px; + padding-bottom: 20px; + color: #fff; + text-align: center; +} + +@-webkit-keyframes spinner-border { + to { + -webkit-transform: rotate(360deg); + transform: rotate(360deg); + } +} + +@keyframes spinner-border { + to { + -webkit-transform: rotate(360deg); + transform: rotate(360deg); + } +} + +.spinner-border { + display: inline-block; + width: 2rem; + height: 2rem; + vertical-align: text-bottom; + border: 0.25em solid currentColor; + border-right-color: transparent; + border-radius: 50%; + -webkit-animation: spinner-border .75s linear infinite; + animation: spinner-border .75s linear infinite; +} + +.spinner-border-sm { + width: 1rem; + height: 1rem; + border-width: 0.2em; +} + +@-webkit-keyframes spinner-grow { + 0% { + -webkit-transform: scale(0); + transform: scale(0); + } + 50% { + opacity: 1; + -webkit-transform: none; + transform: none; + } +} + +@keyframes spinner-grow { + 0% { + -webkit-transform: scale(0); + transform: scale(0); + } + 50% { + opacity: 1; + -webkit-transform: none; + transform: none; + } +} + +.spinner-grow { + display: inline-block; + width: 2rem; + height: 2rem; + vertical-align: text-bottom; + background-color: currentColor; + border-radius: 50%; + opacity: 0; + -webkit-animation: spinner-grow .75s linear infinite; + animation: spinner-grow .75s linear infinite; +} + +.spinner-grow-sm { + width: 1rem; + height: 1rem; +} + +.align-baseline { + vertical-align: baseline !important; +} + +.align-top { + vertical-align: top !important; +} + +.align-middle { + vertical-align: middle !important; +} + +.align-bottom { + vertical-align: bottom !important; +} + +.align-text-bottom { + vertical-align: text-bottom !important; +} + +.align-text-top { + vertical-align: text-top !important; +} + +.bg-primary { + background-color: #007bff !important; +} + +a.bg-primary:hover, a.bg-primary:focus, +button.bg-primary:hover, +button.bg-primary:focus { + background-color: #0062cc !important; +} + +.bg-secondary { + background-color: #6c757d !important; +} + +a.bg-secondary:hover, a.bg-secondary:focus, +button.bg-secondary:hover, +button.bg-secondary:focus { + background-color: #545b62 !important; +} + +.bg-success { + background-color: #28a745 !important; +} + +a.bg-success:hover, a.bg-success:focus, +button.bg-success:hover, +button.bg-success:focus { + background-color: #1e7e34 !important; +} + +.bg-info { + background-color: #17a2b8 !important; +} + +a.bg-info:hover, a.bg-info:focus, +button.bg-info:hover, +button.bg-info:focus { + background-color: #117a8b !important; +} + +.bg-warning { + background-color: #ffc107 !important; +} + +a.bg-warning:hover, a.bg-warning:focus, +button.bg-warning:hover, +button.bg-warning:focus { + background-color: #d39e00 !important; +} + +.bg-danger { + background-color: #dc3545 !important; +} + +a.bg-danger:hover, a.bg-danger:focus, +button.bg-danger:hover, +button.bg-danger:focus { + background-color: #bd2130 !important; +} + +.bg-light { + background-color: #f8f9fa !important; +} + +a.bg-light:hover, a.bg-light:focus, +button.bg-light:hover, +button.bg-light:focus { + background-color: #dae0e5 !important; +} + +.bg-dark { + background-color: #343a40 !important; +} + +a.bg-dark:hover, a.bg-dark:focus, +button.bg-dark:hover, +button.bg-dark:focus { + background-color: #1d2124 !important; +} + +.bg-white { + background-color: #fff !important; +} + +.bg-transparent { + background-color: transparent !important; +} + +.border { + border: 1px solid #dee2e6 !important; +} + +.border-top { + border-top: 1px solid #dee2e6 !important; +} + +.border-right { + border-right: 1px solid #dee2e6 !important; +} + +.border-bottom { + border-bottom: 1px solid #dee2e6 !important; +} + +.border-left { + border-left: 1px solid #dee2e6 !important; +} + +.border-0 { + border: 0 !important; +} + +.border-top-0 { + border-top: 0 !important; +} + +.border-right-0 { + border-right: 0 !important; +} + +.border-bottom-0 { + border-bottom: 0 !important; +} + +.border-left-0 { + border-left: 0 !important; +} + +.border-primary { + border-color: #007bff !important; +} + +.border-secondary { + border-color: #6c757d !important; +} + +.border-success { + border-color: #28a745 !important; +} + +.border-info { + border-color: #17a2b8 !important; +} + +.border-warning { + border-color: #ffc107 !important; +} + +.border-danger { + border-color: #dc3545 !important; +} + +.border-light { + border-color: #f8f9fa !important; +} + +.border-dark { + border-color: #343a40 !important; +} + +.border-white { + border-color: #fff !important; +} + +.rounded-sm { + border-radius: 0.2rem !important; +} + +.rounded { + border-radius: 0.25rem !important; +} + +.rounded-top { + border-top-left-radius: 0.25rem !important; + border-top-right-radius: 0.25rem !important; +} + +.rounded-right { + border-top-right-radius: 0.25rem !important; + border-bottom-right-radius: 0.25rem !important; +} + +.rounded-bottom { + border-bottom-right-radius: 0.25rem !important; + border-bottom-left-radius: 0.25rem !important; +} + +.rounded-left { + border-top-left-radius: 0.25rem !important; + border-bottom-left-radius: 0.25rem !important; +} + +.rounded-lg { + border-radius: 0.3rem !important; +} + +.rounded-circle { + border-radius: 50% !important; +} + +.rounded-pill { + border-radius: 50rem !important; +} + +.rounded-0 { + border-radius: 0 !important; +} + +.clearfix::after { + display: block; + clear: both; + content: ""; +} + +.d-none { + display: none !important; +} + +.d-inline { + display: inline !important; +} + +.d-inline-block { + display: inline-block !important; +} + +.d-block { + display: block !important; +} + +.d-table { + display: table !important; +} + +.d-table-row { + display: table-row !important; +} + +.d-table-cell { + display: table-cell !important; +} + +.d-flex { + display: -ms-flexbox !important; + display: flex !important; +} + +.d-inline-flex { + display: -ms-inline-flexbox !important; + display: inline-flex !important; +} + +@media (min-width: 576px) { + .d-sm-none { + display: none !important; + } + .d-sm-inline { + display: inline !important; + } + .d-sm-inline-block { + display: inline-block !important; + } + .d-sm-block { + display: block !important; + } + .d-sm-table { + display: table !important; + } + .d-sm-table-row { + display: table-row !important; + } + .d-sm-table-cell { + display: table-cell !important; + } + .d-sm-flex { + display: -ms-flexbox !important; + display: flex !important; + } + .d-sm-inline-flex { + display: -ms-inline-flexbox !important; + display: inline-flex !important; + } +} + +@media (min-width: 768px) { + .d-md-none { + display: none !important; + } + .d-md-inline { + display: inline !important; + } + .d-md-inline-block { + display: inline-block !important; + } + .d-md-block { + display: block !important; + } + .d-md-table { + display: table !important; + } + .d-md-table-row { + display: table-row !important; + } + .d-md-table-cell { + display: table-cell !important; + } + .d-md-flex { + display: -ms-flexbox !important; + display: flex !important; + } + .d-md-inline-flex { + display: -ms-inline-flexbox !important; + display: inline-flex !important; + } +} + +@media (min-width: 992px) { + .d-lg-none { + display: none !important; + } + .d-lg-inline { + display: inline !important; + } + .d-lg-inline-block { + display: inline-block !important; + } + .d-lg-block { + display: block !important; + } + .d-lg-table { + display: table !important; + } + .d-lg-table-row { + display: table-row !important; + } + .d-lg-table-cell { + display: table-cell !important; + } + .d-lg-flex { + display: -ms-flexbox !important; + display: flex !important; + } + .d-lg-inline-flex { + display: -ms-inline-flexbox !important; + display: inline-flex !important; + } +} + +@media (min-width: 1200px) { + .d-xl-none { + display: none !important; + } + .d-xl-inline { + display: inline !important; + } + .d-xl-inline-block { + display: inline-block !important; + } + .d-xl-block { + display: block !important; + } + .d-xl-table { + display: table !important; + } + .d-xl-table-row { + display: table-row !important; + } + .d-xl-table-cell { + display: table-cell !important; + } + .d-xl-flex { + display: -ms-flexbox !important; + display: flex !important; + } + .d-xl-inline-flex { + display: -ms-inline-flexbox !important; + display: inline-flex !important; + } +} + +@media print { + .d-print-none { + display: none !important; + } + .d-print-inline { + display: inline !important; + } + .d-print-inline-block { + display: inline-block !important; + } + .d-print-block { + display: block !important; + } + .d-print-table { + display: table !important; + } + .d-print-table-row { + display: table-row !important; + } + .d-print-table-cell { + display: table-cell !important; + } + .d-print-flex { + display: -ms-flexbox !important; + display: flex !important; + } + .d-print-inline-flex { + display: -ms-inline-flexbox !important; + display: inline-flex !important; + } +} + +.embed-responsive { + position: relative; + display: block; + width: 100%; + padding: 0; + overflow: hidden; +} + +.embed-responsive::before { + display: block; + content: ""; +} + +.embed-responsive .embed-responsive-item, +.embed-responsive iframe, +.embed-responsive embed, +.embed-responsive object, +.embed-responsive video { + position: absolute; + top: 0; + bottom: 0; + left: 0; + width: 100%; + height: 100%; + border: 0; +} + +.embed-responsive-21by9::before { + padding-top: 42.857143%; +} + +.embed-responsive-16by9::before { + padding-top: 56.25%; +} + +.embed-responsive-4by3::before { + padding-top: 75%; +} + +.embed-responsive-1by1::before { + padding-top: 100%; +} + +.flex-row { + -ms-flex-direction: row !important; + flex-direction: row !important; +} + +.flex-column { + -ms-flex-direction: column !important; + flex-direction: column !important; +} + +.flex-row-reverse { + -ms-flex-direction: row-reverse !important; + flex-direction: row-reverse !important; +} + +.flex-column-reverse { + -ms-flex-direction: column-reverse !important; + flex-direction: column-reverse !important; +} + +.flex-wrap { + -ms-flex-wrap: wrap !important; + flex-wrap: wrap !important; +} + +.flex-nowrap { + -ms-flex-wrap: nowrap !important; + flex-wrap: nowrap !important; +} + +.flex-wrap-reverse { + -ms-flex-wrap: wrap-reverse !important; + flex-wrap: wrap-reverse !important; +} + +.flex-fill { + -ms-flex: 1 1 auto !important; + flex: 1 1 auto !important; +} + +.flex-grow-0 { + -ms-flex-positive: 0 !important; + flex-grow: 0 !important; +} + +.flex-grow-1 { + -ms-flex-positive: 1 !important; + flex-grow: 1 !important; +} + +.flex-shrink-0 { + -ms-flex-negative: 0 !important; + flex-shrink: 0 !important; +} + +.flex-shrink-1 { + -ms-flex-negative: 1 !important; + flex-shrink: 1 !important; +} + +.justify-content-start { + -ms-flex-pack: start !important; + justify-content: flex-start !important; +} + +.justify-content-end { + -ms-flex-pack: end !important; + justify-content: flex-end !important; +} + +.justify-content-center { + -ms-flex-pack: center !important; + justify-content: center !important; +} + +.justify-content-between { + -ms-flex-pack: justify !important; + justify-content: space-between !important; +} + +.justify-content-around { + -ms-flex-pack: distribute !important; + justify-content: space-around !important; +} + +.align-items-start { + -ms-flex-align: start !important; + align-items: flex-start !important; +} + +.align-items-end { + -ms-flex-align: end !important; + align-items: flex-end !important; +} + +.align-items-center { + -ms-flex-align: center !important; + align-items: center !important; +} + +.align-items-baseline { + -ms-flex-align: baseline !important; + align-items: baseline !important; +} + +.align-items-stretch { + -ms-flex-align: stretch !important; + align-items: stretch !important; +} + +.align-content-start { + -ms-flex-line-pack: start !important; + align-content: flex-start !important; +} + +.align-content-end { + -ms-flex-line-pack: end !important; + align-content: flex-end !important; +} + +.align-content-center { + -ms-flex-line-pack: center !important; + align-content: center !important; +} + +.align-content-between { + -ms-flex-line-pack: justify !important; + align-content: space-between !important; +} + +.align-content-around { + -ms-flex-line-pack: distribute !important; + align-content: space-around !important; +} + +.align-content-stretch { + -ms-flex-line-pack: stretch !important; + align-content: stretch !important; +} + +.align-self-auto { + -ms-flex-item-align: auto !important; + align-self: auto !important; +} + +.align-self-start { + -ms-flex-item-align: start !important; + align-self: flex-start !important; +} + +.align-self-end { + -ms-flex-item-align: end !important; + align-self: flex-end !important; +} + +.align-self-center { + -ms-flex-item-align: center !important; + align-self: center !important; +} + +.align-self-baseline { + -ms-flex-item-align: baseline !important; + align-self: baseline !important; +} + +.align-self-stretch { + -ms-flex-item-align: stretch !important; + align-self: stretch !important; +} + +@media (min-width: 576px) { + .flex-sm-row { + -ms-flex-direction: row !important; + flex-direction: row !important; + } + .flex-sm-column { + -ms-flex-direction: column !important; + flex-direction: column !important; + } + .flex-sm-row-reverse { + -ms-flex-direction: row-reverse !important; + flex-direction: row-reverse !important; + } + .flex-sm-column-reverse { + -ms-flex-direction: column-reverse !important; + flex-direction: column-reverse !important; + } + .flex-sm-wrap { + -ms-flex-wrap: wrap !important; + flex-wrap: wrap !important; + } + .flex-sm-nowrap { + -ms-flex-wrap: nowrap !important; + flex-wrap: nowrap !important; + } + .flex-sm-wrap-reverse { + -ms-flex-wrap: wrap-reverse !important; + flex-wrap: wrap-reverse !important; + } + .flex-sm-fill { + -ms-flex: 1 1 auto !important; + flex: 1 1 auto !important; + } + .flex-sm-grow-0 { + -ms-flex-positive: 0 !important; + flex-grow: 0 !important; + } + .flex-sm-grow-1 { + -ms-flex-positive: 1 !important; + flex-grow: 1 !important; + } + .flex-sm-shrink-0 { + -ms-flex-negative: 0 !important; + flex-shrink: 0 !important; + } + .flex-sm-shrink-1 { + -ms-flex-negative: 1 !important; + flex-shrink: 1 !important; + } + .justify-content-sm-start { + -ms-flex-pack: start !important; + justify-content: flex-start !important; + } + .justify-content-sm-end { + -ms-flex-pack: end !important; + justify-content: flex-end !important; + } + .justify-content-sm-center { + -ms-flex-pack: center !important; + justify-content: center !important; + } + .justify-content-sm-between { + -ms-flex-pack: justify !important; + justify-content: space-between !important; + } + .justify-content-sm-around { + -ms-flex-pack: distribute !important; + justify-content: space-around !important; + } + .align-items-sm-start { + -ms-flex-align: start !important; + align-items: flex-start !important; + } + .align-items-sm-end { + -ms-flex-align: end !important; + align-items: flex-end !important; + } + .align-items-sm-center { + -ms-flex-align: center !important; + align-items: center !important; + } + .align-items-sm-baseline { + -ms-flex-align: baseline !important; + align-items: baseline !important; + } + .align-items-sm-stretch { + -ms-flex-align: stretch !important; + align-items: stretch !important; + } + .align-content-sm-start { + -ms-flex-line-pack: start !important; + align-content: flex-start !important; + } + .align-content-sm-end { + -ms-flex-line-pack: end !important; + align-content: flex-end !important; + } + .align-content-sm-center { + -ms-flex-line-pack: center !important; + align-content: center !important; + } + .align-content-sm-between { + -ms-flex-line-pack: justify !important; + align-content: space-between !important; + } + .align-content-sm-around { + -ms-flex-line-pack: distribute !important; + align-content: space-around !important; + } + .align-content-sm-stretch { + -ms-flex-line-pack: stretch !important; + align-content: stretch !important; + } + .align-self-sm-auto { + -ms-flex-item-align: auto !important; + align-self: auto !important; + } + .align-self-sm-start { + -ms-flex-item-align: start !important; + align-self: flex-start !important; + } + .align-self-sm-end { + -ms-flex-item-align: end !important; + align-self: flex-end !important; + } + .align-self-sm-center { + -ms-flex-item-align: center !important; + align-self: center !important; + } + .align-self-sm-baseline { + -ms-flex-item-align: baseline !important; + align-self: baseline !important; + } + .align-self-sm-stretch { + -ms-flex-item-align: stretch !important; + align-self: stretch !important; + } +} + +@media (min-width: 768px) { + .flex-md-row { + -ms-flex-direction: row !important; + flex-direction: row !important; + } + .flex-md-column { + -ms-flex-direction: column !important; + flex-direction: column !important; + } + .flex-md-row-reverse { + -ms-flex-direction: row-reverse !important; + flex-direction: row-reverse !important; + } + .flex-md-column-reverse { + -ms-flex-direction: column-reverse !important; + flex-direction: column-reverse !important; + } + .flex-md-wrap { + -ms-flex-wrap: wrap !important; + flex-wrap: wrap !important; + } + .flex-md-nowrap { + -ms-flex-wrap: nowrap !important; + flex-wrap: nowrap !important; + } + .flex-md-wrap-reverse { + -ms-flex-wrap: wrap-reverse !important; + flex-wrap: wrap-reverse !important; + } + .flex-md-fill { + -ms-flex: 1 1 auto !important; + flex: 1 1 auto !important; + } + .flex-md-grow-0 { + -ms-flex-positive: 0 !important; + flex-grow: 0 !important; + } + .flex-md-grow-1 { + -ms-flex-positive: 1 !important; + flex-grow: 1 !important; + } + .flex-md-shrink-0 { + -ms-flex-negative: 0 !important; + flex-shrink: 0 !important; + } + .flex-md-shrink-1 { + -ms-flex-negative: 1 !important; + flex-shrink: 1 !important; + } + .justify-content-md-start { + -ms-flex-pack: start !important; + justify-content: flex-start !important; + } + .justify-content-md-end { + -ms-flex-pack: end !important; + justify-content: flex-end !important; + } + .justify-content-md-center { + -ms-flex-pack: center !important; + justify-content: center !important; + } + .justify-content-md-between { + -ms-flex-pack: justify !important; + justify-content: space-between !important; + } + .justify-content-md-around { + -ms-flex-pack: distribute !important; + justify-content: space-around !important; + } + .align-items-md-start { + -ms-flex-align: start !important; + align-items: flex-start !important; + } + .align-items-md-end { + -ms-flex-align: end !important; + align-items: flex-end !important; + } + .align-items-md-center { + -ms-flex-align: center !important; + align-items: center !important; + } + .align-items-md-baseline { + -ms-flex-align: baseline !important; + align-items: baseline !important; + } + .align-items-md-stretch { + -ms-flex-align: stretch !important; + align-items: stretch !important; + } + .align-content-md-start { + -ms-flex-line-pack: start !important; + align-content: flex-start !important; + } + .align-content-md-end { + -ms-flex-line-pack: end !important; + align-content: flex-end !important; + } + .align-content-md-center { + -ms-flex-line-pack: center !important; + align-content: center !important; + } + .align-content-md-between { + -ms-flex-line-pack: justify !important; + align-content: space-between !important; + } + .align-content-md-around { + -ms-flex-line-pack: distribute !important; + align-content: space-around !important; + } + .align-content-md-stretch { + -ms-flex-line-pack: stretch !important; + align-content: stretch !important; + } + .align-self-md-auto { + -ms-flex-item-align: auto !important; + align-self: auto !important; + } + .align-self-md-start { + -ms-flex-item-align: start !important; + align-self: flex-start !important; + } + .align-self-md-end { + -ms-flex-item-align: end !important; + align-self: flex-end !important; + } + .align-self-md-center { + -ms-flex-item-align: center !important; + align-self: center !important; + } + .align-self-md-baseline { + -ms-flex-item-align: baseline !important; + align-self: baseline !important; + } + .align-self-md-stretch { + -ms-flex-item-align: stretch !important; + align-self: stretch !important; + } +} + +@media (min-width: 992px) { + .flex-lg-row { + -ms-flex-direction: row !important; + flex-direction: row !important; + } + .flex-lg-column { + -ms-flex-direction: column !important; + flex-direction: column !important; + } + .flex-lg-row-reverse { + -ms-flex-direction: row-reverse !important; + flex-direction: row-reverse !important; + } + .flex-lg-column-reverse { + -ms-flex-direction: column-reverse !important; + flex-direction: column-reverse !important; + } + .flex-lg-wrap { + -ms-flex-wrap: wrap !important; + flex-wrap: wrap !important; + } + .flex-lg-nowrap { + -ms-flex-wrap: nowrap !important; + flex-wrap: nowrap !important; + } + .flex-lg-wrap-reverse { + -ms-flex-wrap: wrap-reverse !important; + flex-wrap: wrap-reverse !important; + } + .flex-lg-fill { + -ms-flex: 1 1 auto !important; + flex: 1 1 auto !important; + } + .flex-lg-grow-0 { + -ms-flex-positive: 0 !important; + flex-grow: 0 !important; + } + .flex-lg-grow-1 { + -ms-flex-positive: 1 !important; + flex-grow: 1 !important; + } + .flex-lg-shrink-0 { + -ms-flex-negative: 0 !important; + flex-shrink: 0 !important; + } + .flex-lg-shrink-1 { + -ms-flex-negative: 1 !important; + flex-shrink: 1 !important; + } + .justify-content-lg-start { + -ms-flex-pack: start !important; + justify-content: flex-start !important; + } + .justify-content-lg-end { + -ms-flex-pack: end !important; + justify-content: flex-end !important; + } + .justify-content-lg-center { + -ms-flex-pack: center !important; + justify-content: center !important; + } + .justify-content-lg-between { + -ms-flex-pack: justify !important; + justify-content: space-between !important; + } + .justify-content-lg-around { + -ms-flex-pack: distribute !important; + justify-content: space-around !important; + } + .align-items-lg-start { + -ms-flex-align: start !important; + align-items: flex-start !important; + } + .align-items-lg-end { + -ms-flex-align: end !important; + align-items: flex-end !important; + } + .align-items-lg-center { + -ms-flex-align: center !important; + align-items: center !important; + } + .align-items-lg-baseline { + -ms-flex-align: baseline !important; + align-items: baseline !important; + } + .align-items-lg-stretch { + -ms-flex-align: stretch !important; + align-items: stretch !important; + } + .align-content-lg-start { + -ms-flex-line-pack: start !important; + align-content: flex-start !important; + } + .align-content-lg-end { + -ms-flex-line-pack: end !important; + align-content: flex-end !important; + } + .align-content-lg-center { + -ms-flex-line-pack: center !important; + align-content: center !important; + } + .align-content-lg-between { + -ms-flex-line-pack: justify !important; + align-content: space-between !important; + } + .align-content-lg-around { + -ms-flex-line-pack: distribute !important; + align-content: space-around !important; + } + .align-content-lg-stretch { + -ms-flex-line-pack: stretch !important; + align-content: stretch !important; + } + .align-self-lg-auto { + -ms-flex-item-align: auto !important; + align-self: auto !important; + } + .align-self-lg-start { + -ms-flex-item-align: start !important; + align-self: flex-start !important; + } + .align-self-lg-end { + -ms-flex-item-align: end !important; + align-self: flex-end !important; + } + .align-self-lg-center { + -ms-flex-item-align: center !important; + align-self: center !important; + } + .align-self-lg-baseline { + -ms-flex-item-align: baseline !important; + align-self: baseline !important; + } + .align-self-lg-stretch { + -ms-flex-item-align: stretch !important; + align-self: stretch !important; + } +} + +@media (min-width: 1200px) { + .flex-xl-row { + -ms-flex-direction: row !important; + flex-direction: row !important; + } + .flex-xl-column { + -ms-flex-direction: column !important; + flex-direction: column !important; + } + .flex-xl-row-reverse { + -ms-flex-direction: row-reverse !important; + flex-direction: row-reverse !important; + } + .flex-xl-column-reverse { + -ms-flex-direction: column-reverse !important; + flex-direction: column-reverse !important; + } + .flex-xl-wrap { + -ms-flex-wrap: wrap !important; + flex-wrap: wrap !important; + } + .flex-xl-nowrap { + -ms-flex-wrap: nowrap !important; + flex-wrap: nowrap !important; + } + .flex-xl-wrap-reverse { + -ms-flex-wrap: wrap-reverse !important; + flex-wrap: wrap-reverse !important; + } + .flex-xl-fill { + -ms-flex: 1 1 auto !important; + flex: 1 1 auto !important; + } + .flex-xl-grow-0 { + -ms-flex-positive: 0 !important; + flex-grow: 0 !important; + } + .flex-xl-grow-1 { + -ms-flex-positive: 1 !important; + flex-grow: 1 !important; + } + .flex-xl-shrink-0 { + -ms-flex-negative: 0 !important; + flex-shrink: 0 !important; + } + .flex-xl-shrink-1 { + -ms-flex-negative: 1 !important; + flex-shrink: 1 !important; + } + .justify-content-xl-start { + -ms-flex-pack: start !important; + justify-content: flex-start !important; + } + .justify-content-xl-end { + -ms-flex-pack: end !important; + justify-content: flex-end !important; + } + .justify-content-xl-center { + -ms-flex-pack: center !important; + justify-content: center !important; + } + .justify-content-xl-between { + -ms-flex-pack: justify !important; + justify-content: space-between !important; + } + .justify-content-xl-around { + -ms-flex-pack: distribute !important; + justify-content: space-around !important; + } + .align-items-xl-start { + -ms-flex-align: start !important; + align-items: flex-start !important; + } + .align-items-xl-end { + -ms-flex-align: end !important; + align-items: flex-end !important; + } + .align-items-xl-center { + -ms-flex-align: center !important; + align-items: center !important; + } + .align-items-xl-baseline { + -ms-flex-align: baseline !important; + align-items: baseline !important; + } + .align-items-xl-stretch { + -ms-flex-align: stretch !important; + align-items: stretch !important; + } + .align-content-xl-start { + -ms-flex-line-pack: start !important; + align-content: flex-start !important; + } + .align-content-xl-end { + -ms-flex-line-pack: end !important; + align-content: flex-end !important; + } + .align-content-xl-center { + -ms-flex-line-pack: center !important; + align-content: center !important; + } + .align-content-xl-between { + -ms-flex-line-pack: justify !important; + align-content: space-between !important; + } + .align-content-xl-around { + -ms-flex-line-pack: distribute !important; + align-content: space-around !important; + } + .align-content-xl-stretch { + -ms-flex-line-pack: stretch !important; + align-content: stretch !important; + } + .align-self-xl-auto { + -ms-flex-item-align: auto !important; + align-self: auto !important; + } + .align-self-xl-start { + -ms-flex-item-align: start !important; + align-self: flex-start !important; + } + .align-self-xl-end { + -ms-flex-item-align: end !important; + align-self: flex-end !important; + } + .align-self-xl-center { + -ms-flex-item-align: center !important; + align-self: center !important; + } + .align-self-xl-baseline { + -ms-flex-item-align: baseline !important; + align-self: baseline !important; + } + .align-self-xl-stretch { + -ms-flex-item-align: stretch !important; + align-self: stretch !important; + } +} + +.float-left { + float: left !important; +} + +.float-right { + float: right !important; +} + +.float-none { + float: none !important; +} + +@media (min-width: 576px) { + .float-sm-left { + float: left !important; + } + .float-sm-right { + float: right !important; + } + .float-sm-none { + float: none !important; + } +} + +@media (min-width: 768px) { + .float-md-left { + float: left !important; + } + .float-md-right { + float: right !important; + } + .float-md-none { + float: none !important; + } +} + +@media (min-width: 992px) { + .float-lg-left { + float: left !important; + } + .float-lg-right { + float: right !important; + } + .float-lg-none { + float: none !important; + } +} + +@media (min-width: 1200px) { + .float-xl-left { + float: left !important; + } + .float-xl-right { + float: right !important; + } + .float-xl-none { + float: none !important; + } +} + +.user-select-all { + -webkit-user-select: all !important; + -moz-user-select: all !important; + -ms-user-select: all !important; + user-select: all !important; +} + +.user-select-auto { + -webkit-user-select: auto !important; + -moz-user-select: auto !important; + -ms-user-select: auto !important; + user-select: auto !important; +} + +.user-select-none { + -webkit-user-select: none !important; + -moz-user-select: none !important; + -ms-user-select: none !important; + user-select: none !important; +} + +.overflow-auto { + overflow: auto !important; +} + +.overflow-hidden { + overflow: hidden !important; +} + +.position-static { + position: static !important; +} + +.position-relative { + position: relative !important; +} + +.position-absolute { + position: absolute !important; +} + +.position-fixed { + position: fixed !important; +} + +.position-sticky { + position: -webkit-sticky !important; + position: sticky !important; +} + +.fixed-top { + position: fixed; + top: 0; + right: 0; + left: 0; + z-index: 1030; +} + +.fixed-bottom { + position: fixed; + right: 0; + bottom: 0; + left: 0; + z-index: 1030; +} + +@supports ((position: -webkit-sticky) or (position: sticky)) { + .sticky-top { + position: -webkit-sticky; + position: sticky; + top: 0; + z-index: 1020; + } +} + +.sr-only { + position: absolute; + width: 1px; + height: 1px; + padding: 0; + margin: -1px; + overflow: hidden; + clip: rect(0, 0, 0, 0); + white-space: nowrap; + border: 0; +} + +.sr-only-focusable:active, .sr-only-focusable:focus { + position: static; + width: auto; + height: auto; + overflow: visible; + clip: auto; + white-space: normal; +} + +.shadow-sm { + box-shadow: 0 0.125rem 0.25rem rgba(0, 0, 0, 0.075) !important; +} + +.shadow { + box-shadow: 0 0.5rem 1rem rgba(0, 0, 0, 0.15) !important; +} + +.shadow-lg { + box-shadow: 0 1rem 3rem rgba(0, 0, 0, 0.175) !important; +} + +.shadow-none { + box-shadow: none !important; +} + +.w-25 { + width: 25% !important; +} + +.w-50 { + width: 50% !important; +} + +.w-75 { + width: 75% !important; +} + +.w-100 { + width: 100% !important; +} + +.w-auto { + width: auto !important; +} + +.h-25 { + height: 25% !important; +} + +.h-50 { + height: 50% !important; +} + +.h-75 { + height: 75% !important; +} + +.h-100 { + height: 100% !important; +} + +.h-auto { + height: auto !important; +} + +.mw-100 { + max-width: 100% !important; +} + +.mh-100 { + max-height: 100% !important; +} + +.min-vw-100 { + min-width: 100vw !important; +} + +.min-vh-100 { + min-height: 100vh !important; +} + +.vw-100 { + width: 100vw !important; +} + +.vh-100 { + height: 100vh !important; +} + +.m-0 { + margin: 0 !important; +} + +.mt-0, +.my-0 { + margin-top: 0 !important; +} + +.mr-0, +.mx-0 { + margin-right: 0 !important; +} + +.mb-0, +.my-0 { + margin-bottom: 0 !important; +} + +.ml-0, +.mx-0 { + margin-left: 0 !important; +} + +.m-1 { + margin: 0.25rem !important; +} + +.mt-1, +.my-1 { + margin-top: 0.25rem !important; +} + +.mr-1, +.mx-1 { + margin-right: 0.25rem !important; +} + +.mb-1, +.my-1 { + margin-bottom: 0.25rem !important; +} + +.ml-1, +.mx-1 { + margin-left: 0.25rem !important; +} + +.m-2 { + margin: 0.5rem !important; +} + +.mt-2, +.my-2 { + margin-top: 0.5rem !important; +} + +.mr-2, +.mx-2 { + margin-right: 0.5rem !important; +} + +.mb-2, +.my-2 { + margin-bottom: 0.5rem !important; +} + +.ml-2, +.mx-2 { + margin-left: 0.5rem !important; +} + +.m-3 { + margin: 1rem !important; +} + +.mt-3, +.my-3 { + margin-top: 1rem !important; +} + +.mr-3, +.mx-3 { + margin-right: 1rem !important; +} + +.mb-3, +.my-3 { + margin-bottom: 1rem !important; +} + +.ml-3, +.mx-3 { + margin-left: 1rem !important; +} + +.m-4 { + margin: 1.5rem !important; +} + +.mt-4, +.my-4 { + margin-top: 1.5rem !important; +} + +.mr-4, +.mx-4 { + margin-right: 1.5rem !important; +} + +.mb-4, +.my-4 { + margin-bottom: 1.5rem !important; +} + +.ml-4, +.mx-4 { + margin-left: 1.5rem !important; +} + +.m-5 { + margin: 3rem !important; +} + +.mt-5, +.my-5 { + margin-top: 3rem !important; +} + +.mr-5, +.mx-5 { + margin-right: 3rem !important; +} + +.mb-5, +.my-5 { + margin-bottom: 3rem !important; +} + +.ml-5, +.mx-5 { + margin-left: 3rem !important; +} + +.p-0 { + padding: 0 !important; +} + +.pt-0, +.py-0 { + padding-top: 0 !important; +} + +.pr-0, +.px-0 { + padding-right: 0 !important; +} + +.pb-0, +.py-0 { + padding-bottom: 0 !important; +} + +.pl-0, +.px-0 { + padding-left: 0 !important; +} + +.p-1 { + padding: 0.25rem !important; +} + +.pt-1, +.py-1 { + padding-top: 0.25rem !important; +} + +.pr-1, +.px-1 { + padding-right: 0.25rem !important; +} + +.pb-1, +.py-1 { + padding-bottom: 0.25rem !important; +} + +.pl-1, +.px-1 { + padding-left: 0.25rem !important; +} + +.p-2 { + padding: 0.5rem !important; +} + +.pt-2, +.py-2 { + padding-top: 0.5rem !important; +} + +.pr-2, +.px-2 { + padding-right: 0.5rem !important; +} + +.pb-2, +.py-2 { + padding-bottom: 0.5rem !important; +} + +.pl-2, +.px-2 { + padding-left: 0.5rem !important; +} + +.p-3 { + padding: 1rem !important; +} + +.pt-3, +.py-3 { + padding-top: 1rem !important; +} + +.pr-3, +.px-3 { + padding-right: 1rem !important; +} + +.pb-3, +.py-3 { + padding-bottom: 1rem !important; +} + +.pl-3, +.px-3 { + padding-left: 1rem !important; +} + +.p-4 { + padding: 1.5rem !important; +} + +.pt-4, +.py-4 { + padding-top: 1.5rem !important; +} + +.pr-4, +.px-4 { + padding-right: 1.5rem !important; +} + +.pb-4, +.py-4 { + padding-bottom: 1.5rem !important; +} + +.pl-4, +.px-4 { + padding-left: 1.5rem !important; +} + +.p-5 { + padding: 3rem !important; +} + +.pt-5, +.py-5 { + padding-top: 3rem !important; +} + +.pr-5, +.px-5 { + padding-right: 3rem !important; +} + +.pb-5, +.py-5 { + padding-bottom: 3rem !important; +} + +.pl-5, +.px-5 { + padding-left: 3rem !important; +} + +.m-n1 { + margin: -0.25rem !important; +} + +.mt-n1, +.my-n1 { + margin-top: -0.25rem !important; +} + +.mr-n1, +.mx-n1 { + margin-right: -0.25rem !important; +} + +.mb-n1, +.my-n1 { + margin-bottom: -0.25rem !important; +} + +.ml-n1, +.mx-n1 { + margin-left: -0.25rem !important; +} + +.m-n2 { + margin: -0.5rem !important; +} + +.mt-n2, +.my-n2 { + margin-top: -0.5rem !important; +} + +.mr-n2, +.mx-n2 { + margin-right: -0.5rem !important; +} + +.mb-n2, +.my-n2 { + margin-bottom: -0.5rem !important; +} + +.ml-n2, +.mx-n2 { + margin-left: -0.5rem !important; +} + +.m-n3 { + margin: -1rem !important; +} + +.mt-n3, +.my-n3 { + margin-top: -1rem !important; +} + +.mr-n3, +.mx-n3 { + margin-right: -1rem !important; +} + +.mb-n3, +.my-n3 { + margin-bottom: -1rem !important; +} + +.ml-n3, +.mx-n3 { + margin-left: -1rem !important; +} + +.m-n4 { + margin: -1.5rem !important; +} + +.mt-n4, +.my-n4 { + margin-top: -1.5rem !important; +} + +.mr-n4, +.mx-n4 { + margin-right: -1.5rem !important; +} + +.mb-n4, +.my-n4 { + margin-bottom: -1.5rem !important; +} + +.ml-n4, +.mx-n4 { + margin-left: -1.5rem !important; +} + +.m-n5 { + margin: -3rem !important; +} + +.mt-n5, +.my-n5 { + margin-top: -3rem !important; +} + +.mr-n5, +.mx-n5 { + margin-right: -3rem !important; +} + +.mb-n5, +.my-n5 { + margin-bottom: -3rem !important; +} + +.ml-n5, +.mx-n5 { + margin-left: -3rem !important; +} + +.m-auto { + margin: auto !important; +} + +.mt-auto, +.my-auto { + margin-top: auto !important; +} + +.mr-auto, +.mx-auto { + margin-right: auto !important; +} + +.mb-auto, +.my-auto { + margin-bottom: auto !important; +} + +.ml-auto, +.mx-auto { + margin-left: auto !important; +} + +@media (min-width: 576px) { + .m-sm-0 { + margin: 0 !important; + } + .mt-sm-0, + .my-sm-0 { + margin-top: 0 !important; + } + .mr-sm-0, + .mx-sm-0 { + margin-right: 0 !important; + } + .mb-sm-0, + .my-sm-0 { + margin-bottom: 0 !important; + } + .ml-sm-0, + .mx-sm-0 { + margin-left: 0 !important; + } + .m-sm-1 { + margin: 0.25rem !important; + } + .mt-sm-1, + .my-sm-1 { + margin-top: 0.25rem !important; + } + .mr-sm-1, + .mx-sm-1 { + margin-right: 0.25rem !important; + } + .mb-sm-1, + .my-sm-1 { + margin-bottom: 0.25rem !important; + } + .ml-sm-1, + .mx-sm-1 { + margin-left: 0.25rem !important; + } + .m-sm-2 { + margin: 0.5rem !important; + } + .mt-sm-2, + .my-sm-2 { + margin-top: 0.5rem !important; + } + .mr-sm-2, + .mx-sm-2 { + margin-right: 0.5rem !important; + } + .mb-sm-2, + .my-sm-2 { + margin-bottom: 0.5rem !important; + } + .ml-sm-2, + .mx-sm-2 { + margin-left: 0.5rem !important; + } + .m-sm-3 { + margin: 1rem !important; + } + .mt-sm-3, + .my-sm-3 { + margin-top: 1rem !important; + } + .mr-sm-3, + .mx-sm-3 { + margin-right: 1rem !important; + } + .mb-sm-3, + .my-sm-3 { + margin-bottom: 1rem !important; + } + .ml-sm-3, + .mx-sm-3 { + margin-left: 1rem !important; + } + .m-sm-4 { + margin: 1.5rem !important; + } + .mt-sm-4, + .my-sm-4 { + margin-top: 1.5rem !important; + } + .mr-sm-4, + .mx-sm-4 { + margin-right: 1.5rem !important; + } + .mb-sm-4, + .my-sm-4 { + margin-bottom: 1.5rem !important; + } + .ml-sm-4, + .mx-sm-4 { + margin-left: 1.5rem !important; + } + .m-sm-5 { + margin: 3rem !important; + } + .mt-sm-5, + .my-sm-5 { + margin-top: 3rem !important; + } + .mr-sm-5, + .mx-sm-5 { + margin-right: 3rem !important; + } + .mb-sm-5, + .my-sm-5 { + margin-bottom: 3rem !important; + } + .ml-sm-5, + .mx-sm-5 { + margin-left: 3rem !important; + } + .p-sm-0 { + padding: 0 !important; + } + .pt-sm-0, + .py-sm-0 { + padding-top: 0 !important; + } + .pr-sm-0, + .px-sm-0 { + padding-right: 0 !important; + } + .pb-sm-0, + .py-sm-0 { + padding-bottom: 0 !important; + } + .pl-sm-0, + .px-sm-0 { + padding-left: 0 !important; + } + .p-sm-1 { + padding: 0.25rem !important; + } + .pt-sm-1, + .py-sm-1 { + padding-top: 0.25rem !important; + } + .pr-sm-1, + .px-sm-1 { + padding-right: 0.25rem !important; + } + .pb-sm-1, + .py-sm-1 { + padding-bottom: 0.25rem !important; + } + .pl-sm-1, + .px-sm-1 { + padding-left: 0.25rem !important; + } + .p-sm-2 { + padding: 0.5rem !important; + } + .pt-sm-2, + .py-sm-2 { + padding-top: 0.5rem !important; + } + .pr-sm-2, + .px-sm-2 { + padding-right: 0.5rem !important; + } + .pb-sm-2, + .py-sm-2 { + padding-bottom: 0.5rem !important; + } + .pl-sm-2, + .px-sm-2 { + padding-left: 0.5rem !important; + } + .p-sm-3 { + padding: 1rem !important; + } + .pt-sm-3, + .py-sm-3 { + padding-top: 1rem !important; + } + .pr-sm-3, + .px-sm-3 { + padding-right: 1rem !important; + } + .pb-sm-3, + .py-sm-3 { + padding-bottom: 1rem !important; + } + .pl-sm-3, + .px-sm-3 { + padding-left: 1rem !important; + } + .p-sm-4 { + padding: 1.5rem !important; + } + .pt-sm-4, + .py-sm-4 { + padding-top: 1.5rem !important; + } + .pr-sm-4, + .px-sm-4 { + padding-right: 1.5rem !important; + } + .pb-sm-4, + .py-sm-4 { + padding-bottom: 1.5rem !important; + } + .pl-sm-4, + .px-sm-4 { + padding-left: 1.5rem !important; + } + .p-sm-5 { + padding: 3rem !important; + } + .pt-sm-5, + .py-sm-5 { + padding-top: 3rem !important; + } + .pr-sm-5, + .px-sm-5 { + padding-right: 3rem !important; + } + .pb-sm-5, + .py-sm-5 { + padding-bottom: 3rem !important; + } + .pl-sm-5, + .px-sm-5 { + padding-left: 3rem !important; + } + .m-sm-n1 { + margin: -0.25rem !important; + } + .mt-sm-n1, + .my-sm-n1 { + margin-top: -0.25rem !important; + } + .mr-sm-n1, + .mx-sm-n1 { + margin-right: -0.25rem !important; + } + .mb-sm-n1, + .my-sm-n1 { + margin-bottom: -0.25rem !important; + } + .ml-sm-n1, + .mx-sm-n1 { + margin-left: -0.25rem !important; + } + .m-sm-n2 { + margin: -0.5rem !important; + } + .mt-sm-n2, + .my-sm-n2 { + margin-top: -0.5rem !important; + } + .mr-sm-n2, + .mx-sm-n2 { + margin-right: -0.5rem !important; + } + .mb-sm-n2, + .my-sm-n2 { + margin-bottom: -0.5rem !important; + } + .ml-sm-n2, + .mx-sm-n2 { + margin-left: -0.5rem !important; + } + .m-sm-n3 { + margin: -1rem !important; + } + .mt-sm-n3, + .my-sm-n3 { + margin-top: -1rem !important; + } + .mr-sm-n3, + .mx-sm-n3 { + margin-right: -1rem !important; + } + .mb-sm-n3, + .my-sm-n3 { + margin-bottom: -1rem !important; + } + .ml-sm-n3, + .mx-sm-n3 { + margin-left: -1rem !important; + } + .m-sm-n4 { + margin: -1.5rem !important; + } + .mt-sm-n4, + .my-sm-n4 { + margin-top: -1.5rem !important; + } + .mr-sm-n4, + .mx-sm-n4 { + margin-right: -1.5rem !important; + } + .mb-sm-n4, + .my-sm-n4 { + margin-bottom: -1.5rem !important; + } + .ml-sm-n4, + .mx-sm-n4 { + margin-left: -1.5rem !important; + } + .m-sm-n5 { + margin: -3rem !important; + } + .mt-sm-n5, + .my-sm-n5 { + margin-top: -3rem !important; + } + .mr-sm-n5, + .mx-sm-n5 { + margin-right: -3rem !important; + } + .mb-sm-n5, + .my-sm-n5 { + margin-bottom: -3rem !important; + } + .ml-sm-n5, + .mx-sm-n5 { + margin-left: -3rem !important; + } + .m-sm-auto { + margin: auto !important; + } + .mt-sm-auto, + .my-sm-auto { + margin-top: auto !important; + } + .mr-sm-auto, + .mx-sm-auto { + margin-right: auto !important; + } + .mb-sm-auto, + .my-sm-auto { + margin-bottom: auto !important; + } + .ml-sm-auto, + .mx-sm-auto { + margin-left: auto !important; + } +} + +@media (min-width: 768px) { + .m-md-0 { + margin: 0 !important; + } + .mt-md-0, + .my-md-0 { + margin-top: 0 !important; + } + .mr-md-0, + .mx-md-0 { + margin-right: 0 !important; + } + .mb-md-0, + .my-md-0 { + margin-bottom: 0 !important; + } + .ml-md-0, + .mx-md-0 { + margin-left: 0 !important; + } + .m-md-1 { + margin: 0.25rem !important; + } + .mt-md-1, + .my-md-1 { + margin-top: 0.25rem !important; + } + .mr-md-1, + .mx-md-1 { + margin-right: 0.25rem !important; + } + .mb-md-1, + .my-md-1 { + margin-bottom: 0.25rem !important; + } + .ml-md-1, + .mx-md-1 { + margin-left: 0.25rem !important; + } + .m-md-2 { + margin: 0.5rem !important; + } + .mt-md-2, + .my-md-2 { + margin-top: 0.5rem !important; + } + .mr-md-2, + .mx-md-2 { + margin-right: 0.5rem !important; + } + .mb-md-2, + .my-md-2 { + margin-bottom: 0.5rem !important; + } + .ml-md-2, + .mx-md-2 { + margin-left: 0.5rem !important; + } + .m-md-3 { + margin: 1rem !important; + } + .mt-md-3, + .my-md-3 { + margin-top: 1rem !important; + } + .mr-md-3, + .mx-md-3 { + margin-right: 1rem !important; + } + .mb-md-3, + .my-md-3 { + margin-bottom: 1rem !important; + } + .ml-md-3, + .mx-md-3 { + margin-left: 1rem !important; + } + .m-md-4 { + margin: 1.5rem !important; + } + .mt-md-4, + .my-md-4 { + margin-top: 1.5rem !important; + } + .mr-md-4, + .mx-md-4 { + margin-right: 1.5rem !important; + } + .mb-md-4, + .my-md-4 { + margin-bottom: 1.5rem !important; + } + .ml-md-4, + .mx-md-4 { + margin-left: 1.5rem !important; + } + .m-md-5 { + margin: 3rem !important; + } + .mt-md-5, + .my-md-5 { + margin-top: 3rem !important; + } + .mr-md-5, + .mx-md-5 { + margin-right: 3rem !important; + } + .mb-md-5, + .my-md-5 { + margin-bottom: 3rem !important; + } + .ml-md-5, + .mx-md-5 { + margin-left: 3rem !important; + } + .p-md-0 { + padding: 0 !important; + } + .pt-md-0, + .py-md-0 { + padding-top: 0 !important; + } + .pr-md-0, + .px-md-0 { + padding-right: 0 !important; + } + .pb-md-0, + .py-md-0 { + padding-bottom: 0 !important; + } + .pl-md-0, + .px-md-0 { + padding-left: 0 !important; + } + .p-md-1 { + padding: 0.25rem !important; + } + .pt-md-1, + .py-md-1 { + padding-top: 0.25rem !important; + } + .pr-md-1, + .px-md-1 { + padding-right: 0.25rem !important; + } + .pb-md-1, + .py-md-1 { + padding-bottom: 0.25rem !important; + } + .pl-md-1, + .px-md-1 { + padding-left: 0.25rem !important; + } + .p-md-2 { + padding: 0.5rem !important; + } + .pt-md-2, + .py-md-2 { + padding-top: 0.5rem !important; + } + .pr-md-2, + .px-md-2 { + padding-right: 0.5rem !important; + } + .pb-md-2, + .py-md-2 { + padding-bottom: 0.5rem !important; + } + .pl-md-2, + .px-md-2 { + padding-left: 0.5rem !important; + } + .p-md-3 { + padding: 1rem !important; + } + .pt-md-3, + .py-md-3 { + padding-top: 1rem !important; + } + .pr-md-3, + .px-md-3 { + padding-right: 1rem !important; + } + .pb-md-3, + .py-md-3 { + padding-bottom: 1rem !important; + } + .pl-md-3, + .px-md-3 { + padding-left: 1rem !important; + } + .p-md-4 { + padding: 1.5rem !important; + } + .pt-md-4, + .py-md-4 { + padding-top: 1.5rem !important; + } + .pr-md-4, + .px-md-4 { + padding-right: 1.5rem !important; + } + .pb-md-4, + .py-md-4 { + padding-bottom: 1.5rem !important; + } + .pl-md-4, + .px-md-4 { + padding-left: 1.5rem !important; + } + .p-md-5 { + padding: 3rem !important; + } + .pt-md-5, + .py-md-5 { + padding-top: 3rem !important; + } + .pr-md-5, + .px-md-5 { + padding-right: 3rem !important; + } + .pb-md-5, + .py-md-5 { + padding-bottom: 3rem !important; + } + .pl-md-5, + .px-md-5 { + padding-left: 3rem !important; + } + .m-md-n1 { + margin: -0.25rem !important; + } + .mt-md-n1, + .my-md-n1 { + margin-top: -0.25rem !important; + } + .mr-md-n1, + .mx-md-n1 { + margin-right: -0.25rem !important; + } + .mb-md-n1, + .my-md-n1 { + margin-bottom: -0.25rem !important; + } + .ml-md-n1, + .mx-md-n1 { + margin-left: -0.25rem !important; + } + .m-md-n2 { + margin: -0.5rem !important; + } + .mt-md-n2, + .my-md-n2 { + margin-top: -0.5rem !important; + } + .mr-md-n2, + .mx-md-n2 { + margin-right: -0.5rem !important; + } + .mb-md-n2, + .my-md-n2 { + margin-bottom: -0.5rem !important; + } + .ml-md-n2, + .mx-md-n2 { + margin-left: -0.5rem !important; + } + .m-md-n3 { + margin: -1rem !important; + } + .mt-md-n3, + .my-md-n3 { + margin-top: -1rem !important; + } + .mr-md-n3, + .mx-md-n3 { + margin-right: -1rem !important; + } + .mb-md-n3, + .my-md-n3 { + margin-bottom: -1rem !important; + } + .ml-md-n3, + .mx-md-n3 { + margin-left: -1rem !important; + } + .m-md-n4 { + margin: -1.5rem !important; + } + .mt-md-n4, + .my-md-n4 { + margin-top: -1.5rem !important; + } + .mr-md-n4, + .mx-md-n4 { + margin-right: -1.5rem !important; + } + .mb-md-n4, + .my-md-n4 { + margin-bottom: -1.5rem !important; + } + .ml-md-n4, + .mx-md-n4 { + margin-left: -1.5rem !important; + } + .m-md-n5 { + margin: -3rem !important; + } + .mt-md-n5, + .my-md-n5 { + margin-top: -3rem !important; + } + .mr-md-n5, + .mx-md-n5 { + margin-right: -3rem !important; + } + .mb-md-n5, + .my-md-n5 { + margin-bottom: -3rem !important; + } + .ml-md-n5, + .mx-md-n5 { + margin-left: -3rem !important; + } + .m-md-auto { + margin: auto !important; + } + .mt-md-auto, + .my-md-auto { + margin-top: auto !important; + } + .mr-md-auto, + .mx-md-auto { + margin-right: auto !important; + } + .mb-md-auto, + .my-md-auto { + margin-bottom: auto !important; + } + .ml-md-auto, + .mx-md-auto { + margin-left: auto !important; + } +} + +@media (min-width: 992px) { + .m-lg-0 { + margin: 0 !important; + } + .mt-lg-0, + .my-lg-0 { + margin-top: 0 !important; + } + .mr-lg-0, + .mx-lg-0 { + margin-right: 0 !important; + } + .mb-lg-0, + .my-lg-0 { + margin-bottom: 0 !important; + } + .ml-lg-0, + .mx-lg-0 { + margin-left: 0 !important; + } + .m-lg-1 { + margin: 0.25rem !important; + } + .mt-lg-1, + .my-lg-1 { + margin-top: 0.25rem !important; + } + .mr-lg-1, + .mx-lg-1 { + margin-right: 0.25rem !important; + } + .mb-lg-1, + .my-lg-1 { + margin-bottom: 0.25rem !important; + } + .ml-lg-1, + .mx-lg-1 { + margin-left: 0.25rem !important; + } + .m-lg-2 { + margin: 0.5rem !important; + } + .mt-lg-2, + .my-lg-2 { + margin-top: 0.5rem !important; + } + .mr-lg-2, + .mx-lg-2 { + margin-right: 0.5rem !important; + } + .mb-lg-2, + .my-lg-2 { + margin-bottom: 0.5rem !important; + } + .ml-lg-2, + .mx-lg-2 { + margin-left: 0.5rem !important; + } + .m-lg-3 { + margin: 1rem !important; + } + .mt-lg-3, + .my-lg-3 { + margin-top: 1rem !important; + } + .mr-lg-3, + .mx-lg-3 { + margin-right: 1rem !important; + } + .mb-lg-3, + .my-lg-3 { + margin-bottom: 1rem !important; + } + .ml-lg-3, + .mx-lg-3 { + margin-left: 1rem !important; + } + .m-lg-4 { + margin: 1.5rem !important; + } + .mt-lg-4, + .my-lg-4 { + margin-top: 1.5rem !important; + } + .mr-lg-4, + .mx-lg-4 { + margin-right: 1.5rem !important; + } + .mb-lg-4, + .my-lg-4 { + margin-bottom: 1.5rem !important; + } + .ml-lg-4, + .mx-lg-4 { + margin-left: 1.5rem !important; + } + .m-lg-5 { + margin: 3rem !important; + } + .mt-lg-5, + .my-lg-5 { + margin-top: 3rem !important; + } + .mr-lg-5, + .mx-lg-5 { + margin-right: 3rem !important; + } + .mb-lg-5, + .my-lg-5 { + margin-bottom: 3rem !important; + } + .ml-lg-5, + .mx-lg-5 { + margin-left: 3rem !important; + } + .p-lg-0 { + padding: 0 !important; + } + .pt-lg-0, + .py-lg-0 { + padding-top: 0 !important; + } + .pr-lg-0, + .px-lg-0 { + padding-right: 0 !important; + } + .pb-lg-0, + .py-lg-0 { + padding-bottom: 0 !important; + } + .pl-lg-0, + .px-lg-0 { + padding-left: 0 !important; + } + .p-lg-1 { + padding: 0.25rem !important; + } + .pt-lg-1, + .py-lg-1 { + padding-top: 0.25rem !important; + } + .pr-lg-1, + .px-lg-1 { + padding-right: 0.25rem !important; + } + .pb-lg-1, + .py-lg-1 { + padding-bottom: 0.25rem !important; + } + .pl-lg-1, + .px-lg-1 { + padding-left: 0.25rem !important; + } + .p-lg-2 { + padding: 0.5rem !important; + } + .pt-lg-2, + .py-lg-2 { + padding-top: 0.5rem !important; + } + .pr-lg-2, + .px-lg-2 { + padding-right: 0.5rem !important; + } + .pb-lg-2, + .py-lg-2 { + padding-bottom: 0.5rem !important; + } + .pl-lg-2, + .px-lg-2 { + padding-left: 0.5rem !important; + } + .p-lg-3 { + padding: 1rem !important; + } + .pt-lg-3, + .py-lg-3 { + padding-top: 1rem !important; + } + .pr-lg-3, + .px-lg-3 { + padding-right: 1rem !important; + } + .pb-lg-3, + .py-lg-3 { + padding-bottom: 1rem !important; + } + .pl-lg-3, + .px-lg-3 { + padding-left: 1rem !important; + } + .p-lg-4 { + padding: 1.5rem !important; + } + .pt-lg-4, + .py-lg-4 { + padding-top: 1.5rem !important; + } + .pr-lg-4, + .px-lg-4 { + padding-right: 1.5rem !important; + } + .pb-lg-4, + .py-lg-4 { + padding-bottom: 1.5rem !important; + } + .pl-lg-4, + .px-lg-4 { + padding-left: 1.5rem !important; + } + .p-lg-5 { + padding: 3rem !important; + } + .pt-lg-5, + .py-lg-5 { + padding-top: 3rem !important; + } + .pr-lg-5, + .px-lg-5 { + padding-right: 3rem !important; + } + .pb-lg-5, + .py-lg-5 { + padding-bottom: 3rem !important; + } + .pl-lg-5, + .px-lg-5 { + padding-left: 3rem !important; + } + .m-lg-n1 { + margin: -0.25rem !important; + } + .mt-lg-n1, + .my-lg-n1 { + margin-top: -0.25rem !important; + } + .mr-lg-n1, + .mx-lg-n1 { + margin-right: -0.25rem !important; + } + .mb-lg-n1, + .my-lg-n1 { + margin-bottom: -0.25rem !important; + } + .ml-lg-n1, + .mx-lg-n1 { + margin-left: -0.25rem !important; + } + .m-lg-n2 { + margin: -0.5rem !important; + } + .mt-lg-n2, + .my-lg-n2 { + margin-top: -0.5rem !important; + } + .mr-lg-n2, + .mx-lg-n2 { + margin-right: -0.5rem !important; + } + .mb-lg-n2, + .my-lg-n2 { + margin-bottom: -0.5rem !important; + } + .ml-lg-n2, + .mx-lg-n2 { + margin-left: -0.5rem !important; + } + .m-lg-n3 { + margin: -1rem !important; + } + .mt-lg-n3, + .my-lg-n3 { + margin-top: -1rem !important; + } + .mr-lg-n3, + .mx-lg-n3 { + margin-right: -1rem !important; + } + .mb-lg-n3, + .my-lg-n3 { + margin-bottom: -1rem !important; + } + .ml-lg-n3, + .mx-lg-n3 { + margin-left: -1rem !important; + } + .m-lg-n4 { + margin: -1.5rem !important; + } + .mt-lg-n4, + .my-lg-n4 { + margin-top: -1.5rem !important; + } + .mr-lg-n4, + .mx-lg-n4 { + margin-right: -1.5rem !important; + } + .mb-lg-n4, + .my-lg-n4 { + margin-bottom: -1.5rem !important; + } + .ml-lg-n4, + .mx-lg-n4 { + margin-left: -1.5rem !important; + } + .m-lg-n5 { + margin: -3rem !important; + } + .mt-lg-n5, + .my-lg-n5 { + margin-top: -3rem !important; + } + .mr-lg-n5, + .mx-lg-n5 { + margin-right: -3rem !important; + } + .mb-lg-n5, + .my-lg-n5 { + margin-bottom: -3rem !important; + } + .ml-lg-n5, + .mx-lg-n5 { + margin-left: -3rem !important; + } + .m-lg-auto { + margin: auto !important; + } + .mt-lg-auto, + .my-lg-auto { + margin-top: auto !important; + } + .mr-lg-auto, + .mx-lg-auto { + margin-right: auto !important; + } + .mb-lg-auto, + .my-lg-auto { + margin-bottom: auto !important; + } + .ml-lg-auto, + .mx-lg-auto { + margin-left: auto !important; + } +} + +@media (min-width: 1200px) { + .m-xl-0 { + margin: 0 !important; + } + .mt-xl-0, + .my-xl-0 { + margin-top: 0 !important; + } + .mr-xl-0, + .mx-xl-0 { + margin-right: 0 !important; + } + .mb-xl-0, + .my-xl-0 { + margin-bottom: 0 !important; + } + .ml-xl-0, + .mx-xl-0 { + margin-left: 0 !important; + } + .m-xl-1 { + margin: 0.25rem !important; + } + .mt-xl-1, + .my-xl-1 { + margin-top: 0.25rem !important; + } + .mr-xl-1, + .mx-xl-1 { + margin-right: 0.25rem !important; + } + .mb-xl-1, + .my-xl-1 { + margin-bottom: 0.25rem !important; + } + .ml-xl-1, + .mx-xl-1 { + margin-left: 0.25rem !important; + } + .m-xl-2 { + margin: 0.5rem !important; + } + .mt-xl-2, + .my-xl-2 { + margin-top: 0.5rem !important; + } + .mr-xl-2, + .mx-xl-2 { + margin-right: 0.5rem !important; + } + .mb-xl-2, + .my-xl-2 { + margin-bottom: 0.5rem !important; + } + .ml-xl-2, + .mx-xl-2 { + margin-left: 0.5rem !important; + } + .m-xl-3 { + margin: 1rem !important; + } + .mt-xl-3, + .my-xl-3 { + margin-top: 1rem !important; + } + .mr-xl-3, + .mx-xl-3 { + margin-right: 1rem !important; + } + .mb-xl-3, + .my-xl-3 { + margin-bottom: 1rem !important; + } + .ml-xl-3, + .mx-xl-3 { + margin-left: 1rem !important; + } + .m-xl-4 { + margin: 1.5rem !important; + } + .mt-xl-4, + .my-xl-4 { + margin-top: 1.5rem !important; + } + .mr-xl-4, + .mx-xl-4 { + margin-right: 1.5rem !important; + } + .mb-xl-4, + .my-xl-4 { + margin-bottom: 1.5rem !important; + } + .ml-xl-4, + .mx-xl-4 { + margin-left: 1.5rem !important; + } + .m-xl-5 { + margin: 3rem !important; + } + .mt-xl-5, + .my-xl-5 { + margin-top: 3rem !important; + } + .mr-xl-5, + .mx-xl-5 { + margin-right: 3rem !important; + } + .mb-xl-5, + .my-xl-5 { + margin-bottom: 3rem !important; + } + .ml-xl-5, + .mx-xl-5 { + margin-left: 3rem !important; + } + .p-xl-0 { + padding: 0 !important; + } + .pt-xl-0, + .py-xl-0 { + padding-top: 0 !important; + } + .pr-xl-0, + .px-xl-0 { + padding-right: 0 !important; + } + .pb-xl-0, + .py-xl-0 { + padding-bottom: 0 !important; + } + .pl-xl-0, + .px-xl-0 { + padding-left: 0 !important; + } + .p-xl-1 { + padding: 0.25rem !important; + } + .pt-xl-1, + .py-xl-1 { + padding-top: 0.25rem !important; + } + .pr-xl-1, + .px-xl-1 { + padding-right: 0.25rem !important; + } + .pb-xl-1, + .py-xl-1 { + padding-bottom: 0.25rem !important; + } + .pl-xl-1, + .px-xl-1 { + padding-left: 0.25rem !important; + } + .p-xl-2 { + padding: 0.5rem !important; + } + .pt-xl-2, + .py-xl-2 { + padding-top: 0.5rem !important; + } + .pr-xl-2, + .px-xl-2 { + padding-right: 0.5rem !important; + } + .pb-xl-2, + .py-xl-2 { + padding-bottom: 0.5rem !important; + } + .pl-xl-2, + .px-xl-2 { + padding-left: 0.5rem !important; + } + .p-xl-3 { + padding: 1rem !important; + } + .pt-xl-3, + .py-xl-3 { + padding-top: 1rem !important; + } + .pr-xl-3, + .px-xl-3 { + padding-right: 1rem !important; + } + .pb-xl-3, + .py-xl-3 { + padding-bottom: 1rem !important; + } + .pl-xl-3, + .px-xl-3 { + padding-left: 1rem !important; + } + .p-xl-4 { + padding: 1.5rem !important; + } + .pt-xl-4, + .py-xl-4 { + padding-top: 1.5rem !important; + } + .pr-xl-4, + .px-xl-4 { + padding-right: 1.5rem !important; + } + .pb-xl-4, + .py-xl-4 { + padding-bottom: 1.5rem !important; + } + .pl-xl-4, + .px-xl-4 { + padding-left: 1.5rem !important; + } + .p-xl-5 { + padding: 3rem !important; + } + .pt-xl-5, + .py-xl-5 { + padding-top: 3rem !important; + } + .pr-xl-5, + .px-xl-5 { + padding-right: 3rem !important; + } + .pb-xl-5, + .py-xl-5 { + padding-bottom: 3rem !important; + } + .pl-xl-5, + .px-xl-5 { + padding-left: 3rem !important; + } + .m-xl-n1 { + margin: -0.25rem !important; + } + .mt-xl-n1, + .my-xl-n1 { + margin-top: -0.25rem !important; + } + .mr-xl-n1, + .mx-xl-n1 { + margin-right: -0.25rem !important; + } + .mb-xl-n1, + .my-xl-n1 { + margin-bottom: -0.25rem !important; + } + .ml-xl-n1, + .mx-xl-n1 { + margin-left: -0.25rem !important; + } + .m-xl-n2 { + margin: -0.5rem !important; + } + .mt-xl-n2, + .my-xl-n2 { + margin-top: -0.5rem !important; + } + .mr-xl-n2, + .mx-xl-n2 { + margin-right: -0.5rem !important; + } + .mb-xl-n2, + .my-xl-n2 { + margin-bottom: -0.5rem !important; + } + .ml-xl-n2, + .mx-xl-n2 { + margin-left: -0.5rem !important; + } + .m-xl-n3 { + margin: -1rem !important; + } + .mt-xl-n3, + .my-xl-n3 { + margin-top: -1rem !important; + } + .mr-xl-n3, + .mx-xl-n3 { + margin-right: -1rem !important; + } + .mb-xl-n3, + .my-xl-n3 { + margin-bottom: -1rem !important; + } + .ml-xl-n3, + .mx-xl-n3 { + margin-left: -1rem !important; + } + .m-xl-n4 { + margin: -1.5rem !important; + } + .mt-xl-n4, + .my-xl-n4 { + margin-top: -1.5rem !important; + } + .mr-xl-n4, + .mx-xl-n4 { + margin-right: -1.5rem !important; + } + .mb-xl-n4, + .my-xl-n4 { + margin-bottom: -1.5rem !important; + } + .ml-xl-n4, + .mx-xl-n4 { + margin-left: -1.5rem !important; + } + .m-xl-n5 { + margin: -3rem !important; + } + .mt-xl-n5, + .my-xl-n5 { + margin-top: -3rem !important; + } + .mr-xl-n5, + .mx-xl-n5 { + margin-right: -3rem !important; + } + .mb-xl-n5, + .my-xl-n5 { + margin-bottom: -3rem !important; + } + .ml-xl-n5, + .mx-xl-n5 { + margin-left: -3rem !important; + } + .m-xl-auto { + margin: auto !important; + } + .mt-xl-auto, + .my-xl-auto { + margin-top: auto !important; + } + .mr-xl-auto, + .mx-xl-auto { + margin-right: auto !important; + } + .mb-xl-auto, + .my-xl-auto { + margin-bottom: auto !important; + } + .ml-xl-auto, + .mx-xl-auto { + margin-left: auto !important; + } +} + +.stretched-link::after { + position: absolute; + top: 0; + right: 0; + bottom: 0; + left: 0; + z-index: 1; + pointer-events: auto; + content: ""; + background-color: rgba(0, 0, 0, 0); +} + +.text-monospace { + font-family: SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace !important; +} + +.text-justify { + text-align: justify !important; +} + +.text-wrap { + white-space: normal !important; +} + +.text-nowrap { + white-space: nowrap !important; +} + +.text-truncate { + overflow: hidden; + text-overflow: ellipsis; + white-space: nowrap; +} + +.text-left { + text-align: left !important; +} + +.text-right { + text-align: right !important; +} + +.text-center { + text-align: center !important; +} + +@media (min-width: 576px) { + .text-sm-left { + text-align: left !important; + } + .text-sm-right { + text-align: right !important; + } + .text-sm-center { + text-align: center !important; + } +} + +@media (min-width: 768px) { + .text-md-left { + text-align: left !important; + } + .text-md-right { + text-align: right !important; + } + .text-md-center { + text-align: center !important; + } +} + +@media (min-width: 992px) { + .text-lg-left { + text-align: left !important; + } + .text-lg-right { + text-align: right !important; + } + .text-lg-center { + text-align: center !important; + } +} + +@media (min-width: 1200px) { + .text-xl-left { + text-align: left !important; + } + .text-xl-right { + text-align: right !important; + } + .text-xl-center { + text-align: center !important; + } +} + +.text-lowercase { + text-transform: lowercase !important; +} + +.text-uppercase { + text-transform: uppercase !important; +} + +.text-capitalize { + text-transform: capitalize !important; +} + +.font-weight-light { + font-weight: 300 !important; +} + +.font-weight-lighter { + font-weight: lighter !important; +} + +.font-weight-normal { + font-weight: 400 !important; +} + +.font-weight-bold { + font-weight: 700 !important; +} + +.font-weight-bolder { + font-weight: bolder !important; +} + +.font-italic { + font-style: italic !important; +} + +.text-white { + color: #fff !important; +} + +.text-primary { + color: #007bff !important; +} + +a.text-primary:hover, a.text-primary:focus { + color: #0056b3 !important; +} + +.text-secondary { + color: #6c757d !important; +} + +a.text-secondary:hover, a.text-secondary:focus { + color: #494f54 !important; +} + +.text-success { + color: #28a745 !important; +} + +a.text-success:hover, a.text-success:focus { + color: #19692c !important; +} + +.text-info { + color: #17a2b8 !important; +} + +a.text-info:hover, a.text-info:focus { + color: #0f6674 !important; +} + +.text-warning { + color: #ffc107 !important; +} + +a.text-warning:hover, a.text-warning:focus { + color: #ba8b00 !important; +} + +.text-danger { + color: #dc3545 !important; +} + +a.text-danger:hover, a.text-danger:focus { + color: #a71d2a !important; +} + +.text-light { + color: #f8f9fa !important; +} + +a.text-light:hover, a.text-light:focus { + color: #cbd3da !important; +} + +.text-dark { + color: #343a40 !important; +} + +a.text-dark:hover, a.text-dark:focus { + color: #121416 !important; +} + +.text-body { + color: #212529 !important; +} + +.text-muted { + color: #6c757d !important; +} + +.text-black-50 { + color: rgba(0, 0, 0, 0.5) !important; +} + +.text-white-50 { + color: rgba(255, 255, 255, 0.5) !important; +} + +.text-hide { + font: 0/0 a; + color: transparent; + text-shadow: none; + background-color: transparent; + border: 0; +} + +.text-decoration-none { + text-decoration: none !important; +} + +.text-break { + word-break: break-word !important; + word-wrap: break-word !important; +} + +.text-reset { + color: inherit !important; +} + +.visible { + visibility: visible !important; +} + +.invisible { + visibility: hidden !important; +} + +@media print { + *, + *::before, + *::after { + text-shadow: none !important; + box-shadow: none !important; + } + a:not(.btn) { + text-decoration: underline; + } + abbr[title]::after { + content: " (" attr(title) ")"; + } + pre { + white-space: pre-wrap !important; + } + pre, + blockquote { + border: 1px solid #adb5bd; + page-break-inside: avoid; + } + thead { + display: table-header-group; + } + tr, + img { + page-break-inside: avoid; + } + p, + h2, + h3 { + orphans: 3; + widows: 3; + } + h2, + h3 { + page-break-after: avoid; + } + @page { + size: a3; + } + body { + min-width: 992px !important; + } + .container { + min-width: 992px !important; + } + .navbar { + display: none; + } + .badge { + border: 1px solid #000; + } + .table { + border-collapse: collapse !important; + } + .table td, + .table th { + background-color: #fff !important; + } + .table-bordered th, + .table-bordered td { + border: 1px solid #dee2e6 !important; + } + .table-dark { + color: inherit; + } + .table-dark th, + .table-dark td, + .table-dark thead th, + .table-dark tbody + tbody { + border-color: #dee2e6; + } + .table .thead-dark th { + color: inherit; + border-color: #dee2e6; + } +} +/*# sourceMappingURL=bootstrap.css.map */ \ No newline at end of file diff --git a/corese-unit-test/src/test/resources/data/rdf-star-main/css/bootstrap.css.map b/corese-unit-test/src/test/resources/data/rdf-star-main/css/bootstrap.css.map new file mode 100644 index 0000000000..549dbb45ee --- /dev/null +++ b/corese-unit-test/src/test/resources/data/rdf-star-main/css/bootstrap.css.map @@ -0,0 +1 @@ +{"version":3,"sources":["../../scss/bootstrap.scss","bootstrap.css","../../scss/_root.scss","../../scss/_reboot.scss","../../scss/_variables.scss","../../scss/vendor/_rfs.scss","../../scss/mixins/_hover.scss","../../scss/_type.scss","../../scss/mixins/_lists.scss","../../scss/_images.scss","../../scss/mixins/_image.scss","../../scss/mixins/_border-radius.scss","../../scss/_code.scss","../../scss/_grid.scss","../../scss/mixins/_grid.scss","../../scss/mixins/_breakpoints.scss","../../scss/mixins/_grid-framework.scss","../../scss/_tables.scss","../../scss/mixins/_table-row.scss","../../scss/_functions.scss","../../scss/_forms.scss","../../scss/mixins/_transition.scss","../../scss/mixins/_forms.scss","../../scss/mixins/_gradients.scss","../../scss/_buttons.scss","../../scss/mixins/_buttons.scss","../../scss/_transitions.scss","../../scss/_dropdown.scss","../../scss/mixins/_caret.scss","../../scss/mixins/_nav-divider.scss","../../scss/_button-group.scss","../../scss/_input-group.scss","../../scss/_custom-forms.scss","../../scss/_nav.scss","../../scss/_navbar.scss","../../scss/_card.scss","../../scss/_breadcrumb.scss","../../scss/_pagination.scss","../../scss/mixins/_pagination.scss","../../scss/_badge.scss","../../scss/mixins/_badge.scss","../../scss/_jumbotron.scss","../../scss/_alert.scss","../../scss/mixins/_alert.scss","../../scss/_progress.scss","../../scss/_media.scss","../../scss/_list-group.scss","../../scss/mixins/_list-group.scss","../../scss/_close.scss","../../scss/_toasts.scss","../../scss/_modal.scss","../../scss/_tooltip.scss","../../scss/mixins/_reset-text.scss","../../scss/_popover.scss","../../scss/_carousel.scss","../../scss/mixins/_clearfix.scss","../../scss/_spinners.scss","../../scss/utilities/_align.scss","../../scss/mixins/_background-variant.scss","../../scss/utilities/_background.scss","../../scss/utilities/_borders.scss","../../scss/utilities/_display.scss","../../scss/utilities/_embed.scss","../../scss/utilities/_flex.scss","../../scss/utilities/_float.scss","../../scss/utilities/_interactions.scss","../../scss/utilities/_overflow.scss","../../scss/utilities/_position.scss","../../scss/utilities/_screenreaders.scss","../../scss/mixins/_screen-reader.scss","../../scss/utilities/_shadows.scss","../../scss/utilities/_sizing.scss","../../scss/utilities/_spacing.scss","../../scss/utilities/_stretched-link.scss","../../scss/utilities/_text.scss","../../scss/mixins/_text-truncate.scss","../../scss/mixins/_text-emphasis.scss","../../scss/mixins/_text-hide.scss","../../scss/utilities/_visibility.scss","../../scss/_print.scss"],"names":[],"mappings":"AAAA;;;;;ECKE;ACJF;EAGI,eAAc;EAAd,iBAAc;EAAd,iBAAc;EAAd,eAAc;EAAd,cAAc;EAAd,iBAAc;EAAd,iBAAc;EAAd,gBAAc;EAAd,eAAc;EAAd,eAAc;EAAd,aAAc;EAAd,eAAc;EAAd,oBAAc;EAId,kBAAc;EAAd,oBAAc;EAAd,kBAAc;EAAd,eAAc;EAAd,kBAAc;EAAd,iBAAc;EAAd,gBAAc;EAAd,eAAc;EAId,kBAAiC;EAAjC,sBAAiC;EAAjC,sBAAiC;EAAjC,sBAAiC;EAAjC,uBAAiC;EAKnC,+MAAyB;EACzB,6GAAwB;ADiB1B;;AEjBA;;;EAGE,sBAAsB;AFoBxB;;AEjBA;EACE,uBAAuB;EACvB,iBAAiB;EACjB,8BAA8B;EAC9B,6CCXa;AH+Bf;;AEdA;EACE,cAAc;AFiBhB;;AEPA;EACE,SAAS;EACT,kMCqOiN;ECrJ7M,eAtCY;EFxChB,gBC8O+B;ED7O/B,gBCkP+B;EDjP/B,cCnCgB;EDoChB,gBAAgB;EAChB,sBC9Ca;AHwDf;;AAEA;EECE,qBAAqB;AFCvB;;AEQA;EACE,uBAAuB;EACvB,SAAS;EACT,iBAAiB;AFLnB;;AEkBA;EACE,aAAa;EACb,qBCgNuC;AH/NzC;;AEsBA;EACE,aAAa;EACb,mBCoF8B;AHvGhC;;AE8BA;;EAEE,0BAA0B;EAC1B,yCAAiC;EAAjC,iCAAiC;EACjC,YAAY;EACZ,gBAAgB;EAChB,sCAA8B;EAA9B,8BAA8B;AF3BhC;;AE8BA;EACE,mBAAmB;EACnB,kBAAkB;EAClB,oBAAoB;AF3BtB;;AE8BA;;;EAGE,aAAa;EACb,mBAAmB;AF3BrB;;AE8BA;;;;EAIE,gBAAgB;AF3BlB;;AE8BA;EACE,gBCiJ+B;AH5KjC;;AE8BA;EACE,oBAAoB;EACpB,cAAc;AF3BhB;;AE8BA;EACE,gBAAgB;AF3BlB;;AE8BA;;EAEE,mBCoIkC;AH/JpC;;AE8BA;EExFI,cAAW;AJ8Df;;AEmCA;;EAEE,kBAAkB;EEnGhB,cAAW;EFqGb,cAAc;EACd,wBAAwB;AFhC1B;;AEmCA;EAAM,cAAc;AF/BpB;;AEgCA;EAAM,UAAU;AF5BhB;;AEmCA;EACE,cCvJe;EDwJf,qBCX4C;EDY5C,6BAA6B;AFhC/B;;AKhJE;EHmLE,cCd8D;EDe9D,0BCd+C;AHjBnD;;AEwCA;EACE,cAAc;EACd,qBAAqB;AFrCvB;;AK1JE;EHkME,cAAc;EACd,qBAAqB;AFpCzB;;AE6CA;;;;EAIE,iGCyDgH;EC7M9G,cAAW;AJ2Gf;;AE6CA;EAEE,aAAa;EAEb,mBAAmB;EAEnB,cAAc;EAGd,6BAA6B;AF/C/B;;AEuDA;EAEE,gBAAgB;AFrDlB;;AE6DA;EACE,sBAAsB;EACtB,kBAAkB;AF1DpB;;AE6DA;EAGE,gBAAgB;EAChB,sBAAsB;AF5DxB;;AEoEA;EACE,yBAAyB;AFjE3B;;AEoEA;EACE,oBC6EkC;ED5ElC,uBC4EkC;ED3ElC,cCtQgB;EDuQhB,gBAAgB;EAChB,oBAAoB;AFjEtB;;AEwEA;EAEE,mBAAmB;EACnB,gCAAgC;AFtElC;;AE8EA;EAEE,qBAAqB;EACrB,qBC2J2C;AHvO7C;;AEkFA;EAEE,gBAAgB;AFhFlB;;AEuFA;EACE,mBAAmB;EACnB,0CAA0C;AFpF5C;;AEuFA;;;;;EAKE,SAAS;EACT,oBAAoB;EE5PlB,kBAAW;EF8Pb,oBAAoB;AFpFtB;;AEuFA;;EAEE,iBAAiB;AFpFnB;;AEuFA;;EAEE,oBAAoB;AFpFtB;;AAEA;EEyFE,eAAe;AFvFjB;;AE6FA;EACE,iBAAiB;AF1FnB;;AEiGA;;;;EAIE,0BAA0B;AF9F5B;;AEmGE;;;;EAKI,eAAe;AFjGrB;;AEuGA;;;;EAIE,UAAU;EACV,kBAAkB;AFpGpB;;AEuGA;;EAEE,sBAAsB;EACtB,UAAU;AFpGZ;;AEwGA;EACE,cAAc;EAEd,gBAAgB;AFtGlB;;AEyGA;EAME,YAAY;EAEZ,UAAU;EACV,SAAS;EACT,SAAS;AF5GX;;AEiHA;EACE,cAAc;EACd,WAAW;EACX,eAAe;EACf,UAAU;EACV,oBAAoB;EEnShB,iBAtCY;EF2UhB,oBAAoB;EACpB,cAAc;EACd,mBAAmB;AF9GrB;;AEiHA;EACE,wBAAwB;AF9G1B;;AAEA;;EEkHE,YAAY;AF/Gd;;AAEA;EEqHE,oBAAoB;EACpB,wBAAwB;AFnH1B;;AAEA;EEyHE,wBAAwB;AFvH1B;;AE+HA;EACE,aAAa;EACb,0BAA0B;AF5H5B;;AEmIA;EACE,qBAAqB;AFhIvB;;AEmIA;EACE,kBAAkB;EAClB,eAAe;AFhIjB;;AEmIA;EACE,aAAa;AFhIf;;AAEA;EEoIE,wBAAwB;AFlI1B;;AM1VA;;EAEE,qBHqSuC;EGnSvC,gBHqS+B;EGpS/B,gBHqS+B;AHuDjC;;AMxVA;EFgHM,iBAtCY;AJkRlB;;AM3VA;EF+GM,eAtCY;AJsRlB;;AM9VA;EF8GM,kBAtCY;AJ0RlB;;AMjWA;EF6GM,iBAtCY;AJ8RlB;;AMpWA;EF4GM,kBAtCY;AJkSlB;;AMvWA;EF2GM,eAtCY;AJsSlB;;AMzWA;EFyGM,kBAtCY;EEjEhB,gBHuS+B;AHqEjC;;AMxWA;EFmGM,eAtCY;EE3DhB,gBH0R+B;EGzR/B,gBHiR+B;AH0FjC;;AMzWA;EF8FM,iBAtCY;EEtDhB,gBHsR+B;EGrR/B,gBH4Q+B;AHgGjC;;AM1WA;EFyFM,iBAtCY;EEjDhB,gBHkR+B;EGjR/B,gBHuQ+B;AHsGjC;;AM3WA;EFoFM,iBAtCY;EE5ChB,gBH8Q+B;EG7Q/B,gBHkQ+B;AH4GjC;;AEjVA;EIpBE,gBHgFW;EG/EX,mBH+EW;EG9EX,SAAS;EACT,wCHzCa;AHkZf;;AMjWA;;EFMI,cAAW;EEHb,gBH0N+B;AH0IjC;;AMjWA;;EAEE,cHkQgC;EGjQhC,yBH0QmC;AH0FrC;;AM5VA;EC/EE,eAAe;EACf,gBAAgB;AP+alB;;AM5VA;ECpFE,eAAe;EACf,gBAAgB;APoblB;;AM9VA;EACE,qBAAqB;ANiWvB;;AMlWA;EAII,oBHoP+B;AH8GnC;;AMxVA;EFjCI,cAAW;EEmCb,yBAAyB;AN2V3B;;AMvVA;EACE,mBHuBW;ECRP,kBAtCY;AJkXlB;;AMvVA;EACE,cAAc;EF7CZ,cAAW;EE+Cb,cH1GgB;AHoclB;;AM7VA;EAMI,qBAAqB;AN2VzB;;AQ9cA;ECIE,eAAe;EAGf,YAAY;AT4cd;;AQ7cA;EACE,gBL+/BwC;EK9/BxC,sBLRa;EKSb,yBLNgB;EOQd,sBP6NgC;EMpOlC,eAAe;EAGf,YAAY;ATqdd;;AQvcA;EAEE,qBAAqB;ARycvB;;AQtcA;EACE,qBAA0B;EAC1B,cAAc;ARychB;;AQtcA;EJkCI,cAAW;EIhCb,cL3BgB;AHoelB;;AWhfA;EPuEI,gBAAW;EOrEb,cRmCe;EQlCf,qBAAqB;AXmfvB;;AWhfE;EACE,cAAc;AXmflB;;AW9eA;EACE,sBRmlCuC;ECzhCrC,gBAAW;EOxDb,WRTa;EQUb,yBRDgB;EOEd,qBP+N+B;AHkRnC;;AWtfA;EASI,UAAU;EPkDV,eAAW;EOhDX,gBRwQ6B;AHyOjC;;AEzSA;ESjME,cAAc;EPyCZ,gBAAW;EOvCb,cRjBgB;AH+flB;;AWjfA;EP0CI,kBAAW;EOlCX,cAAc;EACd,kBAAkB;AX8etB;;AWzeA;EACE,iBR0jCuC;EQzjCvC,kBAAkB;AX4epB;;AYphBE;;;;;;ECDA,WAAW;EACX,mBAA0B;EAC1B,kBAAyB;EACzB,kBAAkB;EAClB,iBAAiB;Ab8hBnB;;Ac3eI;EFzCE;IACE,gBT+LG;EHyVT;AACF;;AcjfI;EFzCE;IACE,gBTgMG;EH8VT;AACF;;AcvfI;EFzCE;IACE,gBTiMG;EHmWT;AACF;;Ac7fI;EFzCE;IACE,iBTkMI;EHwWV;AACF;;AY/gBE;ECnCA,oBAAa;EAAb,aAAa;EACb,mBAAe;EAAf,eAAe;EACf,mBAA0B;EAC1B,kBAAyB;AbsjB3B;;AYhhBE;EACE,eAAe;EACf,cAAc;AZmhBlB;;AYrhBE;;EAMI,gBAAgB;EAChB,eAAe;AZohBrB;;Ae1kBE;;;;;;EACE,kBAAkB;EAClB,WAAW;EACX,mBAA0B;EAC1B,kBAAyB;AfklB7B;;Ae5jBM;EACE,0BAAa;EAAb,aAAa;EACb,oBAAY;EAAZ,YAAY;EACZ,eAAe;Af+jBvB;;Ae1jBU;EFwBN,kBAAuB;EAAvB,cAAuB;EACvB,eAAwB;AbsiB5B;;Ae/jBU;EFwBN,iBAAuB;EAAvB,aAAuB;EACvB,cAAwB;Ab2iB5B;;AepkBU;EFwBN,wBAAuB;EAAvB,oBAAuB;EACvB,qBAAwB;AbgjB5B;;AezkBU;EFwBN,iBAAuB;EAAvB,aAAuB;EACvB,cAAwB;AbqjB5B;;Ae9kBU;EFwBN,iBAAuB;EAAvB,aAAuB;EACvB,cAAwB;Ab0jB5B;;AenlBU;EFwBN,wBAAuB;EAAvB,oBAAuB;EACvB,qBAAwB;Ab+jB5B;;AellBM;EFCJ,kBAAc;EAAd,cAAc;EACd,WAAW;EACX,eAAe;AbqlBjB;;AellBU;EFbR,uBAAsC;EAAtC,mBAAsC;EAItC,oBAAuC;AbgmBzC;;AevlBU;EFbR,wBAAsC;EAAtC,oBAAsC;EAItC,qBAAuC;AbqmBzC;;Ae5lBU;EFbR,iBAAsC;EAAtC,aAAsC;EAItC,cAAuC;Ab0mBzC;;AejmBU;EFbR,wBAAsC;EAAtC,oBAAsC;EAItC,qBAAuC;Ab+mBzC;;AetmBU;EFbR,wBAAsC;EAAtC,oBAAsC;EAItC,qBAAuC;AbonBzC;;Ae3mBU;EFbR,iBAAsC;EAAtC,aAAsC;EAItC,cAAuC;AbynBzC;;AehnBU;EFbR,wBAAsC;EAAtC,oBAAsC;EAItC,qBAAuC;Ab8nBzC;;AernBU;EFbR,wBAAsC;EAAtC,oBAAsC;EAItC,qBAAuC;AbmoBzC;;Ae1nBU;EFbR,iBAAsC;EAAtC,aAAsC;EAItC,cAAuC;AbwoBzC;;Ae/nBU;EFbR,wBAAsC;EAAtC,oBAAsC;EAItC,qBAAuC;Ab6oBzC;;AepoBU;EFbR,wBAAsC;EAAtC,oBAAsC;EAItC,qBAAuC;AbkpBzC;;AezoBU;EFbR,kBAAsC;EAAtC,cAAsC;EAItC,eAAuC;AbupBzC;;AexoBM;EAAwB,kBAAS;EAAT,SAAS;Af4oBvC;;Ae1oBM;EAAuB,kBZmKG;EYnKH,SZmKG;AH2ehC;;Ae3oBQ;EAAwB,iBADZ;EACY,QADZ;AfgpBpB;;Ae/oBQ;EAAwB,iBADZ;EACY,QADZ;AfopBpB;;AenpBQ;EAAwB,iBADZ;EACY,QADZ;AfwpBpB;;AevpBQ;EAAwB,iBADZ;EACY,QADZ;Af4pBpB;;Ae3pBQ;EAAwB,iBADZ;EACY,QADZ;AfgqBpB;;Ae/pBQ;EAAwB,iBADZ;EACY,QADZ;AfoqBpB;;AenqBQ;EAAwB,iBADZ;EACY,QADZ;AfwqBpB;;AevqBQ;EAAwB,iBADZ;EACY,QADZ;Af4qBpB;;Ae3qBQ;EAAwB,iBADZ;EACY,QADZ;AfgrBpB;;Ae/qBQ;EAAwB,iBADZ;EACY,QADZ;AforBpB;;AenrBQ;EAAwB,kBADZ;EACY,SADZ;AfwrBpB;;AevrBQ;EAAwB,kBADZ;EACY,SADZ;Af4rBpB;;Ae3rBQ;EAAwB,kBADZ;EACY,SADZ;AfgsBpB;;AexrBY;EFhBV,sBAA8C;Ab4sBhD;;Ae5rBY;EFhBV,uBAA8C;AbgtBhD;;AehsBY;EFhBV,gBAA8C;AbotBhD;;AepsBY;EFhBV,uBAA8C;AbwtBhD;;AexsBY;EFhBV,uBAA8C;Ab4tBhD;;Ae5sBY;EFhBV,gBAA8C;AbguBhD;;AehtBY;EFhBV,uBAA8C;AbouBhD;;AeptBY;EFhBV,uBAA8C;AbwuBhD;;AextBY;EFhBV,gBAA8C;Ab4uBhD;;Ae5tBY;EFhBV,uBAA8C;AbgvBhD;;AehuBY;EFhBV,uBAA8C;AbovBhD;;Ac/uBI;EC3BE;IACE,0BAAa;IAAb,aAAa;IACb,oBAAY;IAAZ,YAAY;IACZ,eAAe;Ef8wBrB;EezwBQ;IFwBN,kBAAuB;IAAvB,cAAuB;IACvB,eAAwB;EbovB1B;Ee7wBQ;IFwBN,iBAAuB;IAAvB,aAAuB;IACvB,cAAwB;EbwvB1B;EejxBQ;IFwBN,wBAAuB;IAAvB,oBAAuB;IACvB,qBAAwB;Eb4vB1B;EerxBQ;IFwBN,iBAAuB;IAAvB,aAAuB;IACvB,cAAwB;EbgwB1B;EezxBQ;IFwBN,iBAAuB;IAAvB,aAAuB;IACvB,cAAwB;EbowB1B;Ee7xBQ;IFwBN,wBAAuB;IAAvB,oBAAuB;IACvB,qBAAwB;EbwwB1B;Ee3xBI;IFCJ,kBAAc;IAAd,cAAc;IACd,WAAW;IACX,eAAe;Eb6xBf;Ee1xBQ;IFbR,uBAAsC;IAAtC,mBAAsC;IAItC,oBAAuC;EbuyBvC;Ee9xBQ;IFbR,wBAAsC;IAAtC,oBAAsC;IAItC,qBAAuC;Eb2yBvC;EelyBQ;IFbR,iBAAsC;IAAtC,aAAsC;IAItC,cAAuC;Eb+yBvC;EetyBQ;IFbR,wBAAsC;IAAtC,oBAAsC;IAItC,qBAAuC;EbmzBvC;Ee1yBQ;IFbR,wBAAsC;IAAtC,oBAAsC;IAItC,qBAAuC;EbuzBvC;Ee9yBQ;IFbR,iBAAsC;IAAtC,aAAsC;IAItC,cAAuC;Eb2zBvC;EelzBQ;IFbR,wBAAsC;IAAtC,oBAAsC;IAItC,qBAAuC;Eb+zBvC;EetzBQ;IFbR,wBAAsC;IAAtC,oBAAsC;IAItC,qBAAuC;Ebm0BvC;Ee1zBQ;IFbR,iBAAsC;IAAtC,aAAsC;IAItC,cAAuC;Ebu0BvC;Ee9zBQ;IFbR,wBAAsC;IAAtC,oBAAsC;IAItC,qBAAuC;Eb20BvC;Eel0BQ;IFbR,wBAAsC;IAAtC,oBAAsC;IAItC,qBAAuC;Eb+0BvC;Eet0BQ;IFbR,kBAAsC;IAAtC,cAAsC;IAItC,eAAuC;Ebm1BvC;Eep0BI;IAAwB,kBAAS;IAAT,SAAS;Efu0BrC;Eer0BI;IAAuB,kBZmKG;IYnKH,SZmKG;EHqqB9B;Eer0BM;IAAwB,iBADZ;IACY,QADZ;Efy0BlB;Eex0BM;IAAwB,iBADZ;IACY,QADZ;Ef40BlB;Ee30BM;IAAwB,iBADZ;IACY,QADZ;Ef+0BlB;Ee90BM;IAAwB,iBADZ;IACY,QADZ;Efk1BlB;Eej1BM;IAAwB,iBADZ;IACY,QADZ;Efq1BlB;Eep1BM;IAAwB,iBADZ;IACY,QADZ;Efw1BlB;Eev1BM;IAAwB,iBADZ;IACY,QADZ;Ef21BlB;Ee11BM;IAAwB,iBADZ;IACY,QADZ;Ef81BlB;Ee71BM;IAAwB,iBADZ;IACY,QADZ;Efi2BlB;Eeh2BM;IAAwB,iBADZ;IACY,QADZ;Efo2BlB;Een2BM;IAAwB,kBADZ;IACY,SADZ;Efu2BlB;Eet2BM;IAAwB,kBADZ;IACY,SADZ;Ef02BlB;Eez2BM;IAAwB,kBADZ;IACY,SADZ;Ef62BlB;Eer2BU;IFhBV,cAA4B;Ebw3B5B;Eex2BU;IFhBV,sBAA8C;Eb23B9C;Ee32BU;IFhBV,uBAA8C;Eb83B9C;Ee92BU;IFhBV,gBAA8C;Ebi4B9C;Eej3BU;IFhBV,uBAA8C;Ebo4B9C;Eep3BU;IFhBV,uBAA8C;Ebu4B9C;Eev3BU;IFhBV,gBAA8C;Eb04B9C;Ee13BU;IFhBV,uBAA8C;Eb64B9C;Ee73BU;IFhBV,uBAA8C;Ebg5B9C;Eeh4BU;IFhBV,gBAA8C;Ebm5B9C;Een4BU;IFhBV,uBAA8C;Ebs5B9C;Eet4BU;IFhBV,uBAA8C;Eby5B9C;AACF;;Acr5BI;EC3BE;IACE,0BAAa;IAAb,aAAa;IACb,oBAAY;IAAZ,YAAY;IACZ,eAAe;Efo7BrB;Ee/6BQ;IFwBN,kBAAuB;IAAvB,cAAuB;IACvB,eAAwB;Eb05B1B;Een7BQ;IFwBN,iBAAuB;IAAvB,aAAuB;IACvB,cAAwB;Eb85B1B;Eev7BQ;IFwBN,wBAAuB;IAAvB,oBAAuB;IACvB,qBAAwB;Ebk6B1B;Ee37BQ;IFwBN,iBAAuB;IAAvB,aAAuB;IACvB,cAAwB;Ebs6B1B;Ee/7BQ;IFwBN,iBAAuB;IAAvB,aAAuB;IACvB,cAAwB;Eb06B1B;Een8BQ;IFwBN,wBAAuB;IAAvB,oBAAuB;IACvB,qBAAwB;Eb86B1B;Eej8BI;IFCJ,kBAAc;IAAd,cAAc;IACd,WAAW;IACX,eAAe;Ebm8Bf;Eeh8BQ;IFbR,uBAAsC;IAAtC,mBAAsC;IAItC,oBAAuC;Eb68BvC;Eep8BQ;IFbR,wBAAsC;IAAtC,oBAAsC;IAItC,qBAAuC;Ebi9BvC;Eex8BQ;IFbR,iBAAsC;IAAtC,aAAsC;IAItC,cAAuC;Ebq9BvC;Ee58BQ;IFbR,wBAAsC;IAAtC,oBAAsC;IAItC,qBAAuC;Eby9BvC;Eeh9BQ;IFbR,wBAAsC;IAAtC,oBAAsC;IAItC,qBAAuC;Eb69BvC;Eep9BQ;IFbR,iBAAsC;IAAtC,aAAsC;IAItC,cAAuC;Ebi+BvC;Eex9BQ;IFbR,wBAAsC;IAAtC,oBAAsC;IAItC,qBAAuC;Ebq+BvC;Ee59BQ;IFbR,wBAAsC;IAAtC,oBAAsC;IAItC,qBAAuC;Eby+BvC;Eeh+BQ;IFbR,iBAAsC;IAAtC,aAAsC;IAItC,cAAuC;Eb6+BvC;Eep+BQ;IFbR,wBAAsC;IAAtC,oBAAsC;IAItC,qBAAuC;Ebi/BvC;Eex+BQ;IFbR,wBAAsC;IAAtC,oBAAsC;IAItC,qBAAuC;Ebq/BvC;Ee5+BQ;IFbR,kBAAsC;IAAtC,cAAsC;IAItC,eAAuC;Eby/BvC;Ee1+BI;IAAwB,kBAAS;IAAT,SAAS;Ef6+BrC;Ee3+BI;IAAuB,kBZmKG;IYnKH,SZmKG;EH20B9B;Ee3+BM;IAAwB,iBADZ;IACY,QADZ;Ef++BlB;Ee9+BM;IAAwB,iBADZ;IACY,QADZ;Efk/BlB;Eej/BM;IAAwB,iBADZ;IACY,QADZ;Efq/BlB;Eep/BM;IAAwB,iBADZ;IACY,QADZ;Efw/BlB;Eev/BM;IAAwB,iBADZ;IACY,QADZ;Ef2/BlB;Ee1/BM;IAAwB,iBADZ;IACY,QADZ;Ef8/BlB;Ee7/BM;IAAwB,iBADZ;IACY,QADZ;EfigClB;EehgCM;IAAwB,iBADZ;IACY,QADZ;EfogClB;EengCM;IAAwB,iBADZ;IACY,QADZ;EfugClB;EetgCM;IAAwB,iBADZ;IACY,QADZ;Ef0gClB;EezgCM;IAAwB,kBADZ;IACY,SADZ;Ef6gClB;Ee5gCM;IAAwB,kBADZ;IACY,SADZ;EfghClB;Ee/gCM;IAAwB,kBADZ;IACY,SADZ;EfmhClB;Ee3gCU;IFhBV,cAA4B;Eb8hC5B;Ee9gCU;IFhBV,sBAA8C;EbiiC9C;EejhCU;IFhBV,uBAA8C;EboiC9C;EephCU;IFhBV,gBAA8C;EbuiC9C;EevhCU;IFhBV,uBAA8C;Eb0iC9C;Ee1hCU;IFhBV,uBAA8C;Eb6iC9C;Ee7hCU;IFhBV,gBAA8C;EbgjC9C;EehiCU;IFhBV,uBAA8C;EbmjC9C;EeniCU;IFhBV,uBAA8C;EbsjC9C;EetiCU;IFhBV,gBAA8C;EbyjC9C;EeziCU;IFhBV,uBAA8C;Eb4jC9C;Ee5iCU;IFhBV,uBAA8C;Eb+jC9C;AACF;;Ac3jCI;EC3BE;IACE,0BAAa;IAAb,aAAa;IACb,oBAAY;IAAZ,YAAY;IACZ,eAAe;Ef0lCrB;EerlCQ;IFwBN,kBAAuB;IAAvB,cAAuB;IACvB,eAAwB;EbgkC1B;EezlCQ;IFwBN,iBAAuB;IAAvB,aAAuB;IACvB,cAAwB;EbokC1B;Ee7lCQ;IFwBN,wBAAuB;IAAvB,oBAAuB;IACvB,qBAAwB;EbwkC1B;EejmCQ;IFwBN,iBAAuB;IAAvB,aAAuB;IACvB,cAAwB;Eb4kC1B;EermCQ;IFwBN,iBAAuB;IAAvB,aAAuB;IACvB,cAAwB;EbglC1B;EezmCQ;IFwBN,wBAAuB;IAAvB,oBAAuB;IACvB,qBAAwB;EbolC1B;EevmCI;IFCJ,kBAAc;IAAd,cAAc;IACd,WAAW;IACX,eAAe;EbymCf;EetmCQ;IFbR,uBAAsC;IAAtC,mBAAsC;IAItC,oBAAuC;EbmnCvC;Ee1mCQ;IFbR,wBAAsC;IAAtC,oBAAsC;IAItC,qBAAuC;EbunCvC;Ee9mCQ;IFbR,iBAAsC;IAAtC,aAAsC;IAItC,cAAuC;Eb2nCvC;EelnCQ;IFbR,wBAAsC;IAAtC,oBAAsC;IAItC,qBAAuC;Eb+nCvC;EetnCQ;IFbR,wBAAsC;IAAtC,oBAAsC;IAItC,qBAAuC;EbmoCvC;Ee1nCQ;IFbR,iBAAsC;IAAtC,aAAsC;IAItC,cAAuC;EbuoCvC;Ee9nCQ;IFbR,wBAAsC;IAAtC,oBAAsC;IAItC,qBAAuC;Eb2oCvC;EeloCQ;IFbR,wBAAsC;IAAtC,oBAAsC;IAItC,qBAAuC;Eb+oCvC;EetoCQ;IFbR,iBAAsC;IAAtC,aAAsC;IAItC,cAAuC;EbmpCvC;Ee1oCQ;IFbR,wBAAsC;IAAtC,oBAAsC;IAItC,qBAAuC;EbupCvC;Ee9oCQ;IFbR,wBAAsC;IAAtC,oBAAsC;IAItC,qBAAuC;Eb2pCvC;EelpCQ;IFbR,kBAAsC;IAAtC,cAAsC;IAItC,eAAuC;Eb+pCvC;EehpCI;IAAwB,kBAAS;IAAT,SAAS;EfmpCrC;EejpCI;IAAuB,kBZmKG;IYnKH,SZmKG;EHi/B9B;EejpCM;IAAwB,iBADZ;IACY,QADZ;EfqpClB;EeppCM;IAAwB,iBADZ;IACY,QADZ;EfwpClB;EevpCM;IAAwB,iBADZ;IACY,QADZ;Ef2pClB;Ee1pCM;IAAwB,iBADZ;IACY,QADZ;Ef8pClB;Ee7pCM;IAAwB,iBADZ;IACY,QADZ;EfiqClB;EehqCM;IAAwB,iBADZ;IACY,QADZ;EfoqClB;EenqCM;IAAwB,iBADZ;IACY,QADZ;EfuqClB;EetqCM;IAAwB,iBADZ;IACY,QADZ;Ef0qClB;EezqCM;IAAwB,iBADZ;IACY,QADZ;Ef6qClB;Ee5qCM;IAAwB,iBADZ;IACY,QADZ;EfgrClB;Ee/qCM;IAAwB,kBADZ;IACY,SADZ;EfmrClB;EelrCM;IAAwB,kBADZ;IACY,SADZ;EfsrClB;EerrCM;IAAwB,kBADZ;IACY,SADZ;EfyrClB;EejrCU;IFhBV,cAA4B;EbosC5B;EeprCU;IFhBV,sBAA8C;EbusC9C;EevrCU;IFhBV,uBAA8C;Eb0sC9C;Ee1rCU;IFhBV,gBAA8C;Eb6sC9C;Ee7rCU;IFhBV,uBAA8C;EbgtC9C;EehsCU;IFhBV,uBAA8C;EbmtC9C;EensCU;IFhBV,gBAA8C;EbstC9C;EetsCU;IFhBV,uBAA8C;EbytC9C;EezsCU;IFhBV,uBAA8C;Eb4tC9C;Ee5sCU;IFhBV,gBAA8C;Eb+tC9C;Ee/sCU;IFhBV,uBAA8C;EbkuC9C;EeltCU;IFhBV,uBAA8C;EbquC9C;AACF;;AcjuCI;EC3BE;IACE,0BAAa;IAAb,aAAa;IACb,oBAAY;IAAZ,YAAY;IACZ,eAAe;EfgwCrB;Ee3vCQ;IFwBN,kBAAuB;IAAvB,cAAuB;IACvB,eAAwB;EbsuC1B;Ee/vCQ;IFwBN,iBAAuB;IAAvB,aAAuB;IACvB,cAAwB;Eb0uC1B;EenwCQ;IFwBN,wBAAuB;IAAvB,oBAAuB;IACvB,qBAAwB;Eb8uC1B;EevwCQ;IFwBN,iBAAuB;IAAvB,aAAuB;IACvB,cAAwB;EbkvC1B;Ee3wCQ;IFwBN,iBAAuB;IAAvB,aAAuB;IACvB,cAAwB;EbsvC1B;Ee/wCQ;IFwBN,wBAAuB;IAAvB,oBAAuB;IACvB,qBAAwB;Eb0vC1B;Ee7wCI;IFCJ,kBAAc;IAAd,cAAc;IACd,WAAW;IACX,eAAe;Eb+wCf;Ee5wCQ;IFbR,uBAAsC;IAAtC,mBAAsC;IAItC,oBAAuC;EbyxCvC;EehxCQ;IFbR,wBAAsC;IAAtC,oBAAsC;IAItC,qBAAuC;Eb6xCvC;EepxCQ;IFbR,iBAAsC;IAAtC,aAAsC;IAItC,cAAuC;EbiyCvC;EexxCQ;IFbR,wBAAsC;IAAtC,oBAAsC;IAItC,qBAAuC;EbqyCvC;Ee5xCQ;IFbR,wBAAsC;IAAtC,oBAAsC;IAItC,qBAAuC;EbyyCvC;EehyCQ;IFbR,iBAAsC;IAAtC,aAAsC;IAItC,cAAuC;Eb6yCvC;EepyCQ;IFbR,wBAAsC;IAAtC,oBAAsC;IAItC,qBAAuC;EbizCvC;EexyCQ;IFbR,wBAAsC;IAAtC,oBAAsC;IAItC,qBAAuC;EbqzCvC;Ee5yCQ;IFbR,iBAAsC;IAAtC,aAAsC;IAItC,cAAuC;EbyzCvC;EehzCQ;IFbR,wBAAsC;IAAtC,oBAAsC;IAItC,qBAAuC;Eb6zCvC;EepzCQ;IFbR,wBAAsC;IAAtC,oBAAsC;IAItC,qBAAuC;Ebi0CvC;EexzCQ;IFbR,kBAAsC;IAAtC,cAAsC;IAItC,eAAuC;Ebq0CvC;EetzCI;IAAwB,kBAAS;IAAT,SAAS;EfyzCrC;EevzCI;IAAuB,kBZmKG;IYnKH,SZmKG;EHupC9B;EevzCM;IAAwB,iBADZ;IACY,QADZ;Ef2zClB;Ee1zCM;IAAwB,iBADZ;IACY,QADZ;Ef8zClB;Ee7zCM;IAAwB,iBADZ;IACY,QADZ;Efi0ClB;Eeh0CM;IAAwB,iBADZ;IACY,QADZ;Efo0ClB;Een0CM;IAAwB,iBADZ;IACY,QADZ;Efu0ClB;Eet0CM;IAAwB,iBADZ;IACY,QADZ;Ef00ClB;Eez0CM;IAAwB,iBADZ;IACY,QADZ;Ef60ClB;Ee50CM;IAAwB,iBADZ;IACY,QADZ;Efg1ClB;Ee/0CM;IAAwB,iBADZ;IACY,QADZ;Efm1ClB;Eel1CM;IAAwB,iBADZ;IACY,QADZ;Efs1ClB;Eer1CM;IAAwB,kBADZ;IACY,SADZ;Efy1ClB;Eex1CM;IAAwB,kBADZ;IACY,SADZ;Ef41ClB;Ee31CM;IAAwB,kBADZ;IACY,SADZ;Ef+1ClB;Eev1CU;IFhBV,cAA4B;Eb02C5B;Ee11CU;IFhBV,sBAA8C;Eb62C9C;Ee71CU;IFhBV,uBAA8C;Ebg3C9C;Eeh2CU;IFhBV,gBAA8C;Ebm3C9C;Een2CU;IFhBV,uBAA8C;Ebs3C9C;Eet2CU;IFhBV,uBAA8C;Eby3C9C;Eez2CU;IFhBV,gBAA8C;Eb43C9C;Ee52CU;IFhBV,uBAA8C;Eb+3C9C;Ee/2CU;IFhBV,uBAA8C;Ebk4C9C;Eel3CU;IFhBV,gBAA8C;Ebq4C9C;Eer3CU;IFhBV,uBAA8C;Ebw4C9C;Eex3CU;IFhBV,uBAA8C;Eb24C9C;AACF;;AgB/7CA;EACE,WAAW;EACX,mBbiIW;EahIX,cbSgB;AHy7ClB;;AgBr8CA;;EAQI,gBbkVgC;EajVhC,mBAAmB;EACnB,6BbJc;AHs8ClB;;AgB58CA;EAcI,sBAAsB;EACtB,gCbTc;AH28ClB;;AgBj9CA;EAmBI,6Bbbc;AH+8ClB;;AgBz7CA;;EAGI,eb4T+B;AH+nCnC;;AgBl7CA;EACE,yBbnCgB;AHw9ClB;;AgBt7CA;;EAKI,yBbvCc;AH69ClB;;AgB37CA;;EAWM,wBAA4C;AhBq7ClD;;AgBh7CA;;;;EAKI,SAAS;AhBk7Cb;;AgB16CA;EAEI,qCb1DW;AHs+Cf;;AK3+CE;EW2EI,cbvEY;EawEZ,sCbvES;AH2+Cf;;AiBv/CE;;;EAII,yBCgG4D;AlBy5ClE;;AiB7/CE;;;;EAYM,qBCwF0D;AlBg6ClE;;AK7/CE;EYiBM,yBAJsC;AjBo/C9C;;AiBr/CE;;EASQ,yBARoC;AjBy/C9C;;AiB7gDE;;;EAII,yBCgG4D;AlB+6ClE;;AiBnhDE;;;;EAYM,qBCwF0D;AlBs7ClE;;AKnhDE;EYiBM,yBAJsC;AjB0gD9C;;AiB3gDE;;EASQ,yBARoC;AjB+gD9C;;AiBniDE;;;EAII,yBCgG4D;AlBq8ClE;;AiBziDE;;;;EAYM,qBCwF0D;AlB48ClE;;AKziDE;EYiBM,yBAJsC;AjBgiD9C;;AiBjiDE;;EASQ,yBARoC;AjBqiD9C;;AiBzjDE;;;EAII,yBCgG4D;AlB29ClE;;AiB/jDE;;;;EAYM,qBCwF0D;AlBk+ClE;;AK/jDE;EYiBM,yBAJsC;AjBsjD9C;;AiBvjDE;;EASQ,yBARoC;AjB2jD9C;;AiB/kDE;;;EAII,yBCgG4D;AlBi/ClE;;AiBrlDE;;;;EAYM,qBCwF0D;AlBw/ClE;;AKrlDE;EYiBM,yBAJsC;AjB4kD9C;;AiB7kDE;;EASQ,yBARoC;AjBilD9C;;AiBrmDE;;;EAII,yBCgG4D;AlBugDlE;;AiB3mDE;;;;EAYM,qBCwF0D;AlB8gDlE;;AK3mDE;EYiBM,yBAJsC;AjBkmD9C;;AiBnmDE;;EASQ,yBARoC;AjBumD9C;;AiB3nDE;;;EAII,yBCgG4D;AlB6hDlE;;AiBjoDE;;;;EAYM,qBCwF0D;AlBoiDlE;;AKjoDE;EYiBM,yBAJsC;AjBwnD9C;;AiBznDE;;EASQ,yBARoC;AjB6nD9C;;AiBjpDE;;;EAII,yBCgG4D;AlBmjDlE;;AiBvpDE;;;;EAYM,qBCwF0D;AlB0jDlE;;AKvpDE;EYiBM,yBAJsC;AjB8oD9C;;AiB/oDE;;EASQ,yBARoC;AjBmpD9C;;AiBvqDE;;;EAII,sCdQS;AHiqDf;;AKtqDE;EYiBM,sCAJsC;AjB6pD9C;;AiB9pDE;;EASQ,sCARoC;AjBkqD9C;;AgB5kDA;EAGM,Wb3GS;Ea4GT,yBbpGY;EaqGZ,qBbgQqD;AH60C3D;;AgBllDA;EAWM,cb5GY;Ea6GZ,yBblHY;EamHZ,qBblHY;AH6rDlB;;AgBtkDA;EACE,Wb3Ha;Ea4Hb,yBbpHgB;AH6rDlB;;AgB3kDA;;;EAOI,qBb4OuD;AH81C3D;;AgBjlDA;EAWI,SAAS;AhB0kDb;;AgBrlDA;EAgBM,2Cb1IS;AHmtDf;;AK9sDE;EW4IM,WbjJO;EakJP,4CblJO;AHwtDf;;ActpDI;EEiGA;IAEI,cAAc;IACd,WAAW;IACX,gBAAgB;IAChB,iCAAiC;EhBwjDvC;EgB7jDG;IASK,SAAS;EhBujDjB;AACF;;AclqDI;EEiGA;IAEI,cAAc;IACd,WAAW;IACX,gBAAgB;IAChB,iCAAiC;EhBokDvC;EgBzkDG;IASK,SAAS;EhBmkDjB;AACF;;Ac9qDI;EEiGA;IAEI,cAAc;IACd,WAAW;IACX,gBAAgB;IAChB,iCAAiC;EhBglDvC;EgBrlDG;IASK,SAAS;EhB+kDjB;AACF;;Ac1rDI;EEiGA;IAEI,cAAc;IACd,WAAW;IACX,gBAAgB;IAChB,iCAAiC;EhB4lDvC;EgBjmDG;IASK,SAAS;EhB2lDjB;AACF;;AgB1mDA;EAOQ,cAAc;EACd,WAAW;EACX,gBAAgB;EAChB,iCAAiC;AhBumDzC;;AgBjnDA;EAcU,SAAS;AhBumDnB;;AmBpxDA;EACE,cAAc;EACd,WAAW;EACX,mCDiH8D;EChH9D,yBhByXkC;ECpQ9B,eAtCY;Ee5EhB,gBhBkR+B;EgBjR/B,gBhBsR+B;EgBrR/B,chBDgB;EgBEhB,sBhBTa;EgBUb,4BAA4B;EAC5B,yBhBPgB;EOOd,sBP6NgC;EiB/N9B,wEjBue4F;AHmzClG;;AoBtxDM;EDdN;ICeQ,gBAAgB;EpB0xDtB;AACF;;AmB1yDA;EAsBI,6BAA6B;EAC7B,SAAS;AnBwxDb;;AmB/yDA;EA4BI,kBAAkB;EAClB,0BhBrBc;AH4yDlB;;AqB7yDE;EACE,clBAc;EkBCd,sBlBRW;EkBSX,qBlBqdsE;EkBpdtE,UAAU;EAKR,gDlBaW;AH+xDjB;;AmB5zDA;EAqCI,chB9Bc;EgBgCd,UAAU;AnB0xDd;;AmBj0DA;EAqCI,chB9Bc;EgBgCd,UAAU;AnB0xDd;;AmBj0DA;EAqCI,chB9Bc;EgBgCd,UAAU;AnB0xDd;;AmBj0DA;EAqCI,chB9Bc;EgBgCd,UAAU;AnB0xDd;;AmBj0DA;EAqCI,chB9Bc;EgBgCd,UAAU;AnB0xDd;;AmBj0DA;EAiDI,yBhB9Cc;EgBgDd,UAAU;AnBmxDd;;AmB/wDA;;;;EAKI,wBAAgB;EAAhB,qBAAgB;EAAhB,gBAAgB;AnBixDpB;;AmB7wDA;EAOI,chB/Dc;EgBgEd,sBhBvEW;AHi1Df;;AmBrwDA;;EAEE,cAAc;EACd,WAAW;AnBwwDb;;AmB9vDA;EACE,iCDyB8D;ECxB9D,oCDwB8D;ECvB9D,gBAAgB;Ef3Bd,kBAAW;Ee6Bb,gBhB+L+B;AHkkDjC;;AmB9vDA;EACE,+BDiB8D;EChB9D,kCDgB8D;EdK1D,kBAtCY;EemBhB,gBhB6H+B;AHooDjC;;AmB9vDA;EACE,gCDU8D;ECT9D,mCDS8D;EdK1D,mBAtCY;Ee0BhB,gBhBuH+B;AH0oDjC;;AmBxvDA;EACE,cAAc;EACd,WAAW;EACX,mBAA2B;EAC3B,gBAAgB;EfDZ,eAtCY;EeyChB,gBhBkK+B;EgBjK/B,chBnHgB;EgBoHhB,6BAA6B;EAC7B,yBAAyB;EACzB,mBAAmC;AnB2vDrC;;AmBrwDA;EAcI,gBAAgB;EAChB,eAAe;AnB2vDnB;;AmB/uDA;EACE,kCD9B8D;EC+B9D,uBhBoPiC;EC9Q7B,mBAtCY;EekEhB,gBhB+E+B;EOxN7B,qBP+N+B;AH6pDnC;;AmB/uDA;EACE,gCDtC8D;ECuC9D,oBhBiPgC;ECnR5B,kBAtCY;Ee0EhB,gBhBsE+B;EOvN7B,qBP8N+B;AHsqDnC;;AmB9uDA;EAGI,YAAY;AnB+uDhB;;AmB3uDA;EACE,YAAY;AnB8uDd;;AmBtuDA;EACE,mBhB0U0C;AH+5C5C;;AmBtuDA;EACE,cAAc;EACd,mBhB2T4C;AH86C9C;;AmBjuDA;EACE,oBAAa;EAAb,aAAa;EACb,mBAAe;EAAf,eAAe;EACf,kBAA0C;EAC1C,iBAAyC;AnBouD3C;;AmBxuDA;;EAQI,kBAA0C;EAC1C,iBAAyC;AnBquD7C;;AmB5tDA;EACE,kBAAkB;EAClB,cAAc;EACd,qBhBgS6C;AH+7C/C;;AmB5tDA;EACE,kBAAkB;EAClB,kBhB4R2C;EgB3R3C,qBhB0R6C;AHq8C/C;;AmBluDA;;EAQI,chBzNc;AHw7DlB;;AmB3tDA;EACE,gBAAgB;AnB8tDlB;;AmB3tDA;EACE,2BAAoB;EAApB,oBAAoB;EACpB,sBAAmB;EAAnB,mBAAmB;EACnB,eAAe;EACf,qBhB6Q4C;AHi9C9C;;AmBluDA;EAQI,gBAAgB;EAChB,aAAa;EACb,uBhBwQ4C;EgBvQ5C,cAAc;AnB8tDlB;;AqB36DE;EACE,aAAa;EACb,WAAW;EACX,mBlB0c0C;ECjb1C,cAAW;EiBvBX,clBPa;AHq7DjB;;AqB36DE;EACE,kBAAkB;EAClB,SAAS;EACT,OAAO;EACP,UAAU;EACV,aAAa;EACb,eAAe;EACf,uBlBgyBqC;EkB/xBrC,iBAAiB;EjBmEf,mBAtCY;EiB3Bd,gBlBsO6B;EkBrO7B,WlBxDW;EkByDX,wClBtBa;EOxBb,sBP6NgC;AHgwDpC;;AqB/8DI;;;;EAuCE,cAAc;ArB+6DpB;;AqBt9DI;EA6CE,qBlBnCW;EkBsCT,oCH0CwD;EGzCxD,iRHpB0E;EGqB1E,4BAA4B;EAC5B,2DAA6D;EAC7D,gEHsCwD;AlBq4DhE;;AqB/9DI;EAwDI,qBlB9CS;EkB+CT,gDlB/CS;AH09DjB;;AqBp+DI;EAkEI,oCHwBwD;EGvBxD,kFHuBwD;AlB+4DhE;;AqBz+DI;EA0EE,qBlBhEW;EkBmET,uCHawD;EGZxD,ujBAA8J;ArBi6DtK;;AqB/+DI;EAkFI,qBlBxES;EkByET,gDlBzES;AH0+DjB;;AqBp/DI;EA2FI,clBjFS;AH8+DjB;;AqBx/DI;;;EAgGI,cAAc;ArB85DtB;;AqB9/DI;EAwGI,clB9FS;AHw/DjB;;AqBlgEI;EA2GM,qBlBjGO;AH4/DjB;;AqBtgEI;EAiHM,qBAAkC;EC3IxC,yBD4I+C;ArBy5DnD;;AqB3gEI;EAwHM,gDlB9GO;AHqgEjB;;AqB/gEI;EA4HM,qBlBlHO;AHygEjB;;AqBnhEI;EAsII,qBlB5HS;AH6gEjB;;AqBvhEI;EA2IM,qBlBjIO;EkBkIP,gDlBlIO;AHkhEjB;;AqBhhEE;EACE,aAAa;EACb,WAAW;EACX,mBlB0c0C;ECjb1C,cAAW;EiBvBX,clBVa;AH6hEjB;;AqBhhEE;EACE,kBAAkB;EAClB,SAAS;EACT,OAAO;EACP,UAAU;EACV,aAAa;EACb,eAAe;EACf,uBlBgyBqC;EkB/xBrC,iBAAiB;EjBmEf,mBAtCY;EiB3Bd,gBlBsO6B;EkBrO7B,WlBxDW;EkByDX,wClBzBa;EOrBb,sBP6NgC;AHq2DpC;;AqBpjEI;;;;EAuCE,cAAc;ArBohEpB;;AqB3jEI;EA6CE,qBlBtCW;EkByCT,oCH0CwD;EGzCxD,4UHpB0E;EGqB1E,4BAA4B;EAC5B,2DAA6D;EAC7D,gEHsCwD;AlB0+DhE;;AqBpkEI;EAwDI,qBlBjDS;EkBkDT,gDlBlDS;AHkkEjB;;AqBzkEI;EAkEI,oCHwBwD;EGvBxD,kFHuBwD;AlBo/DhE;;AqB9kEI;EA0EE,qBlBnEW;EkBsET,uCHawD;EGZxD,knBAA8J;ArBsgEtK;;AqBplEI;EAkFI,qBlB3ES;EkB4ET,gDlB5ES;AHklEjB;;AqBzlEI;EA2FI,clBpFS;AHslEjB;;AqB7lEI;;;EAgGI,cAAc;ArBmgEtB;;AqBnmEI;EAwGI,clBjGS;AHgmEjB;;AqBvmEI;EA2GM,qBlBpGO;AHomEjB;;AqB3mEI;EAiHM,qBAAkC;EC3IxC,yBD4I+C;ArB8/DnD;;AqBhnEI;EAwHM,gDlBjHO;AH6mEjB;;AqBpnEI;EA4HM,qBlBrHO;AHinEjB;;AqBxnEI;EAsII,qBlB/HS;AHqnEjB;;AqB5nEI;EA2IM,qBlBpIO;EkBqIP,gDlBrIO;AH0nEjB;;AmB/4DA;EACE,oBAAa;EAAb,aAAa;EACb,uBAAmB;EAAnB,mBAAmB;EACnB,sBAAmB;EAAnB,mBAAmB;AnBk5DrB;;AmBr5DA;EASI,WAAW;AnBg5Df;;Ac/mEI;EKsNJ;IAeM,oBAAa;IAAb,aAAa;IACb,sBAAmB;IAAnB,mBAAmB;IACnB,qBAAuB;IAAvB,uBAAuB;IACvB,gBAAgB;EnB+4DpB;EmBj6DF;IAuBM,oBAAa;IAAb,aAAa;IACb,kBAAc;IAAd,cAAc;IACd,uBAAmB;IAAnB,mBAAmB;IACnB,sBAAmB;IAAnB,mBAAmB;IACnB,gBAAgB;EnB64DpB;EmBx6DF;IAgCM,qBAAqB;IACrB,WAAW;IACX,sBAAsB;EnB24D1B;EmB76DF;IAuCM,qBAAqB;EnBy4DzB;EmBh7DF;;IA4CM,WAAW;EnBw4Df;EmBp7DF;IAkDM,oBAAa;IAAb,aAAa;IACb,sBAAmB;IAAnB,mBAAmB;IACnB,qBAAuB;IAAvB,uBAAuB;IACvB,WAAW;IACX,eAAe;EnBq4DnB;EmB37DF;IAyDM,kBAAkB;IAClB,oBAAc;IAAd,cAAc;IACd,aAAa;IACb,qBhB+KwC;IgB9KxC,cAAc;EnBq4DlB;EmBl8DF;IAiEM,sBAAmB;IAAnB,mBAAmB;IACnB,qBAAuB;IAAvB,uBAAuB;EnBo4D3B;EmBt8DF;IAqEM,gBAAgB;EnBo4DpB;AACF;;AuBttEA;EACE,qBAAqB;EAErB,gBpBsR+B;EoBrR/B,cpBMgB;EoBLhB,kBAAkB;EAGlB,sBAAsB;EACtB,yBAAiB;EAAjB,sBAAiB;EAAjB,qBAAiB;EAAjB,iBAAiB;EACjB,6BAA6B;EAC7B,6BAA2C;ECuF3C,yBrB2RkC;ECpQ9B,eAtCY;EoBiBhB,gBrB0L+B;EOlR7B,sBP6NgC;EiB/N9B,qIjBgb6I;AH4yDnJ;;AoBxtEM;EGdN;IHeQ,gBAAgB;EpB4tEtB;AACF;;AKtuEE;EkBUE,cpBNc;EoBOd,qBAAqB;AvBguEzB;;AuBjvEA;EAsBI,UAAU;EACV,gDpBMa;AHytEjB;;AuBtvEA;EA6BI,apBiZ6B;AH40DjC;;AuB1vEA;EAkCI,eAAsD;AvB4tE1D;;AuB9sEA;;EAEE,oBAAoB;AvBitEtB;;AuBxsEE;EC3DA,WrBCa;EmBDX,yBnB6Ba;EqB3Bf,qBrB2Be;AH4uEjB;;AKnwEE;EmBAE,WrBLW;EmBDX,yBEDoF;EASpF,qBATyH;AxBgxE7H;;AwBpwEE;EAEE,WrBZW;EmBDX,yBEDoF;EAgBpF,qBAhByH;EAqBvH,gDAAiF;AxBkwEvF;;AwB7vEE;EAEE,WrB1BW;EqB2BX,yBrBCa;EqBAb,qBrBAa;AH+vEjB;;AwBxvEE;;EAGE,WrBtCW;EqBuCX,yBAzCuK;EA6CvK,qBA7C+M;AxBoyEnN;;AwBrvEI;;EAKI,gDAAiF;AxBqvEzF;;AuB7uEE;EC3DA,WrBCa;EmBDX,yBnBOc;EqBLhB,qBrBKgB;AHuyElB;;AKxyEE;EmBAE,WrBLW;EmBDX,yBEDoF;EASpF,qBATyH;AxBqzE7H;;AwBzyEE;EAEE,WrBZW;EmBDX,yBEDoF;EAgBpF,qBAhByH;EAqBvH,iDAAiF;AxBuyEvF;;AwBlyEE;EAEE,WrB1BW;EqB2BX,yBrBrBc;EqBsBd,qBrBtBc;AH0zElB;;AwB7xEE;;EAGE,WrBtCW;EqBuCX,yBAzCuK;EA6CvK,qBA7C+M;AxBy0EnN;;AwB1xEI;;EAKI,iDAAiF;AxB0xEzF;;AuBlxEE;EC3DA,WrBCa;EmBDX,yBnBoCa;EqBlCf,qBrBkCe;AH+yEjB;;AK70EE;EmBAE,WrBLW;EmBDX,yBEDoF;EASpF,qBATyH;AxB01E7H;;AwB90EE;EAEE,WrBZW;EmBDX,yBEDoF;EAgBpF,qBAhByH;EAqBvH,+CAAiF;AxB40EvF;;AwBv0EE;EAEE,WrB1BW;EqB2BX,yBrBQa;EqBPb,qBrBOa;AHk0EjB;;AwBl0EE;;EAGE,WrBtCW;EqBuCX,yBAzCuK;EA6CvK,qBA7C+M;AxB82EnN;;AwB/zEI;;EAKI,+CAAiF;AxB+zEzF;;AuBvzEE;EC3DA,WrBCa;EmBDX,yBnBsCa;EqBpCf,qBrBoCe;AHk1EjB;;AKl3EE;EmBAE,WrBLW;EmBDX,yBEDoF;EASpF,qBATyH;AxB+3E7H;;AwBn3EE;EAEE,WrBZW;EmBDX,yBEDoF;EAgBpF,qBAhByH;EAqBvH,gDAAiF;AxBi3EvF;;AwB52EE;EAEE,WrB1BW;EqB2BX,yBrBUa;EqBTb,qBrBSa;AHq2EjB;;AwBv2EE;;EAGE,WrBtCW;EqBuCX,yBAzCuK;EA6CvK,qBA7C+M;AxBm5EnN;;AwBp2EI;;EAKI,gDAAiF;AxBo2EzF;;AuB51EE;EC3DA,crBUgB;EmBVd,yBnBmCa;EqBjCf,qBrBiCe;AH03EjB;;AKv5EE;EmBAE,crBIc;EmBVd,yBEDoF;EASpF,qBATyH;AxBo6E7H;;AwBx5EE;EAEE,crBHc;EmBVd,yBEDoF;EAgBpF,qBAhByH;EAqBvH,gDAAiF;AxBs5EvF;;AwBj5EE;EAEE,crBjBc;EqBkBd,yBrBOa;EqBNb,qBrBMa;AH64EjB;;AwB54EE;;EAGE,crB7Bc;EqB8Bd,yBAzCuK;EA6CvK,qBA7C+M;AxBw7EnN;;AwBz4EI;;EAKI,gDAAiF;AxBy4EzF;;AuBj4EE;EC3DA,WrBCa;EmBDX,yBnBiCa;EqB/Bf,qBrB+Be;AHi6EjB;;AK57EE;EmBAE,WrBLW;EmBDX,yBEDoF;EASpF,qBATyH;AxBy8E7H;;AwB77EE;EAEE,WrBZW;EmBDX,yBEDoF;EAgBpF,qBAhByH;EAqBvH,+CAAiF;AxB27EvF;;AwBt7EE;EAEE,WrB1BW;EqB2BX,yBrBKa;EqBJb,qBrBIa;AHo7EjB;;AwBj7EE;;EAGE,WrBtCW;EqBuCX,yBAzCuK;EA6CvK,qBA7C+M;AxB69EnN;;AwB96EI;;EAKI,+CAAiF;AxB86EzF;;AuBt6EE;EC3DA,crBUgB;EmBVd,yBnBEc;EqBAhB,qBrBAgB;AHq+ElB;;AKj+EE;EmBAE,crBIc;EmBVd,yBEDoF;EASpF,qBATyH;AxB8+E7H;;AwBl+EE;EAEE,crBHc;EmBVd,yBEDoF;EAgBpF,qBAhByH;EAqBvH,iDAAiF;AxBg+EvF;;AwB39EE;EAEE,crBjBc;EqBkBd,yBrB1Bc;EqB2Bd,qBrB3Bc;AHw/ElB;;AwBt9EE;;EAGE,crB7Bc;EqB8Bd,yBAzCuK;EA6CvK,qBA7C+M;AxBkgFnN;;AwBn9EI;;EAKI,iDAAiF;AxBm9EzF;;AuB38EE;EC3DA,WrBCa;EmBDX,yBnBSc;EqBPhB,qBrBOgB;AHmgFlB;;AKtgFE;EmBAE,WrBLW;EmBDX,yBEDoF;EASpF,qBATyH;AxBmhF7H;;AwBvgFE;EAEE,WrBZW;EmBDX,yBEDoF;EAgBpF,qBAhByH;EAqBvH,8CAAiF;AxBqgFvF;;AwBhgFE;EAEE,WrB1BW;EqB2BX,yBrBnBc;EqBoBd,qBrBpBc;AHshFlB;;AwB3/EE;;EAGE,WrBtCW;EqBuCX,yBAzCuK;EA6CvK,qBA7C+M;AxBuiFnN;;AwBx/EI;;EAKI,8CAAiF;AxBw/EzF;;AuB1+EE;ECPA,crB7Be;EqB8Bf,qBrB9Be;AHmhFjB;;AK1iFE;EmBwDE,WrB7DW;EqB8DX,yBrBlCa;EqBmCb,qBrBnCa;AHyhFjB;;AwBn/EE;EAEE,+CrBxCa;AH6hFjB;;AwBl/EE;EAEE,crB7Ca;EqB8Cb,6BAA6B;AxBo/EjC;;AwBj/EE;;EAGE,WrBhFW;EqBiFX,yBrBrDa;EqBsDb,qBrBtDa;AHyiFjB;;AwBj/EI;;EAKI,+CrB7DS;AH8iFjB;;AuB1gFE;ECPA,crBnDgB;EqBoDhB,qBrBpDgB;AHykFlB;;AK1kFE;EmBwDE,WrB7DW;EqB8DX,yBrBxDc;EqByDd,qBrBzDc;AH+kFlB;;AwBnhFE;EAEE,iDrB9Dc;AHmlFlB;;AwBlhFE;EAEE,crBnEc;EqBoEd,6BAA6B;AxBohFjC;;AwBjhFE;;EAGE,WrBhFW;EqBiFX,yBrB3Ec;EqB4Ed,qBrB5Ec;AH+lFlB;;AwBjhFI;;EAKI,iDrBnFU;AHomFlB;;AuB1iFE;ECPA,crBtBe;EqBuBf,qBrBvBe;AH4kFjB;;AK1mFE;EmBwDE,WrB7DW;EqB8DX,yBrB3Ba;EqB4Bb,qBrB5Ba;AHklFjB;;AwBnjFE;EAEE,+CrBjCa;AHslFjB;;AwBljFE;EAEE,crBtCa;EqBuCb,6BAA6B;AxBojFjC;;AwBjjFE;;EAGE,WrBhFW;EqBiFX,yBrB9Ca;EqB+Cb,qBrB/Ca;AHkmFjB;;AwBjjFI;;EAKI,+CrBtDS;AHumFjB;;AuB1kFE;ECPA,crBpBe;EqBqBf,qBrBrBe;AH0mFjB;;AK1oFE;EmBwDE,WrB7DW;EqB8DX,yBrBzBa;EqB0Bb,qBrB1Ba;AHgnFjB;;AwBnlFE;EAEE,gDrB/Ba;AHonFjB;;AwBllFE;EAEE,crBpCa;EqBqCb,6BAA6B;AxBolFjC;;AwBjlFE;;EAGE,WrBhFW;EqBiFX,yBrB5Ca;EqB6Cb,qBrB7Ca;AHgoFjB;;AwBjlFI;;EAKI,gDrBpDS;AHqoFjB;;AuB1mFE;ECPA,crBvBe;EqBwBf,qBrBxBe;AH6oFjB;;AK1qFE;EmBwDE,crBpDc;EqBqDd,yBrB5Ba;EqB6Bb,qBrB7Ba;AHmpFjB;;AwBnnFE;EAEE,+CrBlCa;AHupFjB;;AwBlnFE;EAEE,crBvCa;EqBwCb,6BAA6B;AxBonFjC;;AwBjnFE;;EAGE,crBvEc;EqBwEd,yBrB/Ca;EqBgDb,qBrBhDa;AHmqFjB;;AwBjnFI;;EAKI,+CrBvDS;AHwqFjB;;AuB1oFE;ECPA,crBzBe;EqB0Bf,qBrB1Be;AH+qFjB;;AK1sFE;EmBwDE,WrB7DW;EqB8DX,yBrB9Ba;EqB+Bb,qBrB/Ba;AHqrFjB;;AwBnpFE;EAEE,+CrBpCa;AHyrFjB;;AwBlpFE;EAEE,crBzCa;EqB0Cb,6BAA6B;AxBopFjC;;AwBjpFE;;EAGE,WrBhFW;EqBiFX,yBrBjDa;EqBkDb,qBrBlDa;AHqsFjB;;AwBjpFI;;EAKI,+CrBzDS;AH0sFjB;;AuB1qFE;ECPA,crBxDgB;EqByDhB,qBrBzDgB;AH8uFlB;;AK1uFE;EmBwDE,crBpDc;EqBqDd,yBrB7Dc;EqB8Dd,qBrB9Dc;AHovFlB;;AwBnrFE;EAEE,iDrBnEc;AHwvFlB;;AwBlrFE;EAEE,crBxEc;EqByEd,6BAA6B;AxBorFjC;;AwBjrFE;;EAGE,crBvEc;EqBwEd,yBrBhFc;EqBiFd,qBrBjFc;AHowFlB;;AwBjrFI;;EAKI,iDrBxFU;AHywFlB;;AuB1sFE;ECPA,crBjDgB;EqBkDhB,qBrBlDgB;AHuwFlB;;AK1wFE;EmBwDE,WrB7DW;EqB8DX,yBrBtDc;EqBuDd,qBrBvDc;AH6wFlB;;AwBntFE;EAEE,8CrB5Dc;AHixFlB;;AwBltFE;EAEE,crBjEc;EqBkEd,6BAA6B;AxBotFjC;;AwBjtFE;;EAGE,WrBhFW;EqBiFX,yBrBzEc;EqB0Ed,qBrB1Ec;AH6xFlB;;AwBjtFI;;EAKI,8CrBjFU;AHkyFlB;;AuB/tFA;EACE,gBpB4M+B;EoB3M/B,cpBjDe;EoBkDf,qBpB2F4C;AHuoF9C;;AK3yFE;EkB4EE,cpByF8D;EoBxF9D,0BpByF+C;AH0oFnD;;AuB1uFA;EAYI,0BpBoF+C;AH8oFnD;;AuB9uFA;EAiBI,cpBtFc;EoBuFd,oBAAoB;AvBiuFxB;;AuBttFA;ECPE,oBrB0SgC;ECnR5B,kBAtCY;EoBiBhB,gBrB+H+B;EOvN7B,qBP8N+B;AH4lFnC;;AuBztFA;ECXE,uBrBqSiC;EC9Q7B,mBAtCY;EoBiBhB,gBrBgI+B;EOxN7B,qBP+N+B;AHkmFnC;;AuBvtFA;EACE,cAAc;EACd,WAAW;AvB0tFb;;AuB5tFA;EAMI,kBpBuT+B;AHm6EnC;;AuBrtFA;;;EAII,WAAW;AvButFf;;AyBl2FA;ELgBM,gCjBiP2C;AHqmFjD;;AoBl1FM;EKpBN;ILqBQ,gBAAgB;EpBs1FtB;AACF;;AyB52FA;EAII,UAAU;AzB42Fd;;AyBx2FA;EAEI,aAAa;AzB02FjB;;AyBt2FA;EACE,kBAAkB;EAClB,SAAS;EACT,gBAAgB;ELDZ,6BjBkPwC;AHynF9C;;AoBv2FM;EKNN;ILOQ,gBAAgB;EpB22FtB;AACF;;A0Bh4FA;;;;EAIE,kBAAkB;A1Bm4FpB;;A0Bh4FA;EACE,mBAAmB;A1Bm4FrB;;A2B/2FI;EACE,qBAAqB;EACrB,oBxB+N0C;EwB9N1C,uBxB6N0C;EwB5N1C,WAAW;EAhCf,uBAA8B;EAC9B,qCAA4C;EAC5C,gBAAgB;EAChB,oCAA2C;A3Bm5F7C;;A2B91FI;EACE,cAAc;A3Bi2FpB;;A0B34FA;EACE,kBAAkB;EAClB,SAAS;EACT,OAAO;EACP,avBwpBsC;EuBvpBtC,aAAa;EACb,WAAW;EACX,gBvB8tBuC;EuB7tBvC,iBvB8tBmC;EuB7tBnC,oBAA4B;EtBsGxB,eAtCY;EsB9DhB,cvBXgB;EuBYhB,gBAAgB;EAChB,gBAAgB;EAChB,sBvBvBa;EuBwBb,4BAA4B;EAC5B,qCvBfa;EOCX,sBP6NgC;AHgsFpC;;A0Bt4FI;EACE,WAAW;EACX,OAAO;A1By4Fb;;A0Bt4FI;EACE,QAAQ;EACR,UAAU;A1By4FhB;;Ac73FI;EYnBA;IACE,WAAW;IACX,OAAO;E1Bo5FX;E0Bj5FE;IACE,QAAQ;IACR,UAAU;E1Bm5Fd;AACF;;Acx4FI;EYnBA;IACE,WAAW;IACX,OAAO;E1B+5FX;E0B55FE;IACE,QAAQ;IACR,UAAU;E1B85Fd;AACF;;Acn5FI;EYnBA;IACE,WAAW;IACX,OAAO;E1B06FX;E0Bv6FE;IACE,QAAQ;IACR,UAAU;E1By6Fd;AACF;;Ac95FI;EYnBA;IACE,WAAW;IACX,OAAO;E1Bq7FX;E0Bl7FE;IACE,QAAQ;IACR,UAAU;E1Bo7Fd;AACF;;A0B96FA;EAEI,SAAS;EACT,YAAY;EACZ,aAAa;EACb,uBvB4rBuC;AHovE3C;;A2B/8FI;EACE,qBAAqB;EACrB,oBxB+N0C;EwB9N1C,uBxB6N0C;EwB5N1C,WAAW;EAzBf,aAAa;EACb,qCAA4C;EAC5C,0BAAiC;EACjC,oCAA2C;A3B4+F7C;;A2B97FI;EACE,cAAc;A3Bi8FpB;;A0Bv7FA;EAEI,MAAM;EACN,WAAW;EACX,UAAU;EACV,aAAa;EACb,qBvB8qBuC;AH2wE3C;;A2Bt+FI;EACE,qBAAqB;EACrB,oBxB+N0C;EwB9N1C,uBxB6N0C;EwB5N1C,WAAW;EAlBf,mCAA0C;EAC1C,eAAe;EACf,sCAA6C;EAC7C,wBAA+B;A3B4/FjC;;A2Br9FI;EACE,cAAc;A3Bw9FpB;;A2Br/FI;EDmDE,iBAAiB;A1Bs8FvB;;A0Bj8FA;EAEI,MAAM;EACN,WAAW;EACX,UAAU;EACV,aAAa;EACb,sBvB6pBuC;AHsyE3C;;A2BjgGI;EACE,qBAAqB;EACrB,oBxB+N0C;EwB9N1C,uBxB6N0C;EwB5N1C,WAAW;A3BogGjB;;A2BxgGI;EAgBI,aAAa;A3B4/FrB;;A2Bz/FM;EACE,qBAAqB;EACrB,qBxB4MwC;EwB3MxC,uBxB0MwC;EwBzMxC,WAAW;EA9BjB,mCAA0C;EAC1C,yBAAgC;EAChC,sCAA6C;A3B2hG/C;;A2B1/FI;EACE,cAAc;A3B6/FpB;;A2BvgGM;EDiDA,iBAAiB;A1B09FvB;;A0Bn9FA;EAKI,WAAW;EACX,YAAY;A1Bk9FhB;;A0B78FA;EE9GE,SAAS;EACT,gBAAmB;EACnB,gBAAgB;EAChB,6BzBCgB;AH8jGlB;;A0B78FA;EACE,cAAc;EACd,WAAW;EACX,uBvBipBwC;EuBhpBxC,WAAW;EACX,gBvBgK+B;EuB/J/B,cvBhHgB;EuBiHhB,mBAAmB;EAEnB,mBAAmB;EACnB,6BAA6B;EAC7B,SAAS;A1B+8FX;;AKpkGE;EqBoIE,cvBinBqD;EuBhnBrD,qBAAqB;EJ/IrB,yBnBEc;AHklGlB;;A0Bh+FA;EAiCI,WvBpJW;EuBqJX,qBAAqB;EJtJrB,yBnB6Ba;AH6jGjB;;A0Bt+FA;EAwCI,cvBrJc;EuBsJd,oBAAoB;EACpB,6BAA6B;A1Bk8FjC;;A0B17FA;EACE,cAAc;A1B67FhB;;A0Bz7FA;EACE,cAAc;EACd,sBvB2lBwC;EuB1lBxC,gBAAgB;EtBrDZ,mBAtCY;EsB6FhB,cvBzKgB;EuB0KhB,mBAAmB;A1B47FrB;;A0Bx7FA;EACE,cAAc;EACd,uBvBilBwC;EuBhlBxC,cvB9KgB;AHymGlB;;A6BtnGA;;EAEE,kBAAkB;EAClB,2BAAoB;EAApB,oBAAoB;EACpB,sBAAsB;A7BynGxB;;A6B7nGA;;EAOI,kBAAkB;EAClB,kBAAc;EAAd,cAAc;A7B2nGlB;;AK1nGE;;EwBII,UAAU;A7B2nGhB;;A6BxoGA;;;;EAkBM,UAAU;A7B6nGhB;;A6BvnGA;EACE,oBAAa;EAAb,aAAa;EACb,mBAAe;EAAf,eAAe;EACf,oBAA2B;EAA3B,2BAA2B;A7B0nG7B;;A6B7nGA;EAMI,WAAW;A7B2nGf;;A6BvnGA;;EAII,iB1BmM6B;AHq7FjC;;A6B5nGA;;EnBHI,0BmBa8B;EnBZ9B,6BmBY8B;A7BwnGlC;;A6BloGA;;EnBWI,yBmBI6B;EnBH7B,4BmBG6B;A7BynGjC;;A6BzmGA;EACE,wBAAmC;EACnC,uBAAkC;A7B4mGpC;;A6B9mGA;;;EAOI,cAAc;A7B6mGlB;;A6B1mGE;EACE,eAAe;A7B6mGnB;;A6BzmGA;EACE,uBAAsC;EACtC,sBAAqC;A7B4mGvC;;A6BzmGA;EACE,sBAAsC;EACtC,qBAAqC;A7B4mGvC;;A6BxlGA;EACE,0BAAsB;EAAtB,sBAAsB;EACtB,qBAAuB;EAAvB,uBAAuB;EACvB,qBAAuB;EAAvB,uBAAuB;A7B2lGzB;;A6B9lGA;;EAOI,WAAW;A7B4lGf;;A6BnmGA;;EAYI,gB1BkH6B;AH0+FjC;;A6BxmGA;;EnBrEI,6BmBuF+B;EnBtF/B,4BmBsF+B;A7B4lGnC;;A6B9mGA;;EnBnFI,yBmB0G4B;EnBzG5B,0BmByG4B;A7B6lGhC;;A6B5kGA;;EAGI,gBAAgB;A7B8kGpB;;A6BjlGA;;;;EAOM,kBAAkB;EAClB,sBAAsB;EACtB,oBAAoB;A7BilG1B;;A8B1uGA;EACE,kBAAkB;EAClB,oBAAa;EAAb,aAAa;EACb,mBAAe;EAAf,eAAe;EACf,uBAAoB;EAApB,oBAAoB;EACpB,WAAW;A9B6uGb;;A8BlvGA;;;;EAWI,kBAAkB;EAClB,kBAAc;EAAd,cAAc;EACd,SAAS;EACT,YAAY;EACZ,gBAAgB;A9B8uGpB;;A8B7vGA;;;;;;;;;;;;EAoBM,iB3BkN2B;AHsiGjC;;A8B5wGA;;;EA4BI,UAAU;A9BsvGd;;A8BlxGA;EAiCI,UAAU;A9BqvGd;;A8BtxGA;;EpB4BI,0BoBUmD;EpBTnD,6BoBSmD;A9BsvGvD;;A8B5xGA;;EpB0CI,yBoBHmD;EpBInD,4BoBJmD;A9B2vGvD;;A8BlyGA;EA6CI,oBAAa;EAAb,aAAa;EACb,sBAAmB;EAAnB,mBAAmB;A9ByvGvB;;A8BvyGA;;EpB4BI,0BoBqB6E;EpBpB7E,6BoBoB6E;A9B4vGjF;;A8B7yGA;EpB0CI,yBoBQsE;EpBPtE,4BoBOsE;A9BgwG1E;;A8BrvGA;;EAEE,oBAAa;EAAb,aAAa;A9BwvGf;;A8B1vGA;;EAQI,kBAAkB;EAClB,UAAU;A9BuvGd;;A8BhwGA;;EAYM,UAAU;A9ByvGhB;;A8BrwGA;;;;;;;;EAoBI,iB3BqJ6B;AHumGjC;;A8BxvGA;EAAuB,kB3BiJU;AH2mGjC;;A8B3vGA;EAAsB,iB3BgJW;AH+mGjC;;A8BvvGA;EACE,oBAAa;EAAb,aAAa;EACb,sBAAmB;EAAnB,mBAAmB;EACnB,yB3B4RkC;E2B3RlC,gBAAgB;E1BuBZ,eAtCY;E0BiBhB,gB3BqL+B;E2BpL/B,gB3ByL+B;E2BxL/B,c3B9FgB;E2B+FhB,kBAAkB;EAClB,mBAAmB;EACnB,yB3BtGgB;E2BuGhB,yB3BrGgB;EOOd,sBP6NgC;AH4nGpC;;A8BvwGA;;EAkBI,aAAa;A9B0vGjB;;A8BhvGA;;EAEE,gCZR8D;AlB2vGhE;;A8BhvGA;;;;;;EAME,oB3BuQgC;ECnR5B,kBAtCY;E0BoDhB,gB3B4F+B;EOvN7B,qBP8N+B;AHipGnC;;A8BhvGA;;EAEE,kCZzB8D;AlB4wGhE;;A8BhvGA;;;;;;EAME,uB3BiPiC;EC9Q7B,mBAtCY;E0BqEhB,gB3B4E+B;EOxN7B,qBP+N+B;AHiqGnC;;A8BhvGA;;EAEE,sBAA0E;A9BmvG5E;;A8BxuGA;;;;;;EpB7II,0BoBmJ4B;EpBlJ5B,6BoBkJ4B;A9B4uGhC;;A8BzuGA;;;;;;EpBxII,yBoB8I2B;EpB7I3B,4BoB6I2B;A9B6uG/B;;A+Bl6GA;EACE,kBAAkB;EAClB,UAAU;EACV,cAAc;EACd,kBAA+C;EAC/C,oBAAqE;EACrE,iCAAmB;EAAnB,mBAAmB;A/Bq6GrB;;A+Bl6GA;EACE,2BAAoB;EAApB,oBAAoB;EACpB,kB5Bwf0C;AH66F5C;;A+Bl6GA;EACE,kBAAkB;EAClB,OAAO;EACP,WAAW;EACX,W5Bof0C;E4Bnf1C,eAAkF;EAClF,UAAU;A/Bq6GZ;;A+B36GA;EASI,W5BzBW;E4B0BX,qB5BEa;EmB7Bb,yBnB6Ba;AHq6GjB;;A+Bj7GA;EAoBM,gD5BRW;AHy6GjB;;A+Br7GA;EAyBI,qB5BqbsE;AH2+F1E;;A+Bz7GA;EA6BI,W5B7CW;E4B8CX,yB5Bif8E;E4Bhf9E,qB5Bgf8E;AHg7FlF;;A+B/7GA;EAuCM,c5BjDY;AH68GlB;;A+Bn8GA;EA0CQ,yB5BxDU;AHq9GlB;;A+Bn5GA;EACE,kBAAkB;EAClB,gBAAgB;EAEhB,mBAAmB;A/Bq5GrB;;A+Bz5GA;EASI,kBAAkB;EAClB,YAA+E;EAC/E,aAA+D;EAC/D,cAAc;EACd,W5BubwC;E4BtbxC,Y5BsbwC;E4BrbxC,oBAAoB;EACpB,WAAW;EACX,sB5BrFW;E4BsFX,yB5B+I6B;AHqwGjC;;A+Bt6GA;EAwBI,kBAAkB;EAClB,YAA+E;EAC/E,aAA+D;EAC/D,cAAc;EACd,W5BwawC;E4BvaxC,Y5BuawC;E4BtaxC,WAAW;EACX,mCAAgE;A/Bk5GpE;;A+Bz4GA;ErBjGI,sBP6NgC;AHixGpC;;A+B74GA;EAOM,kOb7D4E;AlBu8GlF;;A+Bj5GA;EAaM,qB5B7FW;EmB7Bb,yBnB6Ba;AHs+GjB;;A+Bt5GA;EAkBM,+KbxE4E;AlBg9GlF;;A+B15GA;ET7GI,wCnB6Ba;AH8+GjB;;A+B95GA;ET7GI,wCnB6Ba;AHk/GjB;;A+B93GA;EAGI,kB5ByZ+C;AHs+FnD;;A+Bl4GA;EAQM,8KblG4E;AlBg+GlF;;A+Bt4GA;ETjJI,wCnB6Ba;AH8/GjB;;A+Bl3GA;EACE,qBAA2D;A/Bq3G7D;;A+Bt3GA;EAKM,cAAqD;EACrD,c5BiY+E;E4BhY/E,mBAAmB;EAEnB,qB5B+X4E;AHq/FlF;;A+B73GA;EAaM,wBblE0D;EamE1D,0BbnE0D;EaoE1D,uBbhD0D;EaiD1D,wBbjD0D;EakD1D,yB5BpLY;E4BsLZ,qB5BqX4E;EiBviB5E,iJjByf+H;EiBzf/H,yIjByf+H;EiBzf/H,8KjByf+H;AH6iGrI;;AoBliHM;EW2JN;IX1JQ,gBAAgB;EpBsiHtB;AACF;;A+B74GA;EA0BM,sB5BlMS;E4BmMT,sCAA4E;EAA5E,8BAA4E;A/Bu3GlF;;A+Bl5GA;ETzKI,wCnB6Ba;AHkiHjB;;A+Bz2GA;EACE,qBAAqB;EACrB,WAAW;EACX,mCbrG8D;EasG9D,0C5BmKkC;ECpQ9B,eAtCY;E2B0IhB,gB5B4D+B;E4B3D/B,gB5BgE+B;E4B/D/B,c5BvNgB;E4BwNhB,sBAAsB;EACtB,uO5BkW+I;E4BjW/I,yB5B7NgB;EOOd,sBP6NgC;E4BJlC,wBAAgB;EAAhB,qBAAgB;EAAhB,gBAAgB;A/B02GlB;;A+Bz3GA;EAkBI,qB5BuPsE;E4BtPtE,UAAU;EAKR,gD5BjNW;AHwjHjB;;A+B/3GA;EAiCM,c5B/OY;E4BgPZ,sB5BvPS;AHylHf;;A+Bp4GA;EAwCI,YAAY;EACZ,sB5B8HgC;E4B7HhC,sBAAsB;A/Bg2G1B;;A+B14GA;EA8CI,c5B7Pc;E4B8Pd,yB5BlQc;AHkmHlB;;A+B/4GA;EAoDI,aAAa;A/B+1GjB;;A+Bn5GA;EAyDI,kBAAkB;EAClB,0B5BxQc;AHsmHlB;;A+B11GA;EACE,kCbjK8D;EakK9D,oB5BgHkC;E4B/GlC,uB5B+GkC;E4B9GlC,oB5B+GiC;EC9Q7B,mBAtCY;AJmiHlB;;A+B11GA;EACE,gCbzK8D;Ea0K9D,mB5B6GiC;E4B5GjC,sB5B4GiC;E4B3GjC,kB5B4GgC;ECnR5B,kBAtCY;AJ2iHlB;;A+Br1GA;EACE,kBAAkB;EAClB,qBAAqB;EACrB,WAAW;EACX,mCbzL8D;Ea0L9D,gBAAgB;A/Bw1GlB;;A+Br1GA;EACE,kBAAkB;EAClB,UAAU;EACV,WAAW;EACX,mCbjM8D;EakM9D,SAAS;EACT,UAAU;A/Bw1GZ;;A+B91GA;EASI,qB5BqKsE;E4BpKtE,gD5B9Ra;AHunHjB;;A+Bn2GA;;EAgBI,yB5B9Tc;AHspHlB;;A+Bx2GA;EAqBM,iB5B4TQ;AH2hGd;;A+B52GA;EA0BI,0BAA0B;A/Bs1G9B;;A+Bl1GA;EACE,kBAAkB;EAClB,MAAM;EACN,QAAQ;EACR,OAAO;EACP,UAAU;EACV,mCbjO8D;EakO9D,yB5BuCkC;E4BrClC,gB5B/D+B;E4BgE/B,gB5B3D+B;E4B4D/B,c5BlVgB;E4BmVhB,sB5B1Va;E4B2Vb,yB5BvVgB;EOOd,sBP6NgC;AHw8GpC;;A+Bl2GA;EAkBI,kBAAkB;EAClB,MAAM;EACN,QAAQ;EACR,SAAS;EACT,UAAU;EACV,cAAc;EACd,6BbnP4D;EaoP5D,yB5BqBgC;E4BpBhC,gB5B3E6B;E4B4E7B,c5BlWc;E4BmWd,iBAAiB;ET3WjB,yBnBGc;E4B0Wd,oBAAoB;ErBjWpB,kCqBkWgF;A/Bo1GpF;;A+B10GA;EACE,WAAW;EACX,cbzQ2B;Ea0Q3B,UAAU;EACV,6BAA6B;EAC7B,wBAAgB;EAAhB,qBAAgB;EAAhB,gBAAgB;A/B60GlB;;A+Bl1GA;EAQI,aAAa;A/B80GjB;;A+Bt1GA;EAY8B,gE5BvWb;AHqrHjB;;A+B11GA;EAa8B,gE5BxWb;AHyrHjB;;A+B91GA;EAc8B,gE5BzWb;AH6rHjB;;A+Bl2GA;EAkBI,SAAS;A/Bo1Gb;;A+Bt2GA;EAsBI,W5BqN6C;E4BpN7C,Y5BoN6C;E4BnN7C,oBAAyE;EThZzE,yBnB6Ba;E4BqXb,S5BoN0C;EO1lB1C,mBP2lB6C;EiB7lB3C,oHjByf+H;EiBzf/H,4GjByf+H;E4B7GjI,wBAAgB;EAAhB,gBAAgB;A/Bm1GpB;;AoB3tHM;EW0WN;IXzWQ,wBAAgB;IAAhB,gBAAgB;EpB+tHtB;AACF;;A+Bv3GA;ETxXI,yBnB2mB2E;AHwoG/E;;A+B33GA;EAsCI,W5B8LoC;E4B7LpC,c5B8LqC;E4B7LrC,kBAAkB;EAClB,e5B6LuC;E4B5LvC,yB5B9Zc;E4B+Zd,yBAAyB;ErBvZzB,mBPolBoC;AH6pGxC;;A+Br4GA;EAiDI,W5B0L6C;E4BzL7C,Y5ByL6C;EmBnmB7C,yBnB6Ba;E4B+Yb,S5B0L0C;EO1lB1C,mBP2lB6C;EiB7lB3C,iHjByf+H;EiBzf/H,4GjByf+H;E4BnFjI,qBAAgB;EAAhB,gBAAgB;A/Bu1GpB;;AoBzvHM;EW0WN;IXzWQ,qBAAgB;IAAhB,gBAAgB;EpB6vHtB;AACF;;A+Br5GA;ETxXI,yBnB2mB2E;AHsqG/E;;A+Bz5GA;EAgEI,W5BoKoC;E4BnKpC,c5BoKqC;E4BnKrC,kBAAkB;EAClB,e5BmKuC;E4BlKvC,yB5Bxbc;E4Bybd,yBAAyB;ErBjbzB,mBPolBoC;AH2rGxC;;A+Bn6GA;EA2EI,W5BgK6C;E4B/J7C,Y5B+J6C;E4B9J7C,aAAa;EACb,oB5BpE+B;E4BqE/B,mB5BrE+B;EmBlY/B,yBnB6Ba;E4B4ab,S5B6J0C;EO1lB1C,mBP2lB6C;EiB7lB3C,gHjByf+H;EiBzf/H,4GjByf+H;E4BtDjI,gBAAgB;A/B21GpB;;AoB1xHM;EW0WN;IXzWQ,oBAAgB;IAAhB,gBAAgB;EpB8xHtB;AACF;;A+Bt7GA;ETxXI,yBnB2mB2E;AHusG/E;;A+B17GA;EA6FI,W5BuIoC;E4BtIpC,c5BuIqC;E4BtIrC,kBAAkB;EAClB,e5BsIuC;E4BrIvC,6BAA6B;EAC7B,yBAAyB;EACzB,oBAA4C;A/Bi2GhD;;A+Bp8GA;EAwGI,yB5B5dc;EOQd,mBPolBoC;AHiuGxC;;A+Bz8GA;EA6GI,kBAAkB;EAClB,yB5Blec;EOQd,mBPolBoC;AHuuGxC;;A+B/8GA;EAoHM,yB5BteY;AHq0HlB;;A+Bn9GA;EAwHM,eAAe;A/B+1GrB;;A+Bv9GA;EA4HM,yB5B9eY;AH60HlB;;A+B39GA;EAgIM,eAAe;A/B+1GrB;;A+B/9GA;EAoIM,yB5BtfY;AHq1HlB;;A+B11GA;;;EXvfM,4GjByf+H;AH81GrI;;AoBn1HM;EWmfN;;;IXlfQ,gBAAgB;EpBy1HtB;AACF;;AgC12HA;EACE,oBAAa;EAAb,aAAa;EACb,mBAAe;EAAf,eAAe;EACf,eAAe;EACf,gBAAgB;EAChB,gBAAgB;AhC62HlB;;AgC12HA;EACE,cAAc;EACd,oB7ByqBsC;AHosGxC;;AK52HE;E2BGE,qBAAqB;AhC62HzB;;AgCn3HA;EAWI,c7BXc;E6BYd,oBAAoB;EACpB,eAAe;AhC42HnB;;AgCp2HA;EACE,gC7BzBgB;AHg4HlB;;AgCx2HA;EAII,mB7BsM6B;AHkqHjC;;AgC52HA;EAQI,6BAAgD;EtBfhD,+BPoNgC;EOnNhC,gCPmNgC;AHqqHpC;;AKp4HE;E2B8BI,qC7BpCY;AH84HlB;;AgCt3HA;EAgBM,c7BrCY;E6BsCZ,6BAA6B;EAC7B,yBAAyB;AhC02H/B;;AgC53HA;;EAwBI,c7B5Cc;E6B6Cd,sB7BpDW;E6BqDX,kC7BrDW;AH85Hf;;AgCn4HA;EA+BI,gB7B2K6B;EOjN7B,yBsBwC4B;EtBvC5B,0BsBuC4B;AhCw2HhC;;AgC/1HA;EtB1DI,sBP6NgC;AHgsHpC;;AgCn2HA;;EAOI,W7B5EW;E6B6EX,yB7BjDa;AHk5HjB;;AgCx1HA;;EAGI,kBAAc;EAAd,cAAc;EACd,kBAAkB;AhC01HtB;;AgCt1HA;;EAGI,0BAAa;EAAb,aAAa;EACb,oBAAY;EAAZ,YAAY;EACZ,kBAAkB;AhCw1HtB;;AgC/0HA;EAEI,aAAa;AhCi1HjB;;AgCn1HA;EAKI,cAAc;AhCk1HlB;;AiCz7HA;EACE,kBAAkB;EAClB,oBAAa;EAAb,aAAa;EACb,mBAAe;EAAf,eAAe;EACf,sBAAmB;EAAnB,mBAAmB;EACnB,sBAA8B;EAA9B,8BAA8B;EAC9B,oB9BgHW;AH40Hb;;AiCl8HA;;EAWI,oBAAa;EAAb,aAAa;EACb,mBAAe;EAAf,eAAe;EACf,sBAAmB;EAAnB,mBAAmB;EACnB,sBAA8B;EAA9B,8BAA8B;AjC47HlC;;AiCx6HA;EACE,qBAAqB;EACrB,sB9BiqB+E;E8BhqB/E,yB9BgqB+E;E8B/pB/E,kB9BgFW;ECRP,kBAtCY;E6BhChB,oBAAoB;EACpB,mBAAmB;AjC26HrB;;AKr9HE;E4B6CE,qBAAqB;AjC46HzB;;AiCn6HA;EACE,oBAAa;EAAb,aAAa;EACb,0BAAsB;EAAtB,sBAAsB;EACtB,eAAe;EACf,gBAAgB;EAChB,gBAAgB;AjCs6HlB;;AiC36HA;EAQI,gBAAgB;EAChB,eAAe;AjCu6HnB;;AiCh7HA;EAaI,gBAAgB;EAChB,WAAW;AjCu6Hf;;AiC95HA;EACE,qBAAqB;EACrB,mB9BwlBuC;E8BvlBvC,sB9BulBuC;AH00GzC;;AiCr5HA;EACE,6BAAgB;EAAhB,gBAAgB;EAChB,oBAAY;EAAZ,YAAY;EAGZ,sBAAmB;EAAnB,mBAAmB;AjCs5HrB;;AiCl5HA;EACE,wB9BmmBwC;EC1lBpC,kBAtCY;E6B+BhB,cAAc;EACd,6BAA6B;EAC7B,6BAAuC;EvBxGrC,sBP6NgC;AHiyHpC;;AKhgIE;E4B8GE,qBAAqB;AjCs5HzB;;AiCh5HA;EACE,qBAAqB;EACrB,YAAY;EACZ,aAAa;EACb,sBAAsB;EACtB,WAAW;EACX,mCAAmC;EACnC,0BAA0B;AjCm5H5B;;Acr9HI;EmB4EC;;IAGK,gBAAgB;IAChB,eAAe;EjC44HvB;AACF;;Ac1+HI;EmByFA;IAoBI,yBAAqB;IAArB,qBAAqB;IACrB,oBAA2B;IAA3B,2BAA2B;EjCk4HjC;EiCv5HG;IAwBK,uBAAmB;IAAnB,mBAAmB;EjCk4H3B;EiC15HG;IA2BO,kBAAkB;EjCk4H5B;EiC75HG;IA+BO,qB9B4hB6B;I8B3hB7B,oB9B2hB6B;EHs2GvC;EiCj6HG;;IAsCK,qBAAiB;IAAjB,iBAAiB;EjC+3HzB;EiCr6HG;IAqDK,+BAAwB;IAAxB,wBAAwB;IAGxB,6BAAgB;IAAhB,gBAAgB;EjCi3HxB;EiCz6HG;IA4DK,aAAa;EjCg3HrB;AACF;;Acz/HI;EmB4EC;;IAGK,gBAAgB;IAChB,eAAe;EjCg7HvB;AACF;;Ac9gII;EmByFA;IAoBI,yBAAqB;IAArB,qBAAqB;IACrB,oBAA2B;IAA3B,2BAA2B;EjCs6HjC;EiC37HG;IAwBK,uBAAmB;IAAnB,mBAAmB;EjCs6H3B;EiC97HG;IA2BO,kBAAkB;EjCs6H5B;EiCj8HG;IA+BO,qB9B4hB6B;I8B3hB7B,oB9B2hB6B;EH04GvC;EiCr8HG;;IAsCK,qBAAiB;IAAjB,iBAAiB;EjCm6HzB;EiCz8HG;IAqDK,+BAAwB;IAAxB,wBAAwB;IAGxB,6BAAgB;IAAhB,gBAAgB;EjCq5HxB;EiC78HG;IA4DK,aAAa;EjCo5HrB;AACF;;Ac7hII;EmB4EC;;IAGK,gBAAgB;IAChB,eAAe;EjCo9HvB;AACF;;AcljII;EmByFA;IAoBI,yBAAqB;IAArB,qBAAqB;IACrB,oBAA2B;IAA3B,2BAA2B;EjC08HjC;EiC/9HG;IAwBK,uBAAmB;IAAnB,mBAAmB;EjC08H3B;EiCl+HG;IA2BO,kBAAkB;EjC08H5B;EiCr+HG;IA+BO,qB9B4hB6B;I8B3hB7B,oB9B2hB6B;EH86GvC;EiCz+HG;;IAsCK,qBAAiB;IAAjB,iBAAiB;EjCu8HzB;EiC7+HG;IAqDK,+BAAwB;IAAxB,wBAAwB;IAGxB,6BAAgB;IAAhB,gBAAgB;EjCy7HxB;EiCj/HG;IA4DK,aAAa;EjCw7HrB;AACF;;AcjkII;EmB4EC;;IAGK,gBAAgB;IAChB,eAAe;EjCw/HvB;AACF;;ActlII;EmByFA;IAoBI,yBAAqB;IAArB,qBAAqB;IACrB,oBAA2B;IAA3B,2BAA2B;EjC8+HjC;EiCngIG;IAwBK,uBAAmB;IAAnB,mBAAmB;EjC8+H3B;EiCtgIG;IA2BO,kBAAkB;EjC8+H5B;EiCzgIG;IA+BO,qB9B4hB6B;I8B3hB7B,oB9B2hB6B;EHk9GvC;EiC7gIG;;IAsCK,qBAAiB;IAAjB,iBAAiB;EjC2+HzB;EiCjhIG;IAqDK,+BAAwB;IAAxB,wBAAwB;IAGxB,6BAAgB;IAAhB,gBAAgB;EjC69HxB;EiCrhIG;IA4DK,aAAa;EjC49HrB;AACF;;AiC9hIA;EAyBQ,yBAAqB;EAArB,qBAAqB;EACrB,oBAA2B;EAA3B,2BAA2B;AjCygInC;;AiCniIA;;EAQU,gBAAgB;EAChB,eAAe;AjCgiIzB;;AiCziIA;EA6BU,uBAAmB;EAAnB,mBAAmB;AjCghI7B;;AiC7iIA;EAgCY,kBAAkB;AjCihI9B;;AiCjjIA;EAoCY,qB9B4hB6B;E8B3hB7B,oB9B2hB6B;AHs/GzC;;AiCtjIA;;EA2CU,qBAAiB;EAAjB,iBAAiB;AjCghI3B;;AiC3jIA;EA0DU,+BAAwB;EAAxB,wBAAwB;EAGxB,6BAAgB;EAAhB,gBAAgB;AjCmgI1B;;AiChkIA;EAiEU,aAAa;AjCmgIvB;;AiCt/HA;EAEI,yB9B/MW;AHusIf;;AKxsIE;E4BmNI,yB9BlNS;AH2sIf;;AiC9/HA;EAWM,yB9BxNS;AH+sIf;;AKhtIE;E4B4NM,yB9B3NO;AHmtIf;;AiCtgIA;EAkBQ,yB9B/NO;AHutIf;;AiC1gIA;;;;EA0BM,yB9BvOS;AH8tIf;;AiCjhIA;EA+BI,yB9B5OW;E8B6OX,gC9B7OW;AHmuIf;;AiCthIA;EAoCI,mRfrM8E;AlB2rIlF;;AiC1hIA;EAwCI,yB9BrPW;AH2uIf;;AiC9hIA;EA0CM,yB9BvPS;AH+uIf;;AKhvIE;E4B2PM,yB9B1PO;AHmvIf;;AiCl/HA;EAEI,W9B7QW;AHiwIf;;AKxvIE;E4BuQI,W9BhRS;AHqwIf;;AiC1/HA;EAWM,+B9BtRS;AHywIf;;AKhwIE;E4BgRM,gC9BzRO;AH6wIf;;AiClgIA;EAkBQ,gC9B7RO;AHixIf;;AiCtgIA;;;;EA0BM,W9BrSS;AHwxIf;;AiC7gIA;EA+BI,+B9B1SW;E8B2SX,sC9B3SW;AH6xIf;;AiClhIA;EAoCI,yRfzP8E;AlB2uIlF;;AiCthIA;EAwCI,+B9BnTW;AHqyIf;;AiC1hIA;EA0CM,W9BrTS;AHyyIf;;AKhyIE;E4B+SM,W9BxTO;AH6yIf;;AkChzIA;EACE,kBAAkB;EAClB,oBAAa;EAAb,aAAa;EACb,0BAAsB;EAAtB,sBAAsB;EACtB,YAAY;EAEZ,qBAAqB;EACrB,sB/BJa;E+BKb,2BAA2B;EAC3B,sC/BIa;EOCX,sBP6NgC;AHilIpC;;AkC5zIA;EAaI,eAAe;EACf,cAAc;AlCmzIlB;;AkCj0IA;EAkBI,mBAAmB;EACnB,sBAAsB;AlCmzI1B;;AkCt0IA;EAsBM,mBAAmB;ExBCrB,2CQmH4D;ERlH5D,4CQkH4D;AlBksIhE;;AkC50IA;EA2BM,sBAAsB;ExBUxB,+CQqG4D;ERpG5D,8CQoG4D;AlBwsIhE;;AkCl1IA;;EAoCI,aAAa;AlCmzIjB;;AkC/yIA;EAGE,kBAAc;EAAd,cAAc;EAGd,eAAe;EACf,gB/B0wByC;AHoiH3C;;AkC1yIA;EACE,sB/BowBwC;AHyiH1C;;AkC1yIA;EACE,qBAA+B;EAC/B,gBAAgB;AlC6yIlB;;AkC1yIA;EACE,gBAAgB;AlC6yIlB;;AKl2IE;E6B0DE,qBAAqB;AlC4yIzB;;AkC9yIA;EAMI,oB/BmvBuC;AHyjH3C;;AkCpyIA;EACE,wB/B0uByC;E+BzuBzC,gBAAgB;EAEhB,qC/BrEa;E+BsEb,6C/BtEa;AH42If;;AkC3yIA;ExBhEI,0DwBwE8E;AlCuyIlF;;AkCnyIA;EACE,wB/B8tByC;E+B5tBzC,qC/BhFa;E+BiFb,0C/BjFa;AHs3If;;AkCzyIA;ExB5EI,0DQ4H4D;AlB6vIhE;;AkC7xIA;EACE,uBAAiC;EACjC,uB/B4sBwC;E+B3sBxC,sBAAgC;EAChC,gBAAgB;AlCgyIlB;;AkC7xIA;EACE,uBAAiC;EACjC,sBAAgC;AlCgyIlC;;AkC5xIA;EACE,kBAAkB;EAClB,MAAM;EACN,QAAQ;EACR,SAAS;EACT,OAAO;EACP,gB/BusByC;EOtzBvC,kCQ4H4D;AlBmxIhE;;AkC5xIA;;;EAGE,oBAAc;EAAd,cAAc;EACd,WAAW;AlC+xIb;;AkC5xIA;;ExBjHI,2CQmH4D;ERlH5D,4CQkH4D;AlBgyIhE;;AkC7xIA;;ExBxGI,+CQqG4D;ERpG5D,8CQoG4D;AlBsyIhE;;AkC3xIA;EAEI,mB/B+qBsD;AH8mH1D;;Ac53II;EoB6FJ;IAMI,oBAAa;IAAb,aAAa;IACb,uBAAmB;IAAnB,mBAAmB;IACnB,mB/ByqBsD;I+BxqBtD,kB/BwqBsD;EHsnHxD;EkCvyIF;IAaM,gBAAY;IAAZ,YAAY;IACZ,kB/BmqBoD;I+BlqBpD,gBAAgB;IAChB,iB/BiqBoD;EH4nHxD;AACF;;AkCpxIA;EAII,mB/BmpBsD;AHioH1D;;Ac/4II;EoBuHJ;IAQI,oBAAa;IAAb,aAAa;IACb,uBAAmB;IAAnB,mBAAmB;ElCqxIrB;EkC9xIF;IAcM,gBAAY;IAAZ,YAAY;IACZ,gBAAgB;ElCmxIpB;EkClyIF;IAkBQ,cAAc;IACd,cAAc;ElCmxIpB;EkCtyIF;IxBjJI,0BwB0KoC;IxBzKpC,6BwByKoC;ElCixItC;EkC1yIF;;IA8BY,0BAA0B;ElCgxIpC;EkC9yIF;;IAmCY,6BAA6B;ElC+wIvC;EkClzIF;IxBnII,yBwB2KmC;IxB1KnC,4BwB0KmC;ElC8wIrC;EkCtzIF;;IA6CY,yBAAyB;ElC6wInC;EkC1zIF;;IAkDY,4BAA4B;ElC4wItC;AACF;;AkChwIA;EAEI,sB/BwkBsC;AH0rH1C;;Ac17II;EoBsLJ;IAMI,uB/BqlBiC;I+BrlBjC,oB/BqlBiC;I+BrlBjC,e/BqlBiC;I+BplBjC,2B/BqlBuC;I+BrlBvC,wB/BqlBuC;I+BrlBvC,mB/BqlBuC;I+BplBvC,UAAU;IACV,SAAS;ElCmwIX;EkC5wIF;IAYM,qBAAqB;IACrB,WAAW;ElCmwIf;AACF;;AkC1vIA;EACE,qBAAqB;AlC6vIvB;;AkC9vIA;EAII,gBAAgB;AlC8vIpB;;AkClwIA;EAOM,gBAAgB;ExBvOlB,6BwBwOiC;ExBvOjC,4BwBuOiC;AlCgwIrC;;AkCxwIA;ExB9OI,yBwB0P8B;ExBzP9B,0BwByP8B;AlCiwIlC;;AkC7wIA;ExBvPI,gBwBuQ0B;EACxB,mB/B9C2B;AH+yIjC;;AmC3hJA;EACE,oBAAa;EAAb,aAAa;EACb,mBAAe;EAAf,eAAe;EACf,qBhC6hCsC;EgC5hCtC,mBhC+hCsC;EgC7hCtC,gBAAgB;EAChB,yBhCEgB;EOSd,sBP6NgC;AHszIpC;;AmC1hJA;EACE,oBAAa;EAAb,aAAa;AnC6hJf;;AmC9hJA;EAKI,oBhCihCqC;AH4gHzC;;AmCliJA;EAQM,qBAAqB;EACrB,qBhC6gCmC;EgC5gCnC,chCRY;EgCSZ,YhCkhCuC;AH4gH7C;;AmCziJA;EAsBI,0BAA0B;AnCuhJ9B;;AmC7iJA;EA0BI,qBAAqB;AnCuhJzB;;AmCjjJA;EA8BI,chC5Bc;AHmjJlB;;AoChkJA;EACE,oBAAa;EAAb,aAAa;E7BGb,eAAe;EACf,gBAAgB;EGad,sBP6NgC;AHw1IpC;;AoCjkJA;EACE,kBAAkB;EAClB,cAAc;EACd,uBjC8wBwC;EiC7wBxC,iBjCkO+B;EiCjO/B,iBjCixBsC;EiChxBtC,cjCuBe;EiCrBf,sBjCPa;EiCQb,yBjCLgB;AHwkJlB;;AoC5kJA;EAYI,UAAU;EACV,cjC8J8D;EiC7J9D,qBAAqB;EACrB,yBjCZc;EiCad,qBjCZc;AHglJlB;;AoCplJA;EAoBI,UAAU;EACV,UjCywBiC;EiCxwBjC,gDjCOa;AH6jJjB;;AoChkJA;EAGM,cAAc;E1BahB,+BP+LgC;EO9LhC,kCP8LgC;AHu3IpC;;AoCtkJA;E1BEI,gCP6MgC;EO5MhC,mCP4MgC;AH43IpC;;AoC3kJA;EAcI,UAAU;EACV,WjCxCW;EiCyCX,yBjCba;EiCcb,qBjCda;AH+kJjB;;AoCllJA;EAqBI,cjCxCc;EiCyCd,oBAAoB;EAEpB,YAAY;EACZ,sBjClDW;EiCmDX,qBjChDc;AHgnJlB;;AqCvnJE;EACE,uBlCuxBsC;EC5pBpC,kBAtCY;EiCnFd,gBlCmO6B;AHu5IjC;;AqCrnJM;E3BqCF,8BPgM+B;EO/L/B,iCP+L+B;AHq5InC;;AqCrnJM;E3BkBF,+BP8M+B;EO7M/B,kCP6M+B;AH05InC;;AqCvoJE;EACE,uBlCqxBqC;EC1pBnC,mBAtCY;EiCnFd,gBlCoO6B;AHs6IjC;;AqCroJM;E3BqCF,8BPiM+B;EOhM/B,iCPgM+B;AHo6InC;;AqCroJM;E3BkBF,+BP+M+B;EO9M/B,kCP8M+B;AHy6InC;;AsCrpJA;EACE,qBAAqB;EACrB,qBnCs5BsC;ECr1BpC,cAAW;EkC/Db,gBnCuR+B;EmCtR/B,cAAc;EACd,kBAAkB;EAClB,mBAAmB;EACnB,wBAAwB;E5BKtB,sBP6NgC;EiB/N9B,qIjBgb6I;AHuuInJ;;AoBnpJM;EkBfN;IlBgBQ,gBAAgB;EpBupJtB;AACF;;AK7pJE;EiCGI,qBAAqB;AtC8pJ3B;;AsC5qJA;EAoBI,aAAa;AtC4pJjB;;AsCvpJA;EACE,kBAAkB;EAClB,SAAS;AtC0pJX;;AsCnpJA;EACE,oBnC23BsC;EmC13BtC,mBnC03BsC;EOj5BpC,oBPo5BqC;AH0xHzC;;AsC9oJE;ECjDA,WpCMa;EoCLb,yBpCiCe;AHkqJjB;;AKrrJE;EkCVI,WpCCS;EoCAT,yBAAkC;AvCmsJxC;;AuCtsJU;EAQJ,UAAU;EACV,+CpCsBW;AH4qJjB;;AsC7pJE;ECjDA,WpCMa;EoCLb,yBpCWgB;AHusJlB;;AKpsJE;EkCVI,WpCCS;EoCAT,yBAAkC;AvCktJxC;;AuCrtJU;EAQJ,UAAU;EACV,iDpCAY;AHitJlB;;AsC5qJE;ECjDA,WpCMa;EoCLb,yBpCwCe;AHyrJjB;;AKntJE;EkCVI,WpCCS;EoCAT,yBAAkC;AvCiuJxC;;AuCpuJU;EAQJ,UAAU;EACV,+CpC6BW;AHmsJjB;;AsC3rJE;ECjDA,WpCMa;EoCLb,yBpC0Ce;AHssJjB;;AKluJE;EkCVI,WpCCS;EoCAT,yBAAkC;AvCgvJxC;;AuCnvJU;EAQJ,UAAU;EACV,gDpC+BW;AHgtJjB;;AsC1sJE;ECjDA,cpCegB;EoCdhB,yBpCuCe;AHwtJjB;;AKjvJE;EkCVI,cpCUY;EoCTZ,yBAAkC;AvC+vJxC;;AuClwJU;EAQJ,UAAU;EACV,+CpC4BW;AHkuJjB;;AsCztJE;ECjDA,WpCMa;EoCLb,yBpCqCe;AHyuJjB;;AKhwJE;EkCVI,WpCCS;EoCAT,yBAAkC;AvC8wJxC;;AuCjxJU;EAQJ,UAAU;EACV,+CpC0BW;AHmvJjB;;AsCxuJE;ECjDA,cpCegB;EoCdhB,yBpCMgB;AHuxJlB;;AK/wJE;EkCVI,cpCUY;EoCTZ,yBAAkC;AvC6xJxC;;AuChyJU;EAQJ,UAAU;EACV,iDpCLY;AHiyJlB;;AsCvvJE;ECjDA,WpCMa;EoCLb,yBpCagB;AH+xJlB;;AK9xJE;EkCVI,WpCCS;EoCAT,yBAAkC;AvC4yJxC;;AuC/yJU;EAQJ,UAAU;EACV,8CpCEY;AHyyJlB;;AwCxzJA;EACE,kBAAoD;EACpD,mBrCmzBsC;EqCjzBtC,yBrCKgB;EOSd,qBP8N+B;AH+kJnC;;AcnwJI;E0B5DJ;IAQI,kBrC6yBoC;EH+gItC;AACF;;AwCzzJA;EACE,gBAAgB;EAChB,eAAe;E9BIb,gB8BHsB;AxC4zJ1B;;AyCv0JA;EACE,kBAAkB;EAClB,wBtCm9ByC;EsCl9BzC,mBtCm9BsC;EsCl9BtC,6BAA6C;E/BU3C,sBP6NgC;AHomJpC;;AyCt0JA;EAEE,cAAc;AzCw0JhB;;AyCp0JA;EACE,gBtC4Q+B;AH2jJjC;;AyC/zJA;EACE,mBAAsD;AzCk0JxD;;AyCn0JA;EAKI,kBAAkB;EAClB,MAAM;EACN,QAAQ;EACR,UAAU;EACV,wBtCo7BuC;EsCn7BvC,cAAc;AzCk0JlB;;AyCxzJE;EC/CA,cxBwGgE;EInG9D,yBJmG8D;EwBtGhE,qBxBsGgE;AlBqwJlE;;A0Cz2JE;EACE,yBAAqC;A1C42JzC;;A0Cz2JE;EACE,cAA0B;A1C42J9B;;AyCt0JE;EC/CA,cxBwGgE;EInG9D,yBJmG8D;EwBtGhE,qBxBsGgE;AlBmxJlE;;A0Cv3JE;EACE,yBAAqC;A1C03JzC;;A0Cv3JE;EACE,cAA0B;A1C03J9B;;AyCp1JE;EC/CA,cxBwGgE;EInG9D,yBJmG8D;EwBtGhE,qBxBsGgE;AlBiyJlE;;A0Cr4JE;EACE,yBAAqC;A1Cw4JzC;;A0Cr4JE;EACE,cAA0B;A1Cw4J9B;;AyCl2JE;EC/CA,cxBwGgE;EInG9D,yBJmG8D;EwBtGhE,qBxBsGgE;AlB+yJlE;;A0Cn5JE;EACE,yBAAqC;A1Cs5JzC;;A0Cn5JE;EACE,cAA0B;A1Cs5J9B;;AyCh3JE;EC/CA,cxBwGgE;EInG9D,yBJmG8D;EwBtGhE,qBxBsGgE;AlB6zJlE;;A0Cj6JE;EACE,yBAAqC;A1Co6JzC;;A0Cj6JE;EACE,cAA0B;A1Co6J9B;;AyC93JE;EC/CA,cxBwGgE;EInG9D,yBJmG8D;EwBtGhE,qBxBsGgE;AlB20JlE;;A0C/6JE;EACE,yBAAqC;A1Ck7JzC;;A0C/6JE;EACE,cAA0B;A1Ck7J9B;;AyC54JE;EC/CA,cxBwGgE;EInG9D,yBJmG8D;EwBtGhE,qBxBsGgE;AlBy1JlE;;A0C77JE;EACE,yBAAqC;A1Cg8JzC;;A0C77JE;EACE,cAA0B;A1Cg8J9B;;AyC15JE;EC/CA,cxBwGgE;EInG9D,yBJmG8D;EwBtGhE,qBxBsGgE;AlBu2JlE;;A0C38JE;EACE,yBAAqC;A1C88JzC;;A0C38JE;EACE,cAA0B;A1C88J9B;;A2Ct9JE;EACE;IAAO,2BAAuC;E3C09JhD;E2Cz9JE;IAAK,wBAAwB;E3C49J/B;AACF;;A2C/9JE;EACE;IAAO,2BAAuC;E3C09JhD;E2Cz9JE;IAAK,wBAAwB;E3C49J/B;AACF;;A2Cz9JA;EACE,oBAAa;EAAb,aAAa;EACb,YxC49BsC;EwC39BtC,gBAAgB;EAChB,cAAc;EvCmHV,kBAtCY;EuC3EhB,yBxCLgB;EOSd,sBP6NgC;AH4vJpC;;A2Cx9JA;EACE,oBAAa;EAAb,aAAa;EACb,0BAAsB;EAAtB,sBAAsB;EACtB,qBAAuB;EAAvB,uBAAuB;EACvB,gBAAgB;EAChB,WxCjBa;EwCkBb,kBAAkB;EAClB,mBAAmB;EACnB,yBxCQe;EiBnBX,2BjB89B4C;AHygIlD;;AoBn+JM;EuBDN;IvBEQ,gBAAgB;EpBu+JtB;AACF;;A2C99JA;ErBYE,qMAA6I;EqBV7I,0BxCq8BsC;AH4hIxC;;A2C79JE;EACE,0DxCu8BkD;EwCv8BlD,kDxCu8BkD;AHyhItD;;A2C79JM;EAJJ;IAKM,uBAAe;IAAf,eAAe;E3Ci+JrB;AACF;;A4C5gKA;EACE,oBAAa;EAAb,aAAa;EACb,qBAAuB;EAAvB,uBAAuB;A5C+gKzB;;A4C5gKA;EACE,WAAO;EAAP,OAAO;A5C+gKT;;A6CjhKA;EACE,oBAAa;EAAb,aAAa;EACb,0BAAsB;EAAtB,sBAAsB;EAGtB,eAAe;EACf,gBAAgB;EnCQd,sBP6NgC;AH8yJpC;;A6CzgKA;EACE,WAAW;EACX,c1CRgB;E0CShB,mBAAmB;A7C4gKrB;;AKnhKE;EwCWE,UAAU;EACV,c1Cdc;E0Ced,qBAAqB;EACrB,yB1CtBc;AHkiKlB;;A6CthKA;EAcI,c1ClBc;E0CmBd,yB1C1Bc;AHsiKlB;;A6CngKA;EACE,kBAAkB;EAClB,cAAc;EACd,wB1C28ByC;E0Cx8BzC,sB1C3Ca;E0C4Cb,sC1ClCa;AHsiKf;;A6C3gKA;EnCjBI,+BmC2BkC;EnC1BlC,gCmC0BkC;A7CsgKtC;;A6ChhKA;EnCHI,mCmCiBqC;EnChBrC,kCmCgBqC;A7CugKzC;;A6CrhKA;EAmBI,c1ClDc;E0CmDd,oBAAoB;EACpB,sB1C1DW;AHgkKf;;A6C3hKA;EA0BI,UAAU;EACV,W1ChEW;E0CiEX,yB1CrCa;E0CsCb,qB1CtCa;AH2iKjB;;A6CliKA;EAiCI,mBAAmB;A7CqgKvB;;A6CtiKA;EAoCM,gB1C4J2B;E0C3J3B,qB1C2J2B;AH22JjC;;A6Cx/JI;EACE,uBAAmB;EAAnB,mBAAmB;A7C2/JzB;;A6C5/JI;EnCtBA,kCPsKgC;EOlLhC,0BmCwCwC;A7C2/J5C;;A6CjgKI;EnClCA,gCPkLgC;EOtKhC,4BmCiC0C;A7C2/J9C;;A6CtgKI;EAeM,aAAa;A7C2/JvB;;A6C1gKI;EAmBM,qB1C0HuB;E0CzHvB,oBAAoB;A7C2/J9B;;A6C/gKI;EAuBQ,iB1CsHqB;E0CrHrB,sB1CqHqB;AHu4JjC;;AcvjKI;E+BmCA;IACE,uBAAmB;IAAnB,mBAAmB;E7CwhKvB;E6CzhKE;InCtBA,kCPsKgC;IOlLhC,0BmCwCwC;E7CuhK1C;E6C7hKE;InClCA,gCPkLgC;IOtKhC,4BmCiC0C;E7CshK5C;E6CjiKE;IAeM,aAAa;E7CqhKrB;E6CpiKE;IAmBM,qB1C0HuB;I0CzHvB,oBAAoB;E7CohK5B;E6CxiKE;IAuBQ,iB1CsHqB;I0CrHrB,sB1CqHqB;EH+5J/B;AACF;;AchlKI;E+BmCA;IACE,uBAAmB;IAAnB,mBAAmB;E7CijKvB;E6CljKE;InCtBA,kCPsKgC;IOlLhC,0BmCwCwC;E7CgjK1C;E6CtjKE;InClCA,gCPkLgC;IOtKhC,4BmCiC0C;E7C+iK5C;E6C1jKE;IAeM,aAAa;E7C8iKrB;E6C7jKE;IAmBM,qB1C0HuB;I0CzHvB,oBAAoB;E7C6iK5B;E6CjkKE;IAuBQ,iB1CsHqB;I0CrHrB,sB1CqHqB;EHw7J/B;AACF;;AczmKI;E+BmCA;IACE,uBAAmB;IAAnB,mBAAmB;E7C0kKvB;E6C3kKE;InCtBA,kCPsKgC;IOlLhC,0BmCwCwC;E7CykK1C;E6C/kKE;InClCA,gCPkLgC;IOtKhC,4BmCiC0C;E7CwkK5C;E6CnlKE;IAeM,aAAa;E7CukKrB;E6CtlKE;IAmBM,qB1C0HuB;I0CzHvB,oBAAoB;E7CskK5B;E6C1lKE;IAuBQ,iB1CsHqB;I0CrHrB,sB1CqHqB;EHi9J/B;AACF;;AcloKI;E+BmCA;IACE,uBAAmB;IAAnB,mBAAmB;E7CmmKvB;E6CpmKE;InCtBA,kCPsKgC;IOlLhC,0BmCwCwC;E7CkmK1C;E6CxmKE;InClCA,gCPkLgC;IOtKhC,4BmCiC0C;E7CimK5C;E6C5mKE;IAeM,aAAa;E7CgmKrB;E6C/mKE;IAmBM,qB1C0HuB;I0CzHvB,oBAAoB;E7C+lK5B;E6CnnKE;IAuBQ,iB1CsHqB;I0CrHrB,sB1CqHqB;EH0+J/B;AACF;;A6CllKA;EnCnHI,gBmCoHsB;A7CqlK1B;;A6CtlKA;EAII,qB1CmG6B;AHm/JjC;;A6C1lKA;EAOM,sBAAsB;A7CulK5B;;A8ChuKE;EACE,c5BqG8D;E4BpG9D,yB5BoG8D;AlB+nKlE;;AKxtKE;EyCPM,c5BgG0D;E4B/F1D,yBAAyC;A9CmuKjD;;A8C1uKE;EAWM,W3CPO;E2CQP,yB5B0F0D;E4BzF1D,qB5ByF0D;AlB0oKlE;;A8ChvKE;EACE,c5BqG8D;E4BpG9D,yB5BoG8D;AlB+oKlE;;AKxuKE;EyCPM,c5BgG0D;E4B/F1D,yBAAyC;A9CmvKjD;;A8C1vKE;EAWM,W3CPO;E2CQP,yB5B0F0D;E4BzF1D,qB5ByF0D;AlB0pKlE;;A8ChwKE;EACE,c5BqG8D;E4BpG9D,yB5BoG8D;AlB+pKlE;;AKxvKE;EyCPM,c5BgG0D;E4B/F1D,yBAAyC;A9CmwKjD;;A8C1wKE;EAWM,W3CPO;E2CQP,yB5B0F0D;E4BzF1D,qB5ByF0D;AlB0qKlE;;A8ChxKE;EACE,c5BqG8D;E4BpG9D,yB5BoG8D;AlB+qKlE;;AKxwKE;EyCPM,c5BgG0D;E4B/F1D,yBAAyC;A9CmxKjD;;A8C1xKE;EAWM,W3CPO;E2CQP,yB5B0F0D;E4BzF1D,qB5ByF0D;AlB0rKlE;;A8ChyKE;EACE,c5BqG8D;E4BpG9D,yB5BoG8D;AlB+rKlE;;AKxxKE;EyCPM,c5BgG0D;E4B/F1D,yBAAyC;A9CmyKjD;;A8C1yKE;EAWM,W3CPO;E2CQP,yB5B0F0D;E4BzF1D,qB5ByF0D;AlB0sKlE;;A8ChzKE;EACE,c5BqG8D;E4BpG9D,yB5BoG8D;AlB+sKlE;;AKxyKE;EyCPM,c5BgG0D;E4B/F1D,yBAAyC;A9CmzKjD;;A8C1zKE;EAWM,W3CPO;E2CQP,yB5B0F0D;E4BzF1D,qB5ByF0D;AlB0tKlE;;A8Ch0KE;EACE,c5BqG8D;E4BpG9D,yB5BoG8D;AlB+tKlE;;AKxzKE;EyCPM,c5BgG0D;E4B/F1D,yBAAyC;A9Cm0KjD;;A8C10KE;EAWM,W3CPO;E2CQP,yB5B0F0D;E4BzF1D,qB5ByF0D;AlB0uKlE;;A8Ch1KE;EACE,c5BqG8D;E4BpG9D,yB5BoG8D;AlB+uKlE;;AKx0KE;EyCPM,c5BgG0D;E4B/F1D,yBAAyC;A9Cm1KjD;;A8C11KE;EAWM,W3CPO;E2CQP,yB5B0F0D;E4BzF1D,qB5ByF0D;AlB0vKlE;;A+Cn2KA;EACE,YAAY;E3C8HR,iBAtCY;E2CtFhB,gB5C6R+B;E4C5R/B,cAAc;EACd,W5CYa;E4CXb,yB5CCa;E4CAb,WAAW;A/Cs2Kb;;AKj2KE;E0CDE,W5CMW;E4CLX,qBAAqB;A/Cs2KzB;;AKl2KE;E0CCI,YAAY;A/Cq2KlB;;A+C11KA;EACE,UAAU;EACV,6BAA6B;EAC7B,SAAS;A/C61KX;;A+Cv1KA;EACE,oBAAoB;A/C01KtB;;AgDh4KA;EAGE,8B7Cq4BuC;E6Cr4BvC,iB7Cq4BuC;E6Cp4BvC,gB7Co4BuC;ECzwBnC,mBAtCY;E4ClFhB,2C7CAa;E6CCb,4BAA4B;EAC5B,oC7Cs4BmD;E6Cr4BnD,gD7COa;E6CNb,UAAU;EtCOR,sBP83BsC;AH4/I1C;;AgD54KA;EAeI,sB7C03BsC;AHugJ1C;;AgDh5KA;EAmBI,UAAU;AhDi4Kd;;AgDp5KA;EAuBI,cAAc;EACd,UAAU;AhDi4Kd;;AgDz5KA;EA4BI,aAAa;AhDi4KjB;;AgD73KA;EACE,oBAAa;EAAb,aAAa;EACb,sBAAmB;EAAnB,mBAAmB;EACnB,wB7Cs2BwC;E6Cr2BxC,c7CvBgB;E6CwBhB,2C7C9Ba;E6C+Bb,4BAA4B;EAC5B,4C7C82BoD;EO13BlD,2CQmH4D;ERlH5D,4CQkH4D;AlB2xKhE;;AgD93KA;EACE,gB7C61BwC;AHoiJ1C;;AiDv6KA;EAEE,gBAAgB;AjDy6KlB;;AiD36KA;EAKI,kBAAkB;EAClB,gBAAgB;AjD06KpB;;AiDr6KA;EACE,eAAe;EACf,MAAM;EACN,OAAO;EACP,a9C2pBsC;E8C1pBtC,aAAa;EACb,WAAW;EACX,YAAY;EACZ,gBAAgB;EAGhB,UAAU;AjDs6KZ;;AiD/5KA;EACE,kBAAkB;EAClB,WAAW;EACX,c9C24BuC;E8Cz4BvC,oBAAoB;AjDi6KtB;;AiD95KE;E7B3BI,2CjBg8BoD;EiBh8BpD,mCjBg8BoD;EiBh8BpD,oEjBg8BoD;E8Cn6BtD,sC9Ci6BmD;E8Cj6BnD,8B9Ci6BmD;AHggJvD;;AoB17KM;E6BuBJ;I7BtBM,gBAAgB;EpB87KtB;AACF;;AiDr6KE;EACE,uB9C+5BoC;E8C/5BpC,e9C+5BoC;AHygJxC;;AiDp6KE;EACE,8B9C45B2C;E8C55B3C,sB9C45B2C;AH2gJ/C;;AiDn6KA;EACE,oBAAa;EAAb,aAAa;EACb,6B/BmF8D;AlBm1KhE;;AiDx6KA;EAKI,8B/BgF4D;E+B/E5D,gBAAgB;AjDu6KpB;;AiD76KA;;EAWI,oBAAc;EAAd,cAAc;AjDu6KlB;;AiDl7KA;EAeI,gBAAgB;AjDu6KpB;;AiDn6KA;EACE,oBAAa;EAAb,aAAa;EACb,sBAAmB;EAAnB,mBAAmB;EACnB,6B/B+D8D;AlBu2KhE;;AiDz6KA;EAOI,cAAc;EACd,0B/B0D4D;E+BzD5D,2BAAmB;EAAnB,wBAAmB;EAAnB,mBAAmB;EACnB,WAAW;AjDs6Kf;;AiDh7KA;EAeI,0BAAsB;EAAtB,sBAAsB;EACtB,qBAAuB;EAAvB,uBAAuB;EACvB,YAAY;AjDq6KhB;;AiDt7KA;EAoBM,gBAAgB;AjDs6KtB;;AiD17KA;EAwBM,aAAa;AjDs6KnB;;AiDh6KA;EACE,kBAAkB;EAClB,oBAAa;EAAb,aAAa;EACb,0BAAsB;EAAtB,sBAAsB;EACtB,WAAW;EAGX,oBAAoB;EACpB,sB9C3Ga;E8C4Gb,4BAA4B;EAC5B,oC9CnGa;EOCX,qBP8N+B;E8CxHjC,UAAU;AjD+5KZ;;AiD35KA;EACE,eAAe;EACf,MAAM;EACN,OAAO;EACP,a9C+iBsC;E8C9iBtC,YAAY;EACZ,aAAa;EACb,sB9ClHa;AHghLf;;AiDr6KA;EAUW,UAAU;AjD+5KrB;;AiDz6KA;EAWW,Y9CyzB2B;AHymJtC;;AiD75KA;EACE,oBAAa;EAAb,aAAa;EACb,qBAAuB;EAAvB,uBAAuB;EACvB,sBAA8B;EAA9B,8BAA8B;EAC9B,kB9CszBsC;E8CrzBtC,gC9CvIgB;EOiBd,0CQmH4D;ERlH5D,2CQkH4D;AlBq6KhE;;AiDv6KA;EASI,kB9CizBoC;E8C/yBpC,8BAA6F;AjDi6KjG;;AiD55KA;EACE,gBAAgB;EAChB,gB9CsI+B;AHyxKjC;;AiD15KA;EACE,kBAAkB;EAGlB,kBAAc;EAAd,cAAc;EACd,a9CowBsC;AHupJxC;;AiDv5KA;EACE,oBAAa;EAAb,aAAa;EACb,mBAAe;EAAf,eAAe;EACf,sBAAmB;EAAnB,mBAAmB;EACnB,kBAAyB;EAAzB,yBAAyB;EACzB,gBAAgE;EAChE,6B9CxKgB;EO+Bd,8CQqG4D;ERpG5D,6CQoG4D;AlBg8KhE;;AiDl6KA;EAaI,eAAwC;AjDy5K5C;;AiDp5KA;EACE,kBAAkB;EAClB,YAAY;EACZ,WAAW;EACX,YAAY;EACZ,gBAAgB;AjDu5KlB;;Ac9hLI;EmCzBJ;IAuKI,gB9CiwBqC;I8ChwBrC,oBAAyC;EjDq5K3C;EiDviLF;IAsJI,+B/BjE4D;ElBq9K9D;EiD1iLF;IAyJM,gC/BpE0D;ElBw9K9D;EiD1hLF;IA2II,+B/BzE4D;ElB29K9D;EiD7hLF;IA8IM,4B/B5E0D;I+B6E1D,2BAAmB;IAAnB,wBAAmB;IAAnB,mBAAmB;EjDk5KvB;EiD14KA;IAAY,gB9CyuB2B;EHoqJvC;AACF;;AcrjLI;EmC2KF;;IAEE,gB9CiuBqC;EH6qJvC;AACF;;Ac5jLI;EmCkLF;IAAY,iB9C2tB4B;EHorJxC;AACF;;AkD7nLA;EACE,kBAAkB;EAClB,a/C+qBsC;E+C9qBtC,cAAc;EACd,S/Cu1BmC;EgD31BnC,kMhDmRiN;EgDjRjN,kBAAkB;EAClB,gBhD2R+B;EgD1R/B,gBhD+R+B;EgD9R/B,gBAAgB;EAChB,iBAAiB;EACjB,qBAAqB;EACrB,iBAAiB;EACjB,oBAAoB;EACpB,sBAAsB;EACtB,kBAAkB;EAClB,oBAAoB;EACpB,mBAAmB;EACnB,gBAAgB;E/CgHZ,mBAtCY;E8C9EhB,qBAAqB;EACrB,UAAU;AlD0oLZ;;AkDrpLA;EAaW,Y/C20B2B;AHi0JtC;;AkDzpLA;EAgBI,kBAAkB;EAClB,cAAc;EACd,a/C20BqC;E+C10BrC,c/C20BqC;AHk0JzC;;AkDhqLA;EAsBM,kBAAkB;EAClB,WAAW;EACX,yBAAyB;EACzB,mBAAmB;AlD8oLzB;;AkDzoLA;EACE,iBAAgC;AlD4oLlC;;AkD7oLA;EAII,SAAS;AlD6oLb;;AkDjpLA;EAOM,MAAM;EACN,6BAAgE;EAChE,sB/CvBS;AHqqLf;;AkDzoLA;EACE,iB/CizBuC;AH21JzC;;AkD7oLA;EAII,OAAO;EACP,a/C6yBqC;E+C5yBrC,c/C2yBqC;AHk2JzC;;AkDnpLA;EASM,QAAQ;EACR,oCAA2F;EAC3F,wB/CvCS;AHqrLf;;AkDzoLA;EACE,iBAAgC;AlD4oLlC;;AkD7oLA;EAII,MAAM;AlD6oLV;;AkDjpLA;EAOM,SAAS;EACT,6B/C0xBmC;E+CzxBnC,yB/CrDS;AHmsLf;;AkDzoLA;EACE,iB/CmxBuC;AHy3JzC;;AkD7oLA;EAII,QAAQ;EACR,a/C+wBqC;E+C9wBrC,c/C6wBqC;AHg4JzC;;AkDnpLA;EASM,OAAO;EACP,oC/C0wBmC;E+CzwBnC,uB/CrES;AHmtLf;;AkDznLA;EACE,gB/CyuBuC;E+CxuBvC,uB/C8uBuC;E+C7uBvC,W/CvGa;E+CwGb,kBAAkB;EAClB,sB/C/Fa;EOCX,sBP6NgC;AH8/KpC;;AoD7uLA;EACE,kBAAkB;EAClB,MAAM;EACN,OAAO;EACP,ajD6qBsC;EiD5qBtC,cAAc;EACd,gBjDy2BuC;EgD92BvC,kMhDmRiN;EgDjRjN,kBAAkB;EAClB,gBhD2R+B;EgD1R/B,gBhD+R+B;EgD9R/B,gBAAgB;EAChB,iBAAiB;EACjB,qBAAqB;EACrB,iBAAiB;EACjB,oBAAoB;EACpB,sBAAsB;EACtB,kBAAkB;EAClB,oBAAoB;EACpB,mBAAmB;EACnB,gBAAgB;E/CgHZ,mBAtCY;EgD7EhB,qBAAqB;EACrB,sBjDNa;EiDOb,4BAA4B;EAC5B,oCjDEa;EOCX,qBP8N+B;AH0hLnC;;AoD1wLA;EAoBI,kBAAkB;EAClB,cAAc;EACd,WjDy2BoC;EiDx2BpC,cjDy2BqC;EiDx2BrC,gBjDwN+B;AHkiLnC;;AoDlxLA;EA4BM,kBAAkB;EAClB,cAAc;EACd,WAAW;EACX,yBAAyB;EACzB,mBAAmB;ApD0vLzB;;AoDrvLA;EACE,qBjD01BuC;AH85JzC;;AoDzvLA;EAII,2BlCqG4D;AlBopLhE;;AoD7vLA;EAOM,SAAS;EACT,6BAAgE;EAChE,qCjDq1BiE;AHq6JvE;;AoDnwLA;EAaM,WjD0L2B;EiDzL3B,6BAAgE;EAChE,sBjD7CS;AHuyLf;;AoDrvLA;EACE,mBjDs0BuC;AHk7JzC;;AoDzvLA;EAII,yBlCiF4D;EkChF5D,ajDk0BqC;EiDj0BrC,YjDg0BoC;EiD/zBpC,gBAAgC;ApDyvLpC;;AoDhwLA;EAUM,OAAO;EACP,oCAA2F;EAC3F,uCjD8zBiE;AH47JvE;;AoDtwLA;EAgBM,SjDmK2B;EiDlK3B,oCAA2F;EAC3F,wBjDpES;AH8zLf;;AoDrvLA;EACE,kBjD+yBuC;AHy8JzC;;AoDzvLA;EAII,wBlC0D4D;AlB+rLhE;;AoD7vLA;EAOM,MAAM;EACN,oCAA2F;EAC3F,wCjD0yBiE;AHg9JvE;;AoDnwLA;EAaM,QjD+I2B;EiD9I3B,oCAA2F;EAC3F,yBjDxFS;AHk1Lf;;AoDzwLA;EAqBI,kBAAkB;EAClB,MAAM;EACN,SAAS;EACT,cAAc;EACd,WjDsxBoC;EiDrxBpC,oBAAsC;EACtC,WAAW;EACX,gCjD0wBuD;AH8+J3D;;AoDpvLA;EACE,oBjD+wBuC;AHw+JzC;;AoDxvLA;EAII,0BlC0B4D;EkCzB5D,ajD2wBqC;EiD1wBrC,YjDywBoC;EiDxwBpC,gBAAgC;ApDwvLpC;;AoD/vLA;EAUM,QAAQ;EACR,oCjDqwBmC;EiDpwBnC,sCjDuwBiE;AHk/JvE;;AoDrwLA;EAgBM,UjD4G2B;EiD3G3B,oCjD+vBmC;EiD9vBnC,uBjD3HS;AHo3Lf;;AoDnuLA;EACE,uBjDguBwC;EiD/tBxC,gBAAgB;EhD3BZ,eAtCY;EgDoEhB,yBjDytByD;EiDxtBzD,gCAAyE;E1CnIvE,0CQmH4D;ERlH5D,2CQkH4D;AlBuvLhE;;AoD7uLA;EAUI,aAAa;ApDuuLjB;;AoDnuLA;EACE,uBjDktBwC;EiDjtBxC,cjDxJgB;AH83LlB;;AqDj4LA;EACE,kBAAkB;ArDo4LpB;;AqDj4LA;EACE,uBAAmB;EAAnB,mBAAmB;ArDo4LrB;;AqDj4LA;EACE,kBAAkB;EAClB,WAAW;EACX,gBAAgB;ArDo4LlB;;AsD35LE;EACE,cAAc;EACd,WAAW;EACX,WAAW;AtD85Lf;;AqDt4LA;EACE,kBAAkB;EAClB,aAAa;EACb,WAAW;EACX,WAAW;EACX,mBAAmB;EACnB,mCAA2B;EAA3B,2BAA2B;EjClBvB,8CjBqjCkF;EiBrjClF,sCjBqjCkF;EiBrjClF,0EjBqjCkF;AHu2JxF;;AoBx5LM;EiCQN;IjCPQ,gBAAgB;EpB45LtB;AACF;;AqD54LA;;;EAGE,cAAc;ArD+4LhB;;AqD54LA;;EAEE,mCAA2B;EAA3B,2BAA2B;ArD+4L7B;;AqD54LA;;EAEE,oCAA4B;EAA5B,4BAA4B;ArD+4L9B;;AqDv4LA;EAEI,UAAU;EACV,4BAA4B;EAC5B,uBAAe;EAAf,eAAe;ArDy4LnB;;AqD74LA;;;EAUI,UAAU;EACV,UAAU;ArDy4Ld;;AqDp5LA;;EAgBI,UAAU;EACV,UAAU;EjC5DR,2BjBojCkC;AHk5JxC;;AoBl8LM;EiCuCN;;IjCtCQ,gBAAgB;EpBu8LtB;AACF;;AqDv4LA;;EAEE,kBAAkB;EAClB,MAAM;EACN,SAAS;EACT,UAAU;EAEV,oBAAa;EAAb,aAAa;EACb,sBAAmB;EAAnB,mBAAmB;EACnB,qBAAuB;EAAvB,uBAAuB;EACvB,UlDg9BsC;EkD/8BtC,WlD1Fa;EkD2Fb,kBAAkB;EAClB,YlD88BqC;EiBjiCjC,8BjBmiCgD;AH07JtD;;AoBz9LM;EiCkEN;;IjCjEQ,gBAAgB;EpB89LtB;AACF;;AKp+LE;;;EgDwFE,WlDjGW;EkDkGX,qBAAqB;EACrB,UAAU;EACV,YlDu8BmC;AH28JvC;;AqD/4LA;EACE,OAAO;ArDk5LT;;AqD74LA;EACE,QAAQ;ArDg5LV;;AqDz4LA;;EAEE,qBAAqB;EACrB,WlDg8BuC;EkD/7BvC,YlD+7BuC;EkD97BvC,qCAAqC;ArD44LvC;;AqD14LA;EACE,sNnCvEgF;AlBo9LlF;;AqD34LA;EACE,uNnC1EgF;AlBw9LlF;;AqDr4LA;EACE,kBAAkB;EAClB,QAAQ;EACR,SAAS;EACT,OAAO;EACP,WAAW;EACX,oBAAa;EAAb,aAAa;EACb,qBAAuB;EAAvB,uBAAuB;EACvB,eAAe;EAEf,iBlDs5BsC;EkDr5BtC,gBlDq5BsC;EkDp5BtC,gBAAgB;ArDu4LlB;;AqDn5LA;EAeI,uBAAuB;EACvB,kBAAc;EAAd,cAAc;EACd,WlDo5BqC;EkDn5BrC,WlDo5BoC;EkDn5BpC,iBlDq5BoC;EkDp5BpC,gBlDo5BoC;EkDn5BpC,mBAAmB;EACnB,eAAe;EACf,sBlDhKW;EkDiKX,4BAA4B;EAE5B,kCAAiE;EACjE,qCAAoE;EACpE,WAAW;EjC5JT,6BjB0iC+C;AH0/JrD;;AoBhiMM;EiC4HN;IjC3HQ,gBAAgB;EpBoiMtB;AACF;;AqD16LA;EAiCI,UAAU;ArD64Ld;;AqDp4LA;EACE,kBAAkB;EAClB,UAA2C;EAC3C,YAAY;EACZ,SAA0C;EAC1C,WAAW;EACX,iBAAiB;EACjB,oBAAoB;EACpB,WlD3La;EkD4Lb,kBAAkB;ArDu4LpB;;AuDtkMA;EACE;IAAK,iCAAyB;IAAzB,yBAAyB;EvD0kM9B;AACF;;AuD5kMA;EACE;IAAK,iCAAyB;IAAzB,yBAAyB;EvD0kM9B;AACF;;AuDxkMA;EACE,qBAAqB;EACrB,WpDgkC0B;EoD/jC1B,YpD+jC0B;EoD9jC1B,2BAA2B;EAC3B,iCAAgD;EAChD,+BAA+B;EAE/B,kBAAkB;EAClB,sDAA8C;EAA9C,8CAA8C;AvD0kMhD;;AuDvkMA;EACE,WpDyjC4B;EoDxjC5B,YpDwjC4B;EoDvjC5B,mBpDyjC4B;AHihK9B;;AuDnkMA;EACE;IACE,2BAAmB;IAAnB,mBAAmB;EvDskMrB;EuDpkMA;IACE,UAAU;IACV,uBAAe;IAAf,eAAe;EvDskMjB;AACF;;AuD7kMA;EACE;IACE,2BAAmB;IAAnB,mBAAmB;EvDskMrB;EuDpkMA;IACE,UAAU;IACV,uBAAe;IAAf,eAAe;EvDskMjB;AACF;;AuDnkMA;EACE,qBAAqB;EACrB,WpDgiC0B;EoD/hC1B,YpD+hC0B;EoD9hC1B,2BAA2B;EAC3B,8BAA8B;EAE9B,kBAAkB;EAClB,UAAU;EACV,oDAA4C;EAA5C,4CAA4C;AvDqkM9C;;AuDlkMA;EACE,WpDyhC4B;EoDxhC5B,YpDwhC4B;AH6iK9B;;AwDznMA;EAAqB,mCAAmC;AxD6nMxD;;AwD5nMA;EAAqB,8BAA8B;AxDgoMnD;;AwD/nMA;EAAqB,iCAAiC;AxDmoMtD;;AwDloMA;EAAqB,iCAAiC;AxDsoMtD;;AwDroMA;EAAqB,sCAAsC;AxDyoM3D;;AwDxoMA;EAAqB,mCAAmC;AxD4oMxD;;AyD9oME;EACE,oCAAmC;AzDipMvC;;AKvoME;;;EoDLI,oCAAgD;AzDkpMtD;;AyDxpME;EACE,oCAAmC;AzD2pMvC;;AKjpME;;;EoDLI,oCAAgD;AzD4pMtD;;AyDlqME;EACE,oCAAmC;AzDqqMvC;;AK3pME;;;EoDLI,oCAAgD;AzDsqMtD;;AyD5qME;EACE,oCAAmC;AzD+qMvC;;AKrqME;;;EoDLI,oCAAgD;AzDgrMtD;;AyDtrME;EACE,oCAAmC;AzDyrMvC;;AK/qME;;;EoDLI,oCAAgD;AzD0rMtD;;AyDhsME;EACE,oCAAmC;AzDmsMvC;;AKzrME;;;EoDLI,oCAAgD;AzDosMtD;;AyD1sME;EACE,oCAAmC;AzD6sMvC;;AKnsME;;;EoDLI,oCAAgD;AzD8sMtD;;AyDptME;EACE,oCAAmC;AzDutMvC;;AK7sME;;;EoDLI,oCAAgD;AzDwtMtD;;A0DvtMA;EACE,iCAAmC;A1D0tMrC;;A0DvtMA;EACE,wCAAwC;A1D0tM1C;;A2DruMA;EAAkB,oCAAoD;A3DyuMtE;;A2DxuMA;EAAkB,wCAAwD;A3D4uM1E;;A2D3uMA;EAAkB,0CAA0D;A3D+uM5E;;A2D9uMA;EAAkB,2CAA2D;A3DkvM7E;;A2DjvMA;EAAkB,yCAAyD;A3DqvM3E;;A2DnvMA;EAAmB,oBAAoB;A3DuvMvC;;A2DtvMA;EAAmB,wBAAwB;A3D0vM3C;;A2DzvMA;EAAmB,0BAA0B;A3D6vM7C;;A2D5vMA;EAAmB,2BAA2B;A3DgwM9C;;A2D/vMA;EAAmB,yBAAyB;A3DmwM5C;;A2DhwME;EACE,gCAA+B;A3DmwMnC;;A2DpwME;EACE,gCAA+B;A3DuwMnC;;A2DxwME;EACE,gCAA+B;A3D2wMnC;;A2D5wME;EACE,gCAA+B;A3D+wMnC;;A2DhxME;EACE,gCAA+B;A3DmxMnC;;A2DpxME;EACE,gCAA+B;A3DuxMnC;;A2DxxME;EACE,gCAA+B;A3D2xMnC;;A2D5xME;EACE,gCAA+B;A3D+xMnC;;A2D3xMA;EACE,6BAA+B;A3D8xMjC;;A2DvxMA;EACE,gCAA2C;A3D0xM7C;;A2DvxMA;EACE,iCAAwC;A3D0xM1C;;A2DvxMA;EACE,0CAAiD;EACjD,2CAAkD;A3D0xMpD;;A2DvxMA;EACE,2CAAkD;EAClD,8CAAqD;A3D0xMvD;;A2DvxMA;EACE,8CAAqD;EACrD,6CAAoD;A3D0xMtD;;A2DvxMA;EACE,0CAAiD;EACjD,6CAAoD;A3D0xMtD;;A2DvxMA;EACE,gCAA2C;A3D0xM7C;;A2DvxMA;EACE,6BAA6B;A3D0xM/B;;A2DvxMA;EACE,+BAAuC;A3D0xMzC;;A2DvxMA;EACE,2BAA2B;A3D0xM7B;;AsDl2ME;EACE,cAAc;EACd,WAAW;EACX,WAAW;AtDq2Mf;;A4D91MM;EAAwB,wBAA0B;A5Dk2MxD;;A4Dl2MM;EAAwB,0BAA0B;A5Ds2MxD;;A4Dt2MM;EAAwB,gCAA0B;A5D02MxD;;A4D12MM;EAAwB,yBAA0B;A5D82MxD;;A4D92MM;EAAwB,yBAA0B;A5Dk3MxD;;A4Dl3MM;EAAwB,6BAA0B;A5Ds3MxD;;A4Dt3MM;EAAwB,8BAA0B;A5D03MxD;;A4D13MM;EAAwB,+BAA0B;EAA1B,wBAA0B;A5D83MxD;;A4D93MM;EAAwB,sCAA0B;EAA1B,+BAA0B;A5Dk4MxD;;Acj1MI;E8CjDE;IAAwB,wBAA0B;E5Du4MtD;E4Dv4MI;IAAwB,0BAA0B;E5D04MtD;E4D14MI;IAAwB,gCAA0B;E5D64MtD;E4D74MI;IAAwB,yBAA0B;E5Dg5MtD;E4Dh5MI;IAAwB,yBAA0B;E5Dm5MtD;E4Dn5MI;IAAwB,6BAA0B;E5Ds5MtD;E4Dt5MI;IAAwB,8BAA0B;E5Dy5MtD;E4Dz5MI;IAAwB,+BAA0B;IAA1B,wBAA0B;E5D45MtD;E4D55MI;IAAwB,sCAA0B;IAA1B,+BAA0B;E5D+5MtD;AACF;;Ac/2MI;E8CjDE;IAAwB,wBAA0B;E5Dq6MtD;E4Dr6MI;IAAwB,0BAA0B;E5Dw6MtD;E4Dx6MI;IAAwB,gCAA0B;E5D26MtD;E4D36MI;IAAwB,yBAA0B;E5D86MtD;E4D96MI;IAAwB,yBAA0B;E5Di7MtD;E4Dj7MI;IAAwB,6BAA0B;E5Do7MtD;E4Dp7MI;IAAwB,8BAA0B;E5Du7MtD;E4Dv7MI;IAAwB,+BAA0B;IAA1B,wBAA0B;E5D07MtD;E4D17MI;IAAwB,sCAA0B;IAA1B,+BAA0B;E5D67MtD;AACF;;Ac74MI;E8CjDE;IAAwB,wBAA0B;E5Dm8MtD;E4Dn8MI;IAAwB,0BAA0B;E5Ds8MtD;E4Dt8MI;IAAwB,gCAA0B;E5Dy8MtD;E4Dz8MI;IAAwB,yBAA0B;E5D48MtD;E4D58MI;IAAwB,yBAA0B;E5D+8MtD;E4D/8MI;IAAwB,6BAA0B;E5Dk9MtD;E4Dl9MI;IAAwB,8BAA0B;E5Dq9MtD;E4Dr9MI;IAAwB,+BAA0B;IAA1B,wBAA0B;E5Dw9MtD;E4Dx9MI;IAAwB,sCAA0B;IAA1B,+BAA0B;E5D29MtD;AACF;;Ac36MI;E8CjDE;IAAwB,wBAA0B;E5Di+MtD;E4Dj+MI;IAAwB,0BAA0B;E5Do+MtD;E4Dp+MI;IAAwB,gCAA0B;E5Du+MtD;E4Dv+MI;IAAwB,yBAA0B;E5D0+MtD;E4D1+MI;IAAwB,yBAA0B;E5D6+MtD;E4D7+MI;IAAwB,6BAA0B;E5Dg/MtD;E4Dh/MI;IAAwB,8BAA0B;E5Dm/MtD;E4Dn/MI;IAAwB,+BAA0B;IAA1B,wBAA0B;E5Ds/MtD;E4Dt/MI;IAAwB,sCAA0B;IAA1B,+BAA0B;E5Dy/MtD;AACF;;A4Dh/MA;EAEI;IAAqB,wBAA0B;E5Dm/MjD;E4Dn/ME;IAAqB,0BAA0B;E5Ds/MjD;E4Dt/ME;IAAqB,gCAA0B;E5Dy/MjD;E4Dz/ME;IAAqB,yBAA0B;E5D4/MjD;E4D5/ME;IAAqB,yBAA0B;E5D+/MjD;E4D//ME;IAAqB,6BAA0B;E5DkgNjD;E4DlgNE;IAAqB,8BAA0B;E5DqgNjD;E4DrgNE;IAAqB,+BAA0B;IAA1B,wBAA0B;E5DwgNjD;E4DxgNE;IAAqB,sCAA0B;IAA1B,+BAA0B;E5D2gNjD;AACF;;A6DjiNA;EACE,kBAAkB;EAClB,cAAc;EACd,WAAW;EACX,UAAU;EACV,gBAAgB;A7DoiNlB;;A6DziNA;EAQI,cAAc;EACd,WAAW;A7DqiNf;;A6D9iNA;;;;;EAiBI,kBAAkB;EAClB,MAAM;EACN,SAAS;EACT,OAAO;EACP,WAAW;EACX,YAAY;EACZ,SAAS;A7DqiNb;;A6D7hNE;EAEI,uBAA4F;A7D+hNlG;;A6DjiNE;EAEI,mBAA4F;A7DmiNlG;;A6DriNE;EAEI,gBAA4F;A7DuiNlG;;A6DziNE;EAEI,iBAA4F;A7D2iNlG;;A8DpkNI;EAAgC,kCAA8B;EAA9B,8BAA8B;A9DwkNlE;;A8DvkNI;EAAgC,qCAAiC;EAAjC,iCAAiC;A9D2kNrE;;A8D1kNI;EAAgC,0CAAsC;EAAtC,sCAAsC;A9D8kN1E;;A8D7kNI;EAAgC,6CAAyC;EAAzC,yCAAyC;A9DilN7E;;A8D/kNI;EAA8B,8BAA0B;EAA1B,0BAA0B;A9DmlN5D;;A8DllNI;EAA8B,gCAA4B;EAA5B,4BAA4B;A9DslN9D;;A8DrlNI;EAA8B,sCAAkC;EAAlC,kCAAkC;A9DylNpE;;A8DxlNI;EAA8B,6BAAyB;EAAzB,yBAAyB;A9D4lN3D;;A8D3lNI;EAA8B,+BAAuB;EAAvB,uBAAuB;A9D+lNzD;;A8D9lNI;EAA8B,+BAAuB;EAAvB,uBAAuB;A9DkmNzD;;A8DjmNI;EAA8B,+BAAyB;EAAzB,yBAAyB;A9DqmN3D;;A8DpmNI;EAA8B,+BAAyB;EAAzB,yBAAyB;A9DwmN3D;;A8DtmNI;EAAoC,+BAAsC;EAAtC,sCAAsC;A9D0mN9E;;A8DzmNI;EAAoC,6BAAoC;EAApC,oCAAoC;A9D6mN5E;;A8D5mNI;EAAoC,gCAAkC;EAAlC,kCAAkC;A9DgnN1E;;A8D/mNI;EAAoC,iCAAyC;EAAzC,yCAAyC;A9DmnNjF;;A8DlnNI;EAAoC,oCAAwC;EAAxC,wCAAwC;A9DsnNhF;;A8DpnNI;EAAiC,gCAAkC;EAAlC,kCAAkC;A9DwnNvE;;A8DvnNI;EAAiC,8BAAgC;EAAhC,gCAAgC;A9D2nNrE;;A8D1nNI;EAAiC,iCAA8B;EAA9B,8BAA8B;A9D8nNnE;;A8D7nNI;EAAiC,mCAAgC;EAAhC,gCAAgC;A9DioNrE;;A8DhoNI;EAAiC,kCAA+B;EAA/B,+BAA+B;A9DooNpE;;A8DloNI;EAAkC,oCAAoC;EAApC,oCAAoC;A9DsoN1E;;A8DroNI;EAAkC,kCAAkC;EAAlC,kCAAkC;A9DyoNxE;;A8DxoNI;EAAkC,qCAAgC;EAAhC,gCAAgC;A9D4oNtE;;A8D3oNI;EAAkC,sCAAuC;EAAvC,uCAAuC;A9D+oN7E;;A8D9oNI;EAAkC,yCAAsC;EAAtC,sCAAsC;A9DkpN5E;;A8DjpNI;EAAkC,sCAAiC;EAAjC,iCAAiC;A9DqpNvE;;A8DnpNI;EAAgC,oCAA2B;EAA3B,2BAA2B;A9DupN/D;;A8DtpNI;EAAgC,qCAAiC;EAAjC,iCAAiC;A9D0pNrE;;A8DzpNI;EAAgC,mCAA+B;EAA/B,+BAA+B;A9D6pNnE;;A8D5pNI;EAAgC,sCAA6B;EAA7B,6BAA6B;A9DgqNjE;;A8D/pNI;EAAgC,wCAA+B;EAA/B,+BAA+B;A9DmqNnE;;A8DlqNI;EAAgC,uCAA8B;EAA9B,8BAA8B;A9DsqNlE;;Ac1pNI;EgDlDA;IAAgC,kCAA8B;IAA9B,8BAA8B;E9DitNhE;E8DhtNE;IAAgC,qCAAiC;IAAjC,iCAAiC;E9DmtNnE;E8DltNE;IAAgC,0CAAsC;IAAtC,sCAAsC;E9DqtNxE;E8DptNE;IAAgC,6CAAyC;IAAzC,yCAAyC;E9DutN3E;E8DrtNE;IAA8B,8BAA0B;IAA1B,0BAA0B;E9DwtN1D;E8DvtNE;IAA8B,gCAA4B;IAA5B,4BAA4B;E9D0tN5D;E8DztNE;IAA8B,sCAAkC;IAAlC,kCAAkC;E9D4tNlE;E8D3tNE;IAA8B,6BAAyB;IAAzB,yBAAyB;E9D8tNzD;E8D7tNE;IAA8B,+BAAuB;IAAvB,uBAAuB;E9DguNvD;E8D/tNE;IAA8B,+BAAuB;IAAvB,uBAAuB;E9DkuNvD;E8DjuNE;IAA8B,+BAAyB;IAAzB,yBAAyB;E9DouNzD;E8DnuNE;IAA8B,+BAAyB;IAAzB,yBAAyB;E9DsuNzD;E8DpuNE;IAAoC,+BAAsC;IAAtC,sCAAsC;E9DuuN5E;E8DtuNE;IAAoC,6BAAoC;IAApC,oCAAoC;E9DyuN1E;E8DxuNE;IAAoC,gCAAkC;IAAlC,kCAAkC;E9D2uNxE;E8D1uNE;IAAoC,iCAAyC;IAAzC,yCAAyC;E9D6uN/E;E8D5uNE;IAAoC,oCAAwC;IAAxC,wCAAwC;E9D+uN9E;E8D7uNE;IAAiC,gCAAkC;IAAlC,kCAAkC;E9DgvNrE;E8D/uNE;IAAiC,8BAAgC;IAAhC,gCAAgC;E9DkvNnE;E8DjvNE;IAAiC,iCAA8B;IAA9B,8BAA8B;E9DovNjE;E8DnvNE;IAAiC,mCAAgC;IAAhC,gCAAgC;E9DsvNnE;E8DrvNE;IAAiC,kCAA+B;IAA/B,+BAA+B;E9DwvNlE;E8DtvNE;IAAkC,oCAAoC;IAApC,oCAAoC;E9DyvNxE;E8DxvNE;IAAkC,kCAAkC;IAAlC,kCAAkC;E9D2vNtE;E8D1vNE;IAAkC,qCAAgC;IAAhC,gCAAgC;E9D6vNpE;E8D5vNE;IAAkC,sCAAuC;IAAvC,uCAAuC;E9D+vN3E;E8D9vNE;IAAkC,yCAAsC;IAAtC,sCAAsC;E9DiwN1E;E8DhwNE;IAAkC,sCAAiC;IAAjC,iCAAiC;E9DmwNrE;E8DjwNE;IAAgC,oCAA2B;IAA3B,2BAA2B;E9DowN7D;E8DnwNE;IAAgC,qCAAiC;IAAjC,iCAAiC;E9DswNnE;E8DrwNE;IAAgC,mCAA+B;IAA/B,+BAA+B;E9DwwNjE;E8DvwNE;IAAgC,sCAA6B;IAA7B,6BAA6B;E9D0wN/D;E8DzwNE;IAAgC,wCAA+B;IAA/B,+BAA+B;E9D4wNjE;E8D3wNE;IAAgC,uCAA8B;IAA9B,8BAA8B;E9D8wNhE;AACF;;AcnwNI;EgDlDA;IAAgC,kCAA8B;IAA9B,8BAA8B;E9D0zNhE;E8DzzNE;IAAgC,qCAAiC;IAAjC,iCAAiC;E9D4zNnE;E8D3zNE;IAAgC,0CAAsC;IAAtC,sCAAsC;E9D8zNxE;E8D7zNE;IAAgC,6CAAyC;IAAzC,yCAAyC;E9Dg0N3E;E8D9zNE;IAA8B,8BAA0B;IAA1B,0BAA0B;E9Di0N1D;E8Dh0NE;IAA8B,gCAA4B;IAA5B,4BAA4B;E9Dm0N5D;E8Dl0NE;IAA8B,sCAAkC;IAAlC,kCAAkC;E9Dq0NlE;E8Dp0NE;IAA8B,6BAAyB;IAAzB,yBAAyB;E9Du0NzD;E8Dt0NE;IAA8B,+BAAuB;IAAvB,uBAAuB;E9Dy0NvD;E8Dx0NE;IAA8B,+BAAuB;IAAvB,uBAAuB;E9D20NvD;E8D10NE;IAA8B,+BAAyB;IAAzB,yBAAyB;E9D60NzD;E8D50NE;IAA8B,+BAAyB;IAAzB,yBAAyB;E9D+0NzD;E8D70NE;IAAoC,+BAAsC;IAAtC,sCAAsC;E9Dg1N5E;E8D/0NE;IAAoC,6BAAoC;IAApC,oCAAoC;E9Dk1N1E;E8Dj1NE;IAAoC,gCAAkC;IAAlC,kCAAkC;E9Do1NxE;E8Dn1NE;IAAoC,iCAAyC;IAAzC,yCAAyC;E9Ds1N/E;E8Dr1NE;IAAoC,oCAAwC;IAAxC,wCAAwC;E9Dw1N9E;E8Dt1NE;IAAiC,gCAAkC;IAAlC,kCAAkC;E9Dy1NrE;E8Dx1NE;IAAiC,8BAAgC;IAAhC,gCAAgC;E9D21NnE;E8D11NE;IAAiC,iCAA8B;IAA9B,8BAA8B;E9D61NjE;E8D51NE;IAAiC,mCAAgC;IAAhC,gCAAgC;E9D+1NnE;E8D91NE;IAAiC,kCAA+B;IAA/B,+BAA+B;E9Di2NlE;E8D/1NE;IAAkC,oCAAoC;IAApC,oCAAoC;E9Dk2NxE;E8Dj2NE;IAAkC,kCAAkC;IAAlC,kCAAkC;E9Do2NtE;E8Dn2NE;IAAkC,qCAAgC;IAAhC,gCAAgC;E9Ds2NpE;E8Dr2NE;IAAkC,sCAAuC;IAAvC,uCAAuC;E9Dw2N3E;E8Dv2NE;IAAkC,yCAAsC;IAAtC,sCAAsC;E9D02N1E;E8Dz2NE;IAAkC,sCAAiC;IAAjC,iCAAiC;E9D42NrE;E8D12NE;IAAgC,oCAA2B;IAA3B,2BAA2B;E9D62N7D;E8D52NE;IAAgC,qCAAiC;IAAjC,iCAAiC;E9D+2NnE;E8D92NE;IAAgC,mCAA+B;IAA/B,+BAA+B;E9Di3NjE;E8Dh3NE;IAAgC,sCAA6B;IAA7B,6BAA6B;E9Dm3N/D;E8Dl3NE;IAAgC,wCAA+B;IAA/B,+BAA+B;E9Dq3NjE;E8Dp3NE;IAAgC,uCAA8B;IAA9B,8BAA8B;E9Du3NhE;AACF;;Ac52NI;EgDlDA;IAAgC,kCAA8B;IAA9B,8BAA8B;E9Dm6NhE;E8Dl6NE;IAAgC,qCAAiC;IAAjC,iCAAiC;E9Dq6NnE;E8Dp6NE;IAAgC,0CAAsC;IAAtC,sCAAsC;E9Du6NxE;E8Dt6NE;IAAgC,6CAAyC;IAAzC,yCAAyC;E9Dy6N3E;E8Dv6NE;IAA8B,8BAA0B;IAA1B,0BAA0B;E9D06N1D;E8Dz6NE;IAA8B,gCAA4B;IAA5B,4BAA4B;E9D46N5D;E8D36NE;IAA8B,sCAAkC;IAAlC,kCAAkC;E9D86NlE;E8D76NE;IAA8B,6BAAyB;IAAzB,yBAAyB;E9Dg7NzD;E8D/6NE;IAA8B,+BAAuB;IAAvB,uBAAuB;E9Dk7NvD;E8Dj7NE;IAA8B,+BAAuB;IAAvB,uBAAuB;E9Do7NvD;E8Dn7NE;IAA8B,+BAAyB;IAAzB,yBAAyB;E9Ds7NzD;E8Dr7NE;IAA8B,+BAAyB;IAAzB,yBAAyB;E9Dw7NzD;E8Dt7NE;IAAoC,+BAAsC;IAAtC,sCAAsC;E9Dy7N5E;E8Dx7NE;IAAoC,6BAAoC;IAApC,oCAAoC;E9D27N1E;E8D17NE;IAAoC,gCAAkC;IAAlC,kCAAkC;E9D67NxE;E8D57NE;IAAoC,iCAAyC;IAAzC,yCAAyC;E9D+7N/E;E8D97NE;IAAoC,oCAAwC;IAAxC,wCAAwC;E9Di8N9E;E8D/7NE;IAAiC,gCAAkC;IAAlC,kCAAkC;E9Dk8NrE;E8Dj8NE;IAAiC,8BAAgC;IAAhC,gCAAgC;E9Do8NnE;E8Dn8NE;IAAiC,iCAA8B;IAA9B,8BAA8B;E9Ds8NjE;E8Dr8NE;IAAiC,mCAAgC;IAAhC,gCAAgC;E9Dw8NnE;E8Dv8NE;IAAiC,kCAA+B;IAA/B,+BAA+B;E9D08NlE;E8Dx8NE;IAAkC,oCAAoC;IAApC,oCAAoC;E9D28NxE;E8D18NE;IAAkC,kCAAkC;IAAlC,kCAAkC;E9D68NtE;E8D58NE;IAAkC,qCAAgC;IAAhC,gCAAgC;E9D+8NpE;E8D98NE;IAAkC,sCAAuC;IAAvC,uCAAuC;E9Di9N3E;E8Dh9NE;IAAkC,yCAAsC;IAAtC,sCAAsC;E9Dm9N1E;E8Dl9NE;IAAkC,sCAAiC;IAAjC,iCAAiC;E9Dq9NrE;E8Dn9NE;IAAgC,oCAA2B;IAA3B,2BAA2B;E9Ds9N7D;E8Dr9NE;IAAgC,qCAAiC;IAAjC,iCAAiC;E9Dw9NnE;E8Dv9NE;IAAgC,mCAA+B;IAA/B,+BAA+B;E9D09NjE;E8Dz9NE;IAAgC,sCAA6B;IAA7B,6BAA6B;E9D49N/D;E8D39NE;IAAgC,wCAA+B;IAA/B,+BAA+B;E9D89NjE;E8D79NE;IAAgC,uCAA8B;IAA9B,8BAA8B;E9Dg+NhE;AACF;;Acr9NI;EgDlDA;IAAgC,kCAA8B;IAA9B,8BAA8B;E9D4gOhE;E8D3gOE;IAAgC,qCAAiC;IAAjC,iCAAiC;E9D8gOnE;E8D7gOE;IAAgC,0CAAsC;IAAtC,sCAAsC;E9DghOxE;E8D/gOE;IAAgC,6CAAyC;IAAzC,yCAAyC;E9DkhO3E;E8DhhOE;IAA8B,8BAA0B;IAA1B,0BAA0B;E9DmhO1D;E8DlhOE;IAA8B,gCAA4B;IAA5B,4BAA4B;E9DqhO5D;E8DphOE;IAA8B,sCAAkC;IAAlC,kCAAkC;E9DuhOlE;E8DthOE;IAA8B,6BAAyB;IAAzB,yBAAyB;E9DyhOzD;E8DxhOE;IAA8B,+BAAuB;IAAvB,uBAAuB;E9D2hOvD;E8D1hOE;IAA8B,+BAAuB;IAAvB,uBAAuB;E9D6hOvD;E8D5hOE;IAA8B,+BAAyB;IAAzB,yBAAyB;E9D+hOzD;E8D9hOE;IAA8B,+BAAyB;IAAzB,yBAAyB;E9DiiOzD;E8D/hOE;IAAoC,+BAAsC;IAAtC,sCAAsC;E9DkiO5E;E8DjiOE;IAAoC,6BAAoC;IAApC,oCAAoC;E9DoiO1E;E8DniOE;IAAoC,gCAAkC;IAAlC,kCAAkC;E9DsiOxE;E8DriOE;IAAoC,iCAAyC;IAAzC,yCAAyC;E9DwiO/E;E8DviOE;IAAoC,oCAAwC;IAAxC,wCAAwC;E9D0iO9E;E8DxiOE;IAAiC,gCAAkC;IAAlC,kCAAkC;E9D2iOrE;E8D1iOE;IAAiC,8BAAgC;IAAhC,gCAAgC;E9D6iOnE;E8D5iOE;IAAiC,iCAA8B;IAA9B,8BAA8B;E9D+iOjE;E8D9iOE;IAAiC,mCAAgC;IAAhC,gCAAgC;E9DijOnE;E8DhjOE;IAAiC,kCAA+B;IAA/B,+BAA+B;E9DmjOlE;E8DjjOE;IAAkC,oCAAoC;IAApC,oCAAoC;E9DojOxE;E8DnjOE;IAAkC,kCAAkC;IAAlC,kCAAkC;E9DsjOtE;E8DrjOE;IAAkC,qCAAgC;IAAhC,gCAAgC;E9DwjOpE;E8DvjOE;IAAkC,sCAAuC;IAAvC,uCAAuC;E9D0jO3E;E8DzjOE;IAAkC,yCAAsC;IAAtC,sCAAsC;E9D4jO1E;E8D3jOE;IAAkC,sCAAiC;IAAjC,iCAAiC;E9D8jOrE;E8D5jOE;IAAgC,oCAA2B;IAA3B,2BAA2B;E9D+jO7D;E8D9jOE;IAAgC,qCAAiC;IAAjC,iCAAiC;E9DikOnE;E8DhkOE;IAAgC,mCAA+B;IAA/B,+BAA+B;E9DmkOjE;E8DlkOE;IAAgC,sCAA6B;IAA7B,6BAA6B;E9DqkO/D;E8DpkOE;IAAgC,wCAA+B;IAA/B,+BAA+B;E9DukOjE;E8DtkOE;IAAgC,uCAA8B;IAA9B,8BAA8B;E9DykOhE;AACF;;A+DpnOI;EAAwB,sBAAsB;A/DwnOlD;;A+DvnOI;EAAwB,uBAAuB;A/D2nOnD;;A+D1nOI;EAAwB,sBAAsB;A/D8nOlD;;Ac1kOI;EiDtDA;IAAwB,sBAAsB;E/DqoOhD;E+DpoOE;IAAwB,uBAAuB;E/DuoOjD;E+DtoOE;IAAwB,sBAAsB;E/DyoOhD;AACF;;ActlOI;EiDtDA;IAAwB,sBAAsB;E/DipOhD;E+DhpOE;IAAwB,uBAAuB;E/DmpOjD;E+DlpOE;IAAwB,sBAAsB;E/DqpOhD;AACF;;AclmOI;EiDtDA;IAAwB,sBAAsB;E/D6pOhD;E+D5pOE;IAAwB,uBAAuB;E/D+pOjD;E+D9pOE;IAAwB,sBAAsB;E/DiqOhD;AACF;;Ac9mOI;EiDtDA;IAAwB,sBAAsB;E/DyqOhD;E+DxqOE;IAAwB,uBAAuB;E/D2qOjD;E+D1qOE;IAAwB,sBAAsB;E/D6qOhD;AACF;;AgEnrOE;EAAyB,mCAA8B;EAA9B,gCAA8B;EAA9B,+BAA8B;EAA9B,2BAA8B;AhEurOzD;;AgEvrOE;EAAyB,oCAA8B;EAA9B,iCAA8B;EAA9B,gCAA8B;EAA9B,4BAA8B;AhE2rOzD;;AgE3rOE;EAAyB,oCAA8B;EAA9B,iCAA8B;EAA9B,gCAA8B;EAA9B,4BAA8B;AhE+rOzD;;AiE/rOE;EAAsB,yBAA2B;AjEmsOnD;;AiEnsOE;EAAsB,2BAA2B;AjEusOnD;;AkEtsOE;EAAyB,2BAA8B;AlE0sOzD;;AkE1sOE;EAAyB,6BAA8B;AlE8sOzD;;AkE9sOE;EAAyB,6BAA8B;AlEktOzD;;AkEltOE;EAAyB,0BAA8B;AlEstOzD;;AkEttOE;EAAyB,mCAA8B;EAA9B,2BAA8B;AlE0tOzD;;AkErtOA;EACE,eAAe;EACf,MAAM;EACN,QAAQ;EACR,OAAO;EACP,a/DgqBsC;AHwjNxC;;AkErtOA;EACE,eAAe;EACf,QAAQ;EACR,SAAS;EACT,OAAO;EACP,a/DwpBsC;AHgkNxC;;AkEptO8B;EAD9B;IAEI,wBAAgB;IAAhB,gBAAgB;IAChB,MAAM;IACN,a/DgpBoC;EHwkNtC;AACF;;AmElvOA;ECEE,kBAAkB;EAClB,UAAU;EACV,WAAW;EACX,UAAU;EACV,YAAY;EACZ,gBAAgB;EAChB,sBAAsB;EACtB,mBAAmB;EACnB,SAAS;ApEovOX;;AoE1uOE;EAEE,gBAAgB;EAChB,WAAW;EACX,YAAY;EACZ,iBAAiB;EACjB,UAAU;EACV,mBAAmB;ApE4uOvB;;AqEzwOA;EAAa,8DAAqC;ArE6wOlD;;AqE5wOA;EAAU,wDAAkC;ArEgxO5C;;AqE/wOA;EAAa,uDAAqC;ArEmxOlD;;AqElxOA;EAAe,2BAA2B;ArEsxO1C;;AsErxOI;EAAuB,qBAA4B;AtEyxOvD;;AsEzxOI;EAAuB,qBAA4B;AtE6xOvD;;AsE7xOI;EAAuB,qBAA4B;AtEiyOvD;;AsEjyOI;EAAuB,sBAA4B;AtEqyOvD;;AsEryOI;EAAuB,sBAA4B;AtEyyOvD;;AsEzyOI;EAAuB,sBAA4B;AtE6yOvD;;AsE7yOI;EAAuB,sBAA4B;AtEizOvD;;AsEjzOI;EAAuB,sBAA4B;AtEqzOvD;;AsErzOI;EAAuB,uBAA4B;AtEyzOvD;;AsEzzOI;EAAuB,uBAA4B;AtE6zOvD;;AsEzzOA;EAAU,0BAA0B;AtE6zOpC;;AsE5zOA;EAAU,2BAA2B;AtEg0OrC;;AsE5zOA;EAAc,2BAA2B;AtEg0OzC;;AsE/zOA;EAAc,4BAA4B;AtEm0O1C;;AsEj0OA;EAAU,uBAAuB;AtEq0OjC;;AsEp0OA;EAAU,wBAAwB;AtEw0OlC;;AuEj1OQ;EAAgC,oBAA4B;AvEq1OpE;;AuEp1OQ;;EAEE,wBAAoC;AvEu1O9C;;AuEr1OQ;;EAEE,0BAAwC;AvEw1OlD;;AuEt1OQ;;EAEE,2BAA0C;AvEy1OpD;;AuEv1OQ;;EAEE,yBAAsC;AvE01OhD;;AuEz2OQ;EAAgC,0BAA4B;AvE62OpE;;AuE52OQ;;EAEE,8BAAoC;AvE+2O9C;;AuE72OQ;;EAEE,gCAAwC;AvEg3OlD;;AuE92OQ;;EAEE,iCAA0C;AvEi3OpD;;AuE/2OQ;;EAEE,+BAAsC;AvEk3OhD;;AuEj4OQ;EAAgC,yBAA4B;AvEq4OpE;;AuEp4OQ;;EAEE,6BAAoC;AvEu4O9C;;AuEr4OQ;;EAEE,+BAAwC;AvEw4OlD;;AuEt4OQ;;EAEE,gCAA0C;AvEy4OpD;;AuEv4OQ;;EAEE,8BAAsC;AvE04OhD;;AuEz5OQ;EAAgC,uBAA4B;AvE65OpE;;AuE55OQ;;EAEE,2BAAoC;AvE+5O9C;;AuE75OQ;;EAEE,6BAAwC;AvEg6OlD;;AuE95OQ;;EAEE,8BAA0C;AvEi6OpD;;AuE/5OQ;;EAEE,4BAAsC;AvEk6OhD;;AuEj7OQ;EAAgC,yBAA4B;AvEq7OpE;;AuEp7OQ;;EAEE,6BAAoC;AvEu7O9C;;AuEr7OQ;;EAEE,+BAAwC;AvEw7OlD;;AuEt7OQ;;EAEE,gCAA0C;AvEy7OpD;;AuEv7OQ;;EAEE,8BAAsC;AvE07OhD;;AuEz8OQ;EAAgC,uBAA4B;AvE68OpE;;AuE58OQ;;EAEE,2BAAoC;AvE+8O9C;;AuE78OQ;;EAEE,6BAAwC;AvEg9OlD;;AuE98OQ;;EAEE,8BAA0C;AvEi9OpD;;AuE/8OQ;;EAEE,4BAAsC;AvEk9OhD;;AuEj+OQ;EAAgC,qBAA4B;AvEq+OpE;;AuEp+OQ;;EAEE,yBAAoC;AvEu+O9C;;AuEr+OQ;;EAEE,2BAAwC;AvEw+OlD;;AuEt+OQ;;EAEE,4BAA0C;AvEy+OpD;;AuEv+OQ;;EAEE,0BAAsC;AvE0+OhD;;AuEz/OQ;EAAgC,2BAA4B;AvE6/OpE;;AuE5/OQ;;EAEE,+BAAoC;AvE+/O9C;;AuE7/OQ;;EAEE,iCAAwC;AvEggPlD;;AuE9/OQ;;EAEE,kCAA0C;AvEigPpD;;AuE//OQ;;EAEE,gCAAsC;AvEkgPhD;;AuEjhPQ;EAAgC,0BAA4B;AvEqhPpE;;AuEphPQ;;EAEE,8BAAoC;AvEuhP9C;;AuErhPQ;;EAEE,gCAAwC;AvEwhPlD;;AuEthPQ;;EAEE,iCAA0C;AvEyhPpD;;AuEvhPQ;;EAEE,+BAAsC;AvE0hPhD;;AuEziPQ;EAAgC,wBAA4B;AvE6iPpE;;AuE5iPQ;;EAEE,4BAAoC;AvE+iP9C;;AuE7iPQ;;EAEE,8BAAwC;AvEgjPlD;;AuE9iPQ;;EAEE,+BAA0C;AvEijPpD;;AuE/iPQ;;EAEE,6BAAsC;AvEkjPhD;;AuEjkPQ;EAAgC,0BAA4B;AvEqkPpE;;AuEpkPQ;;EAEE,8BAAoC;AvEukP9C;;AuErkPQ;;EAEE,gCAAwC;AvEwkPlD;;AuEtkPQ;;EAEE,iCAA0C;AvEykPpD;;AuEvkPQ;;EAEE,+BAAsC;AvE0kPhD;;AuEzlPQ;EAAgC,wBAA4B;AvE6lPpE;;AuE5lPQ;;EAEE,4BAAoC;AvE+lP9C;;AuE7lPQ;;EAEE,8BAAwC;AvEgmPlD;;AuE9lPQ;;EAEE,+BAA0C;AvEimPpD;;AuE/lPQ;;EAEE,6BAAsC;AvEkmPhD;;AuE1lPQ;EAAwB,2BAA2B;AvE8lP3D;;AuE7lPQ;;EAEE,+BAA+B;AvEgmPzC;;AuE9lPQ;;EAEE,iCAAiC;AvEimP3C;;AuE/lPQ;;EAEE,kCAAkC;AvEkmP5C;;AuEhmPQ;;EAEE,gCAAgC;AvEmmP1C;;AuElnPQ;EAAwB,0BAA2B;AvEsnP3D;;AuErnPQ;;EAEE,8BAA+B;AvEwnPzC;;AuEtnPQ;;EAEE,gCAAiC;AvEynP3C;;AuEvnPQ;;EAEE,iCAAkC;AvE0nP5C;;AuExnPQ;;EAEE,+BAAgC;AvE2nP1C;;AuE1oPQ;EAAwB,wBAA2B;AvE8oP3D;;AuE7oPQ;;EAEE,4BAA+B;AvEgpPzC;;AuE9oPQ;;EAEE,8BAAiC;AvEipP3C;;AuE/oPQ;;EAEE,+BAAkC;AvEkpP5C;;AuEhpPQ;;EAEE,6BAAgC;AvEmpP1C;;AuElqPQ;EAAwB,0BAA2B;AvEsqP3D;;AuErqPQ;;EAEE,8BAA+B;AvEwqPzC;;AuEtqPQ;;EAEE,gCAAiC;AvEyqP3C;;AuEvqPQ;;EAEE,iCAAkC;AvE0qP5C;;AuExqPQ;;EAEE,+BAAgC;AvE2qP1C;;AuE1rPQ;EAAwB,wBAA2B;AvE8rP3D;;AuE7rPQ;;EAEE,4BAA+B;AvEgsPzC;;AuE9rPQ;;EAEE,8BAAiC;AvEisP3C;;AuE/rPQ;;EAEE,+BAAkC;AvEksP5C;;AuEhsPQ;;EAEE,6BAAgC;AvEmsP1C;;AuE7rPI;EAAmB,uBAAuB;AvEisP9C;;AuEhsPI;;EAEE,2BAA2B;AvEmsPjC;;AuEjsPI;;EAEE,6BAA6B;AvEosPnC;;AuElsPI;;EAEE,8BAA8B;AvEqsPpC;;AuEnsPI;;EAEE,4BAA4B;AvEssPlC;;Ac/sPI;EyDlDI;IAAgC,oBAA4B;EvEswPlE;EuErwPM;;IAEE,wBAAoC;EvEuwP5C;EuErwPM;;IAEE,0BAAwC;EvEuwPhD;EuErwPM;;IAEE,2BAA0C;EvEuwPlD;EuErwPM;;IAEE,yBAAsC;EvEuwP9C;EuEtxPM;IAAgC,0BAA4B;EvEyxPlE;EuExxPM;;IAEE,8BAAoC;EvE0xP5C;EuExxPM;;IAEE,gCAAwC;EvE0xPhD;EuExxPM;;IAEE,iCAA0C;EvE0xPlD;EuExxPM;;IAEE,+BAAsC;EvE0xP9C;EuEzyPM;IAAgC,yBAA4B;EvE4yPlE;EuE3yPM;;IAEE,6BAAoC;EvE6yP5C;EuE3yPM;;IAEE,+BAAwC;EvE6yPhD;EuE3yPM;;IAEE,gCAA0C;EvE6yPlD;EuE3yPM;;IAEE,8BAAsC;EvE6yP9C;EuE5zPM;IAAgC,uBAA4B;EvE+zPlE;EuE9zPM;;IAEE,2BAAoC;EvEg0P5C;EuE9zPM;;IAEE,6BAAwC;EvEg0PhD;EuE9zPM;;IAEE,8BAA0C;EvEg0PlD;EuE9zPM;;IAEE,4BAAsC;EvEg0P9C;EuE/0PM;IAAgC,yBAA4B;EvEk1PlE;EuEj1PM;;IAEE,6BAAoC;EvEm1P5C;EuEj1PM;;IAEE,+BAAwC;EvEm1PhD;EuEj1PM;;IAEE,gCAA0C;EvEm1PlD;EuEj1PM;;IAEE,8BAAsC;EvEm1P9C;EuEl2PM;IAAgC,uBAA4B;EvEq2PlE;EuEp2PM;;IAEE,2BAAoC;EvEs2P5C;EuEp2PM;;IAEE,6BAAwC;EvEs2PhD;EuEp2PM;;IAEE,8BAA0C;EvEs2PlD;EuEp2PM;;IAEE,4BAAsC;EvEs2P9C;EuEr3PM;IAAgC,qBAA4B;EvEw3PlE;EuEv3PM;;IAEE,yBAAoC;EvEy3P5C;EuEv3PM;;IAEE,2BAAwC;EvEy3PhD;EuEv3PM;;IAEE,4BAA0C;EvEy3PlD;EuEv3PM;;IAEE,0BAAsC;EvEy3P9C;EuEx4PM;IAAgC,2BAA4B;EvE24PlE;EuE14PM;;IAEE,+BAAoC;EvE44P5C;EuE14PM;;IAEE,iCAAwC;EvE44PhD;EuE14PM;;IAEE,kCAA0C;EvE44PlD;EuE14PM;;IAEE,gCAAsC;EvE44P9C;EuE35PM;IAAgC,0BAA4B;EvE85PlE;EuE75PM;;IAEE,8BAAoC;EvE+5P5C;EuE75PM;;IAEE,gCAAwC;EvE+5PhD;EuE75PM;;IAEE,iCAA0C;EvE+5PlD;EuE75PM;;IAEE,+BAAsC;EvE+5P9C;EuE96PM;IAAgC,wBAA4B;EvEi7PlE;EuEh7PM;;IAEE,4BAAoC;EvEk7P5C;EuEh7PM;;IAEE,8BAAwC;EvEk7PhD;EuEh7PM;;IAEE,+BAA0C;EvEk7PlD;EuEh7PM;;IAEE,6BAAsC;EvEk7P9C;EuEj8PM;IAAgC,0BAA4B;EvEo8PlE;EuEn8PM;;IAEE,8BAAoC;EvEq8P5C;EuEn8PM;;IAEE,gCAAwC;EvEq8PhD;EuEn8PM;;IAEE,iCAA0C;EvEq8PlD;EuEn8PM;;IAEE,+BAAsC;EvEq8P9C;EuEp9PM;IAAgC,wBAA4B;EvEu9PlE;EuEt9PM;;IAEE,4BAAoC;EvEw9P5C;EuEt9PM;;IAEE,8BAAwC;EvEw9PhD;EuEt9PM;;IAEE,+BAA0C;EvEw9PlD;EuEt9PM;;IAEE,6BAAsC;EvEw9P9C;EuEh9PM;IAAwB,2BAA2B;EvEm9PzD;EuEl9PM;;IAEE,+BAA+B;EvEo9PvC;EuEl9PM;;IAEE,iCAAiC;EvEo9PzC;EuEl9PM;;IAEE,kCAAkC;EvEo9P1C;EuEl9PM;;IAEE,gCAAgC;EvEo9PxC;EuEn+PM;IAAwB,0BAA2B;EvEs+PzD;EuEr+PM;;IAEE,8BAA+B;EvEu+PvC;EuEr+PM;;IAEE,gCAAiC;EvEu+PzC;EuEr+PM;;IAEE,iCAAkC;EvEu+P1C;EuEr+PM;;IAEE,+BAAgC;EvEu+PxC;EuEt/PM;IAAwB,wBAA2B;EvEy/PzD;EuEx/PM;;IAEE,4BAA+B;EvE0/PvC;EuEx/PM;;IAEE,8BAAiC;EvE0/PzC;EuEx/PM;;IAEE,+BAAkC;EvE0/P1C;EuEx/PM;;IAEE,6BAAgC;EvE0/PxC;EuEzgQM;IAAwB,0BAA2B;EvE4gQzD;EuE3gQM;;IAEE,8BAA+B;EvE6gQvC;EuE3gQM;;IAEE,gCAAiC;EvE6gQzC;EuE3gQM;;IAEE,iCAAkC;EvE6gQ1C;EuE3gQM;;IAEE,+BAAgC;EvE6gQxC;EuE5hQM;IAAwB,wBAA2B;EvE+hQzD;EuE9hQM;;IAEE,4BAA+B;EvEgiQvC;EuE9hQM;;IAEE,8BAAiC;EvEgiQzC;EuE9hQM;;IAEE,+BAAkC;EvEgiQ1C;EuE9hQM;;IAEE,6BAAgC;EvEgiQxC;EuE1hQE;IAAmB,uBAAuB;EvE6hQ5C;EuE5hQE;;IAEE,2BAA2B;EvE8hQ/B;EuE5hQE;;IAEE,6BAA6B;EvE8hQjC;EuE5hQE;;IAEE,8BAA8B;EvE8hQlC;EuE5hQE;;IAEE,4BAA4B;EvE8hQhC;AACF;;AcxiQI;EyDlDI;IAAgC,oBAA4B;EvE+lQlE;EuE9lQM;;IAEE,wBAAoC;EvEgmQ5C;EuE9lQM;;IAEE,0BAAwC;EvEgmQhD;EuE9lQM;;IAEE,2BAA0C;EvEgmQlD;EuE9lQM;;IAEE,yBAAsC;EvEgmQ9C;EuE/mQM;IAAgC,0BAA4B;EvEknQlE;EuEjnQM;;IAEE,8BAAoC;EvEmnQ5C;EuEjnQM;;IAEE,gCAAwC;EvEmnQhD;EuEjnQM;;IAEE,iCAA0C;EvEmnQlD;EuEjnQM;;IAEE,+BAAsC;EvEmnQ9C;EuEloQM;IAAgC,yBAA4B;EvEqoQlE;EuEpoQM;;IAEE,6BAAoC;EvEsoQ5C;EuEpoQM;;IAEE,+BAAwC;EvEsoQhD;EuEpoQM;;IAEE,gCAA0C;EvEsoQlD;EuEpoQM;;IAEE,8BAAsC;EvEsoQ9C;EuErpQM;IAAgC,uBAA4B;EvEwpQlE;EuEvpQM;;IAEE,2BAAoC;EvEypQ5C;EuEvpQM;;IAEE,6BAAwC;EvEypQhD;EuEvpQM;;IAEE,8BAA0C;EvEypQlD;EuEvpQM;;IAEE,4BAAsC;EvEypQ9C;EuExqQM;IAAgC,yBAA4B;EvE2qQlE;EuE1qQM;;IAEE,6BAAoC;EvE4qQ5C;EuE1qQM;;IAEE,+BAAwC;EvE4qQhD;EuE1qQM;;IAEE,gCAA0C;EvE4qQlD;EuE1qQM;;IAEE,8BAAsC;EvE4qQ9C;EuE3rQM;IAAgC,uBAA4B;EvE8rQlE;EuE7rQM;;IAEE,2BAAoC;EvE+rQ5C;EuE7rQM;;IAEE,6BAAwC;EvE+rQhD;EuE7rQM;;IAEE,8BAA0C;EvE+rQlD;EuE7rQM;;IAEE,4BAAsC;EvE+rQ9C;EuE9sQM;IAAgC,qBAA4B;EvEitQlE;EuEhtQM;;IAEE,yBAAoC;EvEktQ5C;EuEhtQM;;IAEE,2BAAwC;EvEktQhD;EuEhtQM;;IAEE,4BAA0C;EvEktQlD;EuEhtQM;;IAEE,0BAAsC;EvEktQ9C;EuEjuQM;IAAgC,2BAA4B;EvEouQlE;EuEnuQM;;IAEE,+BAAoC;EvEquQ5C;EuEnuQM;;IAEE,iCAAwC;EvEquQhD;EuEnuQM;;IAEE,kCAA0C;EvEquQlD;EuEnuQM;;IAEE,gCAAsC;EvEquQ9C;EuEpvQM;IAAgC,0BAA4B;EvEuvQlE;EuEtvQM;;IAEE,8BAAoC;EvEwvQ5C;EuEtvQM;;IAEE,gCAAwC;EvEwvQhD;EuEtvQM;;IAEE,iCAA0C;EvEwvQlD;EuEtvQM;;IAEE,+BAAsC;EvEwvQ9C;EuEvwQM;IAAgC,wBAA4B;EvE0wQlE;EuEzwQM;;IAEE,4BAAoC;EvE2wQ5C;EuEzwQM;;IAEE,8BAAwC;EvE2wQhD;EuEzwQM;;IAEE,+BAA0C;EvE2wQlD;EuEzwQM;;IAEE,6BAAsC;EvE2wQ9C;EuE1xQM;IAAgC,0BAA4B;EvE6xQlE;EuE5xQM;;IAEE,8BAAoC;EvE8xQ5C;EuE5xQM;;IAEE,gCAAwC;EvE8xQhD;EuE5xQM;;IAEE,iCAA0C;EvE8xQlD;EuE5xQM;;IAEE,+BAAsC;EvE8xQ9C;EuE7yQM;IAAgC,wBAA4B;EvEgzQlE;EuE/yQM;;IAEE,4BAAoC;EvEizQ5C;EuE/yQM;;IAEE,8BAAwC;EvEizQhD;EuE/yQM;;IAEE,+BAA0C;EvEizQlD;EuE/yQM;;IAEE,6BAAsC;EvEizQ9C;EuEzyQM;IAAwB,2BAA2B;EvE4yQzD;EuE3yQM;;IAEE,+BAA+B;EvE6yQvC;EuE3yQM;;IAEE,iCAAiC;EvE6yQzC;EuE3yQM;;IAEE,kCAAkC;EvE6yQ1C;EuE3yQM;;IAEE,gCAAgC;EvE6yQxC;EuE5zQM;IAAwB,0BAA2B;EvE+zQzD;EuE9zQM;;IAEE,8BAA+B;EvEg0QvC;EuE9zQM;;IAEE,gCAAiC;EvEg0QzC;EuE9zQM;;IAEE,iCAAkC;EvEg0Q1C;EuE9zQM;;IAEE,+BAAgC;EvEg0QxC;EuE/0QM;IAAwB,wBAA2B;EvEk1QzD;EuEj1QM;;IAEE,4BAA+B;EvEm1QvC;EuEj1QM;;IAEE,8BAAiC;EvEm1QzC;EuEj1QM;;IAEE,+BAAkC;EvEm1Q1C;EuEj1QM;;IAEE,6BAAgC;EvEm1QxC;EuEl2QM;IAAwB,0BAA2B;EvEq2QzD;EuEp2QM;;IAEE,8BAA+B;EvEs2QvC;EuEp2QM;;IAEE,gCAAiC;EvEs2QzC;EuEp2QM;;IAEE,iCAAkC;EvEs2Q1C;EuEp2QM;;IAEE,+BAAgC;EvEs2QxC;EuEr3QM;IAAwB,wBAA2B;EvEw3QzD;EuEv3QM;;IAEE,4BAA+B;EvEy3QvC;EuEv3QM;;IAEE,8BAAiC;EvEy3QzC;EuEv3QM;;IAEE,+BAAkC;EvEy3Q1C;EuEv3QM;;IAEE,6BAAgC;EvEy3QxC;EuEn3QE;IAAmB,uBAAuB;EvEs3Q5C;EuEr3QE;;IAEE,2BAA2B;EvEu3Q/B;EuEr3QE;;IAEE,6BAA6B;EvEu3QjC;EuEr3QE;;IAEE,8BAA8B;EvEu3QlC;EuEr3QE;;IAEE,4BAA4B;EvEu3QhC;AACF;;Acj4QI;EyDlDI;IAAgC,oBAA4B;EvEw7QlE;EuEv7QM;;IAEE,wBAAoC;EvEy7Q5C;EuEv7QM;;IAEE,0BAAwC;EvEy7QhD;EuEv7QM;;IAEE,2BAA0C;EvEy7QlD;EuEv7QM;;IAEE,yBAAsC;EvEy7Q9C;EuEx8QM;IAAgC,0BAA4B;EvE28QlE;EuE18QM;;IAEE,8BAAoC;EvE48Q5C;EuE18QM;;IAEE,gCAAwC;EvE48QhD;EuE18QM;;IAEE,iCAA0C;EvE48QlD;EuE18QM;;IAEE,+BAAsC;EvE48Q9C;EuE39QM;IAAgC,yBAA4B;EvE89QlE;EuE79QM;;IAEE,6BAAoC;EvE+9Q5C;EuE79QM;;IAEE,+BAAwC;EvE+9QhD;EuE79QM;;IAEE,gCAA0C;EvE+9QlD;EuE79QM;;IAEE,8BAAsC;EvE+9Q9C;EuE9+QM;IAAgC,uBAA4B;EvEi/QlE;EuEh/QM;;IAEE,2BAAoC;EvEk/Q5C;EuEh/QM;;IAEE,6BAAwC;EvEk/QhD;EuEh/QM;;IAEE,8BAA0C;EvEk/QlD;EuEh/QM;;IAEE,4BAAsC;EvEk/Q9C;EuEjgRM;IAAgC,yBAA4B;EvEogRlE;EuEngRM;;IAEE,6BAAoC;EvEqgR5C;EuEngRM;;IAEE,+BAAwC;EvEqgRhD;EuEngRM;;IAEE,gCAA0C;EvEqgRlD;EuEngRM;;IAEE,8BAAsC;EvEqgR9C;EuEphRM;IAAgC,uBAA4B;EvEuhRlE;EuEthRM;;IAEE,2BAAoC;EvEwhR5C;EuEthRM;;IAEE,6BAAwC;EvEwhRhD;EuEthRM;;IAEE,8BAA0C;EvEwhRlD;EuEthRM;;IAEE,4BAAsC;EvEwhR9C;EuEviRM;IAAgC,qBAA4B;EvE0iRlE;EuEziRM;;IAEE,yBAAoC;EvE2iR5C;EuEziRM;;IAEE,2BAAwC;EvE2iRhD;EuEziRM;;IAEE,4BAA0C;EvE2iRlD;EuEziRM;;IAEE,0BAAsC;EvE2iR9C;EuE1jRM;IAAgC,2BAA4B;EvE6jRlE;EuE5jRM;;IAEE,+BAAoC;EvE8jR5C;EuE5jRM;;IAEE,iCAAwC;EvE8jRhD;EuE5jRM;;IAEE,kCAA0C;EvE8jRlD;EuE5jRM;;IAEE,gCAAsC;EvE8jR9C;EuE7kRM;IAAgC,0BAA4B;EvEglRlE;EuE/kRM;;IAEE,8BAAoC;EvEilR5C;EuE/kRM;;IAEE,gCAAwC;EvEilRhD;EuE/kRM;;IAEE,iCAA0C;EvEilRlD;EuE/kRM;;IAEE,+BAAsC;EvEilR9C;EuEhmRM;IAAgC,wBAA4B;EvEmmRlE;EuElmRM;;IAEE,4BAAoC;EvEomR5C;EuElmRM;;IAEE,8BAAwC;EvEomRhD;EuElmRM;;IAEE,+BAA0C;EvEomRlD;EuElmRM;;IAEE,6BAAsC;EvEomR9C;EuEnnRM;IAAgC,0BAA4B;EvEsnRlE;EuErnRM;;IAEE,8BAAoC;EvEunR5C;EuErnRM;;IAEE,gCAAwC;EvEunRhD;EuErnRM;;IAEE,iCAA0C;EvEunRlD;EuErnRM;;IAEE,+BAAsC;EvEunR9C;EuEtoRM;IAAgC,wBAA4B;EvEyoRlE;EuExoRM;;IAEE,4BAAoC;EvE0oR5C;EuExoRM;;IAEE,8BAAwC;EvE0oRhD;EuExoRM;;IAEE,+BAA0C;EvE0oRlD;EuExoRM;;IAEE,6BAAsC;EvE0oR9C;EuEloRM;IAAwB,2BAA2B;EvEqoRzD;EuEpoRM;;IAEE,+BAA+B;EvEsoRvC;EuEpoRM;;IAEE,iCAAiC;EvEsoRzC;EuEpoRM;;IAEE,kCAAkC;EvEsoR1C;EuEpoRM;;IAEE,gCAAgC;EvEsoRxC;EuErpRM;IAAwB,0BAA2B;EvEwpRzD;EuEvpRM;;IAEE,8BAA+B;EvEypRvC;EuEvpRM;;IAEE,gCAAiC;EvEypRzC;EuEvpRM;;IAEE,iCAAkC;EvEypR1C;EuEvpRM;;IAEE,+BAAgC;EvEypRxC;EuExqRM;IAAwB,wBAA2B;EvE2qRzD;EuE1qRM;;IAEE,4BAA+B;EvE4qRvC;EuE1qRM;;IAEE,8BAAiC;EvE4qRzC;EuE1qRM;;IAEE,+BAAkC;EvE4qR1C;EuE1qRM;;IAEE,6BAAgC;EvE4qRxC;EuE3rRM;IAAwB,0BAA2B;EvE8rRzD;EuE7rRM;;IAEE,8BAA+B;EvE+rRvC;EuE7rRM;;IAEE,gCAAiC;EvE+rRzC;EuE7rRM;;IAEE,iCAAkC;EvE+rR1C;EuE7rRM;;IAEE,+BAAgC;EvE+rRxC;EuE9sRM;IAAwB,wBAA2B;EvEitRzD;EuEhtRM;;IAEE,4BAA+B;EvEktRvC;EuEhtRM;;IAEE,8BAAiC;EvEktRzC;EuEhtRM;;IAEE,+BAAkC;EvEktR1C;EuEhtRM;;IAEE,6BAAgC;EvEktRxC;EuE5sRE;IAAmB,uBAAuB;EvE+sR5C;EuE9sRE;;IAEE,2BAA2B;EvEgtR/B;EuE9sRE;;IAEE,6BAA6B;EvEgtRjC;EuE9sRE;;IAEE,8BAA8B;EvEgtRlC;EuE9sRE;;IAEE,4BAA4B;EvEgtRhC;AACF;;Ac1tRI;EyDlDI;IAAgC,oBAA4B;EvEixRlE;EuEhxRM;;IAEE,wBAAoC;EvEkxR5C;EuEhxRM;;IAEE,0BAAwC;EvEkxRhD;EuEhxRM;;IAEE,2BAA0C;EvEkxRlD;EuEhxRM;;IAEE,yBAAsC;EvEkxR9C;EuEjyRM;IAAgC,0BAA4B;EvEoyRlE;EuEnyRM;;IAEE,8BAAoC;EvEqyR5C;EuEnyRM;;IAEE,gCAAwC;EvEqyRhD;EuEnyRM;;IAEE,iCAA0C;EvEqyRlD;EuEnyRM;;IAEE,+BAAsC;EvEqyR9C;EuEpzRM;IAAgC,yBAA4B;EvEuzRlE;EuEtzRM;;IAEE,6BAAoC;EvEwzR5C;EuEtzRM;;IAEE,+BAAwC;EvEwzRhD;EuEtzRM;;IAEE,gCAA0C;EvEwzRlD;EuEtzRM;;IAEE,8BAAsC;EvEwzR9C;EuEv0RM;IAAgC,uBAA4B;EvE00RlE;EuEz0RM;;IAEE,2BAAoC;EvE20R5C;EuEz0RM;;IAEE,6BAAwC;EvE20RhD;EuEz0RM;;IAEE,8BAA0C;EvE20RlD;EuEz0RM;;IAEE,4BAAsC;EvE20R9C;EuE11RM;IAAgC,yBAA4B;EvE61RlE;EuE51RM;;IAEE,6BAAoC;EvE81R5C;EuE51RM;;IAEE,+BAAwC;EvE81RhD;EuE51RM;;IAEE,gCAA0C;EvE81RlD;EuE51RM;;IAEE,8BAAsC;EvE81R9C;EuE72RM;IAAgC,uBAA4B;EvEg3RlE;EuE/2RM;;IAEE,2BAAoC;EvEi3R5C;EuE/2RM;;IAEE,6BAAwC;EvEi3RhD;EuE/2RM;;IAEE,8BAA0C;EvEi3RlD;EuE/2RM;;IAEE,4BAAsC;EvEi3R9C;EuEh4RM;IAAgC,qBAA4B;EvEm4RlE;EuEl4RM;;IAEE,yBAAoC;EvEo4R5C;EuEl4RM;;IAEE,2BAAwC;EvEo4RhD;EuEl4RM;;IAEE,4BAA0C;EvEo4RlD;EuEl4RM;;IAEE,0BAAsC;EvEo4R9C;EuEn5RM;IAAgC,2BAA4B;EvEs5RlE;EuEr5RM;;IAEE,+BAAoC;EvEu5R5C;EuEr5RM;;IAEE,iCAAwC;EvEu5RhD;EuEr5RM;;IAEE,kCAA0C;EvEu5RlD;EuEr5RM;;IAEE,gCAAsC;EvEu5R9C;EuEt6RM;IAAgC,0BAA4B;EvEy6RlE;EuEx6RM;;IAEE,8BAAoC;EvE06R5C;EuEx6RM;;IAEE,gCAAwC;EvE06RhD;EuEx6RM;;IAEE,iCAA0C;EvE06RlD;EuEx6RM;;IAEE,+BAAsC;EvE06R9C;EuEz7RM;IAAgC,wBAA4B;EvE47RlE;EuE37RM;;IAEE,4BAAoC;EvE67R5C;EuE37RM;;IAEE,8BAAwC;EvE67RhD;EuE37RM;;IAEE,+BAA0C;EvE67RlD;EuE37RM;;IAEE,6BAAsC;EvE67R9C;EuE58RM;IAAgC,0BAA4B;EvE+8RlE;EuE98RM;;IAEE,8BAAoC;EvEg9R5C;EuE98RM;;IAEE,gCAAwC;EvEg9RhD;EuE98RM;;IAEE,iCAA0C;EvEg9RlD;EuE98RM;;IAEE,+BAAsC;EvEg9R9C;EuE/9RM;IAAgC,wBAA4B;EvEk+RlE;EuEj+RM;;IAEE,4BAAoC;EvEm+R5C;EuEj+RM;;IAEE,8BAAwC;EvEm+RhD;EuEj+RM;;IAEE,+BAA0C;EvEm+RlD;EuEj+RM;;IAEE,6BAAsC;EvEm+R9C;EuE39RM;IAAwB,2BAA2B;EvE89RzD;EuE79RM;;IAEE,+BAA+B;EvE+9RvC;EuE79RM;;IAEE,iCAAiC;EvE+9RzC;EuE79RM;;IAEE,kCAAkC;EvE+9R1C;EuE79RM;;IAEE,gCAAgC;EvE+9RxC;EuE9+RM;IAAwB,0BAA2B;EvEi/RzD;EuEh/RM;;IAEE,8BAA+B;EvEk/RvC;EuEh/RM;;IAEE,gCAAiC;EvEk/RzC;EuEh/RM;;IAEE,iCAAkC;EvEk/R1C;EuEh/RM;;IAEE,+BAAgC;EvEk/RxC;EuEjgSM;IAAwB,wBAA2B;EvEogSzD;EuEngSM;;IAEE,4BAA+B;EvEqgSvC;EuEngSM;;IAEE,8BAAiC;EvEqgSzC;EuEngSM;;IAEE,+BAAkC;EvEqgS1C;EuEngSM;;IAEE,6BAAgC;EvEqgSxC;EuEphSM;IAAwB,0BAA2B;EvEuhSzD;EuEthSM;;IAEE,8BAA+B;EvEwhSvC;EuEthSM;;IAEE,gCAAiC;EvEwhSzC;EuEthSM;;IAEE,iCAAkC;EvEwhS1C;EuEthSM;;IAEE,+BAAgC;EvEwhSxC;EuEviSM;IAAwB,wBAA2B;EvE0iSzD;EuEziSM;;IAEE,4BAA+B;EvE2iSvC;EuEziSM;;IAEE,8BAAiC;EvE2iSzC;EuEziSM;;IAEE,+BAAkC;EvE2iS1C;EuEziSM;;IAEE,6BAAgC;EvE2iSxC;EuEriSE;IAAmB,uBAAuB;EvEwiS5C;EuEviSE;;IAEE,2BAA2B;EvEyiS/B;EuEviSE;;IAEE,6BAA6B;EvEyiSjC;EuEviSE;;IAEE,8BAA8B;EvEyiSlC;EuEviSE;;IAEE,4BAA4B;EvEyiShC;AACF;;AwE3mSA;EAEI,kBAAkB;EAClB,MAAM;EACN,QAAQ;EACR,SAAS;EACT,OAAO;EACP,UAAU;EAEV,oBAAoB;EACpB,WAAW;EAEX,kCAAkC;AxE2mStC;;AyErnSA;EAAkB,4GAA8C;AzEynShE;;AyErnSA;EAAiB,8BAA8B;AzEynS/C;;AyExnSA;EAAiB,8BAA8B;AzE4nS/C;;AyE3nSA;EAAiB,8BAA8B;AzE+nS/C;;AyE9nSA;ECTE,gBAAgB;EAChB,uBAAuB;EACvB,mBAAmB;A1E2oSrB;;AyE5nSI;EAAwB,2BAA2B;AzEgoSvD;;AyE/nSI;EAAwB,4BAA4B;AzEmoSxD;;AyEloSI;EAAwB,6BAA6B;AzEsoSzD;;AcjmSI;E2DvCA;IAAwB,2BAA2B;EzE6oSrD;EyE5oSE;IAAwB,4BAA4B;EzE+oStD;EyE9oSE;IAAwB,6BAA6B;EzEipSvD;AACF;;Ac7mSI;E2DvCA;IAAwB,2BAA2B;EzEypSrD;EyExpSE;IAAwB,4BAA4B;EzE2pStD;EyE1pSE;IAAwB,6BAA6B;EzE6pSvD;AACF;;AcznSI;E2DvCA;IAAwB,2BAA2B;EzEqqSrD;EyEpqSE;IAAwB,4BAA4B;EzEuqStD;EyEtqSE;IAAwB,6BAA6B;EzEyqSvD;AACF;;AcroSI;E2DvCA;IAAwB,2BAA2B;EzEirSrD;EyEhrSE;IAAwB,4BAA4B;EzEmrStD;EyElrSE;IAAwB,6BAA6B;EzEqrSvD;AACF;;AyEhrSA;EAAmB,oCAAoC;AzEorSvD;;AyEnrSA;EAAmB,oCAAoC;AzEurSvD;;AyEtrSA;EAAmB,qCAAqC;AzE0rSxD;;AyEtrSA;EAAuB,2BAA0C;AzE0rSjE;;AyEzrSA;EAAuB,+BAA4C;AzE6rSnE;;AyE5rSA;EAAuB,2BAA2C;AzEgsSlE;;AyE/rSA;EAAuB,2BAAyC;AzEmsShE;;AyElsSA;EAAuB,8BAA2C;AzEssSlE;;AyErsSA;EAAuB,6BAA6B;AzEysSpD;;AyErsSA;EAAc,sBAAwB;AzEysStC;;A2EhvSE;EACE,yBAAwB;A3EmvS5B;;AKzuSE;EsELM,yBAA0E;A3EkvSlF;;A2ExvSE;EACE,yBAAwB;A3E2vS5B;;AKjvSE;EsELM,yBAA0E;A3E0vSlF;;A2EhwSE;EACE,yBAAwB;A3EmwS5B;;AKzvSE;EsELM,yBAA0E;A3EkwSlF;;A2ExwSE;EACE,yBAAwB;A3E2wS5B;;AKjwSE;EsELM,yBAA0E;A3E0wSlF;;A2EhxSE;EACE,yBAAwB;A3EmxS5B;;AKzwSE;EsELM,yBAA0E;A3EkxSlF;;A2ExxSE;EACE,yBAAwB;A3E2xS5B;;AKjxSE;EsELM,yBAA0E;A3E0xSlF;;A2EhySE;EACE,yBAAwB;A3EmyS5B;;AKzxSE;EsELM,yBAA0E;A3EkySlF;;A2ExySE;EACE,yBAAwB;A3E2yS5B;;AKjySE;EsELM,yBAA0E;A3E0ySlF;;AyEnwSA;EAAa,yBAA6B;AzEuwS1C;;AyEtwSA;EAAc,yBAA6B;AzE0wS3C;;AyExwSA;EAAiB,oCAAkC;AzE4wSnD;;AyE3wSA;EAAiB,0CAAkC;AzE+wSnD;;AyE3wSA;EGvDE,WAAW;EACX,kBAAkB;EAClB,iBAAiB;EACjB,6BAA6B;EAC7B,SAAS;A5Es0SX;;AyE/wSA;EAAwB,gCAAgC;AzEmxSxD;;AyEjxSA;EACE,iCAAiC;EACjC,gCAAgC;AzEoxSlC;;AyE/wSA;EAAc,yBAAyB;AzEmxSvC;;A6Ep1SA;EACE,8BAA8B;A7Eu1ShC;;A6Ep1SA;EACE,6BAA6B;A7Eu1S/B;;A8Ev1SE;E5EOF;;;I4EDM,4BAA4B;IAE5B,2BAA2B;E9Eu1S/B;E8Ep1SE;IAEI,0BAA0B;E9Eq1ShC;E8E50SE;IACE,6BAA6B;E9E80SjC;EEhpSF;I4E/KM,gCAAgC;E9Ek0SpC;E8Eh0SE;;IAEE,yB3EzCY;I2E0CZ,wBAAwB;E9Ek0S5B;E8E1zSE;IACE,2BAA2B;E9E4zS/B;E8EzzSE;;IAEE,wBAAwB;E9E2zS5B;E8ExzSE;;;IAGE,UAAU;IACV,SAAS;E9E0zSb;E8EvzSE;;IAEE,uBAAuB;E9EyzS3B;E8EjzSE;IACE,Q3E2hCgC;EHwxQpC;EE/1SF;I4E+CM,2BAA2C;E9EmzS/C;E8EjzSE;IACE,2BAA2C;E9EmzS/C;EiCj4SF;I6CmFM,aAAa;E9EizSjB;EsCh5SF;IwCkGM,sB3EtFS;EHu4Sb;EgBp5SF;I8DuGM,oCAAoC;E9EgzSxC;E8EjzSE;;IAKI,iCAAmC;E9EgzSzC;EgBn3SF;;I8D0EQ,oCAAsC;E9E6yS5C;EgBlySF;I8DNM,cAAc;E9E2ySlB;EiBj6SA;;;;I6D4HM,qB3EvHU;EHk6ShB;EgB7zSF;I8DuBM,cAAc;IACd,qB3E7HY;EHs6ShB;AACF","file":"bootstrap.css","sourcesContent":["/*!\n * Bootstrap v4.5.3 (https://getbootstrap.com/)\n * Copyright 2011-2020 The Bootstrap Authors\n * Copyright 2011-2020 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n */\n\n@import \"functions\";\n@import \"variables\";\n@import \"mixins\";\n@import \"root\";\n@import \"reboot\";\n@import \"type\";\n@import \"images\";\n@import \"code\";\n@import \"grid\";\n@import \"tables\";\n@import \"forms\";\n@import \"buttons\";\n@import \"transitions\";\n@import \"dropdown\";\n@import \"button-group\";\n@import \"input-group\";\n@import \"custom-forms\";\n@import \"nav\";\n@import \"navbar\";\n@import \"card\";\n@import \"breadcrumb\";\n@import \"pagination\";\n@import \"badge\";\n@import \"jumbotron\";\n@import \"alert\";\n@import \"progress\";\n@import \"media\";\n@import \"list-group\";\n@import \"close\";\n@import \"toasts\";\n@import \"modal\";\n@import \"tooltip\";\n@import \"popover\";\n@import \"carousel\";\n@import \"spinners\";\n@import \"utilities\";\n@import \"print\";\n","/*!\n * Bootstrap v4.5.3 (https://getbootstrap.com/)\n * Copyright 2011-2020 The Bootstrap Authors\n * Copyright 2011-2020 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n */\n:root {\n --blue: #007bff;\n --indigo: #6610f2;\n --purple: #6f42c1;\n --pink: #e83e8c;\n --red: #dc3545;\n --orange: #fd7e14;\n --yellow: #ffc107;\n --green: #28a745;\n --teal: #20c997;\n --cyan: #17a2b8;\n --white: #fff;\n --gray: #6c757d;\n --gray-dark: #343a40;\n --primary: #007bff;\n --secondary: #6c757d;\n --success: #28a745;\n --info: #17a2b8;\n --warning: #ffc107;\n --danger: #dc3545;\n --light: #f8f9fa;\n --dark: #343a40;\n --breakpoint-xs: 0;\n --breakpoint-sm: 576px;\n --breakpoint-md: 768px;\n --breakpoint-lg: 992px;\n --breakpoint-xl: 1200px;\n --font-family-sans-serif: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, \"Helvetica Neue\", Arial, \"Noto Sans\", sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\", \"Noto Color Emoji\";\n --font-family-monospace: SFMono-Regular, Menlo, Monaco, Consolas, \"Liberation Mono\", \"Courier New\", monospace;\n}\n\n*,\n*::before,\n*::after {\n box-sizing: border-box;\n}\n\nhtml {\n font-family: sans-serif;\n line-height: 1.15;\n -webkit-text-size-adjust: 100%;\n -webkit-tap-highlight-color: rgba(0, 0, 0, 0);\n}\n\narticle, aside, figcaption, figure, footer, header, hgroup, main, nav, section {\n display: block;\n}\n\nbody {\n margin: 0;\n font-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, \"Helvetica Neue\", Arial, \"Noto Sans\", sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\", \"Noto Color Emoji\";\n font-size: 1rem;\n font-weight: 400;\n line-height: 1.5;\n color: #212529;\n text-align: left;\n background-color: #fff;\n}\n\n[tabindex=\"-1\"]:focus:not(:focus-visible) {\n outline: 0 !important;\n}\n\nhr {\n box-sizing: content-box;\n height: 0;\n overflow: visible;\n}\n\nh1, h2, h3, h4, h5, h6 {\n margin-top: 0;\n margin-bottom: 0.5rem;\n}\n\np {\n margin-top: 0;\n margin-bottom: 1rem;\n}\n\nabbr[title],\nabbr[data-original-title] {\n text-decoration: underline;\n text-decoration: underline dotted;\n cursor: help;\n border-bottom: 0;\n text-decoration-skip-ink: none;\n}\n\naddress {\n margin-bottom: 1rem;\n font-style: normal;\n line-height: inherit;\n}\n\nol,\nul,\ndl {\n margin-top: 0;\n margin-bottom: 1rem;\n}\n\nol ol,\nul ul,\nol ul,\nul ol {\n margin-bottom: 0;\n}\n\ndt {\n font-weight: 700;\n}\n\ndd {\n margin-bottom: .5rem;\n margin-left: 0;\n}\n\nblockquote {\n margin: 0 0 1rem;\n}\n\nb,\nstrong {\n font-weight: bolder;\n}\n\nsmall {\n font-size: 80%;\n}\n\nsub,\nsup {\n position: relative;\n font-size: 75%;\n line-height: 0;\n vertical-align: baseline;\n}\n\nsub {\n bottom: -.25em;\n}\n\nsup {\n top: -.5em;\n}\n\na {\n color: #007bff;\n text-decoration: none;\n background-color: transparent;\n}\n\na:hover {\n color: #0056b3;\n text-decoration: underline;\n}\n\na:not([href]):not([class]) {\n color: inherit;\n text-decoration: none;\n}\n\na:not([href]):not([class]):hover {\n color: inherit;\n text-decoration: none;\n}\n\npre,\ncode,\nkbd,\nsamp {\n font-family: SFMono-Regular, Menlo, Monaco, Consolas, \"Liberation Mono\", \"Courier New\", monospace;\n font-size: 1em;\n}\n\npre {\n margin-top: 0;\n margin-bottom: 1rem;\n overflow: auto;\n -ms-overflow-style: scrollbar;\n}\n\nfigure {\n margin: 0 0 1rem;\n}\n\nimg {\n vertical-align: middle;\n border-style: none;\n}\n\nsvg {\n overflow: hidden;\n vertical-align: middle;\n}\n\ntable {\n border-collapse: collapse;\n}\n\ncaption {\n padding-top: 0.75rem;\n padding-bottom: 0.75rem;\n color: #6c757d;\n text-align: left;\n caption-side: bottom;\n}\n\nth {\n text-align: inherit;\n text-align: -webkit-match-parent;\n}\n\nlabel {\n display: inline-block;\n margin-bottom: 0.5rem;\n}\n\nbutton {\n border-radius: 0;\n}\n\nbutton:focus {\n outline: 1px dotted;\n outline: 5px auto -webkit-focus-ring-color;\n}\n\ninput,\nbutton,\nselect,\noptgroup,\ntextarea {\n margin: 0;\n font-family: inherit;\n font-size: inherit;\n line-height: inherit;\n}\n\nbutton,\ninput {\n overflow: visible;\n}\n\nbutton,\nselect {\n text-transform: none;\n}\n\n[role=\"button\"] {\n cursor: pointer;\n}\n\nselect {\n word-wrap: normal;\n}\n\nbutton,\n[type=\"button\"],\n[type=\"reset\"],\n[type=\"submit\"] {\n -webkit-appearance: button;\n}\n\nbutton:not(:disabled),\n[type=\"button\"]:not(:disabled),\n[type=\"reset\"]:not(:disabled),\n[type=\"submit\"]:not(:disabled) {\n cursor: pointer;\n}\n\nbutton::-moz-focus-inner,\n[type=\"button\"]::-moz-focus-inner,\n[type=\"reset\"]::-moz-focus-inner,\n[type=\"submit\"]::-moz-focus-inner {\n padding: 0;\n border-style: none;\n}\n\ninput[type=\"radio\"],\ninput[type=\"checkbox\"] {\n box-sizing: border-box;\n padding: 0;\n}\n\ntextarea {\n overflow: auto;\n resize: vertical;\n}\n\nfieldset {\n min-width: 0;\n padding: 0;\n margin: 0;\n border: 0;\n}\n\nlegend {\n display: block;\n width: 100%;\n max-width: 100%;\n padding: 0;\n margin-bottom: .5rem;\n font-size: 1.5rem;\n line-height: inherit;\n color: inherit;\n white-space: normal;\n}\n\nprogress {\n vertical-align: baseline;\n}\n\n[type=\"number\"]::-webkit-inner-spin-button,\n[type=\"number\"]::-webkit-outer-spin-button {\n height: auto;\n}\n\n[type=\"search\"] {\n outline-offset: -2px;\n -webkit-appearance: none;\n}\n\n[type=\"search\"]::-webkit-search-decoration {\n -webkit-appearance: none;\n}\n\n::-webkit-file-upload-button {\n font: inherit;\n -webkit-appearance: button;\n}\n\noutput {\n display: inline-block;\n}\n\nsummary {\n display: list-item;\n cursor: pointer;\n}\n\ntemplate {\n display: none;\n}\n\n[hidden] {\n display: none !important;\n}\n\nh1, h2, h3, h4, h5, h6,\n.h1, .h2, .h3, .h4, .h5, .h6 {\n margin-bottom: 0.5rem;\n font-weight: 500;\n line-height: 1.2;\n}\n\nh1, .h1 {\n font-size: 2.5rem;\n}\n\nh2, .h2 {\n font-size: 2rem;\n}\n\nh3, .h3 {\n font-size: 1.75rem;\n}\n\nh4, .h4 {\n font-size: 1.5rem;\n}\n\nh5, .h5 {\n font-size: 1.25rem;\n}\n\nh6, .h6 {\n font-size: 1rem;\n}\n\n.lead {\n font-size: 1.25rem;\n font-weight: 300;\n}\n\n.display-1 {\n font-size: 6rem;\n font-weight: 300;\n line-height: 1.2;\n}\n\n.display-2 {\n font-size: 5.5rem;\n font-weight: 300;\n line-height: 1.2;\n}\n\n.display-3 {\n font-size: 4.5rem;\n font-weight: 300;\n line-height: 1.2;\n}\n\n.display-4 {\n font-size: 3.5rem;\n font-weight: 300;\n line-height: 1.2;\n}\n\nhr {\n margin-top: 1rem;\n margin-bottom: 1rem;\n border: 0;\n border-top: 1px solid rgba(0, 0, 0, 0.1);\n}\n\nsmall,\n.small {\n font-size: 80%;\n font-weight: 400;\n}\n\nmark,\n.mark {\n padding: 0.2em;\n background-color: #fcf8e3;\n}\n\n.list-unstyled {\n padding-left: 0;\n list-style: none;\n}\n\n.list-inline {\n padding-left: 0;\n list-style: none;\n}\n\n.list-inline-item {\n display: inline-block;\n}\n\n.list-inline-item:not(:last-child) {\n margin-right: 0.5rem;\n}\n\n.initialism {\n font-size: 90%;\n text-transform: uppercase;\n}\n\n.blockquote {\n margin-bottom: 1rem;\n font-size: 1.25rem;\n}\n\n.blockquote-footer {\n display: block;\n font-size: 80%;\n color: #6c757d;\n}\n\n.blockquote-footer::before {\n content: \"\\2014\\00A0\";\n}\n\n.img-fluid {\n max-width: 100%;\n height: auto;\n}\n\n.img-thumbnail {\n padding: 0.25rem;\n background-color: #fff;\n border: 1px solid #dee2e6;\n border-radius: 0.25rem;\n max-width: 100%;\n height: auto;\n}\n\n.figure {\n display: inline-block;\n}\n\n.figure-img {\n margin-bottom: 0.5rem;\n line-height: 1;\n}\n\n.figure-caption {\n font-size: 90%;\n color: #6c757d;\n}\n\ncode {\n font-size: 87.5%;\n color: #e83e8c;\n word-wrap: break-word;\n}\n\na > code {\n color: inherit;\n}\n\nkbd {\n padding: 0.2rem 0.4rem;\n font-size: 87.5%;\n color: #fff;\n background-color: #212529;\n border-radius: 0.2rem;\n}\n\nkbd kbd {\n padding: 0;\n font-size: 100%;\n font-weight: 700;\n}\n\npre {\n display: block;\n font-size: 87.5%;\n color: #212529;\n}\n\npre code {\n font-size: inherit;\n color: inherit;\n word-break: normal;\n}\n\n.pre-scrollable {\n max-height: 340px;\n overflow-y: scroll;\n}\n\n.container,\n.container-fluid,\n.container-sm,\n.container-md,\n.container-lg,\n.container-xl {\n width: 100%;\n padding-right: 15px;\n padding-left: 15px;\n margin-right: auto;\n margin-left: auto;\n}\n\n@media (min-width: 576px) {\n .container, .container-sm {\n max-width: 540px;\n }\n}\n\n@media (min-width: 768px) {\n .container, .container-sm, .container-md {\n max-width: 720px;\n }\n}\n\n@media (min-width: 992px) {\n .container, .container-sm, .container-md, .container-lg {\n max-width: 960px;\n }\n}\n\n@media (min-width: 1200px) {\n .container, .container-sm, .container-md, .container-lg, .container-xl {\n max-width: 1140px;\n }\n}\n\n.row {\n display: flex;\n flex-wrap: wrap;\n margin-right: -15px;\n margin-left: -15px;\n}\n\n.no-gutters {\n margin-right: 0;\n margin-left: 0;\n}\n\n.no-gutters > .col,\n.no-gutters > [class*=\"col-\"] {\n padding-right: 0;\n padding-left: 0;\n}\n\n.col-1, .col-2, .col-3, .col-4, .col-5, .col-6, .col-7, .col-8, .col-9, .col-10, .col-11, .col-12, .col,\n.col-auto, .col-sm-1, .col-sm-2, .col-sm-3, .col-sm-4, .col-sm-5, .col-sm-6, .col-sm-7, .col-sm-8, .col-sm-9, .col-sm-10, .col-sm-11, .col-sm-12, .col-sm,\n.col-sm-auto, .col-md-1, .col-md-2, .col-md-3, .col-md-4, .col-md-5, .col-md-6, .col-md-7, .col-md-8, .col-md-9, .col-md-10, .col-md-11, .col-md-12, .col-md,\n.col-md-auto, .col-lg-1, .col-lg-2, .col-lg-3, .col-lg-4, .col-lg-5, .col-lg-6, .col-lg-7, .col-lg-8, .col-lg-9, .col-lg-10, .col-lg-11, .col-lg-12, .col-lg,\n.col-lg-auto, .col-xl-1, .col-xl-2, .col-xl-3, .col-xl-4, .col-xl-5, .col-xl-6, .col-xl-7, .col-xl-8, .col-xl-9, .col-xl-10, .col-xl-11, .col-xl-12, .col-xl,\n.col-xl-auto {\n position: relative;\n width: 100%;\n padding-right: 15px;\n padding-left: 15px;\n}\n\n.col {\n flex-basis: 0;\n flex-grow: 1;\n max-width: 100%;\n}\n\n.row-cols-1 > * {\n flex: 0 0 100%;\n max-width: 100%;\n}\n\n.row-cols-2 > * {\n flex: 0 0 50%;\n max-width: 50%;\n}\n\n.row-cols-3 > * {\n flex: 0 0 33.333333%;\n max-width: 33.333333%;\n}\n\n.row-cols-4 > * {\n flex: 0 0 25%;\n max-width: 25%;\n}\n\n.row-cols-5 > * {\n flex: 0 0 20%;\n max-width: 20%;\n}\n\n.row-cols-6 > * {\n flex: 0 0 16.666667%;\n max-width: 16.666667%;\n}\n\n.col-auto {\n flex: 0 0 auto;\n width: auto;\n max-width: 100%;\n}\n\n.col-1 {\n flex: 0 0 8.333333%;\n max-width: 8.333333%;\n}\n\n.col-2 {\n flex: 0 0 16.666667%;\n max-width: 16.666667%;\n}\n\n.col-3 {\n flex: 0 0 25%;\n max-width: 25%;\n}\n\n.col-4 {\n flex: 0 0 33.333333%;\n max-width: 33.333333%;\n}\n\n.col-5 {\n flex: 0 0 41.666667%;\n max-width: 41.666667%;\n}\n\n.col-6 {\n flex: 0 0 50%;\n max-width: 50%;\n}\n\n.col-7 {\n flex: 0 0 58.333333%;\n max-width: 58.333333%;\n}\n\n.col-8 {\n flex: 0 0 66.666667%;\n max-width: 66.666667%;\n}\n\n.col-9 {\n flex: 0 0 75%;\n max-width: 75%;\n}\n\n.col-10 {\n flex: 0 0 83.333333%;\n max-width: 83.333333%;\n}\n\n.col-11 {\n flex: 0 0 91.666667%;\n max-width: 91.666667%;\n}\n\n.col-12 {\n flex: 0 0 100%;\n max-width: 100%;\n}\n\n.order-first {\n order: -1;\n}\n\n.order-last {\n order: 13;\n}\n\n.order-0 {\n order: 0;\n}\n\n.order-1 {\n order: 1;\n}\n\n.order-2 {\n order: 2;\n}\n\n.order-3 {\n order: 3;\n}\n\n.order-4 {\n order: 4;\n}\n\n.order-5 {\n order: 5;\n}\n\n.order-6 {\n order: 6;\n}\n\n.order-7 {\n order: 7;\n}\n\n.order-8 {\n order: 8;\n}\n\n.order-9 {\n order: 9;\n}\n\n.order-10 {\n order: 10;\n}\n\n.order-11 {\n order: 11;\n}\n\n.order-12 {\n order: 12;\n}\n\n.offset-1 {\n margin-left: 8.333333%;\n}\n\n.offset-2 {\n margin-left: 16.666667%;\n}\n\n.offset-3 {\n margin-left: 25%;\n}\n\n.offset-4 {\n margin-left: 33.333333%;\n}\n\n.offset-5 {\n margin-left: 41.666667%;\n}\n\n.offset-6 {\n margin-left: 50%;\n}\n\n.offset-7 {\n margin-left: 58.333333%;\n}\n\n.offset-8 {\n margin-left: 66.666667%;\n}\n\n.offset-9 {\n margin-left: 75%;\n}\n\n.offset-10 {\n margin-left: 83.333333%;\n}\n\n.offset-11 {\n margin-left: 91.666667%;\n}\n\n@media (min-width: 576px) {\n .col-sm {\n flex-basis: 0;\n flex-grow: 1;\n max-width: 100%;\n }\n .row-cols-sm-1 > * {\n flex: 0 0 100%;\n max-width: 100%;\n }\n .row-cols-sm-2 > * {\n flex: 0 0 50%;\n max-width: 50%;\n }\n .row-cols-sm-3 > * {\n flex: 0 0 33.333333%;\n max-width: 33.333333%;\n }\n .row-cols-sm-4 > * {\n flex: 0 0 25%;\n max-width: 25%;\n }\n .row-cols-sm-5 > * {\n flex: 0 0 20%;\n max-width: 20%;\n }\n .row-cols-sm-6 > * {\n flex: 0 0 16.666667%;\n max-width: 16.666667%;\n }\n .col-sm-auto {\n flex: 0 0 auto;\n width: auto;\n max-width: 100%;\n }\n .col-sm-1 {\n flex: 0 0 8.333333%;\n max-width: 8.333333%;\n }\n .col-sm-2 {\n flex: 0 0 16.666667%;\n max-width: 16.666667%;\n }\n .col-sm-3 {\n flex: 0 0 25%;\n max-width: 25%;\n }\n .col-sm-4 {\n flex: 0 0 33.333333%;\n max-width: 33.333333%;\n }\n .col-sm-5 {\n flex: 0 0 41.666667%;\n max-width: 41.666667%;\n }\n .col-sm-6 {\n flex: 0 0 50%;\n max-width: 50%;\n }\n .col-sm-7 {\n flex: 0 0 58.333333%;\n max-width: 58.333333%;\n }\n .col-sm-8 {\n flex: 0 0 66.666667%;\n max-width: 66.666667%;\n }\n .col-sm-9 {\n flex: 0 0 75%;\n max-width: 75%;\n }\n .col-sm-10 {\n flex: 0 0 83.333333%;\n max-width: 83.333333%;\n }\n .col-sm-11 {\n flex: 0 0 91.666667%;\n max-width: 91.666667%;\n }\n .col-sm-12 {\n flex: 0 0 100%;\n max-width: 100%;\n }\n .order-sm-first {\n order: -1;\n }\n .order-sm-last {\n order: 13;\n }\n .order-sm-0 {\n order: 0;\n }\n .order-sm-1 {\n order: 1;\n }\n .order-sm-2 {\n order: 2;\n }\n .order-sm-3 {\n order: 3;\n }\n .order-sm-4 {\n order: 4;\n }\n .order-sm-5 {\n order: 5;\n }\n .order-sm-6 {\n order: 6;\n }\n .order-sm-7 {\n order: 7;\n }\n .order-sm-8 {\n order: 8;\n }\n .order-sm-9 {\n order: 9;\n }\n .order-sm-10 {\n order: 10;\n }\n .order-sm-11 {\n order: 11;\n }\n .order-sm-12 {\n order: 12;\n }\n .offset-sm-0 {\n margin-left: 0;\n }\n .offset-sm-1 {\n margin-left: 8.333333%;\n }\n .offset-sm-2 {\n margin-left: 16.666667%;\n }\n .offset-sm-3 {\n margin-left: 25%;\n }\n .offset-sm-4 {\n margin-left: 33.333333%;\n }\n .offset-sm-5 {\n margin-left: 41.666667%;\n }\n .offset-sm-6 {\n margin-left: 50%;\n }\n .offset-sm-7 {\n margin-left: 58.333333%;\n }\n .offset-sm-8 {\n margin-left: 66.666667%;\n }\n .offset-sm-9 {\n margin-left: 75%;\n }\n .offset-sm-10 {\n margin-left: 83.333333%;\n }\n .offset-sm-11 {\n margin-left: 91.666667%;\n }\n}\n\n@media (min-width: 768px) {\n .col-md {\n flex-basis: 0;\n flex-grow: 1;\n max-width: 100%;\n }\n .row-cols-md-1 > * {\n flex: 0 0 100%;\n max-width: 100%;\n }\n .row-cols-md-2 > * {\n flex: 0 0 50%;\n max-width: 50%;\n }\n .row-cols-md-3 > * {\n flex: 0 0 33.333333%;\n max-width: 33.333333%;\n }\n .row-cols-md-4 > * {\n flex: 0 0 25%;\n max-width: 25%;\n }\n .row-cols-md-5 > * {\n flex: 0 0 20%;\n max-width: 20%;\n }\n .row-cols-md-6 > * {\n flex: 0 0 16.666667%;\n max-width: 16.666667%;\n }\n .col-md-auto {\n flex: 0 0 auto;\n width: auto;\n max-width: 100%;\n }\n .col-md-1 {\n flex: 0 0 8.333333%;\n max-width: 8.333333%;\n }\n .col-md-2 {\n flex: 0 0 16.666667%;\n max-width: 16.666667%;\n }\n .col-md-3 {\n flex: 0 0 25%;\n max-width: 25%;\n }\n .col-md-4 {\n flex: 0 0 33.333333%;\n max-width: 33.333333%;\n }\n .col-md-5 {\n flex: 0 0 41.666667%;\n max-width: 41.666667%;\n }\n .col-md-6 {\n flex: 0 0 50%;\n max-width: 50%;\n }\n .col-md-7 {\n flex: 0 0 58.333333%;\n max-width: 58.333333%;\n }\n .col-md-8 {\n flex: 0 0 66.666667%;\n max-width: 66.666667%;\n }\n .col-md-9 {\n flex: 0 0 75%;\n max-width: 75%;\n }\n .col-md-10 {\n flex: 0 0 83.333333%;\n max-width: 83.333333%;\n }\n .col-md-11 {\n flex: 0 0 91.666667%;\n max-width: 91.666667%;\n }\n .col-md-12 {\n flex: 0 0 100%;\n max-width: 100%;\n }\n .order-md-first {\n order: -1;\n }\n .order-md-last {\n order: 13;\n }\n .order-md-0 {\n order: 0;\n }\n .order-md-1 {\n order: 1;\n }\n .order-md-2 {\n order: 2;\n }\n .order-md-3 {\n order: 3;\n }\n .order-md-4 {\n order: 4;\n }\n .order-md-5 {\n order: 5;\n }\n .order-md-6 {\n order: 6;\n }\n .order-md-7 {\n order: 7;\n }\n .order-md-8 {\n order: 8;\n }\n .order-md-9 {\n order: 9;\n }\n .order-md-10 {\n order: 10;\n }\n .order-md-11 {\n order: 11;\n }\n .order-md-12 {\n order: 12;\n }\n .offset-md-0 {\n margin-left: 0;\n }\n .offset-md-1 {\n margin-left: 8.333333%;\n }\n .offset-md-2 {\n margin-left: 16.666667%;\n }\n .offset-md-3 {\n margin-left: 25%;\n }\n .offset-md-4 {\n margin-left: 33.333333%;\n }\n .offset-md-5 {\n margin-left: 41.666667%;\n }\n .offset-md-6 {\n margin-left: 50%;\n }\n .offset-md-7 {\n margin-left: 58.333333%;\n }\n .offset-md-8 {\n margin-left: 66.666667%;\n }\n .offset-md-9 {\n margin-left: 75%;\n }\n .offset-md-10 {\n margin-left: 83.333333%;\n }\n .offset-md-11 {\n margin-left: 91.666667%;\n }\n}\n\n@media (min-width: 992px) {\n .col-lg {\n flex-basis: 0;\n flex-grow: 1;\n max-width: 100%;\n }\n .row-cols-lg-1 > * {\n flex: 0 0 100%;\n max-width: 100%;\n }\n .row-cols-lg-2 > * {\n flex: 0 0 50%;\n max-width: 50%;\n }\n .row-cols-lg-3 > * {\n flex: 0 0 33.333333%;\n max-width: 33.333333%;\n }\n .row-cols-lg-4 > * {\n flex: 0 0 25%;\n max-width: 25%;\n }\n .row-cols-lg-5 > * {\n flex: 0 0 20%;\n max-width: 20%;\n }\n .row-cols-lg-6 > * {\n flex: 0 0 16.666667%;\n max-width: 16.666667%;\n }\n .col-lg-auto {\n flex: 0 0 auto;\n width: auto;\n max-width: 100%;\n }\n .col-lg-1 {\n flex: 0 0 8.333333%;\n max-width: 8.333333%;\n }\n .col-lg-2 {\n flex: 0 0 16.666667%;\n max-width: 16.666667%;\n }\n .col-lg-3 {\n flex: 0 0 25%;\n max-width: 25%;\n }\n .col-lg-4 {\n flex: 0 0 33.333333%;\n max-width: 33.333333%;\n }\n .col-lg-5 {\n flex: 0 0 41.666667%;\n max-width: 41.666667%;\n }\n .col-lg-6 {\n flex: 0 0 50%;\n max-width: 50%;\n }\n .col-lg-7 {\n flex: 0 0 58.333333%;\n max-width: 58.333333%;\n }\n .col-lg-8 {\n flex: 0 0 66.666667%;\n max-width: 66.666667%;\n }\n .col-lg-9 {\n flex: 0 0 75%;\n max-width: 75%;\n }\n .col-lg-10 {\n flex: 0 0 83.333333%;\n max-width: 83.333333%;\n }\n .col-lg-11 {\n flex: 0 0 91.666667%;\n max-width: 91.666667%;\n }\n .col-lg-12 {\n flex: 0 0 100%;\n max-width: 100%;\n }\n .order-lg-first {\n order: -1;\n }\n .order-lg-last {\n order: 13;\n }\n .order-lg-0 {\n order: 0;\n }\n .order-lg-1 {\n order: 1;\n }\n .order-lg-2 {\n order: 2;\n }\n .order-lg-3 {\n order: 3;\n }\n .order-lg-4 {\n order: 4;\n }\n .order-lg-5 {\n order: 5;\n }\n .order-lg-6 {\n order: 6;\n }\n .order-lg-7 {\n order: 7;\n }\n .order-lg-8 {\n order: 8;\n }\n .order-lg-9 {\n order: 9;\n }\n .order-lg-10 {\n order: 10;\n }\n .order-lg-11 {\n order: 11;\n }\n .order-lg-12 {\n order: 12;\n }\n .offset-lg-0 {\n margin-left: 0;\n }\n .offset-lg-1 {\n margin-left: 8.333333%;\n }\n .offset-lg-2 {\n margin-left: 16.666667%;\n }\n .offset-lg-3 {\n margin-left: 25%;\n }\n .offset-lg-4 {\n margin-left: 33.333333%;\n }\n .offset-lg-5 {\n margin-left: 41.666667%;\n }\n .offset-lg-6 {\n margin-left: 50%;\n }\n .offset-lg-7 {\n margin-left: 58.333333%;\n }\n .offset-lg-8 {\n margin-left: 66.666667%;\n }\n .offset-lg-9 {\n margin-left: 75%;\n }\n .offset-lg-10 {\n margin-left: 83.333333%;\n }\n .offset-lg-11 {\n margin-left: 91.666667%;\n }\n}\n\n@media (min-width: 1200px) {\n .col-xl {\n flex-basis: 0;\n flex-grow: 1;\n max-width: 100%;\n }\n .row-cols-xl-1 > * {\n flex: 0 0 100%;\n max-width: 100%;\n }\n .row-cols-xl-2 > * {\n flex: 0 0 50%;\n max-width: 50%;\n }\n .row-cols-xl-3 > * {\n flex: 0 0 33.333333%;\n max-width: 33.333333%;\n }\n .row-cols-xl-4 > * {\n flex: 0 0 25%;\n max-width: 25%;\n }\n .row-cols-xl-5 > * {\n flex: 0 0 20%;\n max-width: 20%;\n }\n .row-cols-xl-6 > * {\n flex: 0 0 16.666667%;\n max-width: 16.666667%;\n }\n .col-xl-auto {\n flex: 0 0 auto;\n width: auto;\n max-width: 100%;\n }\n .col-xl-1 {\n flex: 0 0 8.333333%;\n max-width: 8.333333%;\n }\n .col-xl-2 {\n flex: 0 0 16.666667%;\n max-width: 16.666667%;\n }\n .col-xl-3 {\n flex: 0 0 25%;\n max-width: 25%;\n }\n .col-xl-4 {\n flex: 0 0 33.333333%;\n max-width: 33.333333%;\n }\n .col-xl-5 {\n flex: 0 0 41.666667%;\n max-width: 41.666667%;\n }\n .col-xl-6 {\n flex: 0 0 50%;\n max-width: 50%;\n }\n .col-xl-7 {\n flex: 0 0 58.333333%;\n max-width: 58.333333%;\n }\n .col-xl-8 {\n flex: 0 0 66.666667%;\n max-width: 66.666667%;\n }\n .col-xl-9 {\n flex: 0 0 75%;\n max-width: 75%;\n }\n .col-xl-10 {\n flex: 0 0 83.333333%;\n max-width: 83.333333%;\n }\n .col-xl-11 {\n flex: 0 0 91.666667%;\n max-width: 91.666667%;\n }\n .col-xl-12 {\n flex: 0 0 100%;\n max-width: 100%;\n }\n .order-xl-first {\n order: -1;\n }\n .order-xl-last {\n order: 13;\n }\n .order-xl-0 {\n order: 0;\n }\n .order-xl-1 {\n order: 1;\n }\n .order-xl-2 {\n order: 2;\n }\n .order-xl-3 {\n order: 3;\n }\n .order-xl-4 {\n order: 4;\n }\n .order-xl-5 {\n order: 5;\n }\n .order-xl-6 {\n order: 6;\n }\n .order-xl-7 {\n order: 7;\n }\n .order-xl-8 {\n order: 8;\n }\n .order-xl-9 {\n order: 9;\n }\n .order-xl-10 {\n order: 10;\n }\n .order-xl-11 {\n order: 11;\n }\n .order-xl-12 {\n order: 12;\n }\n .offset-xl-0 {\n margin-left: 0;\n }\n .offset-xl-1 {\n margin-left: 8.333333%;\n }\n .offset-xl-2 {\n margin-left: 16.666667%;\n }\n .offset-xl-3 {\n margin-left: 25%;\n }\n .offset-xl-4 {\n margin-left: 33.333333%;\n }\n .offset-xl-5 {\n margin-left: 41.666667%;\n }\n .offset-xl-6 {\n margin-left: 50%;\n }\n .offset-xl-7 {\n margin-left: 58.333333%;\n }\n .offset-xl-8 {\n margin-left: 66.666667%;\n }\n .offset-xl-9 {\n margin-left: 75%;\n }\n .offset-xl-10 {\n margin-left: 83.333333%;\n }\n .offset-xl-11 {\n margin-left: 91.666667%;\n }\n}\n\n.table {\n width: 100%;\n margin-bottom: 1rem;\n color: #212529;\n}\n\n.table th,\n.table td {\n padding: 0.75rem;\n vertical-align: top;\n border-top: 1px solid #dee2e6;\n}\n\n.table thead th {\n vertical-align: bottom;\n border-bottom: 2px solid #dee2e6;\n}\n\n.table tbody + tbody {\n border-top: 2px solid #dee2e6;\n}\n\n.table-sm th,\n.table-sm td {\n padding: 0.3rem;\n}\n\n.table-bordered {\n border: 1px solid #dee2e6;\n}\n\n.table-bordered th,\n.table-bordered td {\n border: 1px solid #dee2e6;\n}\n\n.table-bordered thead th,\n.table-bordered thead td {\n border-bottom-width: 2px;\n}\n\n.table-borderless th,\n.table-borderless td,\n.table-borderless thead th,\n.table-borderless tbody + tbody {\n border: 0;\n}\n\n.table-striped tbody tr:nth-of-type(odd) {\n background-color: rgba(0, 0, 0, 0.05);\n}\n\n.table-hover tbody tr:hover {\n color: #212529;\n background-color: rgba(0, 0, 0, 0.075);\n}\n\n.table-primary,\n.table-primary > th,\n.table-primary > td {\n background-color: #b8daff;\n}\n\n.table-primary th,\n.table-primary td,\n.table-primary thead th,\n.table-primary tbody + tbody {\n border-color: #7abaff;\n}\n\n.table-hover .table-primary:hover {\n background-color: #9fcdff;\n}\n\n.table-hover .table-primary:hover > td,\n.table-hover .table-primary:hover > th {\n background-color: #9fcdff;\n}\n\n.table-secondary,\n.table-secondary > th,\n.table-secondary > td {\n background-color: #d6d8db;\n}\n\n.table-secondary th,\n.table-secondary td,\n.table-secondary thead th,\n.table-secondary tbody + tbody {\n border-color: #b3b7bb;\n}\n\n.table-hover .table-secondary:hover {\n background-color: #c8cbcf;\n}\n\n.table-hover .table-secondary:hover > td,\n.table-hover .table-secondary:hover > th {\n background-color: #c8cbcf;\n}\n\n.table-success,\n.table-success > th,\n.table-success > td {\n background-color: #c3e6cb;\n}\n\n.table-success th,\n.table-success td,\n.table-success thead th,\n.table-success tbody + tbody {\n border-color: #8fd19e;\n}\n\n.table-hover .table-success:hover {\n background-color: #b1dfbb;\n}\n\n.table-hover .table-success:hover > td,\n.table-hover .table-success:hover > th {\n background-color: #b1dfbb;\n}\n\n.table-info,\n.table-info > th,\n.table-info > td {\n background-color: #bee5eb;\n}\n\n.table-info th,\n.table-info td,\n.table-info thead th,\n.table-info tbody + tbody {\n border-color: #86cfda;\n}\n\n.table-hover .table-info:hover {\n background-color: #abdde5;\n}\n\n.table-hover .table-info:hover > td,\n.table-hover .table-info:hover > th {\n background-color: #abdde5;\n}\n\n.table-warning,\n.table-warning > th,\n.table-warning > td {\n background-color: #ffeeba;\n}\n\n.table-warning th,\n.table-warning td,\n.table-warning thead th,\n.table-warning tbody + tbody {\n border-color: #ffdf7e;\n}\n\n.table-hover .table-warning:hover {\n background-color: #ffe8a1;\n}\n\n.table-hover .table-warning:hover > td,\n.table-hover .table-warning:hover > th {\n background-color: #ffe8a1;\n}\n\n.table-danger,\n.table-danger > th,\n.table-danger > td {\n background-color: #f5c6cb;\n}\n\n.table-danger th,\n.table-danger td,\n.table-danger thead th,\n.table-danger tbody + tbody {\n border-color: #ed969e;\n}\n\n.table-hover .table-danger:hover {\n background-color: #f1b0b7;\n}\n\n.table-hover .table-danger:hover > td,\n.table-hover .table-danger:hover > th {\n background-color: #f1b0b7;\n}\n\n.table-light,\n.table-light > th,\n.table-light > td {\n background-color: #fdfdfe;\n}\n\n.table-light th,\n.table-light td,\n.table-light thead th,\n.table-light tbody + tbody {\n border-color: #fbfcfc;\n}\n\n.table-hover .table-light:hover {\n background-color: #ececf6;\n}\n\n.table-hover .table-light:hover > td,\n.table-hover .table-light:hover > th {\n background-color: #ececf6;\n}\n\n.table-dark,\n.table-dark > th,\n.table-dark > td {\n background-color: #c6c8ca;\n}\n\n.table-dark th,\n.table-dark td,\n.table-dark thead th,\n.table-dark tbody + tbody {\n border-color: #95999c;\n}\n\n.table-hover .table-dark:hover {\n background-color: #b9bbbe;\n}\n\n.table-hover .table-dark:hover > td,\n.table-hover .table-dark:hover > th {\n background-color: #b9bbbe;\n}\n\n.table-active,\n.table-active > th,\n.table-active > td {\n background-color: rgba(0, 0, 0, 0.075);\n}\n\n.table-hover .table-active:hover {\n background-color: rgba(0, 0, 0, 0.075);\n}\n\n.table-hover .table-active:hover > td,\n.table-hover .table-active:hover > th {\n background-color: rgba(0, 0, 0, 0.075);\n}\n\n.table .thead-dark th {\n color: #fff;\n background-color: #343a40;\n border-color: #454d55;\n}\n\n.table .thead-light th {\n color: #495057;\n background-color: #e9ecef;\n border-color: #dee2e6;\n}\n\n.table-dark {\n color: #fff;\n background-color: #343a40;\n}\n\n.table-dark th,\n.table-dark td,\n.table-dark thead th {\n border-color: #454d55;\n}\n\n.table-dark.table-bordered {\n border: 0;\n}\n\n.table-dark.table-striped tbody tr:nth-of-type(odd) {\n background-color: rgba(255, 255, 255, 0.05);\n}\n\n.table-dark.table-hover tbody tr:hover {\n color: #fff;\n background-color: rgba(255, 255, 255, 0.075);\n}\n\n@media (max-width: 575.98px) {\n .table-responsive-sm {\n display: block;\n width: 100%;\n overflow-x: auto;\n -webkit-overflow-scrolling: touch;\n }\n .table-responsive-sm > .table-bordered {\n border: 0;\n }\n}\n\n@media (max-width: 767.98px) {\n .table-responsive-md {\n display: block;\n width: 100%;\n overflow-x: auto;\n -webkit-overflow-scrolling: touch;\n }\n .table-responsive-md > .table-bordered {\n border: 0;\n }\n}\n\n@media (max-width: 991.98px) {\n .table-responsive-lg {\n display: block;\n width: 100%;\n overflow-x: auto;\n -webkit-overflow-scrolling: touch;\n }\n .table-responsive-lg > .table-bordered {\n border: 0;\n }\n}\n\n@media (max-width: 1199.98px) {\n .table-responsive-xl {\n display: block;\n width: 100%;\n overflow-x: auto;\n -webkit-overflow-scrolling: touch;\n }\n .table-responsive-xl > .table-bordered {\n border: 0;\n }\n}\n\n.table-responsive {\n display: block;\n width: 100%;\n overflow-x: auto;\n -webkit-overflow-scrolling: touch;\n}\n\n.table-responsive > .table-bordered {\n border: 0;\n}\n\n.form-control {\n display: block;\n width: 100%;\n height: calc(1.5em + 0.75rem + 2px);\n padding: 0.375rem 0.75rem;\n font-size: 1rem;\n font-weight: 400;\n line-height: 1.5;\n color: #495057;\n background-color: #fff;\n background-clip: padding-box;\n border: 1px solid #ced4da;\n border-radius: 0.25rem;\n transition: border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;\n}\n\n@media (prefers-reduced-motion: reduce) {\n .form-control {\n transition: none;\n }\n}\n\n.form-control::-ms-expand {\n background-color: transparent;\n border: 0;\n}\n\n.form-control:-moz-focusring {\n color: transparent;\n text-shadow: 0 0 0 #495057;\n}\n\n.form-control:focus {\n color: #495057;\n background-color: #fff;\n border-color: #80bdff;\n outline: 0;\n box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.25);\n}\n\n.form-control::placeholder {\n color: #6c757d;\n opacity: 1;\n}\n\n.form-control:disabled, .form-control[readonly] {\n background-color: #e9ecef;\n opacity: 1;\n}\n\ninput[type=\"date\"].form-control,\ninput[type=\"time\"].form-control,\ninput[type=\"datetime-local\"].form-control,\ninput[type=\"month\"].form-control {\n appearance: none;\n}\n\nselect.form-control:focus::-ms-value {\n color: #495057;\n background-color: #fff;\n}\n\n.form-control-file,\n.form-control-range {\n display: block;\n width: 100%;\n}\n\n.col-form-label {\n padding-top: calc(0.375rem + 1px);\n padding-bottom: calc(0.375rem + 1px);\n margin-bottom: 0;\n font-size: inherit;\n line-height: 1.5;\n}\n\n.col-form-label-lg {\n padding-top: calc(0.5rem + 1px);\n padding-bottom: calc(0.5rem + 1px);\n font-size: 1.25rem;\n line-height: 1.5;\n}\n\n.col-form-label-sm {\n padding-top: calc(0.25rem + 1px);\n padding-bottom: calc(0.25rem + 1px);\n font-size: 0.875rem;\n line-height: 1.5;\n}\n\n.form-control-plaintext {\n display: block;\n width: 100%;\n padding: 0.375rem 0;\n margin-bottom: 0;\n font-size: 1rem;\n line-height: 1.5;\n color: #212529;\n background-color: transparent;\n border: solid transparent;\n border-width: 1px 0;\n}\n\n.form-control-plaintext.form-control-sm, .form-control-plaintext.form-control-lg {\n padding-right: 0;\n padding-left: 0;\n}\n\n.form-control-sm {\n height: calc(1.5em + 0.5rem + 2px);\n padding: 0.25rem 0.5rem;\n font-size: 0.875rem;\n line-height: 1.5;\n border-radius: 0.2rem;\n}\n\n.form-control-lg {\n height: calc(1.5em + 1rem + 2px);\n padding: 0.5rem 1rem;\n font-size: 1.25rem;\n line-height: 1.5;\n border-radius: 0.3rem;\n}\n\nselect.form-control[size], select.form-control[multiple] {\n height: auto;\n}\n\ntextarea.form-control {\n height: auto;\n}\n\n.form-group {\n margin-bottom: 1rem;\n}\n\n.form-text {\n display: block;\n margin-top: 0.25rem;\n}\n\n.form-row {\n display: flex;\n flex-wrap: wrap;\n margin-right: -5px;\n margin-left: -5px;\n}\n\n.form-row > .col,\n.form-row > [class*=\"col-\"] {\n padding-right: 5px;\n padding-left: 5px;\n}\n\n.form-check {\n position: relative;\n display: block;\n padding-left: 1.25rem;\n}\n\n.form-check-input {\n position: absolute;\n margin-top: 0.3rem;\n margin-left: -1.25rem;\n}\n\n.form-check-input[disabled] ~ .form-check-label,\n.form-check-input:disabled ~ .form-check-label {\n color: #6c757d;\n}\n\n.form-check-label {\n margin-bottom: 0;\n}\n\n.form-check-inline {\n display: inline-flex;\n align-items: center;\n padding-left: 0;\n margin-right: 0.75rem;\n}\n\n.form-check-inline .form-check-input {\n position: static;\n margin-top: 0;\n margin-right: 0.3125rem;\n margin-left: 0;\n}\n\n.valid-feedback {\n display: none;\n width: 100%;\n margin-top: 0.25rem;\n font-size: 80%;\n color: #28a745;\n}\n\n.valid-tooltip {\n position: absolute;\n top: 100%;\n left: 0;\n z-index: 5;\n display: none;\n max-width: 100%;\n padding: 0.25rem 0.5rem;\n margin-top: .1rem;\n font-size: 0.875rem;\n line-height: 1.5;\n color: #fff;\n background-color: rgba(40, 167, 69, 0.9);\n border-radius: 0.25rem;\n}\n\n.was-validated :valid ~ .valid-feedback,\n.was-validated :valid ~ .valid-tooltip,\n.is-valid ~ .valid-feedback,\n.is-valid ~ .valid-tooltip {\n display: block;\n}\n\n.was-validated .form-control:valid, .form-control.is-valid {\n border-color: #28a745;\n padding-right: calc(1.5em + 0.75rem);\n background-image: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='8' height='8' viewBox='0 0 8 8'%3e%3cpath fill='%2328a745' d='M2.3 6.73L.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3e%3c/svg%3e\");\n background-repeat: no-repeat;\n background-position: right calc(0.375em + 0.1875rem) center;\n background-size: calc(0.75em + 0.375rem) calc(0.75em + 0.375rem);\n}\n\n.was-validated .form-control:valid:focus, .form-control.is-valid:focus {\n border-color: #28a745;\n box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.25);\n}\n\n.was-validated textarea.form-control:valid, textarea.form-control.is-valid {\n padding-right: calc(1.5em + 0.75rem);\n background-position: top calc(0.375em + 0.1875rem) right calc(0.375em + 0.1875rem);\n}\n\n.was-validated .custom-select:valid, .custom-select.is-valid {\n border-color: #28a745;\n padding-right: calc(0.75em + 2.3125rem);\n background: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='4' height='5' viewBox='0 0 4 5'%3e%3cpath fill='%23343a40' d='M2 0L0 2h4zm0 5L0 3h4z'/%3e%3c/svg%3e\") no-repeat right 0.75rem center/8px 10px, url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='8' height='8' viewBox='0 0 8 8'%3e%3cpath fill='%2328a745' d='M2.3 6.73L.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3e%3c/svg%3e\") #fff no-repeat center right 1.75rem/calc(0.75em + 0.375rem) calc(0.75em + 0.375rem);\n}\n\n.was-validated .custom-select:valid:focus, .custom-select.is-valid:focus {\n border-color: #28a745;\n box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.25);\n}\n\n.was-validated .form-check-input:valid ~ .form-check-label, .form-check-input.is-valid ~ .form-check-label {\n color: #28a745;\n}\n\n.was-validated .form-check-input:valid ~ .valid-feedback,\n.was-validated .form-check-input:valid ~ .valid-tooltip, .form-check-input.is-valid ~ .valid-feedback,\n.form-check-input.is-valid ~ .valid-tooltip {\n display: block;\n}\n\n.was-validated .custom-control-input:valid ~ .custom-control-label, .custom-control-input.is-valid ~ .custom-control-label {\n color: #28a745;\n}\n\n.was-validated .custom-control-input:valid ~ .custom-control-label::before, .custom-control-input.is-valid ~ .custom-control-label::before {\n border-color: #28a745;\n}\n\n.was-validated .custom-control-input:valid:checked ~ .custom-control-label::before, .custom-control-input.is-valid:checked ~ .custom-control-label::before {\n border-color: #34ce57;\n background-color: #34ce57;\n}\n\n.was-validated .custom-control-input:valid:focus ~ .custom-control-label::before, .custom-control-input.is-valid:focus ~ .custom-control-label::before {\n box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.25);\n}\n\n.was-validated .custom-control-input:valid:focus:not(:checked) ~ .custom-control-label::before, .custom-control-input.is-valid:focus:not(:checked) ~ .custom-control-label::before {\n border-color: #28a745;\n}\n\n.was-validated .custom-file-input:valid ~ .custom-file-label, .custom-file-input.is-valid ~ .custom-file-label {\n border-color: #28a745;\n}\n\n.was-validated .custom-file-input:valid:focus ~ .custom-file-label, .custom-file-input.is-valid:focus ~ .custom-file-label {\n border-color: #28a745;\n box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.25);\n}\n\n.invalid-feedback {\n display: none;\n width: 100%;\n margin-top: 0.25rem;\n font-size: 80%;\n color: #dc3545;\n}\n\n.invalid-tooltip {\n position: absolute;\n top: 100%;\n left: 0;\n z-index: 5;\n display: none;\n max-width: 100%;\n padding: 0.25rem 0.5rem;\n margin-top: .1rem;\n font-size: 0.875rem;\n line-height: 1.5;\n color: #fff;\n background-color: rgba(220, 53, 69, 0.9);\n border-radius: 0.25rem;\n}\n\n.was-validated :invalid ~ .invalid-feedback,\n.was-validated :invalid ~ .invalid-tooltip,\n.is-invalid ~ .invalid-feedback,\n.is-invalid ~ .invalid-tooltip {\n display: block;\n}\n\n.was-validated .form-control:invalid, .form-control.is-invalid {\n border-color: #dc3545;\n padding-right: calc(1.5em + 0.75rem);\n background-image: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' fill='none' stroke='%23dc3545' viewBox='0 0 12 12'%3e%3ccircle cx='6' cy='6' r='4.5'/%3e%3cpath stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/%3e%3ccircle cx='6' cy='8.2' r='.6' fill='%23dc3545' stroke='none'/%3e%3c/svg%3e\");\n background-repeat: no-repeat;\n background-position: right calc(0.375em + 0.1875rem) center;\n background-size: calc(0.75em + 0.375rem) calc(0.75em + 0.375rem);\n}\n\n.was-validated .form-control:invalid:focus, .form-control.is-invalid:focus {\n border-color: #dc3545;\n box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.25);\n}\n\n.was-validated textarea.form-control:invalid, textarea.form-control.is-invalid {\n padding-right: calc(1.5em + 0.75rem);\n background-position: top calc(0.375em + 0.1875rem) right calc(0.375em + 0.1875rem);\n}\n\n.was-validated .custom-select:invalid, .custom-select.is-invalid {\n border-color: #dc3545;\n padding-right: calc(0.75em + 2.3125rem);\n background: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='4' height='5' viewBox='0 0 4 5'%3e%3cpath fill='%23343a40' d='M2 0L0 2h4zm0 5L0 3h4z'/%3e%3c/svg%3e\") no-repeat right 0.75rem center/8px 10px, url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' fill='none' stroke='%23dc3545' viewBox='0 0 12 12'%3e%3ccircle cx='6' cy='6' r='4.5'/%3e%3cpath stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/%3e%3ccircle cx='6' cy='8.2' r='.6' fill='%23dc3545' stroke='none'/%3e%3c/svg%3e\") #fff no-repeat center right 1.75rem/calc(0.75em + 0.375rem) calc(0.75em + 0.375rem);\n}\n\n.was-validated .custom-select:invalid:focus, .custom-select.is-invalid:focus {\n border-color: #dc3545;\n box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.25);\n}\n\n.was-validated .form-check-input:invalid ~ .form-check-label, .form-check-input.is-invalid ~ .form-check-label {\n color: #dc3545;\n}\n\n.was-validated .form-check-input:invalid ~ .invalid-feedback,\n.was-validated .form-check-input:invalid ~ .invalid-tooltip, .form-check-input.is-invalid ~ .invalid-feedback,\n.form-check-input.is-invalid ~ .invalid-tooltip {\n display: block;\n}\n\n.was-validated .custom-control-input:invalid ~ .custom-control-label, .custom-control-input.is-invalid ~ .custom-control-label {\n color: #dc3545;\n}\n\n.was-validated .custom-control-input:invalid ~ .custom-control-label::before, .custom-control-input.is-invalid ~ .custom-control-label::before {\n border-color: #dc3545;\n}\n\n.was-validated .custom-control-input:invalid:checked ~ .custom-control-label::before, .custom-control-input.is-invalid:checked ~ .custom-control-label::before {\n border-color: #e4606d;\n background-color: #e4606d;\n}\n\n.was-validated .custom-control-input:invalid:focus ~ .custom-control-label::before, .custom-control-input.is-invalid:focus ~ .custom-control-label::before {\n box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.25);\n}\n\n.was-validated .custom-control-input:invalid:focus:not(:checked) ~ .custom-control-label::before, .custom-control-input.is-invalid:focus:not(:checked) ~ .custom-control-label::before {\n border-color: #dc3545;\n}\n\n.was-validated .custom-file-input:invalid ~ .custom-file-label, .custom-file-input.is-invalid ~ .custom-file-label {\n border-color: #dc3545;\n}\n\n.was-validated .custom-file-input:invalid:focus ~ .custom-file-label, .custom-file-input.is-invalid:focus ~ .custom-file-label {\n border-color: #dc3545;\n box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.25);\n}\n\n.form-inline {\n display: flex;\n flex-flow: row wrap;\n align-items: center;\n}\n\n.form-inline .form-check {\n width: 100%;\n}\n\n@media (min-width: 576px) {\n .form-inline label {\n display: flex;\n align-items: center;\n justify-content: center;\n margin-bottom: 0;\n }\n .form-inline .form-group {\n display: flex;\n flex: 0 0 auto;\n flex-flow: row wrap;\n align-items: center;\n margin-bottom: 0;\n }\n .form-inline .form-control {\n display: inline-block;\n width: auto;\n vertical-align: middle;\n }\n .form-inline .form-control-plaintext {\n display: inline-block;\n }\n .form-inline .input-group,\n .form-inline .custom-select {\n width: auto;\n }\n .form-inline .form-check {\n display: flex;\n align-items: center;\n justify-content: center;\n width: auto;\n padding-left: 0;\n }\n .form-inline .form-check-input {\n position: relative;\n flex-shrink: 0;\n margin-top: 0;\n margin-right: 0.25rem;\n margin-left: 0;\n }\n .form-inline .custom-control {\n align-items: center;\n justify-content: center;\n }\n .form-inline .custom-control-label {\n margin-bottom: 0;\n }\n}\n\n.btn {\n display: inline-block;\n font-weight: 400;\n color: #212529;\n text-align: center;\n vertical-align: middle;\n user-select: none;\n background-color: transparent;\n border: 1px solid transparent;\n padding: 0.375rem 0.75rem;\n font-size: 1rem;\n line-height: 1.5;\n border-radius: 0.25rem;\n transition: color 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;\n}\n\n@media (prefers-reduced-motion: reduce) {\n .btn {\n transition: none;\n }\n}\n\n.btn:hover {\n color: #212529;\n text-decoration: none;\n}\n\n.btn:focus, .btn.focus {\n outline: 0;\n box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.25);\n}\n\n.btn.disabled, .btn:disabled {\n opacity: 0.65;\n}\n\n.btn:not(:disabled):not(.disabled) {\n cursor: pointer;\n}\n\na.btn.disabled,\nfieldset:disabled a.btn {\n pointer-events: none;\n}\n\n.btn-primary {\n color: #fff;\n background-color: #007bff;\n border-color: #007bff;\n}\n\n.btn-primary:hover {\n color: #fff;\n background-color: #0069d9;\n border-color: #0062cc;\n}\n\n.btn-primary:focus, .btn-primary.focus {\n color: #fff;\n background-color: #0069d9;\n border-color: #0062cc;\n box-shadow: 0 0 0 0.2rem rgba(38, 143, 255, 0.5);\n}\n\n.btn-primary.disabled, .btn-primary:disabled {\n color: #fff;\n background-color: #007bff;\n border-color: #007bff;\n}\n\n.btn-primary:not(:disabled):not(.disabled):active, .btn-primary:not(:disabled):not(.disabled).active,\n.show > .btn-primary.dropdown-toggle {\n color: #fff;\n background-color: #0062cc;\n border-color: #005cbf;\n}\n\n.btn-primary:not(:disabled):not(.disabled):active:focus, .btn-primary:not(:disabled):not(.disabled).active:focus,\n.show > .btn-primary.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(38, 143, 255, 0.5);\n}\n\n.btn-secondary {\n color: #fff;\n background-color: #6c757d;\n border-color: #6c757d;\n}\n\n.btn-secondary:hover {\n color: #fff;\n background-color: #5a6268;\n border-color: #545b62;\n}\n\n.btn-secondary:focus, .btn-secondary.focus {\n color: #fff;\n background-color: #5a6268;\n border-color: #545b62;\n box-shadow: 0 0 0 0.2rem rgba(130, 138, 145, 0.5);\n}\n\n.btn-secondary.disabled, .btn-secondary:disabled {\n color: #fff;\n background-color: #6c757d;\n border-color: #6c757d;\n}\n\n.btn-secondary:not(:disabled):not(.disabled):active, .btn-secondary:not(:disabled):not(.disabled).active,\n.show > .btn-secondary.dropdown-toggle {\n color: #fff;\n background-color: #545b62;\n border-color: #4e555b;\n}\n\n.btn-secondary:not(:disabled):not(.disabled):active:focus, .btn-secondary:not(:disabled):not(.disabled).active:focus,\n.show > .btn-secondary.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(130, 138, 145, 0.5);\n}\n\n.btn-success {\n color: #fff;\n background-color: #28a745;\n border-color: #28a745;\n}\n\n.btn-success:hover {\n color: #fff;\n background-color: #218838;\n border-color: #1e7e34;\n}\n\n.btn-success:focus, .btn-success.focus {\n color: #fff;\n background-color: #218838;\n border-color: #1e7e34;\n box-shadow: 0 0 0 0.2rem rgba(72, 180, 97, 0.5);\n}\n\n.btn-success.disabled, .btn-success:disabled {\n color: #fff;\n background-color: #28a745;\n border-color: #28a745;\n}\n\n.btn-success:not(:disabled):not(.disabled):active, .btn-success:not(:disabled):not(.disabled).active,\n.show > .btn-success.dropdown-toggle {\n color: #fff;\n background-color: #1e7e34;\n border-color: #1c7430;\n}\n\n.btn-success:not(:disabled):not(.disabled):active:focus, .btn-success:not(:disabled):not(.disabled).active:focus,\n.show > .btn-success.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(72, 180, 97, 0.5);\n}\n\n.btn-info {\n color: #fff;\n background-color: #17a2b8;\n border-color: #17a2b8;\n}\n\n.btn-info:hover {\n color: #fff;\n background-color: #138496;\n border-color: #117a8b;\n}\n\n.btn-info:focus, .btn-info.focus {\n color: #fff;\n background-color: #138496;\n border-color: #117a8b;\n box-shadow: 0 0 0 0.2rem rgba(58, 176, 195, 0.5);\n}\n\n.btn-info.disabled, .btn-info:disabled {\n color: #fff;\n background-color: #17a2b8;\n border-color: #17a2b8;\n}\n\n.btn-info:not(:disabled):not(.disabled):active, .btn-info:not(:disabled):not(.disabled).active,\n.show > .btn-info.dropdown-toggle {\n color: #fff;\n background-color: #117a8b;\n border-color: #10707f;\n}\n\n.btn-info:not(:disabled):not(.disabled):active:focus, .btn-info:not(:disabled):not(.disabled).active:focus,\n.show > .btn-info.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(58, 176, 195, 0.5);\n}\n\n.btn-warning {\n color: #212529;\n background-color: #ffc107;\n border-color: #ffc107;\n}\n\n.btn-warning:hover {\n color: #212529;\n background-color: #e0a800;\n border-color: #d39e00;\n}\n\n.btn-warning:focus, .btn-warning.focus {\n color: #212529;\n background-color: #e0a800;\n border-color: #d39e00;\n box-shadow: 0 0 0 0.2rem rgba(222, 170, 12, 0.5);\n}\n\n.btn-warning.disabled, .btn-warning:disabled {\n color: #212529;\n background-color: #ffc107;\n border-color: #ffc107;\n}\n\n.btn-warning:not(:disabled):not(.disabled):active, .btn-warning:not(:disabled):not(.disabled).active,\n.show > .btn-warning.dropdown-toggle {\n color: #212529;\n background-color: #d39e00;\n border-color: #c69500;\n}\n\n.btn-warning:not(:disabled):not(.disabled):active:focus, .btn-warning:not(:disabled):not(.disabled).active:focus,\n.show > .btn-warning.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(222, 170, 12, 0.5);\n}\n\n.btn-danger {\n color: #fff;\n background-color: #dc3545;\n border-color: #dc3545;\n}\n\n.btn-danger:hover {\n color: #fff;\n background-color: #c82333;\n border-color: #bd2130;\n}\n\n.btn-danger:focus, .btn-danger.focus {\n color: #fff;\n background-color: #c82333;\n border-color: #bd2130;\n box-shadow: 0 0 0 0.2rem rgba(225, 83, 97, 0.5);\n}\n\n.btn-danger.disabled, .btn-danger:disabled {\n color: #fff;\n background-color: #dc3545;\n border-color: #dc3545;\n}\n\n.btn-danger:not(:disabled):not(.disabled):active, .btn-danger:not(:disabled):not(.disabled).active,\n.show > .btn-danger.dropdown-toggle {\n color: #fff;\n background-color: #bd2130;\n border-color: #b21f2d;\n}\n\n.btn-danger:not(:disabled):not(.disabled):active:focus, .btn-danger:not(:disabled):not(.disabled).active:focus,\n.show > .btn-danger.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(225, 83, 97, 0.5);\n}\n\n.btn-light {\n color: #212529;\n background-color: #f8f9fa;\n border-color: #f8f9fa;\n}\n\n.btn-light:hover {\n color: #212529;\n background-color: #e2e6ea;\n border-color: #dae0e5;\n}\n\n.btn-light:focus, .btn-light.focus {\n color: #212529;\n background-color: #e2e6ea;\n border-color: #dae0e5;\n box-shadow: 0 0 0 0.2rem rgba(216, 217, 219, 0.5);\n}\n\n.btn-light.disabled, .btn-light:disabled {\n color: #212529;\n background-color: #f8f9fa;\n border-color: #f8f9fa;\n}\n\n.btn-light:not(:disabled):not(.disabled):active, .btn-light:not(:disabled):not(.disabled).active,\n.show > .btn-light.dropdown-toggle {\n color: #212529;\n background-color: #dae0e5;\n border-color: #d3d9df;\n}\n\n.btn-light:not(:disabled):not(.disabled):active:focus, .btn-light:not(:disabled):not(.disabled).active:focus,\n.show > .btn-light.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(216, 217, 219, 0.5);\n}\n\n.btn-dark {\n color: #fff;\n background-color: #343a40;\n border-color: #343a40;\n}\n\n.btn-dark:hover {\n color: #fff;\n background-color: #23272b;\n border-color: #1d2124;\n}\n\n.btn-dark:focus, .btn-dark.focus {\n color: #fff;\n background-color: #23272b;\n border-color: #1d2124;\n box-shadow: 0 0 0 0.2rem rgba(82, 88, 93, 0.5);\n}\n\n.btn-dark.disabled, .btn-dark:disabled {\n color: #fff;\n background-color: #343a40;\n border-color: #343a40;\n}\n\n.btn-dark:not(:disabled):not(.disabled):active, .btn-dark:not(:disabled):not(.disabled).active,\n.show > .btn-dark.dropdown-toggle {\n color: #fff;\n background-color: #1d2124;\n border-color: #171a1d;\n}\n\n.btn-dark:not(:disabled):not(.disabled):active:focus, .btn-dark:not(:disabled):not(.disabled).active:focus,\n.show > .btn-dark.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(82, 88, 93, 0.5);\n}\n\n.btn-outline-primary {\n color: #007bff;\n border-color: #007bff;\n}\n\n.btn-outline-primary:hover {\n color: #fff;\n background-color: #007bff;\n border-color: #007bff;\n}\n\n.btn-outline-primary:focus, .btn-outline-primary.focus {\n box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.5);\n}\n\n.btn-outline-primary.disabled, .btn-outline-primary:disabled {\n color: #007bff;\n background-color: transparent;\n}\n\n.btn-outline-primary:not(:disabled):not(.disabled):active, .btn-outline-primary:not(:disabled):not(.disabled).active,\n.show > .btn-outline-primary.dropdown-toggle {\n color: #fff;\n background-color: #007bff;\n border-color: #007bff;\n}\n\n.btn-outline-primary:not(:disabled):not(.disabled):active:focus, .btn-outline-primary:not(:disabled):not(.disabled).active:focus,\n.show > .btn-outline-primary.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.5);\n}\n\n.btn-outline-secondary {\n color: #6c757d;\n border-color: #6c757d;\n}\n\n.btn-outline-secondary:hover {\n color: #fff;\n background-color: #6c757d;\n border-color: #6c757d;\n}\n\n.btn-outline-secondary:focus, .btn-outline-secondary.focus {\n box-shadow: 0 0 0 0.2rem rgba(108, 117, 125, 0.5);\n}\n\n.btn-outline-secondary.disabled, .btn-outline-secondary:disabled {\n color: #6c757d;\n background-color: transparent;\n}\n\n.btn-outline-secondary:not(:disabled):not(.disabled):active, .btn-outline-secondary:not(:disabled):not(.disabled).active,\n.show > .btn-outline-secondary.dropdown-toggle {\n color: #fff;\n background-color: #6c757d;\n border-color: #6c757d;\n}\n\n.btn-outline-secondary:not(:disabled):not(.disabled):active:focus, .btn-outline-secondary:not(:disabled):not(.disabled).active:focus,\n.show > .btn-outline-secondary.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(108, 117, 125, 0.5);\n}\n\n.btn-outline-success {\n color: #28a745;\n border-color: #28a745;\n}\n\n.btn-outline-success:hover {\n color: #fff;\n background-color: #28a745;\n border-color: #28a745;\n}\n\n.btn-outline-success:focus, .btn-outline-success.focus {\n box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.5);\n}\n\n.btn-outline-success.disabled, .btn-outline-success:disabled {\n color: #28a745;\n background-color: transparent;\n}\n\n.btn-outline-success:not(:disabled):not(.disabled):active, .btn-outline-success:not(:disabled):not(.disabled).active,\n.show > .btn-outline-success.dropdown-toggle {\n color: #fff;\n background-color: #28a745;\n border-color: #28a745;\n}\n\n.btn-outline-success:not(:disabled):not(.disabled):active:focus, .btn-outline-success:not(:disabled):not(.disabled).active:focus,\n.show > .btn-outline-success.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.5);\n}\n\n.btn-outline-info {\n color: #17a2b8;\n border-color: #17a2b8;\n}\n\n.btn-outline-info:hover {\n color: #fff;\n background-color: #17a2b8;\n border-color: #17a2b8;\n}\n\n.btn-outline-info:focus, .btn-outline-info.focus {\n box-shadow: 0 0 0 0.2rem rgba(23, 162, 184, 0.5);\n}\n\n.btn-outline-info.disabled, .btn-outline-info:disabled {\n color: #17a2b8;\n background-color: transparent;\n}\n\n.btn-outline-info:not(:disabled):not(.disabled):active, .btn-outline-info:not(:disabled):not(.disabled).active,\n.show > .btn-outline-info.dropdown-toggle {\n color: #fff;\n background-color: #17a2b8;\n border-color: #17a2b8;\n}\n\n.btn-outline-info:not(:disabled):not(.disabled):active:focus, .btn-outline-info:not(:disabled):not(.disabled).active:focus,\n.show > .btn-outline-info.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(23, 162, 184, 0.5);\n}\n\n.btn-outline-warning {\n color: #ffc107;\n border-color: #ffc107;\n}\n\n.btn-outline-warning:hover {\n color: #212529;\n background-color: #ffc107;\n border-color: #ffc107;\n}\n\n.btn-outline-warning:focus, .btn-outline-warning.focus {\n box-shadow: 0 0 0 0.2rem rgba(255, 193, 7, 0.5);\n}\n\n.btn-outline-warning.disabled, .btn-outline-warning:disabled {\n color: #ffc107;\n background-color: transparent;\n}\n\n.btn-outline-warning:not(:disabled):not(.disabled):active, .btn-outline-warning:not(:disabled):not(.disabled).active,\n.show > .btn-outline-warning.dropdown-toggle {\n color: #212529;\n background-color: #ffc107;\n border-color: #ffc107;\n}\n\n.btn-outline-warning:not(:disabled):not(.disabled):active:focus, .btn-outline-warning:not(:disabled):not(.disabled).active:focus,\n.show > .btn-outline-warning.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(255, 193, 7, 0.5);\n}\n\n.btn-outline-danger {\n color: #dc3545;\n border-color: #dc3545;\n}\n\n.btn-outline-danger:hover {\n color: #fff;\n background-color: #dc3545;\n border-color: #dc3545;\n}\n\n.btn-outline-danger:focus, .btn-outline-danger.focus {\n box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.5);\n}\n\n.btn-outline-danger.disabled, .btn-outline-danger:disabled {\n color: #dc3545;\n background-color: transparent;\n}\n\n.btn-outline-danger:not(:disabled):not(.disabled):active, .btn-outline-danger:not(:disabled):not(.disabled).active,\n.show > .btn-outline-danger.dropdown-toggle {\n color: #fff;\n background-color: #dc3545;\n border-color: #dc3545;\n}\n\n.btn-outline-danger:not(:disabled):not(.disabled):active:focus, .btn-outline-danger:not(:disabled):not(.disabled).active:focus,\n.show > .btn-outline-danger.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.5);\n}\n\n.btn-outline-light {\n color: #f8f9fa;\n border-color: #f8f9fa;\n}\n\n.btn-outline-light:hover {\n color: #212529;\n background-color: #f8f9fa;\n border-color: #f8f9fa;\n}\n\n.btn-outline-light:focus, .btn-outline-light.focus {\n box-shadow: 0 0 0 0.2rem rgba(248, 249, 250, 0.5);\n}\n\n.btn-outline-light.disabled, .btn-outline-light:disabled {\n color: #f8f9fa;\n background-color: transparent;\n}\n\n.btn-outline-light:not(:disabled):not(.disabled):active, .btn-outline-light:not(:disabled):not(.disabled).active,\n.show > .btn-outline-light.dropdown-toggle {\n color: #212529;\n background-color: #f8f9fa;\n border-color: #f8f9fa;\n}\n\n.btn-outline-light:not(:disabled):not(.disabled):active:focus, .btn-outline-light:not(:disabled):not(.disabled).active:focus,\n.show > .btn-outline-light.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(248, 249, 250, 0.5);\n}\n\n.btn-outline-dark {\n color: #343a40;\n border-color: #343a40;\n}\n\n.btn-outline-dark:hover {\n color: #fff;\n background-color: #343a40;\n border-color: #343a40;\n}\n\n.btn-outline-dark:focus, .btn-outline-dark.focus {\n box-shadow: 0 0 0 0.2rem rgba(52, 58, 64, 0.5);\n}\n\n.btn-outline-dark.disabled, .btn-outline-dark:disabled {\n color: #343a40;\n background-color: transparent;\n}\n\n.btn-outline-dark:not(:disabled):not(.disabled):active, .btn-outline-dark:not(:disabled):not(.disabled).active,\n.show > .btn-outline-dark.dropdown-toggle {\n color: #fff;\n background-color: #343a40;\n border-color: #343a40;\n}\n\n.btn-outline-dark:not(:disabled):not(.disabled):active:focus, .btn-outline-dark:not(:disabled):not(.disabled).active:focus,\n.show > .btn-outline-dark.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(52, 58, 64, 0.5);\n}\n\n.btn-link {\n font-weight: 400;\n color: #007bff;\n text-decoration: none;\n}\n\n.btn-link:hover {\n color: #0056b3;\n text-decoration: underline;\n}\n\n.btn-link:focus, .btn-link.focus {\n text-decoration: underline;\n}\n\n.btn-link:disabled, .btn-link.disabled {\n color: #6c757d;\n pointer-events: none;\n}\n\n.btn-lg, .btn-group-lg > .btn {\n padding: 0.5rem 1rem;\n font-size: 1.25rem;\n line-height: 1.5;\n border-radius: 0.3rem;\n}\n\n.btn-sm, .btn-group-sm > .btn {\n padding: 0.25rem 0.5rem;\n font-size: 0.875rem;\n line-height: 1.5;\n border-radius: 0.2rem;\n}\n\n.btn-block {\n display: block;\n width: 100%;\n}\n\n.btn-block + .btn-block {\n margin-top: 0.5rem;\n}\n\ninput[type=\"submit\"].btn-block,\ninput[type=\"reset\"].btn-block,\ninput[type=\"button\"].btn-block {\n width: 100%;\n}\n\n.fade {\n transition: opacity 0.15s linear;\n}\n\n@media (prefers-reduced-motion: reduce) {\n .fade {\n transition: none;\n }\n}\n\n.fade:not(.show) {\n opacity: 0;\n}\n\n.collapse:not(.show) {\n display: none;\n}\n\n.collapsing {\n position: relative;\n height: 0;\n overflow: hidden;\n transition: height 0.35s ease;\n}\n\n@media (prefers-reduced-motion: reduce) {\n .collapsing {\n transition: none;\n }\n}\n\n.dropup,\n.dropright,\n.dropdown,\n.dropleft {\n position: relative;\n}\n\n.dropdown-toggle {\n white-space: nowrap;\n}\n\n.dropdown-toggle::after {\n display: inline-block;\n margin-left: 0.255em;\n vertical-align: 0.255em;\n content: \"\";\n border-top: 0.3em solid;\n border-right: 0.3em solid transparent;\n border-bottom: 0;\n border-left: 0.3em solid transparent;\n}\n\n.dropdown-toggle:empty::after {\n margin-left: 0;\n}\n\n.dropdown-menu {\n position: absolute;\n top: 100%;\n left: 0;\n z-index: 1000;\n display: none;\n float: left;\n min-width: 10rem;\n padding: 0.5rem 0;\n margin: 0.125rem 0 0;\n font-size: 1rem;\n color: #212529;\n text-align: left;\n list-style: none;\n background-color: #fff;\n background-clip: padding-box;\n border: 1px solid rgba(0, 0, 0, 0.15);\n border-radius: 0.25rem;\n}\n\n.dropdown-menu-left {\n right: auto;\n left: 0;\n}\n\n.dropdown-menu-right {\n right: 0;\n left: auto;\n}\n\n@media (min-width: 576px) {\n .dropdown-menu-sm-left {\n right: auto;\n left: 0;\n }\n .dropdown-menu-sm-right {\n right: 0;\n left: auto;\n }\n}\n\n@media (min-width: 768px) {\n .dropdown-menu-md-left {\n right: auto;\n left: 0;\n }\n .dropdown-menu-md-right {\n right: 0;\n left: auto;\n }\n}\n\n@media (min-width: 992px) {\n .dropdown-menu-lg-left {\n right: auto;\n left: 0;\n }\n .dropdown-menu-lg-right {\n right: 0;\n left: auto;\n }\n}\n\n@media (min-width: 1200px) {\n .dropdown-menu-xl-left {\n right: auto;\n left: 0;\n }\n .dropdown-menu-xl-right {\n right: 0;\n left: auto;\n }\n}\n\n.dropup .dropdown-menu {\n top: auto;\n bottom: 100%;\n margin-top: 0;\n margin-bottom: 0.125rem;\n}\n\n.dropup .dropdown-toggle::after {\n display: inline-block;\n margin-left: 0.255em;\n vertical-align: 0.255em;\n content: \"\";\n border-top: 0;\n border-right: 0.3em solid transparent;\n border-bottom: 0.3em solid;\n border-left: 0.3em solid transparent;\n}\n\n.dropup .dropdown-toggle:empty::after {\n margin-left: 0;\n}\n\n.dropright .dropdown-menu {\n top: 0;\n right: auto;\n left: 100%;\n margin-top: 0;\n margin-left: 0.125rem;\n}\n\n.dropright .dropdown-toggle::after {\n display: inline-block;\n margin-left: 0.255em;\n vertical-align: 0.255em;\n content: \"\";\n border-top: 0.3em solid transparent;\n border-right: 0;\n border-bottom: 0.3em solid transparent;\n border-left: 0.3em solid;\n}\n\n.dropright .dropdown-toggle:empty::after {\n margin-left: 0;\n}\n\n.dropright .dropdown-toggle::after {\n vertical-align: 0;\n}\n\n.dropleft .dropdown-menu {\n top: 0;\n right: 100%;\n left: auto;\n margin-top: 0;\n margin-right: 0.125rem;\n}\n\n.dropleft .dropdown-toggle::after {\n display: inline-block;\n margin-left: 0.255em;\n vertical-align: 0.255em;\n content: \"\";\n}\n\n.dropleft .dropdown-toggle::after {\n display: none;\n}\n\n.dropleft .dropdown-toggle::before {\n display: inline-block;\n margin-right: 0.255em;\n vertical-align: 0.255em;\n content: \"\";\n border-top: 0.3em solid transparent;\n border-right: 0.3em solid;\n border-bottom: 0.3em solid transparent;\n}\n\n.dropleft .dropdown-toggle:empty::after {\n margin-left: 0;\n}\n\n.dropleft .dropdown-toggle::before {\n vertical-align: 0;\n}\n\n.dropdown-menu[x-placement^=\"top\"], .dropdown-menu[x-placement^=\"right\"], .dropdown-menu[x-placement^=\"bottom\"], .dropdown-menu[x-placement^=\"left\"] {\n right: auto;\n bottom: auto;\n}\n\n.dropdown-divider {\n height: 0;\n margin: 0.5rem 0;\n overflow: hidden;\n border-top: 1px solid #e9ecef;\n}\n\n.dropdown-item {\n display: block;\n width: 100%;\n padding: 0.25rem 1.5rem;\n clear: both;\n font-weight: 400;\n color: #212529;\n text-align: inherit;\n white-space: nowrap;\n background-color: transparent;\n border: 0;\n}\n\n.dropdown-item:hover, .dropdown-item:focus {\n color: #16181b;\n text-decoration: none;\n background-color: #f8f9fa;\n}\n\n.dropdown-item.active, .dropdown-item:active {\n color: #fff;\n text-decoration: none;\n background-color: #007bff;\n}\n\n.dropdown-item.disabled, .dropdown-item:disabled {\n color: #6c757d;\n pointer-events: none;\n background-color: transparent;\n}\n\n.dropdown-menu.show {\n display: block;\n}\n\n.dropdown-header {\n display: block;\n padding: 0.5rem 1.5rem;\n margin-bottom: 0;\n font-size: 0.875rem;\n color: #6c757d;\n white-space: nowrap;\n}\n\n.dropdown-item-text {\n display: block;\n padding: 0.25rem 1.5rem;\n color: #212529;\n}\n\n.btn-group,\n.btn-group-vertical {\n position: relative;\n display: inline-flex;\n vertical-align: middle;\n}\n\n.btn-group > .btn,\n.btn-group-vertical > .btn {\n position: relative;\n flex: 1 1 auto;\n}\n\n.btn-group > .btn:hover,\n.btn-group-vertical > .btn:hover {\n z-index: 1;\n}\n\n.btn-group > .btn:focus, .btn-group > .btn:active, .btn-group > .btn.active,\n.btn-group-vertical > .btn:focus,\n.btn-group-vertical > .btn:active,\n.btn-group-vertical > .btn.active {\n z-index: 1;\n}\n\n.btn-toolbar {\n display: flex;\n flex-wrap: wrap;\n justify-content: flex-start;\n}\n\n.btn-toolbar .input-group {\n width: auto;\n}\n\n.btn-group > .btn:not(:first-child),\n.btn-group > .btn-group:not(:first-child) {\n margin-left: -1px;\n}\n\n.btn-group > .btn:not(:last-child):not(.dropdown-toggle),\n.btn-group > .btn-group:not(:last-child) > .btn {\n border-top-right-radius: 0;\n border-bottom-right-radius: 0;\n}\n\n.btn-group > .btn:not(:first-child),\n.btn-group > .btn-group:not(:first-child) > .btn {\n border-top-left-radius: 0;\n border-bottom-left-radius: 0;\n}\n\n.dropdown-toggle-split {\n padding-right: 0.5625rem;\n padding-left: 0.5625rem;\n}\n\n.dropdown-toggle-split::after,\n.dropup .dropdown-toggle-split::after,\n.dropright .dropdown-toggle-split::after {\n margin-left: 0;\n}\n\n.dropleft .dropdown-toggle-split::before {\n margin-right: 0;\n}\n\n.btn-sm + .dropdown-toggle-split, .btn-group-sm > .btn + .dropdown-toggle-split {\n padding-right: 0.375rem;\n padding-left: 0.375rem;\n}\n\n.btn-lg + .dropdown-toggle-split, .btn-group-lg > .btn + .dropdown-toggle-split {\n padding-right: 0.75rem;\n padding-left: 0.75rem;\n}\n\n.btn-group-vertical {\n flex-direction: column;\n align-items: flex-start;\n justify-content: center;\n}\n\n.btn-group-vertical > .btn,\n.btn-group-vertical > .btn-group {\n width: 100%;\n}\n\n.btn-group-vertical > .btn:not(:first-child),\n.btn-group-vertical > .btn-group:not(:first-child) {\n margin-top: -1px;\n}\n\n.btn-group-vertical > .btn:not(:last-child):not(.dropdown-toggle),\n.btn-group-vertical > .btn-group:not(:last-child) > .btn {\n border-bottom-right-radius: 0;\n border-bottom-left-radius: 0;\n}\n\n.btn-group-vertical > .btn:not(:first-child),\n.btn-group-vertical > .btn-group:not(:first-child) > .btn {\n border-top-left-radius: 0;\n border-top-right-radius: 0;\n}\n\n.btn-group-toggle > .btn,\n.btn-group-toggle > .btn-group > .btn {\n margin-bottom: 0;\n}\n\n.btn-group-toggle > .btn input[type=\"radio\"],\n.btn-group-toggle > .btn input[type=\"checkbox\"],\n.btn-group-toggle > .btn-group > .btn input[type=\"radio\"],\n.btn-group-toggle > .btn-group > .btn input[type=\"checkbox\"] {\n position: absolute;\n clip: rect(0, 0, 0, 0);\n pointer-events: none;\n}\n\n.input-group {\n position: relative;\n display: flex;\n flex-wrap: wrap;\n align-items: stretch;\n width: 100%;\n}\n\n.input-group > .form-control,\n.input-group > .form-control-plaintext,\n.input-group > .custom-select,\n.input-group > .custom-file {\n position: relative;\n flex: 1 1 auto;\n width: 1%;\n min-width: 0;\n margin-bottom: 0;\n}\n\n.input-group > .form-control + .form-control,\n.input-group > .form-control + .custom-select,\n.input-group > .form-control + .custom-file,\n.input-group > .form-control-plaintext + .form-control,\n.input-group > .form-control-plaintext + .custom-select,\n.input-group > .form-control-plaintext + .custom-file,\n.input-group > .custom-select + .form-control,\n.input-group > .custom-select + .custom-select,\n.input-group > .custom-select + .custom-file,\n.input-group > .custom-file + .form-control,\n.input-group > .custom-file + .custom-select,\n.input-group > .custom-file + .custom-file {\n margin-left: -1px;\n}\n\n.input-group > .form-control:focus,\n.input-group > .custom-select:focus,\n.input-group > .custom-file .custom-file-input:focus ~ .custom-file-label {\n z-index: 3;\n}\n\n.input-group > .custom-file .custom-file-input:focus {\n z-index: 4;\n}\n\n.input-group > .form-control:not(:last-child),\n.input-group > .custom-select:not(:last-child) {\n border-top-right-radius: 0;\n border-bottom-right-radius: 0;\n}\n\n.input-group > .form-control:not(:first-child),\n.input-group > .custom-select:not(:first-child) {\n border-top-left-radius: 0;\n border-bottom-left-radius: 0;\n}\n\n.input-group > .custom-file {\n display: flex;\n align-items: center;\n}\n\n.input-group > .custom-file:not(:last-child) .custom-file-label,\n.input-group > .custom-file:not(:last-child) .custom-file-label::after {\n border-top-right-radius: 0;\n border-bottom-right-radius: 0;\n}\n\n.input-group > .custom-file:not(:first-child) .custom-file-label {\n border-top-left-radius: 0;\n border-bottom-left-radius: 0;\n}\n\n.input-group-prepend,\n.input-group-append {\n display: flex;\n}\n\n.input-group-prepend .btn,\n.input-group-append .btn {\n position: relative;\n z-index: 2;\n}\n\n.input-group-prepend .btn:focus,\n.input-group-append .btn:focus {\n z-index: 3;\n}\n\n.input-group-prepend .btn + .btn,\n.input-group-prepend .btn + .input-group-text,\n.input-group-prepend .input-group-text + .input-group-text,\n.input-group-prepend .input-group-text + .btn,\n.input-group-append .btn + .btn,\n.input-group-append .btn + .input-group-text,\n.input-group-append .input-group-text + .input-group-text,\n.input-group-append .input-group-text + .btn {\n margin-left: -1px;\n}\n\n.input-group-prepend {\n margin-right: -1px;\n}\n\n.input-group-append {\n margin-left: -1px;\n}\n\n.input-group-text {\n display: flex;\n align-items: center;\n padding: 0.375rem 0.75rem;\n margin-bottom: 0;\n font-size: 1rem;\n font-weight: 400;\n line-height: 1.5;\n color: #495057;\n text-align: center;\n white-space: nowrap;\n background-color: #e9ecef;\n border: 1px solid #ced4da;\n border-radius: 0.25rem;\n}\n\n.input-group-text input[type=\"radio\"],\n.input-group-text input[type=\"checkbox\"] {\n margin-top: 0;\n}\n\n.input-group-lg > .form-control:not(textarea),\n.input-group-lg > .custom-select {\n height: calc(1.5em + 1rem + 2px);\n}\n\n.input-group-lg > .form-control,\n.input-group-lg > .custom-select,\n.input-group-lg > .input-group-prepend > .input-group-text,\n.input-group-lg > .input-group-append > .input-group-text,\n.input-group-lg > .input-group-prepend > .btn,\n.input-group-lg > .input-group-append > .btn {\n padding: 0.5rem 1rem;\n font-size: 1.25rem;\n line-height: 1.5;\n border-radius: 0.3rem;\n}\n\n.input-group-sm > .form-control:not(textarea),\n.input-group-sm > .custom-select {\n height: calc(1.5em + 0.5rem + 2px);\n}\n\n.input-group-sm > .form-control,\n.input-group-sm > .custom-select,\n.input-group-sm > .input-group-prepend > .input-group-text,\n.input-group-sm > .input-group-append > .input-group-text,\n.input-group-sm > .input-group-prepend > .btn,\n.input-group-sm > .input-group-append > .btn {\n padding: 0.25rem 0.5rem;\n font-size: 0.875rem;\n line-height: 1.5;\n border-radius: 0.2rem;\n}\n\n.input-group-lg > .custom-select,\n.input-group-sm > .custom-select {\n padding-right: 1.75rem;\n}\n\n.input-group > .input-group-prepend > .btn,\n.input-group > .input-group-prepend > .input-group-text,\n.input-group > .input-group-append:not(:last-child) > .btn,\n.input-group > .input-group-append:not(:last-child) > .input-group-text,\n.input-group > .input-group-append:last-child > .btn:not(:last-child):not(.dropdown-toggle),\n.input-group > .input-group-append:last-child > .input-group-text:not(:last-child) {\n border-top-right-radius: 0;\n border-bottom-right-radius: 0;\n}\n\n.input-group > .input-group-append > .btn,\n.input-group > .input-group-append > .input-group-text,\n.input-group > .input-group-prepend:not(:first-child) > .btn,\n.input-group > .input-group-prepend:not(:first-child) > .input-group-text,\n.input-group > .input-group-prepend:first-child > .btn:not(:first-child),\n.input-group > .input-group-prepend:first-child > .input-group-text:not(:first-child) {\n border-top-left-radius: 0;\n border-bottom-left-radius: 0;\n}\n\n.custom-control {\n position: relative;\n z-index: 1;\n display: block;\n min-height: 1.5rem;\n padding-left: 1.5rem;\n color-adjust: exact;\n}\n\n.custom-control-inline {\n display: inline-flex;\n margin-right: 1rem;\n}\n\n.custom-control-input {\n position: absolute;\n left: 0;\n z-index: -1;\n width: 1rem;\n height: 1.25rem;\n opacity: 0;\n}\n\n.custom-control-input:checked ~ .custom-control-label::before {\n color: #fff;\n border-color: #007bff;\n background-color: #007bff;\n}\n\n.custom-control-input:focus ~ .custom-control-label::before {\n box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.25);\n}\n\n.custom-control-input:focus:not(:checked) ~ .custom-control-label::before {\n border-color: #80bdff;\n}\n\n.custom-control-input:not(:disabled):active ~ .custom-control-label::before {\n color: #fff;\n background-color: #b3d7ff;\n border-color: #b3d7ff;\n}\n\n.custom-control-input[disabled] ~ .custom-control-label, .custom-control-input:disabled ~ .custom-control-label {\n color: #6c757d;\n}\n\n.custom-control-input[disabled] ~ .custom-control-label::before, .custom-control-input:disabled ~ .custom-control-label::before {\n background-color: #e9ecef;\n}\n\n.custom-control-label {\n position: relative;\n margin-bottom: 0;\n vertical-align: top;\n}\n\n.custom-control-label::before {\n position: absolute;\n top: 0.25rem;\n left: -1.5rem;\n display: block;\n width: 1rem;\n height: 1rem;\n pointer-events: none;\n content: \"\";\n background-color: #fff;\n border: #adb5bd solid 1px;\n}\n\n.custom-control-label::after {\n position: absolute;\n top: 0.25rem;\n left: -1.5rem;\n display: block;\n width: 1rem;\n height: 1rem;\n content: \"\";\n background: no-repeat 50% / 50% 50%;\n}\n\n.custom-checkbox .custom-control-label::before {\n border-radius: 0.25rem;\n}\n\n.custom-checkbox .custom-control-input:checked ~ .custom-control-label::after {\n background-image: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='8' height='8' viewBox='0 0 8 8'%3e%3cpath fill='%23fff' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26l2.974 2.99L8 2.193z'/%3e%3c/svg%3e\");\n}\n\n.custom-checkbox .custom-control-input:indeterminate ~ .custom-control-label::before {\n border-color: #007bff;\n background-color: #007bff;\n}\n\n.custom-checkbox .custom-control-input:indeterminate ~ .custom-control-label::after {\n background-image: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='4' height='4' viewBox='0 0 4 4'%3e%3cpath stroke='%23fff' d='M0 2h4'/%3e%3c/svg%3e\");\n}\n\n.custom-checkbox .custom-control-input:disabled:checked ~ .custom-control-label::before {\n background-color: rgba(0, 123, 255, 0.5);\n}\n\n.custom-checkbox .custom-control-input:disabled:indeterminate ~ .custom-control-label::before {\n background-color: rgba(0, 123, 255, 0.5);\n}\n\n.custom-radio .custom-control-label::before {\n border-radius: 50%;\n}\n\n.custom-radio .custom-control-input:checked ~ .custom-control-label::after {\n background-image: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='%23fff'/%3e%3c/svg%3e\");\n}\n\n.custom-radio .custom-control-input:disabled:checked ~ .custom-control-label::before {\n background-color: rgba(0, 123, 255, 0.5);\n}\n\n.custom-switch {\n padding-left: 2.25rem;\n}\n\n.custom-switch .custom-control-label::before {\n left: -2.25rem;\n width: 1.75rem;\n pointer-events: all;\n border-radius: 0.5rem;\n}\n\n.custom-switch .custom-control-label::after {\n top: calc(0.25rem + 2px);\n left: calc(-2.25rem + 2px);\n width: calc(1rem - 4px);\n height: calc(1rem - 4px);\n background-color: #adb5bd;\n border-radius: 0.5rem;\n transition: transform 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;\n}\n\n@media (prefers-reduced-motion: reduce) {\n .custom-switch .custom-control-label::after {\n transition: none;\n }\n}\n\n.custom-switch .custom-control-input:checked ~ .custom-control-label::after {\n background-color: #fff;\n transform: translateX(0.75rem);\n}\n\n.custom-switch .custom-control-input:disabled:checked ~ .custom-control-label::before {\n background-color: rgba(0, 123, 255, 0.5);\n}\n\n.custom-select {\n display: inline-block;\n width: 100%;\n height: calc(1.5em + 0.75rem + 2px);\n padding: 0.375rem 1.75rem 0.375rem 0.75rem;\n font-size: 1rem;\n font-weight: 400;\n line-height: 1.5;\n color: #495057;\n vertical-align: middle;\n background: #fff url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='4' height='5' viewBox='0 0 4 5'%3e%3cpath fill='%23343a40' d='M2 0L0 2h4zm0 5L0 3h4z'/%3e%3c/svg%3e\") no-repeat right 0.75rem center/8px 10px;\n border: 1px solid #ced4da;\n border-radius: 0.25rem;\n appearance: none;\n}\n\n.custom-select:focus {\n border-color: #80bdff;\n outline: 0;\n box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.25);\n}\n\n.custom-select:focus::-ms-value {\n color: #495057;\n background-color: #fff;\n}\n\n.custom-select[multiple], .custom-select[size]:not([size=\"1\"]) {\n height: auto;\n padding-right: 0.75rem;\n background-image: none;\n}\n\n.custom-select:disabled {\n color: #6c757d;\n background-color: #e9ecef;\n}\n\n.custom-select::-ms-expand {\n display: none;\n}\n\n.custom-select:-moz-focusring {\n color: transparent;\n text-shadow: 0 0 0 #495057;\n}\n\n.custom-select-sm {\n height: calc(1.5em + 0.5rem + 2px);\n padding-top: 0.25rem;\n padding-bottom: 0.25rem;\n padding-left: 0.5rem;\n font-size: 0.875rem;\n}\n\n.custom-select-lg {\n height: calc(1.5em + 1rem + 2px);\n padding-top: 0.5rem;\n padding-bottom: 0.5rem;\n padding-left: 1rem;\n font-size: 1.25rem;\n}\n\n.custom-file {\n position: relative;\n display: inline-block;\n width: 100%;\n height: calc(1.5em + 0.75rem + 2px);\n margin-bottom: 0;\n}\n\n.custom-file-input {\n position: relative;\n z-index: 2;\n width: 100%;\n height: calc(1.5em + 0.75rem + 2px);\n margin: 0;\n opacity: 0;\n}\n\n.custom-file-input:focus ~ .custom-file-label {\n border-color: #80bdff;\n box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.25);\n}\n\n.custom-file-input[disabled] ~ .custom-file-label,\n.custom-file-input:disabled ~ .custom-file-label {\n background-color: #e9ecef;\n}\n\n.custom-file-input:lang(en) ~ .custom-file-label::after {\n content: \"Browse\";\n}\n\n.custom-file-input ~ .custom-file-label[data-browse]::after {\n content: attr(data-browse);\n}\n\n.custom-file-label {\n position: absolute;\n top: 0;\n right: 0;\n left: 0;\n z-index: 1;\n height: calc(1.5em + 0.75rem + 2px);\n padding: 0.375rem 0.75rem;\n font-weight: 400;\n line-height: 1.5;\n color: #495057;\n background-color: #fff;\n border: 1px solid #ced4da;\n border-radius: 0.25rem;\n}\n\n.custom-file-label::after {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n z-index: 3;\n display: block;\n height: calc(1.5em + 0.75rem);\n padding: 0.375rem 0.75rem;\n line-height: 1.5;\n color: #495057;\n content: \"Browse\";\n background-color: #e9ecef;\n border-left: inherit;\n border-radius: 0 0.25rem 0.25rem 0;\n}\n\n.custom-range {\n width: 100%;\n height: 1.4rem;\n padding: 0;\n background-color: transparent;\n appearance: none;\n}\n\n.custom-range:focus {\n outline: none;\n}\n\n.custom-range:focus::-webkit-slider-thumb {\n box-shadow: 0 0 0 1px #fff, 0 0 0 0.2rem rgba(0, 123, 255, 0.25);\n}\n\n.custom-range:focus::-moz-range-thumb {\n box-shadow: 0 0 0 1px #fff, 0 0 0 0.2rem rgba(0, 123, 255, 0.25);\n}\n\n.custom-range:focus::-ms-thumb {\n box-shadow: 0 0 0 1px #fff, 0 0 0 0.2rem rgba(0, 123, 255, 0.25);\n}\n\n.custom-range::-moz-focus-outer {\n border: 0;\n}\n\n.custom-range::-webkit-slider-thumb {\n width: 1rem;\n height: 1rem;\n margin-top: -0.25rem;\n background-color: #007bff;\n border: 0;\n border-radius: 1rem;\n transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;\n appearance: none;\n}\n\n@media (prefers-reduced-motion: reduce) {\n .custom-range::-webkit-slider-thumb {\n transition: none;\n }\n}\n\n.custom-range::-webkit-slider-thumb:active {\n background-color: #b3d7ff;\n}\n\n.custom-range::-webkit-slider-runnable-track {\n width: 100%;\n height: 0.5rem;\n color: transparent;\n cursor: pointer;\n background-color: #dee2e6;\n border-color: transparent;\n border-radius: 1rem;\n}\n\n.custom-range::-moz-range-thumb {\n width: 1rem;\n height: 1rem;\n background-color: #007bff;\n border: 0;\n border-radius: 1rem;\n transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;\n appearance: none;\n}\n\n@media (prefers-reduced-motion: reduce) {\n .custom-range::-moz-range-thumb {\n transition: none;\n }\n}\n\n.custom-range::-moz-range-thumb:active {\n background-color: #b3d7ff;\n}\n\n.custom-range::-moz-range-track {\n width: 100%;\n height: 0.5rem;\n color: transparent;\n cursor: pointer;\n background-color: #dee2e6;\n border-color: transparent;\n border-radius: 1rem;\n}\n\n.custom-range::-ms-thumb {\n width: 1rem;\n height: 1rem;\n margin-top: 0;\n margin-right: 0.2rem;\n margin-left: 0.2rem;\n background-color: #007bff;\n border: 0;\n border-radius: 1rem;\n transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;\n appearance: none;\n}\n\n@media (prefers-reduced-motion: reduce) {\n .custom-range::-ms-thumb {\n transition: none;\n }\n}\n\n.custom-range::-ms-thumb:active {\n background-color: #b3d7ff;\n}\n\n.custom-range::-ms-track {\n width: 100%;\n height: 0.5rem;\n color: transparent;\n cursor: pointer;\n background-color: transparent;\n border-color: transparent;\n border-width: 0.5rem;\n}\n\n.custom-range::-ms-fill-lower {\n background-color: #dee2e6;\n border-radius: 1rem;\n}\n\n.custom-range::-ms-fill-upper {\n margin-right: 15px;\n background-color: #dee2e6;\n border-radius: 1rem;\n}\n\n.custom-range:disabled::-webkit-slider-thumb {\n background-color: #adb5bd;\n}\n\n.custom-range:disabled::-webkit-slider-runnable-track {\n cursor: default;\n}\n\n.custom-range:disabled::-moz-range-thumb {\n background-color: #adb5bd;\n}\n\n.custom-range:disabled::-moz-range-track {\n cursor: default;\n}\n\n.custom-range:disabled::-ms-thumb {\n background-color: #adb5bd;\n}\n\n.custom-control-label::before,\n.custom-file-label,\n.custom-select {\n transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;\n}\n\n@media (prefers-reduced-motion: reduce) {\n .custom-control-label::before,\n .custom-file-label,\n .custom-select {\n transition: none;\n }\n}\n\n.nav {\n display: flex;\n flex-wrap: wrap;\n padding-left: 0;\n margin-bottom: 0;\n list-style: none;\n}\n\n.nav-link {\n display: block;\n padding: 0.5rem 1rem;\n}\n\n.nav-link:hover, .nav-link:focus {\n text-decoration: none;\n}\n\n.nav-link.disabled {\n color: #6c757d;\n pointer-events: none;\n cursor: default;\n}\n\n.nav-tabs {\n border-bottom: 1px solid #dee2e6;\n}\n\n.nav-tabs .nav-item {\n margin-bottom: -1px;\n}\n\n.nav-tabs .nav-link {\n border: 1px solid transparent;\n border-top-left-radius: 0.25rem;\n border-top-right-radius: 0.25rem;\n}\n\n.nav-tabs .nav-link:hover, .nav-tabs .nav-link:focus {\n border-color: #e9ecef #e9ecef #dee2e6;\n}\n\n.nav-tabs .nav-link.disabled {\n color: #6c757d;\n background-color: transparent;\n border-color: transparent;\n}\n\n.nav-tabs .nav-link.active,\n.nav-tabs .nav-item.show .nav-link {\n color: #495057;\n background-color: #fff;\n border-color: #dee2e6 #dee2e6 #fff;\n}\n\n.nav-tabs .dropdown-menu {\n margin-top: -1px;\n border-top-left-radius: 0;\n border-top-right-radius: 0;\n}\n\n.nav-pills .nav-link {\n border-radius: 0.25rem;\n}\n\n.nav-pills .nav-link.active,\n.nav-pills .show > .nav-link {\n color: #fff;\n background-color: #007bff;\n}\n\n.nav-fill > .nav-link,\n.nav-fill .nav-item {\n flex: 1 1 auto;\n text-align: center;\n}\n\n.nav-justified > .nav-link,\n.nav-justified .nav-item {\n flex-basis: 0;\n flex-grow: 1;\n text-align: center;\n}\n\n.tab-content > .tab-pane {\n display: none;\n}\n\n.tab-content > .active {\n display: block;\n}\n\n.navbar {\n position: relative;\n display: flex;\n flex-wrap: wrap;\n align-items: center;\n justify-content: space-between;\n padding: 0.5rem 1rem;\n}\n\n.navbar .container,\n.navbar .container-fluid, .navbar .container-sm, .navbar .container-md, .navbar .container-lg, .navbar .container-xl {\n display: flex;\n flex-wrap: wrap;\n align-items: center;\n justify-content: space-between;\n}\n\n.navbar-brand {\n display: inline-block;\n padding-top: 0.3125rem;\n padding-bottom: 0.3125rem;\n margin-right: 1rem;\n font-size: 1.25rem;\n line-height: inherit;\n white-space: nowrap;\n}\n\n.navbar-brand:hover, .navbar-brand:focus {\n text-decoration: none;\n}\n\n.navbar-nav {\n display: flex;\n flex-direction: column;\n padding-left: 0;\n margin-bottom: 0;\n list-style: none;\n}\n\n.navbar-nav .nav-link {\n padding-right: 0;\n padding-left: 0;\n}\n\n.navbar-nav .dropdown-menu {\n position: static;\n float: none;\n}\n\n.navbar-text {\n display: inline-block;\n padding-top: 0.5rem;\n padding-bottom: 0.5rem;\n}\n\n.navbar-collapse {\n flex-basis: 100%;\n flex-grow: 1;\n align-items: center;\n}\n\n.navbar-toggler {\n padding: 0.25rem 0.75rem;\n font-size: 1.25rem;\n line-height: 1;\n background-color: transparent;\n border: 1px solid transparent;\n border-radius: 0.25rem;\n}\n\n.navbar-toggler:hover, .navbar-toggler:focus {\n text-decoration: none;\n}\n\n.navbar-toggler-icon {\n display: inline-block;\n width: 1.5em;\n height: 1.5em;\n vertical-align: middle;\n content: \"\";\n background: no-repeat center center;\n background-size: 100% 100%;\n}\n\n@media (max-width: 575.98px) {\n .navbar-expand-sm > .container,\n .navbar-expand-sm > .container-fluid, .navbar-expand-sm > .container-sm, .navbar-expand-sm > .container-md, .navbar-expand-sm > .container-lg, .navbar-expand-sm > .container-xl {\n padding-right: 0;\n padding-left: 0;\n }\n}\n\n@media (min-width: 576px) {\n .navbar-expand-sm {\n flex-flow: row nowrap;\n justify-content: flex-start;\n }\n .navbar-expand-sm .navbar-nav {\n flex-direction: row;\n }\n .navbar-expand-sm .navbar-nav .dropdown-menu {\n position: absolute;\n }\n .navbar-expand-sm .navbar-nav .nav-link {\n padding-right: 0.5rem;\n padding-left: 0.5rem;\n }\n .navbar-expand-sm > .container,\n .navbar-expand-sm > .container-fluid, .navbar-expand-sm > .container-sm, .navbar-expand-sm > .container-md, .navbar-expand-sm > .container-lg, .navbar-expand-sm > .container-xl {\n flex-wrap: nowrap;\n }\n .navbar-expand-sm .navbar-collapse {\n display: flex !important;\n flex-basis: auto;\n }\n .navbar-expand-sm .navbar-toggler {\n display: none;\n }\n}\n\n@media (max-width: 767.98px) {\n .navbar-expand-md > .container,\n .navbar-expand-md > .container-fluid, .navbar-expand-md > .container-sm, .navbar-expand-md > .container-md, .navbar-expand-md > .container-lg, .navbar-expand-md > .container-xl {\n padding-right: 0;\n padding-left: 0;\n }\n}\n\n@media (min-width: 768px) {\n .navbar-expand-md {\n flex-flow: row nowrap;\n justify-content: flex-start;\n }\n .navbar-expand-md .navbar-nav {\n flex-direction: row;\n }\n .navbar-expand-md .navbar-nav .dropdown-menu {\n position: absolute;\n }\n .navbar-expand-md .navbar-nav .nav-link {\n padding-right: 0.5rem;\n padding-left: 0.5rem;\n }\n .navbar-expand-md > .container,\n .navbar-expand-md > .container-fluid, .navbar-expand-md > .container-sm, .navbar-expand-md > .container-md, .navbar-expand-md > .container-lg, .navbar-expand-md > .container-xl {\n flex-wrap: nowrap;\n }\n .navbar-expand-md .navbar-collapse {\n display: flex !important;\n flex-basis: auto;\n }\n .navbar-expand-md .navbar-toggler {\n display: none;\n }\n}\n\n@media (max-width: 991.98px) {\n .navbar-expand-lg > .container,\n .navbar-expand-lg > .container-fluid, .navbar-expand-lg > .container-sm, .navbar-expand-lg > .container-md, .navbar-expand-lg > .container-lg, .navbar-expand-lg > .container-xl {\n padding-right: 0;\n padding-left: 0;\n }\n}\n\n@media (min-width: 992px) {\n .navbar-expand-lg {\n flex-flow: row nowrap;\n justify-content: flex-start;\n }\n .navbar-expand-lg .navbar-nav {\n flex-direction: row;\n }\n .navbar-expand-lg .navbar-nav .dropdown-menu {\n position: absolute;\n }\n .navbar-expand-lg .navbar-nav .nav-link {\n padding-right: 0.5rem;\n padding-left: 0.5rem;\n }\n .navbar-expand-lg > .container,\n .navbar-expand-lg > .container-fluid, .navbar-expand-lg > .container-sm, .navbar-expand-lg > .container-md, .navbar-expand-lg > .container-lg, .navbar-expand-lg > .container-xl {\n flex-wrap: nowrap;\n }\n .navbar-expand-lg .navbar-collapse {\n display: flex !important;\n flex-basis: auto;\n }\n .navbar-expand-lg .navbar-toggler {\n display: none;\n }\n}\n\n@media (max-width: 1199.98px) {\n .navbar-expand-xl > .container,\n .navbar-expand-xl > .container-fluid, .navbar-expand-xl > .container-sm, .navbar-expand-xl > .container-md, .navbar-expand-xl > .container-lg, .navbar-expand-xl > .container-xl {\n padding-right: 0;\n padding-left: 0;\n }\n}\n\n@media (min-width: 1200px) {\n .navbar-expand-xl {\n flex-flow: row nowrap;\n justify-content: flex-start;\n }\n .navbar-expand-xl .navbar-nav {\n flex-direction: row;\n }\n .navbar-expand-xl .navbar-nav .dropdown-menu {\n position: absolute;\n }\n .navbar-expand-xl .navbar-nav .nav-link {\n padding-right: 0.5rem;\n padding-left: 0.5rem;\n }\n .navbar-expand-xl > .container,\n .navbar-expand-xl > .container-fluid, .navbar-expand-xl > .container-sm, .navbar-expand-xl > .container-md, .navbar-expand-xl > .container-lg, .navbar-expand-xl > .container-xl {\n flex-wrap: nowrap;\n }\n .navbar-expand-xl .navbar-collapse {\n display: flex !important;\n flex-basis: auto;\n }\n .navbar-expand-xl .navbar-toggler {\n display: none;\n }\n}\n\n.navbar-expand {\n flex-flow: row nowrap;\n justify-content: flex-start;\n}\n\n.navbar-expand > .container,\n.navbar-expand > .container-fluid, .navbar-expand > .container-sm, .navbar-expand > .container-md, .navbar-expand > .container-lg, .navbar-expand > .container-xl {\n padding-right: 0;\n padding-left: 0;\n}\n\n.navbar-expand .navbar-nav {\n flex-direction: row;\n}\n\n.navbar-expand .navbar-nav .dropdown-menu {\n position: absolute;\n}\n\n.navbar-expand .navbar-nav .nav-link {\n padding-right: 0.5rem;\n padding-left: 0.5rem;\n}\n\n.navbar-expand > .container,\n.navbar-expand > .container-fluid, .navbar-expand > .container-sm, .navbar-expand > .container-md, .navbar-expand > .container-lg, .navbar-expand > .container-xl {\n flex-wrap: nowrap;\n}\n\n.navbar-expand .navbar-collapse {\n display: flex !important;\n flex-basis: auto;\n}\n\n.navbar-expand .navbar-toggler {\n display: none;\n}\n\n.navbar-light .navbar-brand {\n color: rgba(0, 0, 0, 0.9);\n}\n\n.navbar-light .navbar-brand:hover, .navbar-light .navbar-brand:focus {\n color: rgba(0, 0, 0, 0.9);\n}\n\n.navbar-light .navbar-nav .nav-link {\n color: rgba(0, 0, 0, 0.5);\n}\n\n.navbar-light .navbar-nav .nav-link:hover, .navbar-light .navbar-nav .nav-link:focus {\n color: rgba(0, 0, 0, 0.7);\n}\n\n.navbar-light .navbar-nav .nav-link.disabled {\n color: rgba(0, 0, 0, 0.3);\n}\n\n.navbar-light .navbar-nav .show > .nav-link,\n.navbar-light .navbar-nav .active > .nav-link,\n.navbar-light .navbar-nav .nav-link.show,\n.navbar-light .navbar-nav .nav-link.active {\n color: rgba(0, 0, 0, 0.9);\n}\n\n.navbar-light .navbar-toggler {\n color: rgba(0, 0, 0, 0.5);\n border-color: rgba(0, 0, 0, 0.1);\n}\n\n.navbar-light .navbar-toggler-icon {\n background-image: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='30' height='30' viewBox='0 0 30 30'%3e%3cpath stroke='rgba%280, 0, 0, 0.5%29' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e\");\n}\n\n.navbar-light .navbar-text {\n color: rgba(0, 0, 0, 0.5);\n}\n\n.navbar-light .navbar-text a {\n color: rgba(0, 0, 0, 0.9);\n}\n\n.navbar-light .navbar-text a:hover, .navbar-light .navbar-text a:focus {\n color: rgba(0, 0, 0, 0.9);\n}\n\n.navbar-dark .navbar-brand {\n color: #fff;\n}\n\n.navbar-dark .navbar-brand:hover, .navbar-dark .navbar-brand:focus {\n color: #fff;\n}\n\n.navbar-dark .navbar-nav .nav-link {\n color: rgba(255, 255, 255, 0.5);\n}\n\n.navbar-dark .navbar-nav .nav-link:hover, .navbar-dark .navbar-nav .nav-link:focus {\n color: rgba(255, 255, 255, 0.75);\n}\n\n.navbar-dark .navbar-nav .nav-link.disabled {\n color: rgba(255, 255, 255, 0.25);\n}\n\n.navbar-dark .navbar-nav .show > .nav-link,\n.navbar-dark .navbar-nav .active > .nav-link,\n.navbar-dark .navbar-nav .nav-link.show,\n.navbar-dark .navbar-nav .nav-link.active {\n color: #fff;\n}\n\n.navbar-dark .navbar-toggler {\n color: rgba(255, 255, 255, 0.5);\n border-color: rgba(255, 255, 255, 0.1);\n}\n\n.navbar-dark .navbar-toggler-icon {\n background-image: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='30' height='30' viewBox='0 0 30 30'%3e%3cpath stroke='rgba%28255, 255, 255, 0.5%29' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e\");\n}\n\n.navbar-dark .navbar-text {\n color: rgba(255, 255, 255, 0.5);\n}\n\n.navbar-dark .navbar-text a {\n color: #fff;\n}\n\n.navbar-dark .navbar-text a:hover, .navbar-dark .navbar-text a:focus {\n color: #fff;\n}\n\n.card {\n position: relative;\n display: flex;\n flex-direction: column;\n min-width: 0;\n word-wrap: break-word;\n background-color: #fff;\n background-clip: border-box;\n border: 1px solid rgba(0, 0, 0, 0.125);\n border-radius: 0.25rem;\n}\n\n.card > hr {\n margin-right: 0;\n margin-left: 0;\n}\n\n.card > .list-group {\n border-top: inherit;\n border-bottom: inherit;\n}\n\n.card > .list-group:first-child {\n border-top-width: 0;\n border-top-left-radius: calc(0.25rem - 1px);\n border-top-right-radius: calc(0.25rem - 1px);\n}\n\n.card > .list-group:last-child {\n border-bottom-width: 0;\n border-bottom-right-radius: calc(0.25rem - 1px);\n border-bottom-left-radius: calc(0.25rem - 1px);\n}\n\n.card > .card-header + .list-group,\n.card > .list-group + .card-footer {\n border-top: 0;\n}\n\n.card-body {\n flex: 1 1 auto;\n min-height: 1px;\n padding: 1.25rem;\n}\n\n.card-title {\n margin-bottom: 0.75rem;\n}\n\n.card-subtitle {\n margin-top: -0.375rem;\n margin-bottom: 0;\n}\n\n.card-text:last-child {\n margin-bottom: 0;\n}\n\n.card-link:hover {\n text-decoration: none;\n}\n\n.card-link + .card-link {\n margin-left: 1.25rem;\n}\n\n.card-header {\n padding: 0.75rem 1.25rem;\n margin-bottom: 0;\n background-color: rgba(0, 0, 0, 0.03);\n border-bottom: 1px solid rgba(0, 0, 0, 0.125);\n}\n\n.card-header:first-child {\n border-radius: calc(0.25rem - 1px) calc(0.25rem - 1px) 0 0;\n}\n\n.card-footer {\n padding: 0.75rem 1.25rem;\n background-color: rgba(0, 0, 0, 0.03);\n border-top: 1px solid rgba(0, 0, 0, 0.125);\n}\n\n.card-footer:last-child {\n border-radius: 0 0 calc(0.25rem - 1px) calc(0.25rem - 1px);\n}\n\n.card-header-tabs {\n margin-right: -0.625rem;\n margin-bottom: -0.75rem;\n margin-left: -0.625rem;\n border-bottom: 0;\n}\n\n.card-header-pills {\n margin-right: -0.625rem;\n margin-left: -0.625rem;\n}\n\n.card-img-overlay {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n padding: 1.25rem;\n border-radius: calc(0.25rem - 1px);\n}\n\n.card-img,\n.card-img-top,\n.card-img-bottom {\n flex-shrink: 0;\n width: 100%;\n}\n\n.card-img,\n.card-img-top {\n border-top-left-radius: calc(0.25rem - 1px);\n border-top-right-radius: calc(0.25rem - 1px);\n}\n\n.card-img,\n.card-img-bottom {\n border-bottom-right-radius: calc(0.25rem - 1px);\n border-bottom-left-radius: calc(0.25rem - 1px);\n}\n\n.card-deck .card {\n margin-bottom: 15px;\n}\n\n@media (min-width: 576px) {\n .card-deck {\n display: flex;\n flex-flow: row wrap;\n margin-right: -15px;\n margin-left: -15px;\n }\n .card-deck .card {\n flex: 1 0 0%;\n margin-right: 15px;\n margin-bottom: 0;\n margin-left: 15px;\n }\n}\n\n.card-group > .card {\n margin-bottom: 15px;\n}\n\n@media (min-width: 576px) {\n .card-group {\n display: flex;\n flex-flow: row wrap;\n }\n .card-group > .card {\n flex: 1 0 0%;\n margin-bottom: 0;\n }\n .card-group > .card + .card {\n margin-left: 0;\n border-left: 0;\n }\n .card-group > .card:not(:last-child) {\n border-top-right-radius: 0;\n border-bottom-right-radius: 0;\n }\n .card-group > .card:not(:last-child) .card-img-top,\n .card-group > .card:not(:last-child) .card-header {\n border-top-right-radius: 0;\n }\n .card-group > .card:not(:last-child) .card-img-bottom,\n .card-group > .card:not(:last-child) .card-footer {\n border-bottom-right-radius: 0;\n }\n .card-group > .card:not(:first-child) {\n border-top-left-radius: 0;\n border-bottom-left-radius: 0;\n }\n .card-group > .card:not(:first-child) .card-img-top,\n .card-group > .card:not(:first-child) .card-header {\n border-top-left-radius: 0;\n }\n .card-group > .card:not(:first-child) .card-img-bottom,\n .card-group > .card:not(:first-child) .card-footer {\n border-bottom-left-radius: 0;\n }\n}\n\n.card-columns .card {\n margin-bottom: 0.75rem;\n}\n\n@media (min-width: 576px) {\n .card-columns {\n column-count: 3;\n column-gap: 1.25rem;\n orphans: 1;\n widows: 1;\n }\n .card-columns .card {\n display: inline-block;\n width: 100%;\n }\n}\n\n.accordion {\n overflow-anchor: none;\n}\n\n.accordion > .card {\n overflow: hidden;\n}\n\n.accordion > .card:not(:last-of-type) {\n border-bottom: 0;\n border-bottom-right-radius: 0;\n border-bottom-left-radius: 0;\n}\n\n.accordion > .card:not(:first-of-type) {\n border-top-left-radius: 0;\n border-top-right-radius: 0;\n}\n\n.accordion > .card > .card-header {\n border-radius: 0;\n margin-bottom: -1px;\n}\n\n.breadcrumb {\n display: flex;\n flex-wrap: wrap;\n padding: 0.75rem 1rem;\n margin-bottom: 1rem;\n list-style: none;\n background-color: #e9ecef;\n border-radius: 0.25rem;\n}\n\n.breadcrumb-item {\n display: flex;\n}\n\n.breadcrumb-item + .breadcrumb-item {\n padding-left: 0.5rem;\n}\n\n.breadcrumb-item + .breadcrumb-item::before {\n display: inline-block;\n padding-right: 0.5rem;\n color: #6c757d;\n content: \"/\";\n}\n\n.breadcrumb-item + .breadcrumb-item:hover::before {\n text-decoration: underline;\n}\n\n.breadcrumb-item + .breadcrumb-item:hover::before {\n text-decoration: none;\n}\n\n.breadcrumb-item.active {\n color: #6c757d;\n}\n\n.pagination {\n display: flex;\n padding-left: 0;\n list-style: none;\n border-radius: 0.25rem;\n}\n\n.page-link {\n position: relative;\n display: block;\n padding: 0.5rem 0.75rem;\n margin-left: -1px;\n line-height: 1.25;\n color: #007bff;\n background-color: #fff;\n border: 1px solid #dee2e6;\n}\n\n.page-link:hover {\n z-index: 2;\n color: #0056b3;\n text-decoration: none;\n background-color: #e9ecef;\n border-color: #dee2e6;\n}\n\n.page-link:focus {\n z-index: 3;\n outline: 0;\n box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.25);\n}\n\n.page-item:first-child .page-link {\n margin-left: 0;\n border-top-left-radius: 0.25rem;\n border-bottom-left-radius: 0.25rem;\n}\n\n.page-item:last-child .page-link {\n border-top-right-radius: 0.25rem;\n border-bottom-right-radius: 0.25rem;\n}\n\n.page-item.active .page-link {\n z-index: 3;\n color: #fff;\n background-color: #007bff;\n border-color: #007bff;\n}\n\n.page-item.disabled .page-link {\n color: #6c757d;\n pointer-events: none;\n cursor: auto;\n background-color: #fff;\n border-color: #dee2e6;\n}\n\n.pagination-lg .page-link {\n padding: 0.75rem 1.5rem;\n font-size: 1.25rem;\n line-height: 1.5;\n}\n\n.pagination-lg .page-item:first-child .page-link {\n border-top-left-radius: 0.3rem;\n border-bottom-left-radius: 0.3rem;\n}\n\n.pagination-lg .page-item:last-child .page-link {\n border-top-right-radius: 0.3rem;\n border-bottom-right-radius: 0.3rem;\n}\n\n.pagination-sm .page-link {\n padding: 0.25rem 0.5rem;\n font-size: 0.875rem;\n line-height: 1.5;\n}\n\n.pagination-sm .page-item:first-child .page-link {\n border-top-left-radius: 0.2rem;\n border-bottom-left-radius: 0.2rem;\n}\n\n.pagination-sm .page-item:last-child .page-link {\n border-top-right-radius: 0.2rem;\n border-bottom-right-radius: 0.2rem;\n}\n\n.badge {\n display: inline-block;\n padding: 0.25em 0.4em;\n font-size: 75%;\n font-weight: 700;\n line-height: 1;\n text-align: center;\n white-space: nowrap;\n vertical-align: baseline;\n border-radius: 0.25rem;\n transition: color 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;\n}\n\n@media (prefers-reduced-motion: reduce) {\n .badge {\n transition: none;\n }\n}\n\na.badge:hover, a.badge:focus {\n text-decoration: none;\n}\n\n.badge:empty {\n display: none;\n}\n\n.btn .badge {\n position: relative;\n top: -1px;\n}\n\n.badge-pill {\n padding-right: 0.6em;\n padding-left: 0.6em;\n border-radius: 10rem;\n}\n\n.badge-primary {\n color: #fff;\n background-color: #007bff;\n}\n\na.badge-primary:hover, a.badge-primary:focus {\n color: #fff;\n background-color: #0062cc;\n}\n\na.badge-primary:focus, a.badge-primary.focus {\n outline: 0;\n box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.5);\n}\n\n.badge-secondary {\n color: #fff;\n background-color: #6c757d;\n}\n\na.badge-secondary:hover, a.badge-secondary:focus {\n color: #fff;\n background-color: #545b62;\n}\n\na.badge-secondary:focus, a.badge-secondary.focus {\n outline: 0;\n box-shadow: 0 0 0 0.2rem rgba(108, 117, 125, 0.5);\n}\n\n.badge-success {\n color: #fff;\n background-color: #28a745;\n}\n\na.badge-success:hover, a.badge-success:focus {\n color: #fff;\n background-color: #1e7e34;\n}\n\na.badge-success:focus, a.badge-success.focus {\n outline: 0;\n box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.5);\n}\n\n.badge-info {\n color: #fff;\n background-color: #17a2b8;\n}\n\na.badge-info:hover, a.badge-info:focus {\n color: #fff;\n background-color: #117a8b;\n}\n\na.badge-info:focus, a.badge-info.focus {\n outline: 0;\n box-shadow: 0 0 0 0.2rem rgba(23, 162, 184, 0.5);\n}\n\n.badge-warning {\n color: #212529;\n background-color: #ffc107;\n}\n\na.badge-warning:hover, a.badge-warning:focus {\n color: #212529;\n background-color: #d39e00;\n}\n\na.badge-warning:focus, a.badge-warning.focus {\n outline: 0;\n box-shadow: 0 0 0 0.2rem rgba(255, 193, 7, 0.5);\n}\n\n.badge-danger {\n color: #fff;\n background-color: #dc3545;\n}\n\na.badge-danger:hover, a.badge-danger:focus {\n color: #fff;\n background-color: #bd2130;\n}\n\na.badge-danger:focus, a.badge-danger.focus {\n outline: 0;\n box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.5);\n}\n\n.badge-light {\n color: #212529;\n background-color: #f8f9fa;\n}\n\na.badge-light:hover, a.badge-light:focus {\n color: #212529;\n background-color: #dae0e5;\n}\n\na.badge-light:focus, a.badge-light.focus {\n outline: 0;\n box-shadow: 0 0 0 0.2rem rgba(248, 249, 250, 0.5);\n}\n\n.badge-dark {\n color: #fff;\n background-color: #343a40;\n}\n\na.badge-dark:hover, a.badge-dark:focus {\n color: #fff;\n background-color: #1d2124;\n}\n\na.badge-dark:focus, a.badge-dark.focus {\n outline: 0;\n box-shadow: 0 0 0 0.2rem rgba(52, 58, 64, 0.5);\n}\n\n.jumbotron {\n padding: 2rem 1rem;\n margin-bottom: 2rem;\n background-color: #e9ecef;\n border-radius: 0.3rem;\n}\n\n@media (min-width: 576px) {\n .jumbotron {\n padding: 4rem 2rem;\n }\n}\n\n.jumbotron-fluid {\n padding-right: 0;\n padding-left: 0;\n border-radius: 0;\n}\n\n.alert {\n position: relative;\n padding: 0.75rem 1.25rem;\n margin-bottom: 1rem;\n border: 1px solid transparent;\n border-radius: 0.25rem;\n}\n\n.alert-heading {\n color: inherit;\n}\n\n.alert-link {\n font-weight: 700;\n}\n\n.alert-dismissible {\n padding-right: 4rem;\n}\n\n.alert-dismissible .close {\n position: absolute;\n top: 0;\n right: 0;\n z-index: 2;\n padding: 0.75rem 1.25rem;\n color: inherit;\n}\n\n.alert-primary {\n color: #004085;\n background-color: #cce5ff;\n border-color: #b8daff;\n}\n\n.alert-primary hr {\n border-top-color: #9fcdff;\n}\n\n.alert-primary .alert-link {\n color: #002752;\n}\n\n.alert-secondary {\n color: #383d41;\n background-color: #e2e3e5;\n border-color: #d6d8db;\n}\n\n.alert-secondary hr {\n border-top-color: #c8cbcf;\n}\n\n.alert-secondary .alert-link {\n color: #202326;\n}\n\n.alert-success {\n color: #155724;\n background-color: #d4edda;\n border-color: #c3e6cb;\n}\n\n.alert-success hr {\n border-top-color: #b1dfbb;\n}\n\n.alert-success .alert-link {\n color: #0b2e13;\n}\n\n.alert-info {\n color: #0c5460;\n background-color: #d1ecf1;\n border-color: #bee5eb;\n}\n\n.alert-info hr {\n border-top-color: #abdde5;\n}\n\n.alert-info .alert-link {\n color: #062c33;\n}\n\n.alert-warning {\n color: #856404;\n background-color: #fff3cd;\n border-color: #ffeeba;\n}\n\n.alert-warning hr {\n border-top-color: #ffe8a1;\n}\n\n.alert-warning .alert-link {\n color: #533f03;\n}\n\n.alert-danger {\n color: #721c24;\n background-color: #f8d7da;\n border-color: #f5c6cb;\n}\n\n.alert-danger hr {\n border-top-color: #f1b0b7;\n}\n\n.alert-danger .alert-link {\n color: #491217;\n}\n\n.alert-light {\n color: #818182;\n background-color: #fefefe;\n border-color: #fdfdfe;\n}\n\n.alert-light hr {\n border-top-color: #ececf6;\n}\n\n.alert-light .alert-link {\n color: #686868;\n}\n\n.alert-dark {\n color: #1b1e21;\n background-color: #d6d8d9;\n border-color: #c6c8ca;\n}\n\n.alert-dark hr {\n border-top-color: #b9bbbe;\n}\n\n.alert-dark .alert-link {\n color: #040505;\n}\n\n@keyframes progress-bar-stripes {\n from {\n background-position: 1rem 0;\n }\n to {\n background-position: 0 0;\n }\n}\n\n.progress {\n display: flex;\n height: 1rem;\n overflow: hidden;\n line-height: 0;\n font-size: 0.75rem;\n background-color: #e9ecef;\n border-radius: 0.25rem;\n}\n\n.progress-bar {\n display: flex;\n flex-direction: column;\n justify-content: center;\n overflow: hidden;\n color: #fff;\n text-align: center;\n white-space: nowrap;\n background-color: #007bff;\n transition: width 0.6s ease;\n}\n\n@media (prefers-reduced-motion: reduce) {\n .progress-bar {\n transition: none;\n }\n}\n\n.progress-bar-striped {\n background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);\n background-size: 1rem 1rem;\n}\n\n.progress-bar-animated {\n animation: progress-bar-stripes 1s linear infinite;\n}\n\n@media (prefers-reduced-motion: reduce) {\n .progress-bar-animated {\n animation: none;\n }\n}\n\n.media {\n display: flex;\n align-items: flex-start;\n}\n\n.media-body {\n flex: 1;\n}\n\n.list-group {\n display: flex;\n flex-direction: column;\n padding-left: 0;\n margin-bottom: 0;\n border-radius: 0.25rem;\n}\n\n.list-group-item-action {\n width: 100%;\n color: #495057;\n text-align: inherit;\n}\n\n.list-group-item-action:hover, .list-group-item-action:focus {\n z-index: 1;\n color: #495057;\n text-decoration: none;\n background-color: #f8f9fa;\n}\n\n.list-group-item-action:active {\n color: #212529;\n background-color: #e9ecef;\n}\n\n.list-group-item {\n position: relative;\n display: block;\n padding: 0.75rem 1.25rem;\n background-color: #fff;\n border: 1px solid rgba(0, 0, 0, 0.125);\n}\n\n.list-group-item:first-child {\n border-top-left-radius: inherit;\n border-top-right-radius: inherit;\n}\n\n.list-group-item:last-child {\n border-bottom-right-radius: inherit;\n border-bottom-left-radius: inherit;\n}\n\n.list-group-item.disabled, .list-group-item:disabled {\n color: #6c757d;\n pointer-events: none;\n background-color: #fff;\n}\n\n.list-group-item.active {\n z-index: 2;\n color: #fff;\n background-color: #007bff;\n border-color: #007bff;\n}\n\n.list-group-item + .list-group-item {\n border-top-width: 0;\n}\n\n.list-group-item + .list-group-item.active {\n margin-top: -1px;\n border-top-width: 1px;\n}\n\n.list-group-horizontal {\n flex-direction: row;\n}\n\n.list-group-horizontal > .list-group-item:first-child {\n border-bottom-left-radius: 0.25rem;\n border-top-right-radius: 0;\n}\n\n.list-group-horizontal > .list-group-item:last-child {\n border-top-right-radius: 0.25rem;\n border-bottom-left-radius: 0;\n}\n\n.list-group-horizontal > .list-group-item.active {\n margin-top: 0;\n}\n\n.list-group-horizontal > .list-group-item + .list-group-item {\n border-top-width: 1px;\n border-left-width: 0;\n}\n\n.list-group-horizontal > .list-group-item + .list-group-item.active {\n margin-left: -1px;\n border-left-width: 1px;\n}\n\n@media (min-width: 576px) {\n .list-group-horizontal-sm {\n flex-direction: row;\n }\n .list-group-horizontal-sm > .list-group-item:first-child {\n border-bottom-left-radius: 0.25rem;\n border-top-right-radius: 0;\n }\n .list-group-horizontal-sm > .list-group-item:last-child {\n border-top-right-radius: 0.25rem;\n border-bottom-left-radius: 0;\n }\n .list-group-horizontal-sm > .list-group-item.active {\n margin-top: 0;\n }\n .list-group-horizontal-sm > .list-group-item + .list-group-item {\n border-top-width: 1px;\n border-left-width: 0;\n }\n .list-group-horizontal-sm > .list-group-item + .list-group-item.active {\n margin-left: -1px;\n border-left-width: 1px;\n }\n}\n\n@media (min-width: 768px) {\n .list-group-horizontal-md {\n flex-direction: row;\n }\n .list-group-horizontal-md > .list-group-item:first-child {\n border-bottom-left-radius: 0.25rem;\n border-top-right-radius: 0;\n }\n .list-group-horizontal-md > .list-group-item:last-child {\n border-top-right-radius: 0.25rem;\n border-bottom-left-radius: 0;\n }\n .list-group-horizontal-md > .list-group-item.active {\n margin-top: 0;\n }\n .list-group-horizontal-md > .list-group-item + .list-group-item {\n border-top-width: 1px;\n border-left-width: 0;\n }\n .list-group-horizontal-md > .list-group-item + .list-group-item.active {\n margin-left: -1px;\n border-left-width: 1px;\n }\n}\n\n@media (min-width: 992px) {\n .list-group-horizontal-lg {\n flex-direction: row;\n }\n .list-group-horizontal-lg > .list-group-item:first-child {\n border-bottom-left-radius: 0.25rem;\n border-top-right-radius: 0;\n }\n .list-group-horizontal-lg > .list-group-item:last-child {\n border-top-right-radius: 0.25rem;\n border-bottom-left-radius: 0;\n }\n .list-group-horizontal-lg > .list-group-item.active {\n margin-top: 0;\n }\n .list-group-horizontal-lg > .list-group-item + .list-group-item {\n border-top-width: 1px;\n border-left-width: 0;\n }\n .list-group-horizontal-lg > .list-group-item + .list-group-item.active {\n margin-left: -1px;\n border-left-width: 1px;\n }\n}\n\n@media (min-width: 1200px) {\n .list-group-horizontal-xl {\n flex-direction: row;\n }\n .list-group-horizontal-xl > .list-group-item:first-child {\n border-bottom-left-radius: 0.25rem;\n border-top-right-radius: 0;\n }\n .list-group-horizontal-xl > .list-group-item:last-child {\n border-top-right-radius: 0.25rem;\n border-bottom-left-radius: 0;\n }\n .list-group-horizontal-xl > .list-group-item.active {\n margin-top: 0;\n }\n .list-group-horizontal-xl > .list-group-item + .list-group-item {\n border-top-width: 1px;\n border-left-width: 0;\n }\n .list-group-horizontal-xl > .list-group-item + .list-group-item.active {\n margin-left: -1px;\n border-left-width: 1px;\n }\n}\n\n.list-group-flush {\n border-radius: 0;\n}\n\n.list-group-flush > .list-group-item {\n border-width: 0 0 1px;\n}\n\n.list-group-flush > .list-group-item:last-child {\n border-bottom-width: 0;\n}\n\n.list-group-item-primary {\n color: #004085;\n background-color: #b8daff;\n}\n\n.list-group-item-primary.list-group-item-action:hover, .list-group-item-primary.list-group-item-action:focus {\n color: #004085;\n background-color: #9fcdff;\n}\n\n.list-group-item-primary.list-group-item-action.active {\n color: #fff;\n background-color: #004085;\n border-color: #004085;\n}\n\n.list-group-item-secondary {\n color: #383d41;\n background-color: #d6d8db;\n}\n\n.list-group-item-secondary.list-group-item-action:hover, .list-group-item-secondary.list-group-item-action:focus {\n color: #383d41;\n background-color: #c8cbcf;\n}\n\n.list-group-item-secondary.list-group-item-action.active {\n color: #fff;\n background-color: #383d41;\n border-color: #383d41;\n}\n\n.list-group-item-success {\n color: #155724;\n background-color: #c3e6cb;\n}\n\n.list-group-item-success.list-group-item-action:hover, .list-group-item-success.list-group-item-action:focus {\n color: #155724;\n background-color: #b1dfbb;\n}\n\n.list-group-item-success.list-group-item-action.active {\n color: #fff;\n background-color: #155724;\n border-color: #155724;\n}\n\n.list-group-item-info {\n color: #0c5460;\n background-color: #bee5eb;\n}\n\n.list-group-item-info.list-group-item-action:hover, .list-group-item-info.list-group-item-action:focus {\n color: #0c5460;\n background-color: #abdde5;\n}\n\n.list-group-item-info.list-group-item-action.active {\n color: #fff;\n background-color: #0c5460;\n border-color: #0c5460;\n}\n\n.list-group-item-warning {\n color: #856404;\n background-color: #ffeeba;\n}\n\n.list-group-item-warning.list-group-item-action:hover, .list-group-item-warning.list-group-item-action:focus {\n color: #856404;\n background-color: #ffe8a1;\n}\n\n.list-group-item-warning.list-group-item-action.active {\n color: #fff;\n background-color: #856404;\n border-color: #856404;\n}\n\n.list-group-item-danger {\n color: #721c24;\n background-color: #f5c6cb;\n}\n\n.list-group-item-danger.list-group-item-action:hover, .list-group-item-danger.list-group-item-action:focus {\n color: #721c24;\n background-color: #f1b0b7;\n}\n\n.list-group-item-danger.list-group-item-action.active {\n color: #fff;\n background-color: #721c24;\n border-color: #721c24;\n}\n\n.list-group-item-light {\n color: #818182;\n background-color: #fdfdfe;\n}\n\n.list-group-item-light.list-group-item-action:hover, .list-group-item-light.list-group-item-action:focus {\n color: #818182;\n background-color: #ececf6;\n}\n\n.list-group-item-light.list-group-item-action.active {\n color: #fff;\n background-color: #818182;\n border-color: #818182;\n}\n\n.list-group-item-dark {\n color: #1b1e21;\n background-color: #c6c8ca;\n}\n\n.list-group-item-dark.list-group-item-action:hover, .list-group-item-dark.list-group-item-action:focus {\n color: #1b1e21;\n background-color: #b9bbbe;\n}\n\n.list-group-item-dark.list-group-item-action.active {\n color: #fff;\n background-color: #1b1e21;\n border-color: #1b1e21;\n}\n\n.close {\n float: right;\n font-size: 1.5rem;\n font-weight: 700;\n line-height: 1;\n color: #000;\n text-shadow: 0 1px 0 #fff;\n opacity: .5;\n}\n\n.close:hover {\n color: #000;\n text-decoration: none;\n}\n\n.close:not(:disabled):not(.disabled):hover, .close:not(:disabled):not(.disabled):focus {\n opacity: .75;\n}\n\nbutton.close {\n padding: 0;\n background-color: transparent;\n border: 0;\n}\n\na.close.disabled {\n pointer-events: none;\n}\n\n.toast {\n flex-basis: 350px;\n max-width: 350px;\n font-size: 0.875rem;\n background-color: rgba(255, 255, 255, 0.85);\n background-clip: padding-box;\n border: 1px solid rgba(0, 0, 0, 0.1);\n box-shadow: 0 0.25rem 0.75rem rgba(0, 0, 0, 0.1);\n opacity: 0;\n border-radius: 0.25rem;\n}\n\n.toast:not(:last-child) {\n margin-bottom: 0.75rem;\n}\n\n.toast.showing {\n opacity: 1;\n}\n\n.toast.show {\n display: block;\n opacity: 1;\n}\n\n.toast.hide {\n display: none;\n}\n\n.toast-header {\n display: flex;\n align-items: center;\n padding: 0.25rem 0.75rem;\n color: #6c757d;\n background-color: rgba(255, 255, 255, 0.85);\n background-clip: padding-box;\n border-bottom: 1px solid rgba(0, 0, 0, 0.05);\n border-top-left-radius: calc(0.25rem - 1px);\n border-top-right-radius: calc(0.25rem - 1px);\n}\n\n.toast-body {\n padding: 0.75rem;\n}\n\n.modal-open {\n overflow: hidden;\n}\n\n.modal-open .modal {\n overflow-x: hidden;\n overflow-y: auto;\n}\n\n.modal {\n position: fixed;\n top: 0;\n left: 0;\n z-index: 1050;\n display: none;\n width: 100%;\n height: 100%;\n overflow: hidden;\n outline: 0;\n}\n\n.modal-dialog {\n position: relative;\n width: auto;\n margin: 0.5rem;\n pointer-events: none;\n}\n\n.modal.fade .modal-dialog {\n transition: transform 0.3s ease-out;\n transform: translate(0, -50px);\n}\n\n@media (prefers-reduced-motion: reduce) {\n .modal.fade .modal-dialog {\n transition: none;\n }\n}\n\n.modal.show .modal-dialog {\n transform: none;\n}\n\n.modal.modal-static .modal-dialog {\n transform: scale(1.02);\n}\n\n.modal-dialog-scrollable {\n display: flex;\n max-height: calc(100% - 1rem);\n}\n\n.modal-dialog-scrollable .modal-content {\n max-height: calc(100vh - 1rem);\n overflow: hidden;\n}\n\n.modal-dialog-scrollable .modal-header,\n.modal-dialog-scrollable .modal-footer {\n flex-shrink: 0;\n}\n\n.modal-dialog-scrollable .modal-body {\n overflow-y: auto;\n}\n\n.modal-dialog-centered {\n display: flex;\n align-items: center;\n min-height: calc(100% - 1rem);\n}\n\n.modal-dialog-centered::before {\n display: block;\n height: calc(100vh - 1rem);\n height: min-content;\n content: \"\";\n}\n\n.modal-dialog-centered.modal-dialog-scrollable {\n flex-direction: column;\n justify-content: center;\n height: 100%;\n}\n\n.modal-dialog-centered.modal-dialog-scrollable .modal-content {\n max-height: none;\n}\n\n.modal-dialog-centered.modal-dialog-scrollable::before {\n content: none;\n}\n\n.modal-content {\n position: relative;\n display: flex;\n flex-direction: column;\n width: 100%;\n pointer-events: auto;\n background-color: #fff;\n background-clip: padding-box;\n border: 1px solid rgba(0, 0, 0, 0.2);\n border-radius: 0.3rem;\n outline: 0;\n}\n\n.modal-backdrop {\n position: fixed;\n top: 0;\n left: 0;\n z-index: 1040;\n width: 100vw;\n height: 100vh;\n background-color: #000;\n}\n\n.modal-backdrop.fade {\n opacity: 0;\n}\n\n.modal-backdrop.show {\n opacity: 0.5;\n}\n\n.modal-header {\n display: flex;\n align-items: flex-start;\n justify-content: space-between;\n padding: 1rem 1rem;\n border-bottom: 1px solid #dee2e6;\n border-top-left-radius: calc(0.3rem - 1px);\n border-top-right-radius: calc(0.3rem - 1px);\n}\n\n.modal-header .close {\n padding: 1rem 1rem;\n margin: -1rem -1rem -1rem auto;\n}\n\n.modal-title {\n margin-bottom: 0;\n line-height: 1.5;\n}\n\n.modal-body {\n position: relative;\n flex: 1 1 auto;\n padding: 1rem;\n}\n\n.modal-footer {\n display: flex;\n flex-wrap: wrap;\n align-items: center;\n justify-content: flex-end;\n padding: 0.75rem;\n border-top: 1px solid #dee2e6;\n border-bottom-right-radius: calc(0.3rem - 1px);\n border-bottom-left-radius: calc(0.3rem - 1px);\n}\n\n.modal-footer > * {\n margin: 0.25rem;\n}\n\n.modal-scrollbar-measure {\n position: absolute;\n top: -9999px;\n width: 50px;\n height: 50px;\n overflow: scroll;\n}\n\n@media (min-width: 576px) {\n .modal-dialog {\n max-width: 500px;\n margin: 1.75rem auto;\n }\n .modal-dialog-scrollable {\n max-height: calc(100% - 3.5rem);\n }\n .modal-dialog-scrollable .modal-content {\n max-height: calc(100vh - 3.5rem);\n }\n .modal-dialog-centered {\n min-height: calc(100% - 3.5rem);\n }\n .modal-dialog-centered::before {\n height: calc(100vh - 3.5rem);\n height: min-content;\n }\n .modal-sm {\n max-width: 300px;\n }\n}\n\n@media (min-width: 992px) {\n .modal-lg,\n .modal-xl {\n max-width: 800px;\n }\n}\n\n@media (min-width: 1200px) {\n .modal-xl {\n max-width: 1140px;\n }\n}\n\n.tooltip {\n position: absolute;\n z-index: 1070;\n display: block;\n margin: 0;\n font-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, \"Helvetica Neue\", Arial, \"Noto Sans\", sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\", \"Noto Color Emoji\";\n font-style: normal;\n font-weight: 400;\n line-height: 1.5;\n text-align: left;\n text-align: start;\n text-decoration: none;\n text-shadow: none;\n text-transform: none;\n letter-spacing: normal;\n word-break: normal;\n word-spacing: normal;\n white-space: normal;\n line-break: auto;\n font-size: 0.875rem;\n word-wrap: break-word;\n opacity: 0;\n}\n\n.tooltip.show {\n opacity: 0.9;\n}\n\n.tooltip .arrow {\n position: absolute;\n display: block;\n width: 0.8rem;\n height: 0.4rem;\n}\n\n.tooltip .arrow::before {\n position: absolute;\n content: \"\";\n border-color: transparent;\n border-style: solid;\n}\n\n.bs-tooltip-top, .bs-tooltip-auto[x-placement^=\"top\"] {\n padding: 0.4rem 0;\n}\n\n.bs-tooltip-top .arrow, .bs-tooltip-auto[x-placement^=\"top\"] .arrow {\n bottom: 0;\n}\n\n.bs-tooltip-top .arrow::before, .bs-tooltip-auto[x-placement^=\"top\"] .arrow::before {\n top: 0;\n border-width: 0.4rem 0.4rem 0;\n border-top-color: #000;\n}\n\n.bs-tooltip-right, .bs-tooltip-auto[x-placement^=\"right\"] {\n padding: 0 0.4rem;\n}\n\n.bs-tooltip-right .arrow, .bs-tooltip-auto[x-placement^=\"right\"] .arrow {\n left: 0;\n width: 0.4rem;\n height: 0.8rem;\n}\n\n.bs-tooltip-right .arrow::before, .bs-tooltip-auto[x-placement^=\"right\"] .arrow::before {\n right: 0;\n border-width: 0.4rem 0.4rem 0.4rem 0;\n border-right-color: #000;\n}\n\n.bs-tooltip-bottom, .bs-tooltip-auto[x-placement^=\"bottom\"] {\n padding: 0.4rem 0;\n}\n\n.bs-tooltip-bottom .arrow, .bs-tooltip-auto[x-placement^=\"bottom\"] .arrow {\n top: 0;\n}\n\n.bs-tooltip-bottom .arrow::before, .bs-tooltip-auto[x-placement^=\"bottom\"] .arrow::before {\n bottom: 0;\n border-width: 0 0.4rem 0.4rem;\n border-bottom-color: #000;\n}\n\n.bs-tooltip-left, .bs-tooltip-auto[x-placement^=\"left\"] {\n padding: 0 0.4rem;\n}\n\n.bs-tooltip-left .arrow, .bs-tooltip-auto[x-placement^=\"left\"] .arrow {\n right: 0;\n width: 0.4rem;\n height: 0.8rem;\n}\n\n.bs-tooltip-left .arrow::before, .bs-tooltip-auto[x-placement^=\"left\"] .arrow::before {\n left: 0;\n border-width: 0.4rem 0 0.4rem 0.4rem;\n border-left-color: #000;\n}\n\n.tooltip-inner {\n max-width: 200px;\n padding: 0.25rem 0.5rem;\n color: #fff;\n text-align: center;\n background-color: #000;\n border-radius: 0.25rem;\n}\n\n.popover {\n position: absolute;\n top: 0;\n left: 0;\n z-index: 1060;\n display: block;\n max-width: 276px;\n font-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, \"Helvetica Neue\", Arial, \"Noto Sans\", sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\", \"Noto Color Emoji\";\n font-style: normal;\n font-weight: 400;\n line-height: 1.5;\n text-align: left;\n text-align: start;\n text-decoration: none;\n text-shadow: none;\n text-transform: none;\n letter-spacing: normal;\n word-break: normal;\n word-spacing: normal;\n white-space: normal;\n line-break: auto;\n font-size: 0.875rem;\n word-wrap: break-word;\n background-color: #fff;\n background-clip: padding-box;\n border: 1px solid rgba(0, 0, 0, 0.2);\n border-radius: 0.3rem;\n}\n\n.popover .arrow {\n position: absolute;\n display: block;\n width: 1rem;\n height: 0.5rem;\n margin: 0 0.3rem;\n}\n\n.popover .arrow::before, .popover .arrow::after {\n position: absolute;\n display: block;\n content: \"\";\n border-color: transparent;\n border-style: solid;\n}\n\n.bs-popover-top, .bs-popover-auto[x-placement^=\"top\"] {\n margin-bottom: 0.5rem;\n}\n\n.bs-popover-top > .arrow, .bs-popover-auto[x-placement^=\"top\"] > .arrow {\n bottom: calc(-0.5rem - 1px);\n}\n\n.bs-popover-top > .arrow::before, .bs-popover-auto[x-placement^=\"top\"] > .arrow::before {\n bottom: 0;\n border-width: 0.5rem 0.5rem 0;\n border-top-color: rgba(0, 0, 0, 0.25);\n}\n\n.bs-popover-top > .arrow::after, .bs-popover-auto[x-placement^=\"top\"] > .arrow::after {\n bottom: 1px;\n border-width: 0.5rem 0.5rem 0;\n border-top-color: #fff;\n}\n\n.bs-popover-right, .bs-popover-auto[x-placement^=\"right\"] {\n margin-left: 0.5rem;\n}\n\n.bs-popover-right > .arrow, .bs-popover-auto[x-placement^=\"right\"] > .arrow {\n left: calc(-0.5rem - 1px);\n width: 0.5rem;\n height: 1rem;\n margin: 0.3rem 0;\n}\n\n.bs-popover-right > .arrow::before, .bs-popover-auto[x-placement^=\"right\"] > .arrow::before {\n left: 0;\n border-width: 0.5rem 0.5rem 0.5rem 0;\n border-right-color: rgba(0, 0, 0, 0.25);\n}\n\n.bs-popover-right > .arrow::after, .bs-popover-auto[x-placement^=\"right\"] > .arrow::after {\n left: 1px;\n border-width: 0.5rem 0.5rem 0.5rem 0;\n border-right-color: #fff;\n}\n\n.bs-popover-bottom, .bs-popover-auto[x-placement^=\"bottom\"] {\n margin-top: 0.5rem;\n}\n\n.bs-popover-bottom > .arrow, .bs-popover-auto[x-placement^=\"bottom\"] > .arrow {\n top: calc(-0.5rem - 1px);\n}\n\n.bs-popover-bottom > .arrow::before, .bs-popover-auto[x-placement^=\"bottom\"] > .arrow::before {\n top: 0;\n border-width: 0 0.5rem 0.5rem 0.5rem;\n border-bottom-color: rgba(0, 0, 0, 0.25);\n}\n\n.bs-popover-bottom > .arrow::after, .bs-popover-auto[x-placement^=\"bottom\"] > .arrow::after {\n top: 1px;\n border-width: 0 0.5rem 0.5rem 0.5rem;\n border-bottom-color: #fff;\n}\n\n.bs-popover-bottom .popover-header::before, .bs-popover-auto[x-placement^=\"bottom\"] .popover-header::before {\n position: absolute;\n top: 0;\n left: 50%;\n display: block;\n width: 1rem;\n margin-left: -0.5rem;\n content: \"\";\n border-bottom: 1px solid #f7f7f7;\n}\n\n.bs-popover-left, .bs-popover-auto[x-placement^=\"left\"] {\n margin-right: 0.5rem;\n}\n\n.bs-popover-left > .arrow, .bs-popover-auto[x-placement^=\"left\"] > .arrow {\n right: calc(-0.5rem - 1px);\n width: 0.5rem;\n height: 1rem;\n margin: 0.3rem 0;\n}\n\n.bs-popover-left > .arrow::before, .bs-popover-auto[x-placement^=\"left\"] > .arrow::before {\n right: 0;\n border-width: 0.5rem 0 0.5rem 0.5rem;\n border-left-color: rgba(0, 0, 0, 0.25);\n}\n\n.bs-popover-left > .arrow::after, .bs-popover-auto[x-placement^=\"left\"] > .arrow::after {\n right: 1px;\n border-width: 0.5rem 0 0.5rem 0.5rem;\n border-left-color: #fff;\n}\n\n.popover-header {\n padding: 0.5rem 0.75rem;\n margin-bottom: 0;\n font-size: 1rem;\n background-color: #f7f7f7;\n border-bottom: 1px solid #ebebeb;\n border-top-left-radius: calc(0.3rem - 1px);\n border-top-right-radius: calc(0.3rem - 1px);\n}\n\n.popover-header:empty {\n display: none;\n}\n\n.popover-body {\n padding: 0.5rem 0.75rem;\n color: #212529;\n}\n\n.carousel {\n position: relative;\n}\n\n.carousel.pointer-event {\n touch-action: pan-y;\n}\n\n.carousel-inner {\n position: relative;\n width: 100%;\n overflow: hidden;\n}\n\n.carousel-inner::after {\n display: block;\n clear: both;\n content: \"\";\n}\n\n.carousel-item {\n position: relative;\n display: none;\n float: left;\n width: 100%;\n margin-right: -100%;\n backface-visibility: hidden;\n transition: transform 0.6s ease-in-out;\n}\n\n@media (prefers-reduced-motion: reduce) {\n .carousel-item {\n transition: none;\n }\n}\n\n.carousel-item.active,\n.carousel-item-next,\n.carousel-item-prev {\n display: block;\n}\n\n.carousel-item-next:not(.carousel-item-left),\n.active.carousel-item-right {\n transform: translateX(100%);\n}\n\n.carousel-item-prev:not(.carousel-item-right),\n.active.carousel-item-left {\n transform: translateX(-100%);\n}\n\n.carousel-fade .carousel-item {\n opacity: 0;\n transition-property: opacity;\n transform: none;\n}\n\n.carousel-fade .carousel-item.active,\n.carousel-fade .carousel-item-next.carousel-item-left,\n.carousel-fade .carousel-item-prev.carousel-item-right {\n z-index: 1;\n opacity: 1;\n}\n\n.carousel-fade .active.carousel-item-left,\n.carousel-fade .active.carousel-item-right {\n z-index: 0;\n opacity: 0;\n transition: opacity 0s 0.6s;\n}\n\n@media (prefers-reduced-motion: reduce) {\n .carousel-fade .active.carousel-item-left,\n .carousel-fade .active.carousel-item-right {\n transition: none;\n }\n}\n\n.carousel-control-prev,\n.carousel-control-next {\n position: absolute;\n top: 0;\n bottom: 0;\n z-index: 1;\n display: flex;\n align-items: center;\n justify-content: center;\n width: 15%;\n color: #fff;\n text-align: center;\n opacity: 0.5;\n transition: opacity 0.15s ease;\n}\n\n@media (prefers-reduced-motion: reduce) {\n .carousel-control-prev,\n .carousel-control-next {\n transition: none;\n }\n}\n\n.carousel-control-prev:hover, .carousel-control-prev:focus,\n.carousel-control-next:hover,\n.carousel-control-next:focus {\n color: #fff;\n text-decoration: none;\n outline: 0;\n opacity: 0.9;\n}\n\n.carousel-control-prev {\n left: 0;\n}\n\n.carousel-control-next {\n right: 0;\n}\n\n.carousel-control-prev-icon,\n.carousel-control-next-icon {\n display: inline-block;\n width: 20px;\n height: 20px;\n background: no-repeat 50% / 100% 100%;\n}\n\n.carousel-control-prev-icon {\n background-image: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' width='8' height='8' viewBox='0 0 8 8'%3e%3cpath d='M5.25 0l-4 4 4 4 1.5-1.5L4.25 4l2.5-2.5L5.25 0z'/%3e%3c/svg%3e\");\n}\n\n.carousel-control-next-icon {\n background-image: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' width='8' height='8' viewBox='0 0 8 8'%3e%3cpath d='M2.75 0l-1.5 1.5L3.75 4l-2.5 2.5L2.75 8l4-4-4-4z'/%3e%3c/svg%3e\");\n}\n\n.carousel-indicators {\n position: absolute;\n right: 0;\n bottom: 0;\n left: 0;\n z-index: 15;\n display: flex;\n justify-content: center;\n padding-left: 0;\n margin-right: 15%;\n margin-left: 15%;\n list-style: none;\n}\n\n.carousel-indicators li {\n box-sizing: content-box;\n flex: 0 1 auto;\n width: 30px;\n height: 3px;\n margin-right: 3px;\n margin-left: 3px;\n text-indent: -999px;\n cursor: pointer;\n background-color: #fff;\n background-clip: padding-box;\n border-top: 10px solid transparent;\n border-bottom: 10px solid transparent;\n opacity: .5;\n transition: opacity 0.6s ease;\n}\n\n@media (prefers-reduced-motion: reduce) {\n .carousel-indicators li {\n transition: none;\n }\n}\n\n.carousel-indicators .active {\n opacity: 1;\n}\n\n.carousel-caption {\n position: absolute;\n right: 15%;\n bottom: 20px;\n left: 15%;\n z-index: 10;\n padding-top: 20px;\n padding-bottom: 20px;\n color: #fff;\n text-align: center;\n}\n\n@keyframes spinner-border {\n to {\n transform: rotate(360deg);\n }\n}\n\n.spinner-border {\n display: inline-block;\n width: 2rem;\n height: 2rem;\n vertical-align: text-bottom;\n border: 0.25em solid currentColor;\n border-right-color: transparent;\n border-radius: 50%;\n animation: spinner-border .75s linear infinite;\n}\n\n.spinner-border-sm {\n width: 1rem;\n height: 1rem;\n border-width: 0.2em;\n}\n\n@keyframes spinner-grow {\n 0% {\n transform: scale(0);\n }\n 50% {\n opacity: 1;\n transform: none;\n }\n}\n\n.spinner-grow {\n display: inline-block;\n width: 2rem;\n height: 2rem;\n vertical-align: text-bottom;\n background-color: currentColor;\n border-radius: 50%;\n opacity: 0;\n animation: spinner-grow .75s linear infinite;\n}\n\n.spinner-grow-sm {\n width: 1rem;\n height: 1rem;\n}\n\n.align-baseline {\n vertical-align: baseline !important;\n}\n\n.align-top {\n vertical-align: top !important;\n}\n\n.align-middle {\n vertical-align: middle !important;\n}\n\n.align-bottom {\n vertical-align: bottom !important;\n}\n\n.align-text-bottom {\n vertical-align: text-bottom !important;\n}\n\n.align-text-top {\n vertical-align: text-top !important;\n}\n\n.bg-primary {\n background-color: #007bff !important;\n}\n\na.bg-primary:hover, a.bg-primary:focus,\nbutton.bg-primary:hover,\nbutton.bg-primary:focus {\n background-color: #0062cc !important;\n}\n\n.bg-secondary {\n background-color: #6c757d !important;\n}\n\na.bg-secondary:hover, a.bg-secondary:focus,\nbutton.bg-secondary:hover,\nbutton.bg-secondary:focus {\n background-color: #545b62 !important;\n}\n\n.bg-success {\n background-color: #28a745 !important;\n}\n\na.bg-success:hover, a.bg-success:focus,\nbutton.bg-success:hover,\nbutton.bg-success:focus {\n background-color: #1e7e34 !important;\n}\n\n.bg-info {\n background-color: #17a2b8 !important;\n}\n\na.bg-info:hover, a.bg-info:focus,\nbutton.bg-info:hover,\nbutton.bg-info:focus {\n background-color: #117a8b !important;\n}\n\n.bg-warning {\n background-color: #ffc107 !important;\n}\n\na.bg-warning:hover, a.bg-warning:focus,\nbutton.bg-warning:hover,\nbutton.bg-warning:focus {\n background-color: #d39e00 !important;\n}\n\n.bg-danger {\n background-color: #dc3545 !important;\n}\n\na.bg-danger:hover, a.bg-danger:focus,\nbutton.bg-danger:hover,\nbutton.bg-danger:focus {\n background-color: #bd2130 !important;\n}\n\n.bg-light {\n background-color: #f8f9fa !important;\n}\n\na.bg-light:hover, a.bg-light:focus,\nbutton.bg-light:hover,\nbutton.bg-light:focus {\n background-color: #dae0e5 !important;\n}\n\n.bg-dark {\n background-color: #343a40 !important;\n}\n\na.bg-dark:hover, a.bg-dark:focus,\nbutton.bg-dark:hover,\nbutton.bg-dark:focus {\n background-color: #1d2124 !important;\n}\n\n.bg-white {\n background-color: #fff !important;\n}\n\n.bg-transparent {\n background-color: transparent !important;\n}\n\n.border {\n border: 1px solid #dee2e6 !important;\n}\n\n.border-top {\n border-top: 1px solid #dee2e6 !important;\n}\n\n.border-right {\n border-right: 1px solid #dee2e6 !important;\n}\n\n.border-bottom {\n border-bottom: 1px solid #dee2e6 !important;\n}\n\n.border-left {\n border-left: 1px solid #dee2e6 !important;\n}\n\n.border-0 {\n border: 0 !important;\n}\n\n.border-top-0 {\n border-top: 0 !important;\n}\n\n.border-right-0 {\n border-right: 0 !important;\n}\n\n.border-bottom-0 {\n border-bottom: 0 !important;\n}\n\n.border-left-0 {\n border-left: 0 !important;\n}\n\n.border-primary {\n border-color: #007bff !important;\n}\n\n.border-secondary {\n border-color: #6c757d !important;\n}\n\n.border-success {\n border-color: #28a745 !important;\n}\n\n.border-info {\n border-color: #17a2b8 !important;\n}\n\n.border-warning {\n border-color: #ffc107 !important;\n}\n\n.border-danger {\n border-color: #dc3545 !important;\n}\n\n.border-light {\n border-color: #f8f9fa !important;\n}\n\n.border-dark {\n border-color: #343a40 !important;\n}\n\n.border-white {\n border-color: #fff !important;\n}\n\n.rounded-sm {\n border-radius: 0.2rem !important;\n}\n\n.rounded {\n border-radius: 0.25rem !important;\n}\n\n.rounded-top {\n border-top-left-radius: 0.25rem !important;\n border-top-right-radius: 0.25rem !important;\n}\n\n.rounded-right {\n border-top-right-radius: 0.25rem !important;\n border-bottom-right-radius: 0.25rem !important;\n}\n\n.rounded-bottom {\n border-bottom-right-radius: 0.25rem !important;\n border-bottom-left-radius: 0.25rem !important;\n}\n\n.rounded-left {\n border-top-left-radius: 0.25rem !important;\n border-bottom-left-radius: 0.25rem !important;\n}\n\n.rounded-lg {\n border-radius: 0.3rem !important;\n}\n\n.rounded-circle {\n border-radius: 50% !important;\n}\n\n.rounded-pill {\n border-radius: 50rem !important;\n}\n\n.rounded-0 {\n border-radius: 0 !important;\n}\n\n.clearfix::after {\n display: block;\n clear: both;\n content: \"\";\n}\n\n.d-none {\n display: none !important;\n}\n\n.d-inline {\n display: inline !important;\n}\n\n.d-inline-block {\n display: inline-block !important;\n}\n\n.d-block {\n display: block !important;\n}\n\n.d-table {\n display: table !important;\n}\n\n.d-table-row {\n display: table-row !important;\n}\n\n.d-table-cell {\n display: table-cell !important;\n}\n\n.d-flex {\n display: flex !important;\n}\n\n.d-inline-flex {\n display: inline-flex !important;\n}\n\n@media (min-width: 576px) {\n .d-sm-none {\n display: none !important;\n }\n .d-sm-inline {\n display: inline !important;\n }\n .d-sm-inline-block {\n display: inline-block !important;\n }\n .d-sm-block {\n display: block !important;\n }\n .d-sm-table {\n display: table !important;\n }\n .d-sm-table-row {\n display: table-row !important;\n }\n .d-sm-table-cell {\n display: table-cell !important;\n }\n .d-sm-flex {\n display: flex !important;\n }\n .d-sm-inline-flex {\n display: inline-flex !important;\n }\n}\n\n@media (min-width: 768px) {\n .d-md-none {\n display: none !important;\n }\n .d-md-inline {\n display: inline !important;\n }\n .d-md-inline-block {\n display: inline-block !important;\n }\n .d-md-block {\n display: block !important;\n }\n .d-md-table {\n display: table !important;\n }\n .d-md-table-row {\n display: table-row !important;\n }\n .d-md-table-cell {\n display: table-cell !important;\n }\n .d-md-flex {\n display: flex !important;\n }\n .d-md-inline-flex {\n display: inline-flex !important;\n }\n}\n\n@media (min-width: 992px) {\n .d-lg-none {\n display: none !important;\n }\n .d-lg-inline {\n display: inline !important;\n }\n .d-lg-inline-block {\n display: inline-block !important;\n }\n .d-lg-block {\n display: block !important;\n }\n .d-lg-table {\n display: table !important;\n }\n .d-lg-table-row {\n display: table-row !important;\n }\n .d-lg-table-cell {\n display: table-cell !important;\n }\n .d-lg-flex {\n display: flex !important;\n }\n .d-lg-inline-flex {\n display: inline-flex !important;\n }\n}\n\n@media (min-width: 1200px) {\n .d-xl-none {\n display: none !important;\n }\n .d-xl-inline {\n display: inline !important;\n }\n .d-xl-inline-block {\n display: inline-block !important;\n }\n .d-xl-block {\n display: block !important;\n }\n .d-xl-table {\n display: table !important;\n }\n .d-xl-table-row {\n display: table-row !important;\n }\n .d-xl-table-cell {\n display: table-cell !important;\n }\n .d-xl-flex {\n display: flex !important;\n }\n .d-xl-inline-flex {\n display: inline-flex !important;\n }\n}\n\n@media print {\n .d-print-none {\n display: none !important;\n }\n .d-print-inline {\n display: inline !important;\n }\n .d-print-inline-block {\n display: inline-block !important;\n }\n .d-print-block {\n display: block !important;\n }\n .d-print-table {\n display: table !important;\n }\n .d-print-table-row {\n display: table-row !important;\n }\n .d-print-table-cell {\n display: table-cell !important;\n }\n .d-print-flex {\n display: flex !important;\n }\n .d-print-inline-flex {\n display: inline-flex !important;\n }\n}\n\n.embed-responsive {\n position: relative;\n display: block;\n width: 100%;\n padding: 0;\n overflow: hidden;\n}\n\n.embed-responsive::before {\n display: block;\n content: \"\";\n}\n\n.embed-responsive .embed-responsive-item,\n.embed-responsive iframe,\n.embed-responsive embed,\n.embed-responsive object,\n.embed-responsive video {\n position: absolute;\n top: 0;\n bottom: 0;\n left: 0;\n width: 100%;\n height: 100%;\n border: 0;\n}\n\n.embed-responsive-21by9::before {\n padding-top: 42.857143%;\n}\n\n.embed-responsive-16by9::before {\n padding-top: 56.25%;\n}\n\n.embed-responsive-4by3::before {\n padding-top: 75%;\n}\n\n.embed-responsive-1by1::before {\n padding-top: 100%;\n}\n\n.flex-row {\n flex-direction: row !important;\n}\n\n.flex-column {\n flex-direction: column !important;\n}\n\n.flex-row-reverse {\n flex-direction: row-reverse !important;\n}\n\n.flex-column-reverse {\n flex-direction: column-reverse !important;\n}\n\n.flex-wrap {\n flex-wrap: wrap !important;\n}\n\n.flex-nowrap {\n flex-wrap: nowrap !important;\n}\n\n.flex-wrap-reverse {\n flex-wrap: wrap-reverse !important;\n}\n\n.flex-fill {\n flex: 1 1 auto !important;\n}\n\n.flex-grow-0 {\n flex-grow: 0 !important;\n}\n\n.flex-grow-1 {\n flex-grow: 1 !important;\n}\n\n.flex-shrink-0 {\n flex-shrink: 0 !important;\n}\n\n.flex-shrink-1 {\n flex-shrink: 1 !important;\n}\n\n.justify-content-start {\n justify-content: flex-start !important;\n}\n\n.justify-content-end {\n justify-content: flex-end !important;\n}\n\n.justify-content-center {\n justify-content: center !important;\n}\n\n.justify-content-between {\n justify-content: space-between !important;\n}\n\n.justify-content-around {\n justify-content: space-around !important;\n}\n\n.align-items-start {\n align-items: flex-start !important;\n}\n\n.align-items-end {\n align-items: flex-end !important;\n}\n\n.align-items-center {\n align-items: center !important;\n}\n\n.align-items-baseline {\n align-items: baseline !important;\n}\n\n.align-items-stretch {\n align-items: stretch !important;\n}\n\n.align-content-start {\n align-content: flex-start !important;\n}\n\n.align-content-end {\n align-content: flex-end !important;\n}\n\n.align-content-center {\n align-content: center !important;\n}\n\n.align-content-between {\n align-content: space-between !important;\n}\n\n.align-content-around {\n align-content: space-around !important;\n}\n\n.align-content-stretch {\n align-content: stretch !important;\n}\n\n.align-self-auto {\n align-self: auto !important;\n}\n\n.align-self-start {\n align-self: flex-start !important;\n}\n\n.align-self-end {\n align-self: flex-end !important;\n}\n\n.align-self-center {\n align-self: center !important;\n}\n\n.align-self-baseline {\n align-self: baseline !important;\n}\n\n.align-self-stretch {\n align-self: stretch !important;\n}\n\n@media (min-width: 576px) {\n .flex-sm-row {\n flex-direction: row !important;\n }\n .flex-sm-column {\n flex-direction: column !important;\n }\n .flex-sm-row-reverse {\n flex-direction: row-reverse !important;\n }\n .flex-sm-column-reverse {\n flex-direction: column-reverse !important;\n }\n .flex-sm-wrap {\n flex-wrap: wrap !important;\n }\n .flex-sm-nowrap {\n flex-wrap: nowrap !important;\n }\n .flex-sm-wrap-reverse {\n flex-wrap: wrap-reverse !important;\n }\n .flex-sm-fill {\n flex: 1 1 auto !important;\n }\n .flex-sm-grow-0 {\n flex-grow: 0 !important;\n }\n .flex-sm-grow-1 {\n flex-grow: 1 !important;\n }\n .flex-sm-shrink-0 {\n flex-shrink: 0 !important;\n }\n .flex-sm-shrink-1 {\n flex-shrink: 1 !important;\n }\n .justify-content-sm-start {\n justify-content: flex-start !important;\n }\n .justify-content-sm-end {\n justify-content: flex-end !important;\n }\n .justify-content-sm-center {\n justify-content: center !important;\n }\n .justify-content-sm-between {\n justify-content: space-between !important;\n }\n .justify-content-sm-around {\n justify-content: space-around !important;\n }\n .align-items-sm-start {\n align-items: flex-start !important;\n }\n .align-items-sm-end {\n align-items: flex-end !important;\n }\n .align-items-sm-center {\n align-items: center !important;\n }\n .align-items-sm-baseline {\n align-items: baseline !important;\n }\n .align-items-sm-stretch {\n align-items: stretch !important;\n }\n .align-content-sm-start {\n align-content: flex-start !important;\n }\n .align-content-sm-end {\n align-content: flex-end !important;\n }\n .align-content-sm-center {\n align-content: center !important;\n }\n .align-content-sm-between {\n align-content: space-between !important;\n }\n .align-content-sm-around {\n align-content: space-around !important;\n }\n .align-content-sm-stretch {\n align-content: stretch !important;\n }\n .align-self-sm-auto {\n align-self: auto !important;\n }\n .align-self-sm-start {\n align-self: flex-start !important;\n }\n .align-self-sm-end {\n align-self: flex-end !important;\n }\n .align-self-sm-center {\n align-self: center !important;\n }\n .align-self-sm-baseline {\n align-self: baseline !important;\n }\n .align-self-sm-stretch {\n align-self: stretch !important;\n }\n}\n\n@media (min-width: 768px) {\n .flex-md-row {\n flex-direction: row !important;\n }\n .flex-md-column {\n flex-direction: column !important;\n }\n .flex-md-row-reverse {\n flex-direction: row-reverse !important;\n }\n .flex-md-column-reverse {\n flex-direction: column-reverse !important;\n }\n .flex-md-wrap {\n flex-wrap: wrap !important;\n }\n .flex-md-nowrap {\n flex-wrap: nowrap !important;\n }\n .flex-md-wrap-reverse {\n flex-wrap: wrap-reverse !important;\n }\n .flex-md-fill {\n flex: 1 1 auto !important;\n }\n .flex-md-grow-0 {\n flex-grow: 0 !important;\n }\n .flex-md-grow-1 {\n flex-grow: 1 !important;\n }\n .flex-md-shrink-0 {\n flex-shrink: 0 !important;\n }\n .flex-md-shrink-1 {\n flex-shrink: 1 !important;\n }\n .justify-content-md-start {\n justify-content: flex-start !important;\n }\n .justify-content-md-end {\n justify-content: flex-end !important;\n }\n .justify-content-md-center {\n justify-content: center !important;\n }\n .justify-content-md-between {\n justify-content: space-between !important;\n }\n .justify-content-md-around {\n justify-content: space-around !important;\n }\n .align-items-md-start {\n align-items: flex-start !important;\n }\n .align-items-md-end {\n align-items: flex-end !important;\n }\n .align-items-md-center {\n align-items: center !important;\n }\n .align-items-md-baseline {\n align-items: baseline !important;\n }\n .align-items-md-stretch {\n align-items: stretch !important;\n }\n .align-content-md-start {\n align-content: flex-start !important;\n }\n .align-content-md-end {\n align-content: flex-end !important;\n }\n .align-content-md-center {\n align-content: center !important;\n }\n .align-content-md-between {\n align-content: space-between !important;\n }\n .align-content-md-around {\n align-content: space-around !important;\n }\n .align-content-md-stretch {\n align-content: stretch !important;\n }\n .align-self-md-auto {\n align-self: auto !important;\n }\n .align-self-md-start {\n align-self: flex-start !important;\n }\n .align-self-md-end {\n align-self: flex-end !important;\n }\n .align-self-md-center {\n align-self: center !important;\n }\n .align-self-md-baseline {\n align-self: baseline !important;\n }\n .align-self-md-stretch {\n align-self: stretch !important;\n }\n}\n\n@media (min-width: 992px) {\n .flex-lg-row {\n flex-direction: row !important;\n }\n .flex-lg-column {\n flex-direction: column !important;\n }\n .flex-lg-row-reverse {\n flex-direction: row-reverse !important;\n }\n .flex-lg-column-reverse {\n flex-direction: column-reverse !important;\n }\n .flex-lg-wrap {\n flex-wrap: wrap !important;\n }\n .flex-lg-nowrap {\n flex-wrap: nowrap !important;\n }\n .flex-lg-wrap-reverse {\n flex-wrap: wrap-reverse !important;\n }\n .flex-lg-fill {\n flex: 1 1 auto !important;\n }\n .flex-lg-grow-0 {\n flex-grow: 0 !important;\n }\n .flex-lg-grow-1 {\n flex-grow: 1 !important;\n }\n .flex-lg-shrink-0 {\n flex-shrink: 0 !important;\n }\n .flex-lg-shrink-1 {\n flex-shrink: 1 !important;\n }\n .justify-content-lg-start {\n justify-content: flex-start !important;\n }\n .justify-content-lg-end {\n justify-content: flex-end !important;\n }\n .justify-content-lg-center {\n justify-content: center !important;\n }\n .justify-content-lg-between {\n justify-content: space-between !important;\n }\n .justify-content-lg-around {\n justify-content: space-around !important;\n }\n .align-items-lg-start {\n align-items: flex-start !important;\n }\n .align-items-lg-end {\n align-items: flex-end !important;\n }\n .align-items-lg-center {\n align-items: center !important;\n }\n .align-items-lg-baseline {\n align-items: baseline !important;\n }\n .align-items-lg-stretch {\n align-items: stretch !important;\n }\n .align-content-lg-start {\n align-content: flex-start !important;\n }\n .align-content-lg-end {\n align-content: flex-end !important;\n }\n .align-content-lg-center {\n align-content: center !important;\n }\n .align-content-lg-between {\n align-content: space-between !important;\n }\n .align-content-lg-around {\n align-content: space-around !important;\n }\n .align-content-lg-stretch {\n align-content: stretch !important;\n }\n .align-self-lg-auto {\n align-self: auto !important;\n }\n .align-self-lg-start {\n align-self: flex-start !important;\n }\n .align-self-lg-end {\n align-self: flex-end !important;\n }\n .align-self-lg-center {\n align-self: center !important;\n }\n .align-self-lg-baseline {\n align-self: baseline !important;\n }\n .align-self-lg-stretch {\n align-self: stretch !important;\n }\n}\n\n@media (min-width: 1200px) {\n .flex-xl-row {\n flex-direction: row !important;\n }\n .flex-xl-column {\n flex-direction: column !important;\n }\n .flex-xl-row-reverse {\n flex-direction: row-reverse !important;\n }\n .flex-xl-column-reverse {\n flex-direction: column-reverse !important;\n }\n .flex-xl-wrap {\n flex-wrap: wrap !important;\n }\n .flex-xl-nowrap {\n flex-wrap: nowrap !important;\n }\n .flex-xl-wrap-reverse {\n flex-wrap: wrap-reverse !important;\n }\n .flex-xl-fill {\n flex: 1 1 auto !important;\n }\n .flex-xl-grow-0 {\n flex-grow: 0 !important;\n }\n .flex-xl-grow-1 {\n flex-grow: 1 !important;\n }\n .flex-xl-shrink-0 {\n flex-shrink: 0 !important;\n }\n .flex-xl-shrink-1 {\n flex-shrink: 1 !important;\n }\n .justify-content-xl-start {\n justify-content: flex-start !important;\n }\n .justify-content-xl-end {\n justify-content: flex-end !important;\n }\n .justify-content-xl-center {\n justify-content: center !important;\n }\n .justify-content-xl-between {\n justify-content: space-between !important;\n }\n .justify-content-xl-around {\n justify-content: space-around !important;\n }\n .align-items-xl-start {\n align-items: flex-start !important;\n }\n .align-items-xl-end {\n align-items: flex-end !important;\n }\n .align-items-xl-center {\n align-items: center !important;\n }\n .align-items-xl-baseline {\n align-items: baseline !important;\n }\n .align-items-xl-stretch {\n align-items: stretch !important;\n }\n .align-content-xl-start {\n align-content: flex-start !important;\n }\n .align-content-xl-end {\n align-content: flex-end !important;\n }\n .align-content-xl-center {\n align-content: center !important;\n }\n .align-content-xl-between {\n align-content: space-between !important;\n }\n .align-content-xl-around {\n align-content: space-around !important;\n }\n .align-content-xl-stretch {\n align-content: stretch !important;\n }\n .align-self-xl-auto {\n align-self: auto !important;\n }\n .align-self-xl-start {\n align-self: flex-start !important;\n }\n .align-self-xl-end {\n align-self: flex-end !important;\n }\n .align-self-xl-center {\n align-self: center !important;\n }\n .align-self-xl-baseline {\n align-self: baseline !important;\n }\n .align-self-xl-stretch {\n align-self: stretch !important;\n }\n}\n\n.float-left {\n float: left !important;\n}\n\n.float-right {\n float: right !important;\n}\n\n.float-none {\n float: none !important;\n}\n\n@media (min-width: 576px) {\n .float-sm-left {\n float: left !important;\n }\n .float-sm-right {\n float: right !important;\n }\n .float-sm-none {\n float: none !important;\n }\n}\n\n@media (min-width: 768px) {\n .float-md-left {\n float: left !important;\n }\n .float-md-right {\n float: right !important;\n }\n .float-md-none {\n float: none !important;\n }\n}\n\n@media (min-width: 992px) {\n .float-lg-left {\n float: left !important;\n }\n .float-lg-right {\n float: right !important;\n }\n .float-lg-none {\n float: none !important;\n }\n}\n\n@media (min-width: 1200px) {\n .float-xl-left {\n float: left !important;\n }\n .float-xl-right {\n float: right !important;\n }\n .float-xl-none {\n float: none !important;\n }\n}\n\n.user-select-all {\n user-select: all !important;\n}\n\n.user-select-auto {\n user-select: auto !important;\n}\n\n.user-select-none {\n user-select: none !important;\n}\n\n.overflow-auto {\n overflow: auto !important;\n}\n\n.overflow-hidden {\n overflow: hidden !important;\n}\n\n.position-static {\n position: static !important;\n}\n\n.position-relative {\n position: relative !important;\n}\n\n.position-absolute {\n position: absolute !important;\n}\n\n.position-fixed {\n position: fixed !important;\n}\n\n.position-sticky {\n position: sticky !important;\n}\n\n.fixed-top {\n position: fixed;\n top: 0;\n right: 0;\n left: 0;\n z-index: 1030;\n}\n\n.fixed-bottom {\n position: fixed;\n right: 0;\n bottom: 0;\n left: 0;\n z-index: 1030;\n}\n\n@supports (position: sticky) {\n .sticky-top {\n position: sticky;\n top: 0;\n z-index: 1020;\n }\n}\n\n.sr-only {\n position: absolute;\n width: 1px;\n height: 1px;\n padding: 0;\n margin: -1px;\n overflow: hidden;\n clip: rect(0, 0, 0, 0);\n white-space: nowrap;\n border: 0;\n}\n\n.sr-only-focusable:active, .sr-only-focusable:focus {\n position: static;\n width: auto;\n height: auto;\n overflow: visible;\n clip: auto;\n white-space: normal;\n}\n\n.shadow-sm {\n box-shadow: 0 0.125rem 0.25rem rgba(0, 0, 0, 0.075) !important;\n}\n\n.shadow {\n box-shadow: 0 0.5rem 1rem rgba(0, 0, 0, 0.15) !important;\n}\n\n.shadow-lg {\n box-shadow: 0 1rem 3rem rgba(0, 0, 0, 0.175) !important;\n}\n\n.shadow-none {\n box-shadow: none !important;\n}\n\n.w-25 {\n width: 25% !important;\n}\n\n.w-50 {\n width: 50% !important;\n}\n\n.w-75 {\n width: 75% !important;\n}\n\n.w-100 {\n width: 100% !important;\n}\n\n.w-auto {\n width: auto !important;\n}\n\n.h-25 {\n height: 25% !important;\n}\n\n.h-50 {\n height: 50% !important;\n}\n\n.h-75 {\n height: 75% !important;\n}\n\n.h-100 {\n height: 100% !important;\n}\n\n.h-auto {\n height: auto !important;\n}\n\n.mw-100 {\n max-width: 100% !important;\n}\n\n.mh-100 {\n max-height: 100% !important;\n}\n\n.min-vw-100 {\n min-width: 100vw !important;\n}\n\n.min-vh-100 {\n min-height: 100vh !important;\n}\n\n.vw-100 {\n width: 100vw !important;\n}\n\n.vh-100 {\n height: 100vh !important;\n}\n\n.m-0 {\n margin: 0 !important;\n}\n\n.mt-0,\n.my-0 {\n margin-top: 0 !important;\n}\n\n.mr-0,\n.mx-0 {\n margin-right: 0 !important;\n}\n\n.mb-0,\n.my-0 {\n margin-bottom: 0 !important;\n}\n\n.ml-0,\n.mx-0 {\n margin-left: 0 !important;\n}\n\n.m-1 {\n margin: 0.25rem !important;\n}\n\n.mt-1,\n.my-1 {\n margin-top: 0.25rem !important;\n}\n\n.mr-1,\n.mx-1 {\n margin-right: 0.25rem !important;\n}\n\n.mb-1,\n.my-1 {\n margin-bottom: 0.25rem !important;\n}\n\n.ml-1,\n.mx-1 {\n margin-left: 0.25rem !important;\n}\n\n.m-2 {\n margin: 0.5rem !important;\n}\n\n.mt-2,\n.my-2 {\n margin-top: 0.5rem !important;\n}\n\n.mr-2,\n.mx-2 {\n margin-right: 0.5rem !important;\n}\n\n.mb-2,\n.my-2 {\n margin-bottom: 0.5rem !important;\n}\n\n.ml-2,\n.mx-2 {\n margin-left: 0.5rem !important;\n}\n\n.m-3 {\n margin: 1rem !important;\n}\n\n.mt-3,\n.my-3 {\n margin-top: 1rem !important;\n}\n\n.mr-3,\n.mx-3 {\n margin-right: 1rem !important;\n}\n\n.mb-3,\n.my-3 {\n margin-bottom: 1rem !important;\n}\n\n.ml-3,\n.mx-3 {\n margin-left: 1rem !important;\n}\n\n.m-4 {\n margin: 1.5rem !important;\n}\n\n.mt-4,\n.my-4 {\n margin-top: 1.5rem !important;\n}\n\n.mr-4,\n.mx-4 {\n margin-right: 1.5rem !important;\n}\n\n.mb-4,\n.my-4 {\n margin-bottom: 1.5rem !important;\n}\n\n.ml-4,\n.mx-4 {\n margin-left: 1.5rem !important;\n}\n\n.m-5 {\n margin: 3rem !important;\n}\n\n.mt-5,\n.my-5 {\n margin-top: 3rem !important;\n}\n\n.mr-5,\n.mx-5 {\n margin-right: 3rem !important;\n}\n\n.mb-5,\n.my-5 {\n margin-bottom: 3rem !important;\n}\n\n.ml-5,\n.mx-5 {\n margin-left: 3rem !important;\n}\n\n.p-0 {\n padding: 0 !important;\n}\n\n.pt-0,\n.py-0 {\n padding-top: 0 !important;\n}\n\n.pr-0,\n.px-0 {\n padding-right: 0 !important;\n}\n\n.pb-0,\n.py-0 {\n padding-bottom: 0 !important;\n}\n\n.pl-0,\n.px-0 {\n padding-left: 0 !important;\n}\n\n.p-1 {\n padding: 0.25rem !important;\n}\n\n.pt-1,\n.py-1 {\n padding-top: 0.25rem !important;\n}\n\n.pr-1,\n.px-1 {\n padding-right: 0.25rem !important;\n}\n\n.pb-1,\n.py-1 {\n padding-bottom: 0.25rem !important;\n}\n\n.pl-1,\n.px-1 {\n padding-left: 0.25rem !important;\n}\n\n.p-2 {\n padding: 0.5rem !important;\n}\n\n.pt-2,\n.py-2 {\n padding-top: 0.5rem !important;\n}\n\n.pr-2,\n.px-2 {\n padding-right: 0.5rem !important;\n}\n\n.pb-2,\n.py-2 {\n padding-bottom: 0.5rem !important;\n}\n\n.pl-2,\n.px-2 {\n padding-left: 0.5rem !important;\n}\n\n.p-3 {\n padding: 1rem !important;\n}\n\n.pt-3,\n.py-3 {\n padding-top: 1rem !important;\n}\n\n.pr-3,\n.px-3 {\n padding-right: 1rem !important;\n}\n\n.pb-3,\n.py-3 {\n padding-bottom: 1rem !important;\n}\n\n.pl-3,\n.px-3 {\n padding-left: 1rem !important;\n}\n\n.p-4 {\n padding: 1.5rem !important;\n}\n\n.pt-4,\n.py-4 {\n padding-top: 1.5rem !important;\n}\n\n.pr-4,\n.px-4 {\n padding-right: 1.5rem !important;\n}\n\n.pb-4,\n.py-4 {\n padding-bottom: 1.5rem !important;\n}\n\n.pl-4,\n.px-4 {\n padding-left: 1.5rem !important;\n}\n\n.p-5 {\n padding: 3rem !important;\n}\n\n.pt-5,\n.py-5 {\n padding-top: 3rem !important;\n}\n\n.pr-5,\n.px-5 {\n padding-right: 3rem !important;\n}\n\n.pb-5,\n.py-5 {\n padding-bottom: 3rem !important;\n}\n\n.pl-5,\n.px-5 {\n padding-left: 3rem !important;\n}\n\n.m-n1 {\n margin: -0.25rem !important;\n}\n\n.mt-n1,\n.my-n1 {\n margin-top: -0.25rem !important;\n}\n\n.mr-n1,\n.mx-n1 {\n margin-right: -0.25rem !important;\n}\n\n.mb-n1,\n.my-n1 {\n margin-bottom: -0.25rem !important;\n}\n\n.ml-n1,\n.mx-n1 {\n margin-left: -0.25rem !important;\n}\n\n.m-n2 {\n margin: -0.5rem !important;\n}\n\n.mt-n2,\n.my-n2 {\n margin-top: -0.5rem !important;\n}\n\n.mr-n2,\n.mx-n2 {\n margin-right: -0.5rem !important;\n}\n\n.mb-n2,\n.my-n2 {\n margin-bottom: -0.5rem !important;\n}\n\n.ml-n2,\n.mx-n2 {\n margin-left: -0.5rem !important;\n}\n\n.m-n3 {\n margin: -1rem !important;\n}\n\n.mt-n3,\n.my-n3 {\n margin-top: -1rem !important;\n}\n\n.mr-n3,\n.mx-n3 {\n margin-right: -1rem !important;\n}\n\n.mb-n3,\n.my-n3 {\n margin-bottom: -1rem !important;\n}\n\n.ml-n3,\n.mx-n3 {\n margin-left: -1rem !important;\n}\n\n.m-n4 {\n margin: -1.5rem !important;\n}\n\n.mt-n4,\n.my-n4 {\n margin-top: -1.5rem !important;\n}\n\n.mr-n4,\n.mx-n4 {\n margin-right: -1.5rem !important;\n}\n\n.mb-n4,\n.my-n4 {\n margin-bottom: -1.5rem !important;\n}\n\n.ml-n4,\n.mx-n4 {\n margin-left: -1.5rem !important;\n}\n\n.m-n5 {\n margin: -3rem !important;\n}\n\n.mt-n5,\n.my-n5 {\n margin-top: -3rem !important;\n}\n\n.mr-n5,\n.mx-n5 {\n margin-right: -3rem !important;\n}\n\n.mb-n5,\n.my-n5 {\n margin-bottom: -3rem !important;\n}\n\n.ml-n5,\n.mx-n5 {\n margin-left: -3rem !important;\n}\n\n.m-auto {\n margin: auto !important;\n}\n\n.mt-auto,\n.my-auto {\n margin-top: auto !important;\n}\n\n.mr-auto,\n.mx-auto {\n margin-right: auto !important;\n}\n\n.mb-auto,\n.my-auto {\n margin-bottom: auto !important;\n}\n\n.ml-auto,\n.mx-auto {\n margin-left: auto !important;\n}\n\n@media (min-width: 576px) {\n .m-sm-0 {\n margin: 0 !important;\n }\n .mt-sm-0,\n .my-sm-0 {\n margin-top: 0 !important;\n }\n .mr-sm-0,\n .mx-sm-0 {\n margin-right: 0 !important;\n }\n .mb-sm-0,\n .my-sm-0 {\n margin-bottom: 0 !important;\n }\n .ml-sm-0,\n .mx-sm-0 {\n margin-left: 0 !important;\n }\n .m-sm-1 {\n margin: 0.25rem !important;\n }\n .mt-sm-1,\n .my-sm-1 {\n margin-top: 0.25rem !important;\n }\n .mr-sm-1,\n .mx-sm-1 {\n margin-right: 0.25rem !important;\n }\n .mb-sm-1,\n .my-sm-1 {\n margin-bottom: 0.25rem !important;\n }\n .ml-sm-1,\n .mx-sm-1 {\n margin-left: 0.25rem !important;\n }\n .m-sm-2 {\n margin: 0.5rem !important;\n }\n .mt-sm-2,\n .my-sm-2 {\n margin-top: 0.5rem !important;\n }\n .mr-sm-2,\n .mx-sm-2 {\n margin-right: 0.5rem !important;\n }\n .mb-sm-2,\n .my-sm-2 {\n margin-bottom: 0.5rem !important;\n }\n .ml-sm-2,\n .mx-sm-2 {\n margin-left: 0.5rem !important;\n }\n .m-sm-3 {\n margin: 1rem !important;\n }\n .mt-sm-3,\n .my-sm-3 {\n margin-top: 1rem !important;\n }\n .mr-sm-3,\n .mx-sm-3 {\n margin-right: 1rem !important;\n }\n .mb-sm-3,\n .my-sm-3 {\n margin-bottom: 1rem !important;\n }\n .ml-sm-3,\n .mx-sm-3 {\n margin-left: 1rem !important;\n }\n .m-sm-4 {\n margin: 1.5rem !important;\n }\n .mt-sm-4,\n .my-sm-4 {\n margin-top: 1.5rem !important;\n }\n .mr-sm-4,\n .mx-sm-4 {\n margin-right: 1.5rem !important;\n }\n .mb-sm-4,\n .my-sm-4 {\n margin-bottom: 1.5rem !important;\n }\n .ml-sm-4,\n .mx-sm-4 {\n margin-left: 1.5rem !important;\n }\n .m-sm-5 {\n margin: 3rem !important;\n }\n .mt-sm-5,\n .my-sm-5 {\n margin-top: 3rem !important;\n }\n .mr-sm-5,\n .mx-sm-5 {\n margin-right: 3rem !important;\n }\n .mb-sm-5,\n .my-sm-5 {\n margin-bottom: 3rem !important;\n }\n .ml-sm-5,\n .mx-sm-5 {\n margin-left: 3rem !important;\n }\n .p-sm-0 {\n padding: 0 !important;\n }\n .pt-sm-0,\n .py-sm-0 {\n padding-top: 0 !important;\n }\n .pr-sm-0,\n .px-sm-0 {\n padding-right: 0 !important;\n }\n .pb-sm-0,\n .py-sm-0 {\n padding-bottom: 0 !important;\n }\n .pl-sm-0,\n .px-sm-0 {\n padding-left: 0 !important;\n }\n .p-sm-1 {\n padding: 0.25rem !important;\n }\n .pt-sm-1,\n .py-sm-1 {\n padding-top: 0.25rem !important;\n }\n .pr-sm-1,\n .px-sm-1 {\n padding-right: 0.25rem !important;\n }\n .pb-sm-1,\n .py-sm-1 {\n padding-bottom: 0.25rem !important;\n }\n .pl-sm-1,\n .px-sm-1 {\n padding-left: 0.25rem !important;\n }\n .p-sm-2 {\n padding: 0.5rem !important;\n }\n .pt-sm-2,\n .py-sm-2 {\n padding-top: 0.5rem !important;\n }\n .pr-sm-2,\n .px-sm-2 {\n padding-right: 0.5rem !important;\n }\n .pb-sm-2,\n .py-sm-2 {\n padding-bottom: 0.5rem !important;\n }\n .pl-sm-2,\n .px-sm-2 {\n padding-left: 0.5rem !important;\n }\n .p-sm-3 {\n padding: 1rem !important;\n }\n .pt-sm-3,\n .py-sm-3 {\n padding-top: 1rem !important;\n }\n .pr-sm-3,\n .px-sm-3 {\n padding-right: 1rem !important;\n }\n .pb-sm-3,\n .py-sm-3 {\n padding-bottom: 1rem !important;\n }\n .pl-sm-3,\n .px-sm-3 {\n padding-left: 1rem !important;\n }\n .p-sm-4 {\n padding: 1.5rem !important;\n }\n .pt-sm-4,\n .py-sm-4 {\n padding-top: 1.5rem !important;\n }\n .pr-sm-4,\n .px-sm-4 {\n padding-right: 1.5rem !important;\n }\n .pb-sm-4,\n .py-sm-4 {\n padding-bottom: 1.5rem !important;\n }\n .pl-sm-4,\n .px-sm-4 {\n padding-left: 1.5rem !important;\n }\n .p-sm-5 {\n padding: 3rem !important;\n }\n .pt-sm-5,\n .py-sm-5 {\n padding-top: 3rem !important;\n }\n .pr-sm-5,\n .px-sm-5 {\n padding-right: 3rem !important;\n }\n .pb-sm-5,\n .py-sm-5 {\n padding-bottom: 3rem !important;\n }\n .pl-sm-5,\n .px-sm-5 {\n padding-left: 3rem !important;\n }\n .m-sm-n1 {\n margin: -0.25rem !important;\n }\n .mt-sm-n1,\n .my-sm-n1 {\n margin-top: -0.25rem !important;\n }\n .mr-sm-n1,\n .mx-sm-n1 {\n margin-right: -0.25rem !important;\n }\n .mb-sm-n1,\n .my-sm-n1 {\n margin-bottom: -0.25rem !important;\n }\n .ml-sm-n1,\n .mx-sm-n1 {\n margin-left: -0.25rem !important;\n }\n .m-sm-n2 {\n margin: -0.5rem !important;\n }\n .mt-sm-n2,\n .my-sm-n2 {\n margin-top: -0.5rem !important;\n }\n .mr-sm-n2,\n .mx-sm-n2 {\n margin-right: -0.5rem !important;\n }\n .mb-sm-n2,\n .my-sm-n2 {\n margin-bottom: -0.5rem !important;\n }\n .ml-sm-n2,\n .mx-sm-n2 {\n margin-left: -0.5rem !important;\n }\n .m-sm-n3 {\n margin: -1rem !important;\n }\n .mt-sm-n3,\n .my-sm-n3 {\n margin-top: -1rem !important;\n }\n .mr-sm-n3,\n .mx-sm-n3 {\n margin-right: -1rem !important;\n }\n .mb-sm-n3,\n .my-sm-n3 {\n margin-bottom: -1rem !important;\n }\n .ml-sm-n3,\n .mx-sm-n3 {\n margin-left: -1rem !important;\n }\n .m-sm-n4 {\n margin: -1.5rem !important;\n }\n .mt-sm-n4,\n .my-sm-n4 {\n margin-top: -1.5rem !important;\n }\n .mr-sm-n4,\n .mx-sm-n4 {\n margin-right: -1.5rem !important;\n }\n .mb-sm-n4,\n .my-sm-n4 {\n margin-bottom: -1.5rem !important;\n }\n .ml-sm-n4,\n .mx-sm-n4 {\n margin-left: -1.5rem !important;\n }\n .m-sm-n5 {\n margin: -3rem !important;\n }\n .mt-sm-n5,\n .my-sm-n5 {\n margin-top: -3rem !important;\n }\n .mr-sm-n5,\n .mx-sm-n5 {\n margin-right: -3rem !important;\n }\n .mb-sm-n5,\n .my-sm-n5 {\n margin-bottom: -3rem !important;\n }\n .ml-sm-n5,\n .mx-sm-n5 {\n margin-left: -3rem !important;\n }\n .m-sm-auto {\n margin: auto !important;\n }\n .mt-sm-auto,\n .my-sm-auto {\n margin-top: auto !important;\n }\n .mr-sm-auto,\n .mx-sm-auto {\n margin-right: auto !important;\n }\n .mb-sm-auto,\n .my-sm-auto {\n margin-bottom: auto !important;\n }\n .ml-sm-auto,\n .mx-sm-auto {\n margin-left: auto !important;\n }\n}\n\n@media (min-width: 768px) {\n .m-md-0 {\n margin: 0 !important;\n }\n .mt-md-0,\n .my-md-0 {\n margin-top: 0 !important;\n }\n .mr-md-0,\n .mx-md-0 {\n margin-right: 0 !important;\n }\n .mb-md-0,\n .my-md-0 {\n margin-bottom: 0 !important;\n }\n .ml-md-0,\n .mx-md-0 {\n margin-left: 0 !important;\n }\n .m-md-1 {\n margin: 0.25rem !important;\n }\n .mt-md-1,\n .my-md-1 {\n margin-top: 0.25rem !important;\n }\n .mr-md-1,\n .mx-md-1 {\n margin-right: 0.25rem !important;\n }\n .mb-md-1,\n .my-md-1 {\n margin-bottom: 0.25rem !important;\n }\n .ml-md-1,\n .mx-md-1 {\n margin-left: 0.25rem !important;\n }\n .m-md-2 {\n margin: 0.5rem !important;\n }\n .mt-md-2,\n .my-md-2 {\n margin-top: 0.5rem !important;\n }\n .mr-md-2,\n .mx-md-2 {\n margin-right: 0.5rem !important;\n }\n .mb-md-2,\n .my-md-2 {\n margin-bottom: 0.5rem !important;\n }\n .ml-md-2,\n .mx-md-2 {\n margin-left: 0.5rem !important;\n }\n .m-md-3 {\n margin: 1rem !important;\n }\n .mt-md-3,\n .my-md-3 {\n margin-top: 1rem !important;\n }\n .mr-md-3,\n .mx-md-3 {\n margin-right: 1rem !important;\n }\n .mb-md-3,\n .my-md-3 {\n margin-bottom: 1rem !important;\n }\n .ml-md-3,\n .mx-md-3 {\n margin-left: 1rem !important;\n }\n .m-md-4 {\n margin: 1.5rem !important;\n }\n .mt-md-4,\n .my-md-4 {\n margin-top: 1.5rem !important;\n }\n .mr-md-4,\n .mx-md-4 {\n margin-right: 1.5rem !important;\n }\n .mb-md-4,\n .my-md-4 {\n margin-bottom: 1.5rem !important;\n }\n .ml-md-4,\n .mx-md-4 {\n margin-left: 1.5rem !important;\n }\n .m-md-5 {\n margin: 3rem !important;\n }\n .mt-md-5,\n .my-md-5 {\n margin-top: 3rem !important;\n }\n .mr-md-5,\n .mx-md-5 {\n margin-right: 3rem !important;\n }\n .mb-md-5,\n .my-md-5 {\n margin-bottom: 3rem !important;\n }\n .ml-md-5,\n .mx-md-5 {\n margin-left: 3rem !important;\n }\n .p-md-0 {\n padding: 0 !important;\n }\n .pt-md-0,\n .py-md-0 {\n padding-top: 0 !important;\n }\n .pr-md-0,\n .px-md-0 {\n padding-right: 0 !important;\n }\n .pb-md-0,\n .py-md-0 {\n padding-bottom: 0 !important;\n }\n .pl-md-0,\n .px-md-0 {\n padding-left: 0 !important;\n }\n .p-md-1 {\n padding: 0.25rem !important;\n }\n .pt-md-1,\n .py-md-1 {\n padding-top: 0.25rem !important;\n }\n .pr-md-1,\n .px-md-1 {\n padding-right: 0.25rem !important;\n }\n .pb-md-1,\n .py-md-1 {\n padding-bottom: 0.25rem !important;\n }\n .pl-md-1,\n .px-md-1 {\n padding-left: 0.25rem !important;\n }\n .p-md-2 {\n padding: 0.5rem !important;\n }\n .pt-md-2,\n .py-md-2 {\n padding-top: 0.5rem !important;\n }\n .pr-md-2,\n .px-md-2 {\n padding-right: 0.5rem !important;\n }\n .pb-md-2,\n .py-md-2 {\n padding-bottom: 0.5rem !important;\n }\n .pl-md-2,\n .px-md-2 {\n padding-left: 0.5rem !important;\n }\n .p-md-3 {\n padding: 1rem !important;\n }\n .pt-md-3,\n .py-md-3 {\n padding-top: 1rem !important;\n }\n .pr-md-3,\n .px-md-3 {\n padding-right: 1rem !important;\n }\n .pb-md-3,\n .py-md-3 {\n padding-bottom: 1rem !important;\n }\n .pl-md-3,\n .px-md-3 {\n padding-left: 1rem !important;\n }\n .p-md-4 {\n padding: 1.5rem !important;\n }\n .pt-md-4,\n .py-md-4 {\n padding-top: 1.5rem !important;\n }\n .pr-md-4,\n .px-md-4 {\n padding-right: 1.5rem !important;\n }\n .pb-md-4,\n .py-md-4 {\n padding-bottom: 1.5rem !important;\n }\n .pl-md-4,\n .px-md-4 {\n padding-left: 1.5rem !important;\n }\n .p-md-5 {\n padding: 3rem !important;\n }\n .pt-md-5,\n .py-md-5 {\n padding-top: 3rem !important;\n }\n .pr-md-5,\n .px-md-5 {\n padding-right: 3rem !important;\n }\n .pb-md-5,\n .py-md-5 {\n padding-bottom: 3rem !important;\n }\n .pl-md-5,\n .px-md-5 {\n padding-left: 3rem !important;\n }\n .m-md-n1 {\n margin: -0.25rem !important;\n }\n .mt-md-n1,\n .my-md-n1 {\n margin-top: -0.25rem !important;\n }\n .mr-md-n1,\n .mx-md-n1 {\n margin-right: -0.25rem !important;\n }\n .mb-md-n1,\n .my-md-n1 {\n margin-bottom: -0.25rem !important;\n }\n .ml-md-n1,\n .mx-md-n1 {\n margin-left: -0.25rem !important;\n }\n .m-md-n2 {\n margin: -0.5rem !important;\n }\n .mt-md-n2,\n .my-md-n2 {\n margin-top: -0.5rem !important;\n }\n .mr-md-n2,\n .mx-md-n2 {\n margin-right: -0.5rem !important;\n }\n .mb-md-n2,\n .my-md-n2 {\n margin-bottom: -0.5rem !important;\n }\n .ml-md-n2,\n .mx-md-n2 {\n margin-left: -0.5rem !important;\n }\n .m-md-n3 {\n margin: -1rem !important;\n }\n .mt-md-n3,\n .my-md-n3 {\n margin-top: -1rem !important;\n }\n .mr-md-n3,\n .mx-md-n3 {\n margin-right: -1rem !important;\n }\n .mb-md-n3,\n .my-md-n3 {\n margin-bottom: -1rem !important;\n }\n .ml-md-n3,\n .mx-md-n3 {\n margin-left: -1rem !important;\n }\n .m-md-n4 {\n margin: -1.5rem !important;\n }\n .mt-md-n4,\n .my-md-n4 {\n margin-top: -1.5rem !important;\n }\n .mr-md-n4,\n .mx-md-n4 {\n margin-right: -1.5rem !important;\n }\n .mb-md-n4,\n .my-md-n4 {\n margin-bottom: -1.5rem !important;\n }\n .ml-md-n4,\n .mx-md-n4 {\n margin-left: -1.5rem !important;\n }\n .m-md-n5 {\n margin: -3rem !important;\n }\n .mt-md-n5,\n .my-md-n5 {\n margin-top: -3rem !important;\n }\n .mr-md-n5,\n .mx-md-n5 {\n margin-right: -3rem !important;\n }\n .mb-md-n5,\n .my-md-n5 {\n margin-bottom: -3rem !important;\n }\n .ml-md-n5,\n .mx-md-n5 {\n margin-left: -3rem !important;\n }\n .m-md-auto {\n margin: auto !important;\n }\n .mt-md-auto,\n .my-md-auto {\n margin-top: auto !important;\n }\n .mr-md-auto,\n .mx-md-auto {\n margin-right: auto !important;\n }\n .mb-md-auto,\n .my-md-auto {\n margin-bottom: auto !important;\n }\n .ml-md-auto,\n .mx-md-auto {\n margin-left: auto !important;\n }\n}\n\n@media (min-width: 992px) {\n .m-lg-0 {\n margin: 0 !important;\n }\n .mt-lg-0,\n .my-lg-0 {\n margin-top: 0 !important;\n }\n .mr-lg-0,\n .mx-lg-0 {\n margin-right: 0 !important;\n }\n .mb-lg-0,\n .my-lg-0 {\n margin-bottom: 0 !important;\n }\n .ml-lg-0,\n .mx-lg-0 {\n margin-left: 0 !important;\n }\n .m-lg-1 {\n margin: 0.25rem !important;\n }\n .mt-lg-1,\n .my-lg-1 {\n margin-top: 0.25rem !important;\n }\n .mr-lg-1,\n .mx-lg-1 {\n margin-right: 0.25rem !important;\n }\n .mb-lg-1,\n .my-lg-1 {\n margin-bottom: 0.25rem !important;\n }\n .ml-lg-1,\n .mx-lg-1 {\n margin-left: 0.25rem !important;\n }\n .m-lg-2 {\n margin: 0.5rem !important;\n }\n .mt-lg-2,\n .my-lg-2 {\n margin-top: 0.5rem !important;\n }\n .mr-lg-2,\n .mx-lg-2 {\n margin-right: 0.5rem !important;\n }\n .mb-lg-2,\n .my-lg-2 {\n margin-bottom: 0.5rem !important;\n }\n .ml-lg-2,\n .mx-lg-2 {\n margin-left: 0.5rem !important;\n }\n .m-lg-3 {\n margin: 1rem !important;\n }\n .mt-lg-3,\n .my-lg-3 {\n margin-top: 1rem !important;\n }\n .mr-lg-3,\n .mx-lg-3 {\n margin-right: 1rem !important;\n }\n .mb-lg-3,\n .my-lg-3 {\n margin-bottom: 1rem !important;\n }\n .ml-lg-3,\n .mx-lg-3 {\n margin-left: 1rem !important;\n }\n .m-lg-4 {\n margin: 1.5rem !important;\n }\n .mt-lg-4,\n .my-lg-4 {\n margin-top: 1.5rem !important;\n }\n .mr-lg-4,\n .mx-lg-4 {\n margin-right: 1.5rem !important;\n }\n .mb-lg-4,\n .my-lg-4 {\n margin-bottom: 1.5rem !important;\n }\n .ml-lg-4,\n .mx-lg-4 {\n margin-left: 1.5rem !important;\n }\n .m-lg-5 {\n margin: 3rem !important;\n }\n .mt-lg-5,\n .my-lg-5 {\n margin-top: 3rem !important;\n }\n .mr-lg-5,\n .mx-lg-5 {\n margin-right: 3rem !important;\n }\n .mb-lg-5,\n .my-lg-5 {\n margin-bottom: 3rem !important;\n }\n .ml-lg-5,\n .mx-lg-5 {\n margin-left: 3rem !important;\n }\n .p-lg-0 {\n padding: 0 !important;\n }\n .pt-lg-0,\n .py-lg-0 {\n padding-top: 0 !important;\n }\n .pr-lg-0,\n .px-lg-0 {\n padding-right: 0 !important;\n }\n .pb-lg-0,\n .py-lg-0 {\n padding-bottom: 0 !important;\n }\n .pl-lg-0,\n .px-lg-0 {\n padding-left: 0 !important;\n }\n .p-lg-1 {\n padding: 0.25rem !important;\n }\n .pt-lg-1,\n .py-lg-1 {\n padding-top: 0.25rem !important;\n }\n .pr-lg-1,\n .px-lg-1 {\n padding-right: 0.25rem !important;\n }\n .pb-lg-1,\n .py-lg-1 {\n padding-bottom: 0.25rem !important;\n }\n .pl-lg-1,\n .px-lg-1 {\n padding-left: 0.25rem !important;\n }\n .p-lg-2 {\n padding: 0.5rem !important;\n }\n .pt-lg-2,\n .py-lg-2 {\n padding-top: 0.5rem !important;\n }\n .pr-lg-2,\n .px-lg-2 {\n padding-right: 0.5rem !important;\n }\n .pb-lg-2,\n .py-lg-2 {\n padding-bottom: 0.5rem !important;\n }\n .pl-lg-2,\n .px-lg-2 {\n padding-left: 0.5rem !important;\n }\n .p-lg-3 {\n padding: 1rem !important;\n }\n .pt-lg-3,\n .py-lg-3 {\n padding-top: 1rem !important;\n }\n .pr-lg-3,\n .px-lg-3 {\n padding-right: 1rem !important;\n }\n .pb-lg-3,\n .py-lg-3 {\n padding-bottom: 1rem !important;\n }\n .pl-lg-3,\n .px-lg-3 {\n padding-left: 1rem !important;\n }\n .p-lg-4 {\n padding: 1.5rem !important;\n }\n .pt-lg-4,\n .py-lg-4 {\n padding-top: 1.5rem !important;\n }\n .pr-lg-4,\n .px-lg-4 {\n padding-right: 1.5rem !important;\n }\n .pb-lg-4,\n .py-lg-4 {\n padding-bottom: 1.5rem !important;\n }\n .pl-lg-4,\n .px-lg-4 {\n padding-left: 1.5rem !important;\n }\n .p-lg-5 {\n padding: 3rem !important;\n }\n .pt-lg-5,\n .py-lg-5 {\n padding-top: 3rem !important;\n }\n .pr-lg-5,\n .px-lg-5 {\n padding-right: 3rem !important;\n }\n .pb-lg-5,\n .py-lg-5 {\n padding-bottom: 3rem !important;\n }\n .pl-lg-5,\n .px-lg-5 {\n padding-left: 3rem !important;\n }\n .m-lg-n1 {\n margin: -0.25rem !important;\n }\n .mt-lg-n1,\n .my-lg-n1 {\n margin-top: -0.25rem !important;\n }\n .mr-lg-n1,\n .mx-lg-n1 {\n margin-right: -0.25rem !important;\n }\n .mb-lg-n1,\n .my-lg-n1 {\n margin-bottom: -0.25rem !important;\n }\n .ml-lg-n1,\n .mx-lg-n1 {\n margin-left: -0.25rem !important;\n }\n .m-lg-n2 {\n margin: -0.5rem !important;\n }\n .mt-lg-n2,\n .my-lg-n2 {\n margin-top: -0.5rem !important;\n }\n .mr-lg-n2,\n .mx-lg-n2 {\n margin-right: -0.5rem !important;\n }\n .mb-lg-n2,\n .my-lg-n2 {\n margin-bottom: -0.5rem !important;\n }\n .ml-lg-n2,\n .mx-lg-n2 {\n margin-left: -0.5rem !important;\n }\n .m-lg-n3 {\n margin: -1rem !important;\n }\n .mt-lg-n3,\n .my-lg-n3 {\n margin-top: -1rem !important;\n }\n .mr-lg-n3,\n .mx-lg-n3 {\n margin-right: -1rem !important;\n }\n .mb-lg-n3,\n .my-lg-n3 {\n margin-bottom: -1rem !important;\n }\n .ml-lg-n3,\n .mx-lg-n3 {\n margin-left: -1rem !important;\n }\n .m-lg-n4 {\n margin: -1.5rem !important;\n }\n .mt-lg-n4,\n .my-lg-n4 {\n margin-top: -1.5rem !important;\n }\n .mr-lg-n4,\n .mx-lg-n4 {\n margin-right: -1.5rem !important;\n }\n .mb-lg-n4,\n .my-lg-n4 {\n margin-bottom: -1.5rem !important;\n }\n .ml-lg-n4,\n .mx-lg-n4 {\n margin-left: -1.5rem !important;\n }\n .m-lg-n5 {\n margin: -3rem !important;\n }\n .mt-lg-n5,\n .my-lg-n5 {\n margin-top: -3rem !important;\n }\n .mr-lg-n5,\n .mx-lg-n5 {\n margin-right: -3rem !important;\n }\n .mb-lg-n5,\n .my-lg-n5 {\n margin-bottom: -3rem !important;\n }\n .ml-lg-n5,\n .mx-lg-n5 {\n margin-left: -3rem !important;\n }\n .m-lg-auto {\n margin: auto !important;\n }\n .mt-lg-auto,\n .my-lg-auto {\n margin-top: auto !important;\n }\n .mr-lg-auto,\n .mx-lg-auto {\n margin-right: auto !important;\n }\n .mb-lg-auto,\n .my-lg-auto {\n margin-bottom: auto !important;\n }\n .ml-lg-auto,\n .mx-lg-auto {\n margin-left: auto !important;\n }\n}\n\n@media (min-width: 1200px) {\n .m-xl-0 {\n margin: 0 !important;\n }\n .mt-xl-0,\n .my-xl-0 {\n margin-top: 0 !important;\n }\n .mr-xl-0,\n .mx-xl-0 {\n margin-right: 0 !important;\n }\n .mb-xl-0,\n .my-xl-0 {\n margin-bottom: 0 !important;\n }\n .ml-xl-0,\n .mx-xl-0 {\n margin-left: 0 !important;\n }\n .m-xl-1 {\n margin: 0.25rem !important;\n }\n .mt-xl-1,\n .my-xl-1 {\n margin-top: 0.25rem !important;\n }\n .mr-xl-1,\n .mx-xl-1 {\n margin-right: 0.25rem !important;\n }\n .mb-xl-1,\n .my-xl-1 {\n margin-bottom: 0.25rem !important;\n }\n .ml-xl-1,\n .mx-xl-1 {\n margin-left: 0.25rem !important;\n }\n .m-xl-2 {\n margin: 0.5rem !important;\n }\n .mt-xl-2,\n .my-xl-2 {\n margin-top: 0.5rem !important;\n }\n .mr-xl-2,\n .mx-xl-2 {\n margin-right: 0.5rem !important;\n }\n .mb-xl-2,\n .my-xl-2 {\n margin-bottom: 0.5rem !important;\n }\n .ml-xl-2,\n .mx-xl-2 {\n margin-left: 0.5rem !important;\n }\n .m-xl-3 {\n margin: 1rem !important;\n }\n .mt-xl-3,\n .my-xl-3 {\n margin-top: 1rem !important;\n }\n .mr-xl-3,\n .mx-xl-3 {\n margin-right: 1rem !important;\n }\n .mb-xl-3,\n .my-xl-3 {\n margin-bottom: 1rem !important;\n }\n .ml-xl-3,\n .mx-xl-3 {\n margin-left: 1rem !important;\n }\n .m-xl-4 {\n margin: 1.5rem !important;\n }\n .mt-xl-4,\n .my-xl-4 {\n margin-top: 1.5rem !important;\n }\n .mr-xl-4,\n .mx-xl-4 {\n margin-right: 1.5rem !important;\n }\n .mb-xl-4,\n .my-xl-4 {\n margin-bottom: 1.5rem !important;\n }\n .ml-xl-4,\n .mx-xl-4 {\n margin-left: 1.5rem !important;\n }\n .m-xl-5 {\n margin: 3rem !important;\n }\n .mt-xl-5,\n .my-xl-5 {\n margin-top: 3rem !important;\n }\n .mr-xl-5,\n .mx-xl-5 {\n margin-right: 3rem !important;\n }\n .mb-xl-5,\n .my-xl-5 {\n margin-bottom: 3rem !important;\n }\n .ml-xl-5,\n .mx-xl-5 {\n margin-left: 3rem !important;\n }\n .p-xl-0 {\n padding: 0 !important;\n }\n .pt-xl-0,\n .py-xl-0 {\n padding-top: 0 !important;\n }\n .pr-xl-0,\n .px-xl-0 {\n padding-right: 0 !important;\n }\n .pb-xl-0,\n .py-xl-0 {\n padding-bottom: 0 !important;\n }\n .pl-xl-0,\n .px-xl-0 {\n padding-left: 0 !important;\n }\n .p-xl-1 {\n padding: 0.25rem !important;\n }\n .pt-xl-1,\n .py-xl-1 {\n padding-top: 0.25rem !important;\n }\n .pr-xl-1,\n .px-xl-1 {\n padding-right: 0.25rem !important;\n }\n .pb-xl-1,\n .py-xl-1 {\n padding-bottom: 0.25rem !important;\n }\n .pl-xl-1,\n .px-xl-1 {\n padding-left: 0.25rem !important;\n }\n .p-xl-2 {\n padding: 0.5rem !important;\n }\n .pt-xl-2,\n .py-xl-2 {\n padding-top: 0.5rem !important;\n }\n .pr-xl-2,\n .px-xl-2 {\n padding-right: 0.5rem !important;\n }\n .pb-xl-2,\n .py-xl-2 {\n padding-bottom: 0.5rem !important;\n }\n .pl-xl-2,\n .px-xl-2 {\n padding-left: 0.5rem !important;\n }\n .p-xl-3 {\n padding: 1rem !important;\n }\n .pt-xl-3,\n .py-xl-3 {\n padding-top: 1rem !important;\n }\n .pr-xl-3,\n .px-xl-3 {\n padding-right: 1rem !important;\n }\n .pb-xl-3,\n .py-xl-3 {\n padding-bottom: 1rem !important;\n }\n .pl-xl-3,\n .px-xl-3 {\n padding-left: 1rem !important;\n }\n .p-xl-4 {\n padding: 1.5rem !important;\n }\n .pt-xl-4,\n .py-xl-4 {\n padding-top: 1.5rem !important;\n }\n .pr-xl-4,\n .px-xl-4 {\n padding-right: 1.5rem !important;\n }\n .pb-xl-4,\n .py-xl-4 {\n padding-bottom: 1.5rem !important;\n }\n .pl-xl-4,\n .px-xl-4 {\n padding-left: 1.5rem !important;\n }\n .p-xl-5 {\n padding: 3rem !important;\n }\n .pt-xl-5,\n .py-xl-5 {\n padding-top: 3rem !important;\n }\n .pr-xl-5,\n .px-xl-5 {\n padding-right: 3rem !important;\n }\n .pb-xl-5,\n .py-xl-5 {\n padding-bottom: 3rem !important;\n }\n .pl-xl-5,\n .px-xl-5 {\n padding-left: 3rem !important;\n }\n .m-xl-n1 {\n margin: -0.25rem !important;\n }\n .mt-xl-n1,\n .my-xl-n1 {\n margin-top: -0.25rem !important;\n }\n .mr-xl-n1,\n .mx-xl-n1 {\n margin-right: -0.25rem !important;\n }\n .mb-xl-n1,\n .my-xl-n1 {\n margin-bottom: -0.25rem !important;\n }\n .ml-xl-n1,\n .mx-xl-n1 {\n margin-left: -0.25rem !important;\n }\n .m-xl-n2 {\n margin: -0.5rem !important;\n }\n .mt-xl-n2,\n .my-xl-n2 {\n margin-top: -0.5rem !important;\n }\n .mr-xl-n2,\n .mx-xl-n2 {\n margin-right: -0.5rem !important;\n }\n .mb-xl-n2,\n .my-xl-n2 {\n margin-bottom: -0.5rem !important;\n }\n .ml-xl-n2,\n .mx-xl-n2 {\n margin-left: -0.5rem !important;\n }\n .m-xl-n3 {\n margin: -1rem !important;\n }\n .mt-xl-n3,\n .my-xl-n3 {\n margin-top: -1rem !important;\n }\n .mr-xl-n3,\n .mx-xl-n3 {\n margin-right: -1rem !important;\n }\n .mb-xl-n3,\n .my-xl-n3 {\n margin-bottom: -1rem !important;\n }\n .ml-xl-n3,\n .mx-xl-n3 {\n margin-left: -1rem !important;\n }\n .m-xl-n4 {\n margin: -1.5rem !important;\n }\n .mt-xl-n4,\n .my-xl-n4 {\n margin-top: -1.5rem !important;\n }\n .mr-xl-n4,\n .mx-xl-n4 {\n margin-right: -1.5rem !important;\n }\n .mb-xl-n4,\n .my-xl-n4 {\n margin-bottom: -1.5rem !important;\n }\n .ml-xl-n4,\n .mx-xl-n4 {\n margin-left: -1.5rem !important;\n }\n .m-xl-n5 {\n margin: -3rem !important;\n }\n .mt-xl-n5,\n .my-xl-n5 {\n margin-top: -3rem !important;\n }\n .mr-xl-n5,\n .mx-xl-n5 {\n margin-right: -3rem !important;\n }\n .mb-xl-n5,\n .my-xl-n5 {\n margin-bottom: -3rem !important;\n }\n .ml-xl-n5,\n .mx-xl-n5 {\n margin-left: -3rem !important;\n }\n .m-xl-auto {\n margin: auto !important;\n }\n .mt-xl-auto,\n .my-xl-auto {\n margin-top: auto !important;\n }\n .mr-xl-auto,\n .mx-xl-auto {\n margin-right: auto !important;\n }\n .mb-xl-auto,\n .my-xl-auto {\n margin-bottom: auto !important;\n }\n .ml-xl-auto,\n .mx-xl-auto {\n margin-left: auto !important;\n }\n}\n\n.stretched-link::after {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n z-index: 1;\n pointer-events: auto;\n content: \"\";\n background-color: rgba(0, 0, 0, 0);\n}\n\n.text-monospace {\n font-family: SFMono-Regular, Menlo, Monaco, Consolas, \"Liberation Mono\", \"Courier New\", monospace !important;\n}\n\n.text-justify {\n text-align: justify !important;\n}\n\n.text-wrap {\n white-space: normal !important;\n}\n\n.text-nowrap {\n white-space: nowrap !important;\n}\n\n.text-truncate {\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n\n.text-left {\n text-align: left !important;\n}\n\n.text-right {\n text-align: right !important;\n}\n\n.text-center {\n text-align: center !important;\n}\n\n@media (min-width: 576px) {\n .text-sm-left {\n text-align: left !important;\n }\n .text-sm-right {\n text-align: right !important;\n }\n .text-sm-center {\n text-align: center !important;\n }\n}\n\n@media (min-width: 768px) {\n .text-md-left {\n text-align: left !important;\n }\n .text-md-right {\n text-align: right !important;\n }\n .text-md-center {\n text-align: center !important;\n }\n}\n\n@media (min-width: 992px) {\n .text-lg-left {\n text-align: left !important;\n }\n .text-lg-right {\n text-align: right !important;\n }\n .text-lg-center {\n text-align: center !important;\n }\n}\n\n@media (min-width: 1200px) {\n .text-xl-left {\n text-align: left !important;\n }\n .text-xl-right {\n text-align: right !important;\n }\n .text-xl-center {\n text-align: center !important;\n }\n}\n\n.text-lowercase {\n text-transform: lowercase !important;\n}\n\n.text-uppercase {\n text-transform: uppercase !important;\n}\n\n.text-capitalize {\n text-transform: capitalize !important;\n}\n\n.font-weight-light {\n font-weight: 300 !important;\n}\n\n.font-weight-lighter {\n font-weight: lighter !important;\n}\n\n.font-weight-normal {\n font-weight: 400 !important;\n}\n\n.font-weight-bold {\n font-weight: 700 !important;\n}\n\n.font-weight-bolder {\n font-weight: bolder !important;\n}\n\n.font-italic {\n font-style: italic !important;\n}\n\n.text-white {\n color: #fff !important;\n}\n\n.text-primary {\n color: #007bff !important;\n}\n\na.text-primary:hover, a.text-primary:focus {\n color: #0056b3 !important;\n}\n\n.text-secondary {\n color: #6c757d !important;\n}\n\na.text-secondary:hover, a.text-secondary:focus {\n color: #494f54 !important;\n}\n\n.text-success {\n color: #28a745 !important;\n}\n\na.text-success:hover, a.text-success:focus {\n color: #19692c !important;\n}\n\n.text-info {\n color: #17a2b8 !important;\n}\n\na.text-info:hover, a.text-info:focus {\n color: #0f6674 !important;\n}\n\n.text-warning {\n color: #ffc107 !important;\n}\n\na.text-warning:hover, a.text-warning:focus {\n color: #ba8b00 !important;\n}\n\n.text-danger {\n color: #dc3545 !important;\n}\n\na.text-danger:hover, a.text-danger:focus {\n color: #a71d2a !important;\n}\n\n.text-light {\n color: #f8f9fa !important;\n}\n\na.text-light:hover, a.text-light:focus {\n color: #cbd3da !important;\n}\n\n.text-dark {\n color: #343a40 !important;\n}\n\na.text-dark:hover, a.text-dark:focus {\n color: #121416 !important;\n}\n\n.text-body {\n color: #212529 !important;\n}\n\n.text-muted {\n color: #6c757d !important;\n}\n\n.text-black-50 {\n color: rgba(0, 0, 0, 0.5) !important;\n}\n\n.text-white-50 {\n color: rgba(255, 255, 255, 0.5) !important;\n}\n\n.text-hide {\n font: 0/0 a;\n color: transparent;\n text-shadow: none;\n background-color: transparent;\n border: 0;\n}\n\n.text-decoration-none {\n text-decoration: none !important;\n}\n\n.text-break {\n word-break: break-word !important;\n word-wrap: break-word !important;\n}\n\n.text-reset {\n color: inherit !important;\n}\n\n.visible {\n visibility: visible !important;\n}\n\n.invisible {\n visibility: hidden !important;\n}\n\n@media print {\n *,\n *::before,\n *::after {\n text-shadow: none !important;\n box-shadow: none !important;\n }\n a:not(.btn) {\n text-decoration: underline;\n }\n abbr[title]::after {\n content: \" (\" attr(title) \")\";\n }\n pre {\n white-space: pre-wrap !important;\n }\n pre,\n blockquote {\n border: 1px solid #adb5bd;\n page-break-inside: avoid;\n }\n thead {\n display: table-header-group;\n }\n tr,\n img {\n page-break-inside: avoid;\n }\n p,\n h2,\n h3 {\n orphans: 3;\n widows: 3;\n }\n h2,\n h3 {\n page-break-after: avoid;\n }\n @page {\n size: a3;\n }\n body {\n min-width: 992px !important;\n }\n .container {\n min-width: 992px !important;\n }\n .navbar {\n display: none;\n }\n .badge {\n border: 1px solid #000;\n }\n .table {\n border-collapse: collapse !important;\n }\n .table td,\n .table th {\n background-color: #fff !important;\n }\n .table-bordered th,\n .table-bordered td {\n border: 1px solid #dee2e6 !important;\n }\n .table-dark {\n color: inherit;\n }\n .table-dark th,\n .table-dark td,\n .table-dark thead th,\n .table-dark tbody + tbody {\n border-color: #dee2e6;\n }\n .table .thead-dark th {\n color: inherit;\n border-color: #dee2e6;\n }\n}\n\n/*# sourceMappingURL=bootstrap.css.map */","// Do not forget to update getting-started/theming.md!\n:root {\n // Custom variable values only support SassScript inside `#{}`.\n @each $color, $value in $colors {\n --#{$color}: #{$value};\n }\n\n @each $color, $value in $theme-colors {\n --#{$color}: #{$value};\n }\n\n @each $bp, $value in $grid-breakpoints {\n --breakpoint-#{$bp}: #{$value};\n }\n\n // Use `inspect` for lists so that quoted items keep the quotes.\n // See https://github.com/sass/sass/issues/2383#issuecomment-336349172\n --font-family-sans-serif: #{inspect($font-family-sans-serif)};\n --font-family-monospace: #{inspect($font-family-monospace)};\n}\n","// stylelint-disable at-rule-no-vendor-prefix, declaration-no-important, selector-no-qualifying-type, property-no-vendor-prefix\n\n// Reboot\n//\n// Normalization of HTML elements, manually forked from Normalize.css to remove\n// styles targeting irrelevant browsers while applying new styles.\n//\n// Normalize is licensed MIT. https://github.com/necolas/normalize.css\n\n\n// Document\n//\n// 1. Change from `box-sizing: content-box` so that `width` is not affected by `padding` or `border`.\n// 2. Change the default font family in all browsers.\n// 3. Correct the line height in all browsers.\n// 4. Prevent adjustments of font size after orientation changes in IE on Windows Phone and in iOS.\n// 5. Change the default tap highlight to be completely transparent in iOS.\n\n*,\n*::before,\n*::after {\n box-sizing: border-box; // 1\n}\n\nhtml {\n font-family: sans-serif; // 2\n line-height: 1.15; // 3\n -webkit-text-size-adjust: 100%; // 4\n -webkit-tap-highlight-color: rgba($black, 0); // 5\n}\n\n// Shim for \"new\" HTML5 structural elements to display correctly (IE10, older browsers)\n// TODO: remove in v5\n// stylelint-disable-next-line selector-list-comma-newline-after\narticle, aside, figcaption, figure, footer, header, hgroup, main, nav, section {\n display: block;\n}\n\n// Body\n//\n// 1. Remove the margin in all browsers.\n// 2. As a best practice, apply a default `background-color`.\n// 3. Set an explicit initial text-align value so that we can later use\n// the `inherit` value on things like `` elements.\n\nbody {\n margin: 0; // 1\n font-family: $font-family-base;\n @include font-size($font-size-base);\n font-weight: $font-weight-base;\n line-height: $line-height-base;\n color: $body-color;\n text-align: left; // 3\n background-color: $body-bg; // 2\n}\n\n// Future-proof rule: in browsers that support :focus-visible, suppress the focus outline\n// on elements that programmatically receive focus but wouldn't normally show a visible\n// focus outline. In general, this would mean that the outline is only applied if the\n// interaction that led to the element receiving programmatic focus was a keyboard interaction,\n// or the browser has somehow determined that the user is primarily a keyboard user and/or\n// wants focus outlines to always be presented.\n//\n// See https://developer.mozilla.org/en-US/docs/Web/CSS/:focus-visible\n// and https://developer.paciellogroup.com/blog/2018/03/focus-visible-and-backwards-compatibility/\n[tabindex=\"-1\"]:focus:not(:focus-visible) {\n outline: 0 !important;\n}\n\n\n// Content grouping\n//\n// 1. Add the correct box sizing in Firefox.\n// 2. Show the overflow in Edge and IE.\n\nhr {\n box-sizing: content-box; // 1\n height: 0; // 1\n overflow: visible; // 2\n}\n\n\n//\n// Typography\n//\n\n// Remove top margins from headings\n//\n// By default, `

              `-`

              ` all receive top and bottom margins. We nuke the top\n// margin for easier control within type scales as it avoids margin collapsing.\n// stylelint-disable-next-line selector-list-comma-newline-after\nh1, h2, h3, h4, h5, h6 {\n margin-top: 0;\n margin-bottom: $headings-margin-bottom;\n}\n\n// Reset margins on paragraphs\n//\n// Similarly, the top margin on `

              `s get reset. However, we also reset the\n// bottom margin to use `rem` units instead of `em`.\np {\n margin-top: 0;\n margin-bottom: $paragraph-margin-bottom;\n}\n\n// Abbreviations\n//\n// 1. Duplicate behavior to the data-* attribute for our tooltip plugin\n// 2. Add the correct text decoration in Chrome, Edge, IE, Opera, and Safari.\n// 3. Add explicit cursor to indicate changed behavior.\n// 4. Remove the bottom border in Firefox 39-.\n// 5. Prevent the text-decoration to be skipped.\n\nabbr[title],\nabbr[data-original-title] { // 1\n text-decoration: underline; // 2\n text-decoration: underline dotted; // 2\n cursor: help; // 3\n border-bottom: 0; // 4\n text-decoration-skip-ink: none; // 5\n}\n\naddress {\n margin-bottom: 1rem;\n font-style: normal;\n line-height: inherit;\n}\n\nol,\nul,\ndl {\n margin-top: 0;\n margin-bottom: 1rem;\n}\n\nol ol,\nul ul,\nol ul,\nul ol {\n margin-bottom: 0;\n}\n\ndt {\n font-weight: $dt-font-weight;\n}\n\ndd {\n margin-bottom: .5rem;\n margin-left: 0; // Undo browser default\n}\n\nblockquote {\n margin: 0 0 1rem;\n}\n\nb,\nstrong {\n font-weight: $font-weight-bolder; // Add the correct font weight in Chrome, Edge, and Safari\n}\n\nsmall {\n @include font-size(80%); // Add the correct font size in all browsers\n}\n\n//\n// Prevent `sub` and `sup` elements from affecting the line height in\n// all browsers.\n//\n\nsub,\nsup {\n position: relative;\n @include font-size(75%);\n line-height: 0;\n vertical-align: baseline;\n}\n\nsub { bottom: -.25em; }\nsup { top: -.5em; }\n\n\n//\n// Links\n//\n\na {\n color: $link-color;\n text-decoration: $link-decoration;\n background-color: transparent; // Remove the gray background on active links in IE 10.\n\n @include hover() {\n color: $link-hover-color;\n text-decoration: $link-hover-decoration;\n }\n}\n\n// And undo these styles for placeholder links/named anchors (without href).\n// It would be more straightforward to just use a[href] in previous block, but that\n// causes specificity issues in many other styles that are too complex to fix.\n// See https://github.com/twbs/bootstrap/issues/19402\n\na:not([href]):not([class]) {\n color: inherit;\n text-decoration: none;\n\n @include hover() {\n color: inherit;\n text-decoration: none;\n }\n}\n\n\n//\n// Code\n//\n\npre,\ncode,\nkbd,\nsamp {\n font-family: $font-family-monospace;\n @include font-size(1em); // Correct the odd `em` font sizing in all browsers.\n}\n\npre {\n // Remove browser default top margin\n margin-top: 0;\n // Reset browser default of `1em` to use `rem`s\n margin-bottom: 1rem;\n // Don't allow content to break outside\n overflow: auto;\n // Disable auto-hiding scrollbar in IE & legacy Edge to avoid overlap,\n // making it impossible to interact with the content\n -ms-overflow-style: scrollbar;\n}\n\n\n//\n// Figures\n//\n\nfigure {\n // Apply a consistent margin strategy (matches our type styles).\n margin: 0 0 1rem;\n}\n\n\n//\n// Images and content\n//\n\nimg {\n vertical-align: middle;\n border-style: none; // Remove the border on images inside links in IE 10-.\n}\n\nsvg {\n // Workaround for the SVG overflow bug in IE10/11 is still required.\n // See https://github.com/twbs/bootstrap/issues/26878\n overflow: hidden;\n vertical-align: middle;\n}\n\n\n//\n// Tables\n//\n\ntable {\n border-collapse: collapse; // Prevent double borders\n}\n\ncaption {\n padding-top: $table-cell-padding;\n padding-bottom: $table-cell-padding;\n color: $table-caption-color;\n text-align: left;\n caption-side: bottom;\n}\n\n// 1. Removes font-weight bold by inheriting\n// 2. Matches default `` alignment by inheriting `text-align`.\n// 3. Fix alignment for Safari\n\nth {\n font-weight: $table-th-font-weight; // 1\n text-align: inherit; // 2\n text-align: -webkit-match-parent; // 3\n}\n\n\n//\n// Forms\n//\n\nlabel {\n // Allow labels to use `margin` for spacing.\n display: inline-block;\n margin-bottom: $label-margin-bottom;\n}\n\n// Remove the default `border-radius` that macOS Chrome adds.\n//\n// Details at https://github.com/twbs/bootstrap/issues/24093\nbutton {\n // stylelint-disable-next-line property-disallowed-list\n border-radius: 0;\n}\n\n// Work around a Firefox/IE bug where the transparent `button` background\n// results in a loss of the default `button` focus styles.\n//\n// Credit: https://github.com/suitcss/base/\nbutton:focus {\n outline: 1px dotted;\n outline: 5px auto -webkit-focus-ring-color;\n}\n\ninput,\nbutton,\nselect,\noptgroup,\ntextarea {\n margin: 0; // Remove the margin in Firefox and Safari\n font-family: inherit;\n @include font-size(inherit);\n line-height: inherit;\n}\n\nbutton,\ninput {\n overflow: visible; // Show the overflow in Edge\n}\n\nbutton,\nselect {\n text-transform: none; // Remove the inheritance of text transform in Firefox\n}\n\n// Set the cursor for non-`