- From: Jos De Roo <josderoo@gmail.com>
- Date: Fri, 30 Nov 2018 16:27:25 +0100
- To: doerthe.arndt@ugent.be
- Cc: public-n3-dev@w3.org
- Message-ID: <CAJbsTZc9pAzJLg4w1pDBDnxF90RP6u+Uc0Jw+KNSDSwV35V1sQ@mail.gmail.com>
Hi all, I am also really happy to see the N3 ball rolling and thanks for that! My short bio is: - Master of Science (ir.) at KU Leuven plus doctoral study on image computing (and meanwhile building 5 wind turbines http://josd.github.io/rotor.html). - Co-founder of ICOS Vision Systems as R&D engineer computer vision applications. - Agfa HealtCare R&D engineer in the successive areas of digital medical hardcopy, medical gateways, advanced clinical applications and clinical analytics. - Developer of EYE open source at https://github.com/josd/eye . For me N3 is a great problem solving language ;-) just taking a few examples: 1/ Control Systems See https://github.com/josd/eye/tree/master/reasoning/cs where https://github.com/josd/eye/blob/master/reasoning/cs/rules-001.n3 contains rules for simple feedforward control and PND feedback control. 2/ Leg Length Discrepancy Measurement See https://github.com/josd/eye/tree/master/reasoning/lldm and http://www.agfa.com/w3c/2002/10/medicad/op/ where https://github.com/josd/eye/blob/master/reasoning/lldm/lldmP.n3 contains rules to do the actual data processing and to detect wether one has a leg length discrepancy. 3/ Multi-Agent Proofs See https://github.com/josd/eye/tree/master/reasoning/map Multiple agents can work together by using their own knowledge/logic/data and proofs made by other agents. The proofs are guaranteeing a transparent and accountable way of working and they only disclose what is relevant, so there is no need to have an "All knowledge is contained in here" (what I learned from Tim Berners-Lee). We have a open source implementation called EYE (standing for "Euler Yet another proof Engine") which is a N3 semibackward chainer. Semibackward chaining is backward chaining for rules using <= in N3 and forward chaining for rules using => in N3. The above 3 examples are from a collection of concrete reasoning examples available at https://github.com/josd/eye/tree/master/reasoning . For more details about how we use N3, I would like to point to the paper "Drawing Conclusions from Linked Data on the Web: The EYE Reasoner" available at http://josd.github.io/Papers/EYE.pdf . Personally I'll commit time (spare time and holidays) to help resolve n3-dev design issues, adapt EYE so that it implements n3-dev group consensus, contribute test cases and help define exit criteria to declare victory for the n3-dev group. I really look forward to work together with you all to realize the full potential of N3 :-) Kind regards, Jos -- https://josd.github.io/ <http://josd.github.io/> On Fri, Nov 30, 2018 at 12:48 PM Doerthe Arndt <doerthe.arndt@ugent.be> wrote: > Dear Nathan, all, > > Thank you for pushing this forward! I am really happy that you are as > enthusiastic about this topic as I am. I always wanted to push forward the > formalisation of N3, so I guess, now is the time. > > A little bit more about my and our background: > > I have a master in Mathematics and I am currently finishing my PhD in > Computer Science which has N3 and its applications as a topic. I work at > imec in Gent (Belgium) and there, we had many research projects using N3 > and the EYE reasoner (I am sure Jos will tell us more about his > implementation in another mail, till then you can already check > http://eulersharp.sourceforge.net/ and http://n3.restdesc.org/). > > Some example projects : > > - We implemented owl-rl rules in N3 and used it for ontology reasoning > (maybe an idea to also test it on the work of you, William, but that is > just a side note :) ). What was special about N3 here was that N3 allows > rules in the consequence of rules ( like {?C1 rdfs:subClassOf ?C2}=>{ {?x > a ?C1}=>{?x a ?C2} }.). We used this for preprocessing. [1] > > - We also had several projects in which we used the fact that Cwm and > EYE both can produce proofs. We created a format to describe possible > restful Web API calls in forms of rules with existential variables in the > consequence (another nice feature of N3), RESTdesc. The user can then give > a goal he or she wants to reach and by producing a proof the computer > provides a plan how this goal can be reached. [2,2a] > > - We used N3 for data validation. Here, we used a lot of the built-ins > of N3, but also the RIF built-ins as they are implemented in EYE. [3] > > We also already worked on the formalisation of N3 and identified several > problems which need to be fixed: > > - *Implicit quantification:* When we used the reasoners Cwm and EYE, > we discovered, that they differed in their way of handling implicit > universal quantification. To give a concrete example, consider the rule: > > {{?x :p :o} => {?x :p2 :o2}}=> {:a :b :c}. > > Cwm interprets that as: > > (∀x: p(x,o) → p2(x,o2)) → b(a,c) > > EYE interprets it as: > > ∀x: (p(x,o) → p2(x,o2)) → b(a,c) > > The reason for that the W3C team submission is not really clear here, > it says that universals are quantified "on the parent formula" (see > https://www.w3.org/TeamSubmission/n3/#Quantifica), but it does not say > what exactly this "parent" is. > > - *Explicit quantification: *N3 provides a way to express explicit > quantification (by using @forall and @forsome). An example formula is: > > @forAll <#h>. @forSome <#g>. <#g> <#loves> <#h> . > > which means in FOL: > > ∀h: ∃g: loves(h,g) > > But the spec also says that *"If both universal and existential > quantification are specified for the same formula, then the scope of the > universal quantification is outside the scope of the existentials" *(see > https://www.w3.org/TeamSubmission/n3/#Quantifica). So the formula > > @forSome <#g>. @forAll <#h>. <#g> <#loves> <#h> . > > also means > > ∀h: ∃g: loves(h,g) > > I at least think that this is counter intuitive (but maybe there are > good reasons to do it that way?). > > > - > > *No distinction between variables and constants: *Related to the previous > topic, it can be a problem that variables and constants are not clearly > distinguished. Look for example at the first occurence of :h in this > formula: > > @forSome :g. :g :p *:h*. @forAll :h. :g :loves :h . > > Given the reversal of quantifiers when interpreting it (∀h: ∃g: ...) > it is not clear to me whether this :h is a universally quantified variable > or a constant. > > > > - > *Citation of Formulas: *We need to agree how to interpret cited graphs > like for example > > :x :says {:s :p :o}. > > I think this topic is quite challenging (for TriG, for example, there > was no agreement https://www.w3.org/TR/rdf11-datasets/). RDF* [4] > reduces such constructs to rdf reification which unfortunately doesn't > solve the problem of defining a semantics since reification is excluded in > rdf semantics (see: https://www.w3.org/TR/rdf11-mt/#reification). > There are many different approaches we could follow like for example KIF > [5], Common Logic [6] or also make it more complex like they do in SUMO [7]. > > > I worked on the quantification part and published a paper in 2015 about > that [8] (it is only a first draft which especially does not yet take the > position of a quantifier into account) begin our discussions, till then I > can refer to my presentation about this topic here: > https://docs.google.com/presentation/d/1Tkh3JLuayBft63ltoeCCD68Zfa9wMFzjOz-h_xYX0PU/edit?usp=sharing > (I enabled commenting in case you want to ask questions). I furthermore > also did some work on formalising the proof calculus for N3, this part can > be found in our Paper Pragmatic Proof [2a]. > > As you see. I am really interested in writing the spec, but I am also > willing to invest time in working on and testing implementation(s) and I am > looking forward to having detailed discussions. > > I am looking forward to working with you. > > Kind regards, > Dörthe > > > > [1] D. Arndt, B. De Meester, P. Bonte, J. Schaballie, J. Bhatti, W. > Dereuddre, R. Verborgh, F. Ongenae, F. De Turck, R. Van deWalle, E. > Mannens, Improving OWL RL reasoning in N3 by using specialized rules, in: > V. Tamma, M. Dragoni, R. Gonçalves, A. Ławrynowicz (Eds.), Ontology > Engineering: 12th International Experiences and Directions Workshop on OWL, > Vol. 9557 of Lecture Notes in Computer Science, Springer, 2016, pp. 93–104. > doi:10.1007/978-3-319-33245-1_10. URL > http://dx.doi.org/10.1007/978-3-319-33245-1_10 > > [2] http://restdesc.org/ > > [2a] R. Verborgh, D. Arndt, S. Van Hoecke, J. De Roo, G. Mels, T. Steiner, > J. Gabarró Vallés, The pragmatic proof: Hypermedia API composition and > execution, Theory and Practice of Logic Programming 17 (1) (2017) 1–48. > doi:10.1017/S1471068416000016. URL http://arxiv.org/pdf/1512.07780v1.pdf > > [3] D. Arndt, B. De Meester, A. Dimou, R. Verborgh, E. Mannens, Using > rule-based reasoning for RDF validation, in: S. Costantini, E. Franconi, W. > Van Woensel, R. Kontchakov, F. Sadri, > D. Roman (Eds.), Proceedings of the International Joint Conference on > Rules and Reasoning, Vol. 10364 of Lecture Notes in Computer Science, > Springer, 2017, pp. 22–36. doi:10.1007/978-3-319-61252-2_3. Available at: > https://biblio.ugent.be/publication/8540876/file/8540882.pdf > > [4] O. Hartig, B. Thompson, Foundations of an alternative approach to > reification in RDF, CoRR abs/1406.3399. arXiv:1406.3399. URL > http://arxiv.org/abs/1406.3399 > > [5] P. Hayes, C. Menzel, A semantics for the knowledge interchange format, > in: IJCAI 2001 Workshop on the IEEE Standard Upper Ontology, Vol. 1, 2001, > p. 145. > > [6] ISO/IEC 24707:2007 Information technology – Common Logic (CL), > standards.iso.org/ittf/PubliclyAvailableStandards/c039175_ISO_IEC_24707_2007%28E%29.zip > (2007). > > [7] C. Benzmüller, A. Pease, Higher-order aspects and context in sumo, Web > Semantics: Science, Services and Agents on the World Wide Web 12 (2012) > 104–117. > > [8] D. Arndt, R. Verborgh, J. De Roo, H. Sun, E. Mannens, R. Van de Walle, > Semantics of Notation3 logic: A solution for implicit quantification, in: > N. Bassiliades, G. Gottlob,F. Sadri, A. Paschke, D. Roman (Eds.), Rule > Technologies: Foundations, Tools, and Applications, Vol. 9202 of Lecture > Notes in Computer Science, Springer, 2015, pp. 127–143. URL > http://link.springer.com/chapter/10.1007/978-3-319-21542-6_9 > > Hi all, thanks for joining the n3-dev CG. > > Since the holiday season is fast approaching, we should perhaps aim to > start ramping up communications and efforts from the new year. > > If you know anybody else who may be interested in joining, or should be > involved, please encourage them to join the CG via > https://www.w3.org/community/n3-dev/ > > In the interim, please do share anything you think is pertinent, including > related background reading and references, or anything you'd like to > discuss. It may also be useful to start collating implementations, any > nuances or bugs that have been found after working with the current > specification [1] (see also [2]), also suggestions on what could be > improved / simplified / expanded / removed. > > Let's all get on the same page, agree what to do, and get it done. > > Personally I'll commit time, discussion, spec writing, mistakes, and > working reference implementation(s). Throughout the current decade I've > frequently thought or said I/you/we could do this with n3, so before the > turn of the next decade, *I want* to be using n3+rules daily, at scale, > and will do my utmost to facilitate you all in using it for what you want > or need too. > > Thanks all, and I look forward to working you all in the coming months, > > Nathan > > [1] https://www.w3.org/TeamSubmission/n3/ > [2] https://www.w3.org/DesignIssues/Notation3.html > > -- > Dörthe Arndt > Researcher Semantic Web > imec - Ghent University - IDLab | Faculty of Engineering and Architecture | Department of Electronics and Information Systems > Technologiepark-Zwijnaarde 19, 9052 Ghent, Belgium > t: +32 9 331 49 59 | e: doerthe.arndt@ugent.be > >
Received on Friday, 30 November 2018 15:28:02 UTC