RE: Hello, n3

Oops, maybe I should have started by introducing myself as well:

 

* Master’s in computer science (topic: semantics-based, aspect-oriented approach to website adaptation [1])
* PhD in computer science (topic: mobile context-awareness using online semantic web data [2])

 

For the last 5 years I’ve been working at the NICHE research group at Dalhousie University (Canada), which specializes in health informatics. Relevant topics include clinical decision support using logics-based reasoning [1]; coping with knowledge incompleteness by leveraging non-standard forms of inference [2, 3]; and realizing assisted ambient living using logics-based reasoning [4, 5].

 

I’m looking forward to working with you all on the standardization of N3!

 

Maybe, if we do it right, the documentation could even become a useful point of entry for beginners (re Steven Harms’ point <https://lists.w3.org/Archives/Public/semantic-web/2018Nov/0229.html> )! …

 

 

[1] http://dx.doi.org/10.3233/978-1-61499-564-7-118 

[2] http://ceur-ws.org/Vol-1428/BDM2I_2015_paper_8.pdf 

[3] https://dx.doi.org/10.1186/s13040-017-0123-y 

[4] http://dx.doi.org/10.1007/978-3-319-42019-6_22 

[5]  http://ceur-ws.org/Vol-2042/paper22.pdf 

 

 

W

 

From: Jos De Roo <josderoo@gmail.com> 
Sent: November-30-18 11:27 AM
To: doerthe.arndt@ugent.be
Cc: public-n3-dev@w3.org
Subject: Re: Hello, n3

 

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 <mailto: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 <http://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 <mailto:doerthe.arndt@ugent.be>  

Received on Friday, 30 November 2018 15:58:25 UTC