15:54:27 RRSAgent has joined #rif 15:54:28 logging to http://www.w3.org/2008/11/14-rif-irc 15:54:34 rrsagent, make logs public 15:54:41 rrsagent, make minutes 15:54:41 I have made the request to generate http://www.w3.org/2008/11/14-rif-minutes.html ChrisW 15:54:45 rrsagent, make logs public 15:55:00 Meeting: RIF PS Task Force Telecon 15:55:09 zakim, this will be rif 15:55:09 ok, ChrisW; I see SW_RIF()11:00AM scheduled to start in 5 minutes 15:55:27 zakim, list agenda 15:55:27 I see 2 items remaining on the agenda: 15:55:28 9. PICK SCRIBE [from ChrisW] 15:55:28 10. AOB [from ChrisW] 15:55:33 zakim, clear agenda 15:55:33 agenda cleared 15:59:48 Zakim, who is here? 15:59:48 apparently SW_RIF()11:00AM has ended, sandro 15:59:50 On IRC I see RRSAgent, ChrisW, Harold, sandro, Zakim, trackbot 15:59:56 zakim, this is rif 15:59:56 sandro, I see SW_RIF()11:00AM in the schedule but not yet started. Perhaps you mean "this will be rif". 16:00:03 zakim, this will be rif 16:00:03 ok, sandro; I see SW_RIF()11:00AM scheduled to start now 16:00:09 SW_RIF()11:00AM has now started 16:00:16 +Sandro 16:02:11 StellaMitchell has joined #rif 16:02:34 +Harold 16:03:04 LeoraMorgenstern has joined #rif 16:03:08 +Stella_Mitchell 16:03:15 +Hassan_Ait-Kaci 16:03:25 mkifer has joined #rif 16:03:39 +LeoraMorgenstern 16:03:41 ChrisW? 16:03:51 zakim, who is on the phone? 16:03:51 On the phone I see Sandro, Harold, Stella_Mitchell, Hassan_Ait-Kaci, LeoraMorgenstern 16:04:04 Hassan has joined #rif 16:04:08 +Michael_Kifer 16:05:18 ChrisW?? 16:05:42 I can't hear anything; is anybody talking? 16:05:45 +ChrisW 16:06:00 zakim, who is on the phone? 16:06:00 On the phone I see Sandro, Harold, Stella_Mitchell, Hassan_Ait-Kaci (muted), LeoraMorgenstern, Michael_Kifer, ChrisW 16:06:32 zakim, pick a scribe 16:06:32 Not knowing who is chairing or who scribed recently, I propose Harold 16:07:00 zakim, who is on the phone? 16:07:00 On the phone I see Sandro, Harold, Stella_Mitchell, Hassan_Ait-Kaci (muted), LeoraMorgenstern, Michael_Kifer, ChrisW 16:07:02 I can 16:07:03 zakim, pick a scribe 16:07:04 Not knowing who is chairing or who scribed recently, I propose Sandro 16:07:17 Scribe: StellaMitchell 16:08:24 Chris: There are 2 kinds of issues with PS 16:08:29 ...1. presentability 16:08:51 ...2 ambiguity which makes parsing difficult 16:09:18 ... Hassan's email about difficulties he had encountered with parsing. 16:09:24 ...5 points 16:10:08 Hassan: issue 1 (from email). This has been discussed in previous emails also. 16:10:13 q+ 16:10:59 ...Hassan proposes to put IRI's in quotes in Prefix and Base directives 16:11:18 Sandro: you could use white spaces as a delimiter 16:11:44 Prefix ::= 'Prefix' '(' Name IRI ')' 16:12:10 Hassan: it's better to make a context-free tokenizer 16:13:11 Prefix ::= 'Prefix' '(' Name STRING ')' 16:13:51 16:13:57 mk: why can't we use an IRI constant here? with anglebrackets 16:14:18 hassan: ok, can use angle brackets instead of quotes as delimiters 16:15:47 sandro: we should either use quotes or anglebrackets, and will decide which later 16:16:17 Chris: issue 2. minus sign in identifiers 16:17:09 -> :- 16:17:27 sandro: lets disallow hyphen in identifiers 16:17:47 switch to: camelcase or underscore 16:18:01 hassan, you don't have a problem with the underscore for localnames? 16:19:10 In the RIF specification of the EBNF the Rule Language, it is specified that: 16:19:11 IRIMETA ::= '(' IRICONST? (Frame | 'And' '(' Frame ')')? ')' 16:19:11 Frame ::= TERM '[' (TERM '->' TERM) ']' 16:19:11 TERM ::= IRIMETA? (Const | Var | Expr | 'External' '(' Expr ')') 16:19:11 Const ::= '"' UNICODESTRING '"^^' SYMSPACE | CONSTSHORT 16:19:11 SYMSPACE ::= ANGLEBRACKIRI | CURIE 16:19:14 16:19:16 where CONSTSHORT, ANGLEBRACKIRI, and CURIE are defined (in the DTB shorthand notation for RIF constants) by: 16:19:17 CURIE ::= PNAME_LN | PNAME_NS 16:19:20 CONSTSHORT ::= ANGLEBRACKIRI // shorthand for "..."^^rif:iri 16:19:21 | CURIE // shorthand for "..."^^rif:iri 16:19:23 | '"' UNICODESTRING '"' // shorthand for "..."^^xs:string 16:19:25 | NumericLiteral // shorthand for "..."^^xs:integer,xs:decimal,xs:double 16:19:27 | '_' LocalName // shorthand for "..."^^rif:local 16:19:30 16:19:31 where: 16:19:32 I suggest using http://www.w3.org/TeamSubmission/turtle/ whereever reasonable. 16:19:33 ANGLEBRACKIRI ::= '<' ([^<>"{}|^`\]-[#x00-#x20]) '>' 16:19:35 PNAME_LN ::= PNAME_NS PN_LOCAL 16:19:37 PNAME_NS ::= PN_PREFIX? ':' 16:19:39 PN_LOCAL ::= (PN_CHARS_U | [0-9]) ((PN_CHARS|'.') PN_CHARS)? 16:19:41 PN_PREFIX ::= PN_CHARS_BASE ((PN_CHARS|'.') PN_CHARS)? 16:19:43 PN_CHARS_U ::= PN_CHARS_BASE | '_' 16:19:45 PN_CHARS ::= PN_CHARS_U 16:19:47 | '-' 16:19:50 | [0-9] 16:19:51 | #x00B7 16:19:54 | [#x0300-#x036F] 16:19:55 | [#x203F-#x2040] 16:19:58 PN_CHARS_BASE ::= [A-Z] 16:19:59 | [a-z] 16:20:01 | [#x00C0-#x00D6] 16:20:03 | [#x00D8-#x00F6] 16:20:05 | [#x00F8-#x02FF] 16:20:08 | [#x0370-#x037D] 16:20:09 | [#x037F-#x1FFF] 16:20:11 | [#x200C-#x200D] 16:20:13 | [#x2070-#x218F] 16:20:16 | [#x2C00-#x2FEF] 16:20:17 | [#x3001-#xD7FF] 16:20:20 | [#xF900-#xFDCF] 16:20:21 | [#xFDF0-#xFFFD] 16:20:23 | [#x10000-#xEFFFF] 16:20:25 16:21:07 hassan: DTB points to other specs....parts of the above grammar are from those referenced specs 16:22:05 Chris: the - is allowed in the curie notation? 16:23:13 Chris: we are inheiriting dash inside identifiers from curie syntax 16:23:30 we have dash in our built-in names also 16:24:05 sandro: we will inheirit additional difficult things from curie grammar also 16:24:50 hassan: I'm not aiming my prototype to cover all posssible valid cases....but rather most of them 16:25:10 sandro: we could give a restricted definition of identifiers 16:26:19 http://www.w3.org/TeamSubmission/turtle/#name 16:26:33 chris: then we have to write our own syntax for these, and not use curie 16:26:50 sandro: could possible use the one above 16:27:11 nameStartChar | '-' | [0-9] | #x00B7 | [#x0300-#x036F] | [#x203F-#x2040] 16:27:16 (turtle) 16:27:31 axel points to sparql grammar 16:27:51 Chris: what if we remove dash from other places, outside of identifiers 16:28:35 sandro: I can't image readable rules without infix subtraction 16:28:44 s/image/imagine/ 16:28:55 ex:- 16:28:57 - 16:29:38 foo-bar 16:29:48 External(func:numeric-subtract(2 1)) 2 - 1 "+" "-" "*" "/" as in programming languages 16:30:02 you could expand all "shortcuts" before parsing 16:30:05 (quoting http://www.w3.org/TR/rif-ucr/) 16:30:13 The "-" in the abridged 17-4 would not be part of an identifier. 16:31:39 but without the infix operator which is not currently part of the grammar, you can preprocess 16:31:43 So omitting "-" from identifiers helps introducing abridged PS. 16:32:54 sandro: so can we remove - from identifers 16:33:03 chris: then we have to reproduce syntax for curies 16:33:32 hassan: if minus signs are allowed in identifiers in turtle, etc and they allow infix operators, how do they handle that? 16:33:46 chris: they don't have - as a separate operator 16:34:39 chris: I think it's more important to be in line with the other standards, than it is to have pretty substraction syntax 16:35:09 External(func:subtract-dateTimes(?deliverydate ?scheduledate)) OR External(?deliverydate-?scheduledate) 16:35:44 Chris: let's think about this one, and come back to it 16:36:39 External(func:subtract-dateTimes(?deliverydate ?scheduledate)) OR External(?deliverydate - ?scheduledate) 16:36:46 sandro: another option (that others do) is to require spaces around the - when used as substraction 16:37:01 then pre-processing could handle the space separated one too 16:37:23 Chris: issue 4 16:37:51 ...arguments of uniterms are either all attributed or all positional 16:38:46 hassan: for bottom up parser, a problem 16:38:56 is this because of shortcuts again? 16:39:49 or, could you also pre-process away curie notation? 16:41:36 hassan: could allow mixing at the ebnf level, and then check for additional syntax errors (mixing) later? 16:42:02 is it just curies that cause this ambiguity? 16:42:39 a name does already does look different than a const 16:43:19 chris: confusing that syntax for named arguments in uniterms is the same as syntax for slots in frames 16:43:40 foo( [color]red ) would work 16:45:22 color is clearly not a const anyway, since it isn't in double quotes 16:45:32 foo[ color::red size::big ] 16:45:36 foo( color : red ) would work 16:45:49 (solving Chris's problem, not Hassan.) 16:46:10 sandro: we are discussing 2 differernt issues about named args 16:46:22 ...hassan's re parsing, and chris's re readability 16:46:47 why do you need extra delimiters here? 16:46:51 foo{ color::red size::big } 16:47:07 consts (cannonical) already are delimited by quites 16:47:14 quotes 16:47:19 foo! color::red size::big ! 16:48:22 foo((a->b)) 16:48:30 f((a)->b) 16:48:43 foo( named color->red) 16:49:11 foo(NAMED color->red) 16:49:16 sandro, why do you think color can be confused as posiitinal argument?? 16:49:47 StellaMitchell, it's not truly ambiguous, it just requires more look-ahead. 16:49:57 why does it require more lookahead? 16:49:58 foo(! color-> red !) 16:50:06 consts have to be in quotes 16:50:22 and that NAMED will make it context sensitive parsing 16:50:50 We implemented this in ANTLR. 16:51:34 I don't see why you need arbitrary lookahead 16:52:46 foo(-> color -> red ->) :-) :-) 16:54:23 cw: useful for readability to distinguish named arg predicates from frames 16:55:16 I don't understand why it requires more lookahead 16:55:43 i.e. why parsing can't be simple with expanded consts 16:55:57 I just typed it 16:56:35 that is only in the case of curies? 16:56:46 so if you expanded them, it would go away? 16:57:42 foo ( bar baz -> foo boo -> goo ) 16:58:11 that is not correct in many ways 16:58:16 you would fail at the first foo 16:58:57 foo ( color -> red name -> rover ) ? 17:00:12 PS is Human-Oriented Syntax. 17:00:28 So it's ok if parsers have some harder time. 17:00:36 why not add commas? 17:01:01 After all, parsing is done only once, before the machine has to start its real (deductive) work.. 17:01:48 It's not on the XML level. 17:02:20 I don't know why identifier would be in the lookaead set in 82 17:02:39 Chris: issue 5 17:03:51 Hassan: ....cannot tell the difference between special case and general case 17:03:54 I will leave as soon as my 12 noon call starts (it's running late), but I am just listening anyway. 17:05:01 ...the ambiguity is that you have a grammar that gives general rules and then within that grammar there is another grammar that gives more specific rules 17:05:16 mk: where is the difficulty? is it the ^^? 17:05:38 hassan: we are talking about the rif:iri suffix 17:06:37 ...already past the "..."^^curie 17:06:52 ... I am talking about specifically rif:iri that complicates things at the lexical level 17:07:35 sandro: I think a RIF parser should never be looking inside an IRI? 17:07:45 Chris: an iri or a string 17:07:52 s/string/string?/ 17:07:58 sandro: either 17:08:54 Hassan: at the lexical level we require that it be rif:iri when it is an iri const complicates lexical parsing 17:09:33 ...it would be easier to accept any curie there and check that it's rif:iri later 17:10:08 I will send an email example to make the problem more clear 17:10:55 Chris: another meeting same time next week? 17:11:09 ... works for everyone 17:11:40 mk: we haven't discussed the escape symbols...i.e. for double quotes within double quoted strings 17:11:45 -Sandro 17:11:47 -LeoraMorgenstern 17:11:47 -Michael_Kifer 17:11:48 -Hassan_Ait-Kaci 17:11:48 -ChrisW 17:11:50 -Harold 17:12:00 -Stella_Mitchell 17:12:02 SW_RIF()11:00AM has ended 17:12:03 Attendees were Sandro, Harold, Stella_Mitchell, Hassan_Ait-Kaci, LeoraMorgenstern, Michael_Kifer, ChrisW 17:12:07 rrsagent, make minutes 17:12:07 I have made the request to generate http://www.w3.org/2008/11/14-rif-minutes.html ChrisW 18:29:28 Zakim has left #rif