From: Markus <ma...@ai...> - 2006-07-09 15:28:10
|
Hi all, first of all: there is a public list to discuss Semantic MediaWiki. Try=20 sem...@li... (the registration is also at our=20 sourceforge page). Richard, thanks for the detailed mail. I do not have much to add (the=20 remaining points are below). On Saturday 08 July 2006 10:44, Richard Cyganiak wrote: > Hi David, > > I'll try to help but I'm just a user of SMW and not familiar with the > code. (I'm familiar with PHP though.) Maybe Markus will give some > advice? > > Inline queries basically work like this: SMW starts to parse and > render a page, then finds the inline query halfway down the page, > then executes the query and renders the results right away into HTML > that is inserted into the page, and then page rendering continues as > usual. Exactly. > > What you would want with Timeline, ideally, is this: When SMW hits > the timeline block in the page source, it only inserts the HTML that > is necessary to set up the timeline. The query is not executed at > that point. The Timeline Javascript then does an AJAX call to > retrieve the data. The call goes to a different PHP script whose job > is to answer queries. That script executes the query and passes the > results back as JSON (or XML). The query could be passed to the > script in the URL. > > That scenario turns out to be quite different from the way inline > queries currently work. :( I don't know enough about MediaWiki > extension architecture to judge if this is feasible and how much work > it is and how to approach it the best way. But I think it would be a > good idea because other Javascript widgets (maps, for example) could > use the same facility. Maybe Markus or Max could comment on this? OK, this could work in some future. We are planning to set up a Special pag= e=20 for executing <ask> queries in the next weeks. Combined with some XML outpu= t,=20 this could then be reused by JScript in any other place. I am not sure abou= t=20 the nesting of <ask> and <timeline> though. We tried to nest <ask> with=20 itself and the MediaWiki parser failed (so we use <q> for subqueries), and= =20 the stuff we get when processing <ask> does not even have its templates=20 expanded -- so there might be insufficient expansion of <ask> inside=20 <timeline> as well. Could require to file a bug at Mediazilla ... > > There could be another, simpler, way, which is not as clean, and I'm > not entirely sure if Timeline can be made to work like this. > > The wiki source would look like this: > > <ask format=3D"timeline" timeline-intervals=3D"week,month" > fields=3D"title,start,end" ...> > > If the foramt is "timeline", then instead of rendering the results > into an HTML table or HTML list, the script would emit an HTML > <script> element which sets up the timeline *and* adds data to the > timeline. The data would be rendered into Javascript calls inside the > script element. > > I believe that could be done just by modifying SMW_InlineQueries.php > (possibly by adding a new case to initOutputStrings, and doing > something completely different inside makeRow if format is timeline?). I do not know timeline at all, but we are quite flexible with out output. I= t=20 would be somewhat messy to have the timeline parameters all added to <ask>,= =20 but in principle it could work. Maybe some fixed paramters for timeline wou= ld=20 be sufficient? > > Well, and the Timeline javascript includes have to be somehow > inserted into the page <head>. We already do this with other scripts and CSS. Should be doable (since 1.7= =20 even without a patch to the code). > > About PHP, I think the most important thing you have to know is that > "var_dump($some_variable)" will tell you what is inside > $some_variable, which is very handy with all those associative arrays > and nested objects that you will encounter in other people's code. > Insert it somewhere in the code, refresh in the browser, and view > source. *lol* This probably really is the most important thing! > > I'm willing to invest two or three hours of coding and debugging time > into this over the next week if there's help both from your side, > David, and from the SMW guys. Well, be assured of my moral support and any hints you need regarding the=20 code. But since SMW0.5 is going to be released next week, I will probably n= ot=20 have much time for further coding tasks. Best regard, Markus > On 8 Jul 2006, at 00:47, David Huynh wrote: > > Hi Richard, > > > > I'm digging a little deeper into the Semantic MediaWiki extension > > and I need to help on this. I'm unfamiliar with PHP and MediaWiki > > so things are looking very foreign to me--hope you can help. I > > think what I want to implement is something like this added to > > wikitext: > > > > <timeline mode=3D"auto-2-bands" intervals=3D"week,month" height=3D"400p= x" > > center=3D"last"> > > <ask format=3D"json" fields=3D"title,start,end"> > > [[Category:President]] [[party::Republican]] [[name::*]] > > [[in-office:=3D*]] [[out-office:=3D*]] > > </ask> > > </timeline> > > > > Something like that... First, I've scanned through > > SMW_InlineQueries.php and JSON doesn't seem to be a supported > > format. So, I'm a bit lost as to how to hook up <ask>'s output to > > <timeline>. > > > > Any pointer will be appreciated! Thanks! > > > > David > > > > Richard Cyganiak wrote: > >> Have you looked at the Semantic MediaWiki extension [1]? It > >> already provides a method for annotating dates in articles, and a > >> query facility for selecting things based on different criteria. > >> Then it's just a matter of presenting a query result as a > >> timeline ... > >> > >> Best, > >> Richard > >> > >> [1] http://meta.wikimedia.org/wiki/Semantic_MediaWiki =2D-=20 Markus Kr=F6tzsch Institute AIFB, University of Karlsruhe, D-76128 Karlsruhe ma...@ai... phone +49 (0)721 608 7362 www.aifb.uni-karlsruhe.de/WBS/ fax +49 (0)721 693 717 |