- From: <jos.deroo@agfa.com>
- Date: Fri, 22 Jan 2010 22:59:30 +0100
- To: connolly@w3.org
- Cc: Alexandre Bertails <bertails@w3.org>, Eric Prud'hommeaux <eric@w3.org>, public-cwm-talk@w3.org, public-cwm-talk-request@w3.org
- Message-ID: <OF328451C6.6378F869-ONC12576B3.0077E6E1-C12576B3.0078CDF1@agfa.com>
Please continue Dan :-) This is so nice and so leading to N3's full potential! It went very smooth to run sbt test [info] Building project RDF Semantics 0.1 against Scala 2.8.0.Beta1-RC5 [info] using TestingProject with sbt 0.6.10 and Scala 2.7.7 [info] [info] == compile == [info] Source analysis: 0 new/modified, 0 indirectly invalidated, 0 removed. [info] Compiling main sources... [info] Nothing to compile. [info] Post-analysis: 226 classes. [info] == compile == [info] [info] == copy-test-resources == [info] == copy-test-resources == [info] [info] == copy-resources == [info] == copy-resources == [info] [info] == test-compile == [info] Source analysis: 0 new/modified, 0 indirectly invalidated, 0 removed. [info] Compiling test sources... [info] Nothing to compile. [info] Post-analysis: 170 classes. [info] == test-compile == [info] [info] == test-start == [info] == test-start == [info] [info] == org.w3.swap.test.n3parsing == [info] + N3 Parsing.empty document parses to the true formula, (and): OK, passed 100 tests. [info] + N3 Parsing.simple statements of 3 URI ref terms work: OK, passed 100 tests. [info] + N3 Parsing.comments work like whitespace: OK, passed 100 tests. [info] + N3 Parsing.integer, string literals work as objects, subjects: OK, passed 100 tests. [info] + N3 Parsing.is/of inverts sense of properties: OK, passed 100 tests. [info] + N3 Parsing.empty prefix decl: OK, passed 100 tests. [info] + N3 Parsing.document with 2 statements works: OK, passed 100 tests. [info] == org.w3.swap.test.n3parsing == [info] [info] == org.w3.swap.SExpTest == [info] SExp [info] Test Starting: SExp should convert a simple s-exp to a string [info] Test Passed: SExp should convert a simple s-exp to a string [info] == org.w3.swap.SExpTest == [info] [info] == org.w3.swap.test.RDFSyntax == [info] triples as atomic formulas [info] Test Starting: triples as atomic formulas should convert RDF triple Atoms to strings reasonably [info] Test Passed: triples as atomic formulas should convert RDF triple Atoms to strings reasonably [info] Test Starting: triples as atomic formulas should convert to S-Expression reasonably [info] Test Passed: triples as atomic formulas should convert to S-Expression reasonably [info] graph building [info] Test Starting: graph building should make a graph of 2 triples [info] Test Passed: graph building should make a graph of 2 triples [info] Test Starting: graph building should convert to S-Expression reasonably [info] Test Passed: graph building should convert to S-Expression reasonably [info] Test Starting: graph building should handle a bit larger graph [info] Test Passed: graph building should handle a bit larger graph [info] == org.w3.swap.test.RDFSyntax == [info] [info] == org.w3.swap.test.strutil == [info] + String Utilities.escaping backslash: OK, passed 100 tests. [info] + String Utilities.quote distributes over +: OK, passed 100 tests. [info] + String Utilities.d(q(q(x))) == q(x): OK, passed 100 tests. [info] + String Utilities.dequote(quote(s)) == s for genQuotEsc: OK, passed 100 tests. [info] + String Utilities.dequote(quote(s)) == s for arbitrary s: OK, passed 100 tests. [info] == org.w3.swap.test.strutil == [info] [info] == org.w3.swap.test.numberLex == [info] + N3 tokenization.numerals tokenize correctly: OK, passed 100 tests. [info] + N3 tokenization.other tokens tokenize correctly: OK, passed 100 tests. [info] == org.w3.swap.test.numberLex == [info] [info] == org.w3.swap.test.ntp == [info] + NTriples parsing.gives well formed formula on good parse: OK, passed 100 tests. [info] == org.w3.swap.test.ntp == [info] [info] == org.w3.swap.test.NTriplesMisc == [info] NTriples blank nodes [info] Test Starting: NTriples blank nodes should match by name [info] Test Passed: NTriples blank nodes should match by name [info] Formula.variables() [info] Test Starting: Formula.variables() should expect caller to remove dups [info] Test Passed: Formula.variables() should expect caller to remove dups [info] NTriples parser [info] Test Starting: NTriples parser should grok simple n-triples [info] Test Passed: NTriples parser should grok simple n-triples [info] Test Starting: NTriples parser should have a decent API [info] Test Passed: NTriples parser should have a decent API [info] == org.w3.swap.test.NTriplesMisc == [info] [info] == org.w3.swap.test.RDFSemantics == [info] Unification [info] Semantics: Conjunction (aka merge) [info] Test Starting: Semantics: Conjunction (aka merge) should result in a conjuction of 3 atoms [info] Test Passed: Semantics: Conjunction (aka merge) should result in a conjuction of 3 atoms [info] Test Starting: Semantics: Conjunction (aka merge) should work on this formula [info] Test Passed: Semantics: Conjunction (aka merge) should work on this formula [info] Test Starting: Semantics: Conjunction (aka merge) should do renaming when necessary [info] Test Passed: Semantics: Conjunction (aka merge) should do renaming when necessary [info] Entailment [info] Test Starting: Entailment should handle X |= X for atomic, ground X [info] Test Passed: Entailment should handle X |= X for atomic, ground X [info] Test Starting: Entailment should handle A |= Ex x A/x [info] Test Passed: Entailment should handle A |= Ex x A/x [info] Test Starting: Entailment should *not* think that A |= B for distinct ground A, B [info] Test Passed: Entailment should *not* think that A |= B for distinct ground A, B [info] Test Starting: Entailment should handle A^B |= Ex v (A^B)/v [info] Test Passed: Entailment should handle A^B |= Ex v (A^B)/v [info] Test Starting: Entailment should *not* think that A^B |= Ex v (A^C)/v [info] Test Passed: Entailment should *not* think that A^B |= Ex v (A^C)/v [info] Test Starting: Entailment should handle 2 bindings for v1, 1 for v2 [info] Test Passed: Entailment should handle 2 bindings for v1, 1 for v2 [info] Test Starting: Entailment should not bind the same var to 2 terms [info] Test Passed: Entailment should not bind the same var to 2 terms [info] Test Starting: Entailment should handle variable loops, out-of-order triples [info] Test Passed: Entailment should handle variable loops, out-of-order triples [info] Test Starting: Entailment should notice one extra character [info] Test Passed: Entailment should notice one extra character [info] Test Starting: Entailment should not loop endlessly [info] Test Passed: Entailment should not loop endlessly [info] == org.w3.swap.test.RDFSemantics == [info] [info] == org.w3.swap.test.LogicSyntax == [info] logical formulas [info] Test Starting: logical formulas should represent formulas [info] Test Passed: logical formulas should represent formulas [info] Test Starting: logical formulas should find variables [info] Test Passed: logical formulas should find variables [info] == org.w3.swap.test.LogicSyntax == [info] [info] == org.w3.swap.test.ent == [info] + RDF 2004 Entailment.add() preserves well-formedness: OK, passed 100 tests. [info] + RDF 2004 Entailment.conjunction preserves well-formedness: OK, passed 100 tests. [info] + RDF 2004 Entailment.f ^ g |= f: OK, passed 100 tests. [info] + RDF 2004 Entailment.f ^ g |= g: OK, passed 100 tests. [info] + RDF 2004 Entailment.skolemize(f) |= f: OK, passed 100 tests. [info] + RDF 2004 Entailment.not f |= skolemize(f) when f has variables: OK, passed 100 tests. [info] ! RDF 2004 Entailment.entailment is transitive: Gave up after only 0 passed tests. 500 tests were discarded. [info] == org.w3.swap.test.ent == [info] [info] == org.w3.swap.test.URIPathTest == [info] Combining base URI with URI reference [info] Test Starting: Combining base URI with URI reference should handle .. [info] Test Passed: Combining base URI with URI reference should handle .. [info] Test Starting: Combining base URI with URI reference should handle the empty ref [info] Test Passed: Combining base URI with URI reference should handle the empty ref [info] Test Starting: Combining base URI with URI reference should handle data: as a base URI [info] Test Passed: Combining base URI with URI reference should handle data: as a base URI [info] == org.w3.swap.test.URIPathTest == [info] [info] == test-complete == [info] == test-complete == [info] [info] == test-finish == [info] Passed: : Total 50, Failed 0, Errors 0, Passed 49, Skipped 1 [info] [info] All tests PASSED. [info] == test-finish == [info] [info] == test-cleanup == [info] == test-cleanup == [info] [info] == test == [info] == test == [success] Successful. [info] [info] Total time: 5 s, completed Jan 22, 2010 10:53:25 PM [info] [info] Total session time: 5 s, completed Jan 22, 2010 10:53:25 PM [success] Build completed successfully. Kind regards, Jos De Roo | Agfa HealthCare Senior Researcher | HE/Advanced Clinical Applications Research T +32 3444 7618 http://www.agfa.com/w3c/jdroo/ Quadrat NV, Kortrijksesteenweg 157, 9830 Sint-Martens-Latem, Belgium http://www.agfa.com/healthcare Dan Connolly <connolly@w3.org> Sent by: public-cwm-talk-request@w3.org 01/19/2010 01:20 AM To public-cwm-talk@w3.org cc Alexandre Bertails <bertails@w3.org>, Eric Prud'hommeaux <eric@w3.org> Subject swap-scala -- an exploration of RDF and N3 in scala I had an idea about the semantics of N3 graph literals a couple weeks ago, and I wanted to explore it in scala. I ended up doing more work around the bottom of the stack... e.g. very careful n-triples parsing. I have basically run out of time to work on this for now. I wrote up the scala experience... Fun and Frustration with scala http://www.advogato.org/person/connolly/diary/71.html But I haven't written up the logic bits. I'm just sharing them in raw form here. I'm exploring code hosting options... DVCS makes that so much easier... http://bitbucket.org/DanC/swap-scala/ http://code.google.com/p/swap-scala/ 101:882f04140bf2 2010-01-18 RDFXMLParser now passes most interesting tests (except maybe xml:base) from the README... Goals * Implement N3Logic proof checking independent of cwm * Influence EricP's scala SQL/SPARQL integration work * Influence the Datagraph.org scala RDF work * Influence Sandro's RDF2 thinking * Influence Pat Hayes's RDF semantics advocacy around "named graphs" and such Testing Plan * standard RDF entailment tests, which need * RDF/XML parser (working well enough to do RDF (not RDFS) entailment tests) * n-triples parser (done) * RDF proof generator, or * N3 proof reader and use cwm to generate proofs * RDF proof checker (entailment method is done) Currently, we have an RDF entailment method, though some questions about variable handling remain. * standard RDF positive/negative syntax tests (done except xml:base; there are other missing features, but they can come another day) * Dave's turtle syntax tests (optional), which needs * turtle parser or perhaps just * N3 parser (working; feature complete for turtle high level structures, but not low-level details such as string escaping) * RDF entailment method * standard RDFS tests, which needs * RDF/XML parser * n-triples parser * RDFS rules in N3Rules * N3Rules proof generator, or * N3 proof reader * N3Rules proof checker * standard RIF BLD entailment tests (http://www.w3.org/TR/rif-test/), which needs * RIF BLD XML reader * N3 syntax tests (http://www.w3.org/2000/10/swap/test/n3parser.tests), (opt) which needs * N3 parser (working; not feature-complete) * some sort of N3Logic proof testing, which needs * N3Logic proof generator and/or N3 proof reader (and use cwm) * N3Logic proof checker -- Dan Connolly, W3C http://www.w3.org/People/Connolly/ gpg D3C2 887B 0F92 6005 C541 0875 0F91 96DE 6E52 C29E
Received on Friday, 22 January 2010 22:00:13 UTC