13:57:35 RRSAgent has joined #rdfa 13:57:35 logging to http://www.w3.org/2010/08/12-rdfa-irc 13:57:37 RRSAgent, make logs world 13:57:39 Zakim, this will be 7332 13:57:39 ok, trackbot; I see SW_RDFa()10:00AM scheduled to start in 3 minutes 13:57:40 Meeting: RDFa Working Group Teleconference 13:57:40 Date: 12 August 2010 13:57:45 Agenda: http://lists.w3.org/Archives/Public/public-rdfa-wg/2010Aug/0056.html 13:59:13 Chair: Manu 13:59:22 Regrets: knud 14:00:02 zakim, code? 14:00:02 the conference code is 7332 (tel:+1.617.761.6200 tel:+33.4.26.46.79.03 tel:+44.203.318.0479), ivan 14:00:47 SW_RDFa()10:00AM has now started 14:00:55 +??P6 14:01:06 zakim, ??P6 is manu 14:01:06 +manu; got it 14:01:20 markbirbeck has joined #rdfa 14:01:42 zakim, dial ivan-voip 14:01:42 ok, ivan; the call is being made 14:01:43 +Ivan 14:02:21 Ivan can't stay away! :) 14:02:25 zakim, code? 14:02:25 the conference code is 7332 (tel:+1.617.761.6200 tel:+33.4.26.46.79.03 tel:+44.203.318.0479), markbirbeck 14:02:32 :-) 14:03:03 +??P7 14:03:08 zakim, i am ? 14:03:08 +markbirbeck; got it 14:03:49 +ShaneM 14:03:56 zakim, who is here? 14:03:56 On the phone I see manu, Ivan, markbirbeck, ShaneM 14:03:58 On IRC I see markbirbeck, RRSAgent, trackbot, Zakim, manu, tinkster1, Benjamin, ivan, tinkster 14:03:58 ShaneM has joined #rdfa 14:05:58 + +49.631.205.75.aaaa 14:06:28 Zakim, aaaa is Benjamin 14:06:28 +Benjamin; got it 14:07:50 +tinkster 14:09:57 manu: any updates/changes to the agenda? 14:10:04 Scribenick: tinkster 14:10:04 Scribe: Toby 14:10:20 Topic: ISSUE-28: rdfa-api-errors-nathan 14:11:14 manu: 2 weeks agao, I tried to fix all the editorial issues that Nathan spotted; accidentally made one non-editorial change. 14:11:23 s/agao/ago/ 14:12:10 ... have tried to respond to each issue individually. Waiting on a response from Nathan before we can close the issue. Anybody disagree? Think it needs to stay open? 14:12:34 http://www.w3.org/2010/02/rdfa/track/issues/28 14:12:43 http://lists.w3.org/Archives/Public/public-rdfa-wg/2010Aug/0001.html 14:12:50 http://lists.w3.org/Archives/Public/public-rdfa-wg/2010Aug/0000.html 14:12:56 http://lists.w3.org/Archives/Public/public-rdfa-wg/2010Aug/0005.html 14:14:18 ... First issue is setMapping - we want to pass in plain strings as often as possible rather than requiring people to create unnecessary object wrappers. 14:15:16 q+ 14:15:33 ack ivan 14:15:34 ... Ultimately we want to switch from using DOMStrings to plain Strings. 14:16:44 ISSUE: RDFa API should use 'string' instead of 'DOMString' in the WebIDL 14:16:45 Created ISSUE-42 - RDFa API should use 'string' instead of 'DOMString' in the WebIDL ; please complete additional details at http://www.w3.org/2010/02/rdfa/track/issues/42/edit . 14:17:44 q+ 14:17:53 ack markbirbeck 14:18:27 ivan: RDF uses unicode; when you interact with the outside world, you need to pick an encoding. 14:18:42 q+ 14:18:52 q+ to discuss abstract representation 14:18:56 http://www.w3.org/TR/DOM-Level-2-Core/core.html#ID-C74D1578 14:18:58 ack benjamin 14:19:09 markbirbeck: DOMString is basically just a name that binds to native string classes/types depending on the platform. UTF-16. 14:19:28 Quote: "Note: Even though the DOM defines the name of the string type to be DOMString, bindings may use different names. For example for Java, DOMString is bound to the String type because it also uses UTF-16 as its encoding." 14:19:39 ack 14:19:47 Benjamin: we use DOMString for plain literals and typed literals. Should we make everything UTF-8? 14:19:58 q+ 14:20:03 ack manu 14:20:03 manu, you wanted to discuss abstract representation 14:20:25 ack ivan 14:21:04 ivan: we should try to be compatible with webapps wg. 14:22:00 manu: Another issue in the e-mail is that we need to have a 'type' parameter to the createParser call, so that you can choose which format you want to parse. 14:25:04 ... document.data.createParser(type, store) 14:27:43 http://www.w3.org/2010/02/rdfa/sources/rdfa-dom-api/ 14:27:48 Nathan' comment: 14:27:50 > DocumentData has the createParser( type , store ) method, but DataParser 14:27:51 > has no constructor which accepts a type, or any way of setting the type. 14:28:07 Manu replies: 14:28:09 I have added a property called "type" to the Data Parser interface. 14:28:46 http://www.w3.org/TR/2010/WD-rdfa-api-20100608/#document-data 14:29:45 ... Is the general agreement that the constructor (a against the factory method) does not need a 'type' parameter? 14:30:39 markbirbeck: is the new thing you've added the 'type' property of the DataParser interface? 14:31:45 manu: yes, that's the difference; though .type might be redundant - they could just do typeof() on the object. 14:32:49 markbirbeck: should we have DataParser.hasFeature('foo')? 14:33:14 ivan: then would we need to enumerate loads of different features? 14:34:17 markbirbeck: we'd only need to define the 'rdfa' feature and provide a framework for other feature strings to be defined. 14:34:28 ivan: I'd be concerned about this. 14:35:07 ISSUE: Determine if DataParser interface needs a hasFeature("hcard") or hasFeature("hrecipe") mechanism. 14:35:08 Created ISSUE-43 - Determine if DataParser interface needs a hasFeature("hcard") or hasFeature("hrecipe") mechanism. ; please complete additional details at http://www.w3.org/2010/02/rdfa/track/issues/43/edit . 14:35:33 PROPOSAL: Remove 'type' from DataParser interface until ISSUE-43 is resolved. 14:35:43 +1 14:35:48 +1 14:35:49 +1 14:35:49 +1 14:35:50 +1 14:35:59 markbirbeck: I agree about avoiding complexity; perhaps we should remove 'type' for now which although simple, is not going to be up to the job. 14:36:08 dont care 14:36:10 RESOLVED: Remove 'type' from DataParser interface until ISSUE-43 is resolved. 14:36:33 http://lists.w3.org/Archives/Public/public-rdfa-wg/2010Aug/0000.html 14:37:38 manu: parser.parse(url) method? 14:38:03 q+ 14:38:48 ... idea is to pull in triples from multiple pages to one store, and do stuff with that. 14:39:03 ... How to avoid CORS/security issues? 14:39:12 ack ivan 14:39:13 q+ 14:39:22 ... This isn't an issue on the tracker, but maybe should be on there. 14:41:04 ivan: this is a good feature. The API isn't just for browsers, so we shouldn't let problems that are browser-specific stop us from adding it to the API. 14:41:13 ISSUE: Add a mechanism to the RDFa API to parse remote documents and place them into a DataStore. 14:41:14 Created ISSUE-44 - Add a mechanism to the RDFa API to parse remote documents and place them into a DataStore. ; please complete additional details at http://www.w3.org/2010/02/rdfa/track/issues/44/edit . 14:42:05 q+ to discuss remote RDFa fetching and CORS. 14:42:08 ack 14:42:21 markbirbeck: in the first instance, we should copy the XmlHTTPRequest security model. 14:42:32 q? 14:42:34 ack 14:42:38 ack markbirbeck 14:43:07 ack 14:43:09 ack manu 14:43:09 manu, you wanted to discuss remote RDFa fetching and CORS. 14:43:32 markbirbeck: we should put this method in, and just make it clear that some programming environments will disallow you from using it in some situations. 14:44:12 manu: we'll add this to the tracker. 14:44:57 q+ 14:45:06 ack ivan 14:45:08 manu: next issue - how do you get a list of all triples? answer: just call filter() without any arguments. fixed a editorial bug where the subject was non-optional. 14:46:37 ivan: does filter() return a new data store containing the triples; or an array? 14:47:11 manu: data stores have a foreach method for iterating through them. 14:47:50 this sort of patter is very common in javascript these days. 14:47:56 s/patter/pattern/ 14:47:59 ... having filter() return another data store allows them to be chained together. 14:48:40 document.data.store.filter(None, "foaf:name").forEach(function (s, p, o) { doSomething() }); 14:48:56 for s,o in graph.triples(None,foaf["name"],None) : do something with s,o 14:49:20 q+ 14:49:30 q+ to discuss array decompisition 14:49:43 ack markbirbeck 14:50:12 var graph = document.data.store; graph.filter(null, "foaf:name").foreach(function (s,p,o){doSomething();}); 14:52:05 markbirbeck: I do have another proposal I'd like to take to the mailing list, which makes more interesting queries much simpler. 14:52:42 ... in a programming language, I want a projection, not triples. 14:52:49 ack manu 14:52:49 manu, you wanted to discuss array decompisition 14:53:19 q+ 14:53:33 ack ivan 14:54:16 q+ 14:54:30 in perl: while ( my (s, o) = graph->triples(....) ) { some actions on s and o } 14:55:12 q+ 14:55:17 q+ to discuss DataParser.iterate() 14:55:34 ack markbirbeck 14:56:31 markbirbeck: callbacks are an increasingly popular way of working. we should support them. 14:57:07 q+ 14:57:15 ack benjamin 14:57:27 ... the issue is more whether we should be feeding triples into this callback, or a dictionary/hash/associative-array/projection/whatever-you-want-to-call-it. 14:57:56 ack manu 14:57:56 manu, you wanted to discuss DataParser.iterate() 14:58:38 In Perl you can do this: ($first, $second, $third) = @somearray 14:58:49 That's decomposing the array. 14:58:52 you can't do that in ECMAScript 14:59:11 for triple in graph.triple(None, foaf["name"], None) : do something with 't' 14:59:21 why does each language binding to the webidl need to be the same? what am I missing here? 14:59:54 ack ivan 15:00:41 q+ to mention that DataStore is iterable 15:00:56 ivan: all I want it a way to get the results of filter as an array. 15:01:02 ack manu 15:01:02 manu, you wanted to mention that DataStore is iterable 15:01:10 DataStore [IndexGetter] 15:01:44 for t in document.data.filter(None, "foaf:name") { ... } 15:02:22 None = the subject 15:02:29 null? 15:02:34 for t in document.data.filter(SUBJECT, PREDICATE, OBJECT) { ... } 15:02:36 q+ 15:02:40 q+ to end the call 15:02:46 ack benjamin 15:04:48 ack manu 15:04:48 manu, you wanted to end the call 15:07:42 -tinkster 15:08:58 q+ to ask about supporting javascript stuff 15:09:04 ack shane 15:09:04 ShaneM, you wanted to ask about supporting javascript stuff 15:11:51 foreach is not restricted to ecmascript 15:14:00 for a, b, c in [[1, 2, 3], [4, 5,6], [7, 8, 9]] { print a; print b; print c; }; 15:15:16 triple = (s,p,o) 15:15:37 graph.triple(a,b,c,) 15:16:48 http://en.wikipedia.org/wiki/List_comprehension 15:17:00 javascript 1.7 can do this: 15:17:00 # for (let [s, o] in list) { 15:17:00 # document.write ("Name: " + name + ", Value: " + value + "
\n"); 15:17:00 # } 15:17:14 defined in https://developer.mozilla.org/en/New_in_JavaScript_1.7#Array_comprehensions 15:17:51 for t in triples { var s = t.subject; var p = t.predicate; ... } 15:18:57 for each t in triples { print t.subject; } 15:19:07 +1 - that's how I do it 15:19:33 Sorry, that correct in JS 1.7: 15:19:33 # for (let [s, o] in list) { 15:19:33 # document.write ("S: " + s + ", O: " + o + "
\n"); 15:19:33 # } 15:20:17 q+ to discuss unpacking 15:20:41 how is t.subject any different than var s=t.subject; s ? 15:21:20 ack shanem 15:21:20 ShaneM, you wanted to discuss unpacking 15:21:57 for t in graph.triple(IRI(http:bla),None,None) : {asdfasf} 15:23:23 zakim, drop me 15:23:23 Ivan is being disconnected 15:23:24 -Ivan 15:27:08 var graph = document.data.store; graph.filter(null, "foaf:name").foreach(function (s,p,o){doSomething();}); 15:27:42 var graph = document.data.store; graph.filter(null, "foaf:name", function (s,p,o){doSomething();}); 15:28:48 DataStore filter (in optional Object? subject, in optional DOMString? predicate, in optional Object? object, in optional Node? element, in optional RDFTripleFilter filter); 15:30:50 http://www.w3.org/2010/02/rdfa/sources/rdfa-dom-api/#data-query 15:31:05 graph.filter( 15:31:23 { null, "foaf:name" }, 15:31:32 function (s,p,o){doSomething();} 15:31:35 ); 15:32:27 graph.filter({"subject": null, predicate: "foaf:name"}, function (s,p,o){doSomething();}); 15:33:08 that looks nice 15:33:29 graph.filter({"subject": null, predicate: "foaf:name"}, function (t) {doSomething();}); 15:33:44 graph.filter({"object": "Mark"}); 15:33:54 graph.filter(None, None, "Mark); 15:35:33 graph.filter({"object": "Mark", "xpath": "foo>bar"}); 15:35:50 function (t, f) {doSomething();}) 15:36:26 f.xpath 15:36:54 filter(args, func); 15:37:14 func ==> function (triple, args) {} 15:37:39 args ==> "subject", "predicate", and "object" 15:39:06 filter({"subject" : "#me", "predicate" : "foaf:name", "object": "Benjamin", "foo" : "bar"}, function (triple, args) { print triple.object; print args["foo"] } ); 15:40:35 CustomDataStore 15:40:57 CssAwareDataStore 15:41:59 filter({"subject" : "#me", "predicate" : "foaf:name", "object": "Benjamin", "selector" : "#me"}, function (triple, args, element) { print triple.object; print args["selector"]; element.font = "blah" } ); 15:43:44 filter(args, filter, func); 15:43:50 filter(args, func, filter); 15:45:16 filter({"subject" : "#MSFT", "predicate" : "stock:price", "high" : "blue", "low", "red"}, function (triple, args) { if ( triple.object > 27) blah.style.color = args.high; else blah.style.color = args.low; } ); 15:46:28 RDFTriple createTriple (in Object subject, in Object predicate, in Object object); 15:50:44 sorry guys I have to go. 15:50:52 no problem, thanks Benjamin :) 15:51:09 -Benjamin 15:59:12 -manu 15:59:13 -markbirbeck 16:04:13 disconnecting the lone participant, ShaneM, in SW_RDFa()10:00AM 16:04:17 SW_RDFa()10:00AM has ended 16:04:18 Attendees were manu, Ivan, markbirbeck, ShaneM, +49.631.205.75.aaaa, Benjamin, tinkster 16:04:36 trackbot, bye 16:04:36 trackbot has left #rdfa 16:04:38 zakim, bye 16:04:38 Zakim has left #rdfa 16:16:00 ShaneM has joined #rdfa