Re: [SMW-devel] {{#ask}}
I don't think doing the implementation would really be that hard. There would need to be a refreshMetaSemantics.php maintenance script, and some hooks going into creating and saving pages and maybe some other tasks like viewing. It should probably only keep metadata on pages set to have evaluated annotations as defined in $smwgNamespacesWithSemanticLinks. If implemented in the core, there should be a global settings option so keeping this information can be turned on or off. But I could just as easily see this as a SMW extension, and it might be better that way. Either the special properties would need to be somewhat specific to keep from clashing (page last modified on, page created on, page edited by, number of page views, number of page edits), or users should be allowed to specify what the property namespaces should be. Users should also be allowed to customize what metadata gets saved, because if they don't care about storing how many times a page is viewed, they won't want the extra database hit to update that semantic bit of data every time a page is viewed. I think have a pretty clear idea of how it could be done, unfortunately I probably wouldn't be able to do an implementation until late December. So if nobody else does one by then, feel free hit me up and remind me, because it's actually something I kind of want for myself. Lately I've been thinking of other possible automatically added semantic data, too, like a user ratings system extension that works with SMW. --Audra On Nov 29, 2007, at 8:08 AM, Denny Vrandečić wrote: Any idea how to add page and wiki-meta data to SMW? The problem is, by simply adding further special properties (last modified date, creation date, etc.) it seems to clutter the property namespace... Well, doing the implementation is not trivial either, but heck :) Cheers, denny Sergey Chernyshev wrote: I use DPL for techpresentations.org http://techpresentations.org but only because it has access to page meta-data (in my case page creation dates). I wasn't impressed with DPL's approach and prefer SMW approach which is about semantic data storage. Sergey On Nov 28, 2007 10:52 AM, Jim Wilson [EMAIL PROTECTED] mailto:[EMAIL PROTECTED] wrote: Of course, I am THRILLED that this is coming down the pipe. Sergey, If you're planning to do something crazy, I suggest checking out DPL and shamelessplugRegExParserFunctions/shamelessplug. Combining {{#ask}} with {{#dpl}} and {{#regex}} can produce some very neat combinations. Also, I'm interested to see what you come up with in the way of {{#ask}} queries. -- Jim On Nov 27, 2007 5:04 PM, Sergey Chernyshev [EMAIL PROTECTED] mailto:[EMAIL PROTECTED] wrote: Perfect - it works great for what I was planning to use it for! Now almost no barriers are there ;) Sergey On Nov 27, 2007 4:43 PM, Markus Krötzsch [EMAIL PROTECTED] mailto:[EMAIL PROTECTED] wrote: On Dienstag, 27. November 2007, Sergey Chernyshev wrote: WOW! Markus, this is great present for being back from vacation! ;) I'll test it on my instances as soon as I'll get some time with computer tomorrow. Great, hope you like it. Surprisingly, most of the work had to go into modifying Special:Ask to allow linking to queries using internal links, and into supporting the new separation of printout requests and queries (which also makes way for some more presents). I had to adopt the Special:ask interface a little to account for this. I will drop another short note about recent changes and then be offline for a few days. I guess RC3 would be in order after this. Markus Sergey On Nov 23, 2007 4:01 PM, Markus Krötzsch [EMAIL PROTECTED] mailto:[EMAIL PROTECTED] wrote: And another note: {{#ask}} is in SVN (in a first version). Working example query: {{#ask: [[Category:Country]] [[borders::Nigeria]] | ?population| ?area#km² = ''Size''| format=list| limit = 3| link=all| intro=bTest/b_| }} Moreover, it is now of course possible to use templates and their params rather freely in {{#ask}}. Actually even some very unreasonable things work, but many cool things should also be possible. One real issue might be that uninitiated users might nest {{#ask}} in order to emulate q-subqueries, even though the latter are much more efficient and complete. Of course nesting sometimes is desirable: {{#ask: [[Category:Country]] [[population::{{#ask:headers=hide|?Population|[[Uganda]]}} ]] | sort=population| ?population }} This indeed works now. Here is what should hopefully work for #ask on SVN: * all printout formats other than debug (which still gives some HTML), * all known parameters (though some now are more flexible since you can use wiki-markup as values), * printout
Re: [SMW-devel] A new SMW Special page: Redirected annotations
I gave some benchmark examples here: http://sourceforge.net/mailarchive/message.php? msg_name=A9698228-735A-4BEB-9CC7-CC76015BE4BE%40audrajohnson.com I ran them on my MacBook Pro with a 2Ghz Intel Core Duo and 2 GB of RAM. I also included the final SQL select the example search runs, comparing what the SQL is for redirects as equivalents and not including redirects. (It's possible that the 34 minutes would have been less if I hadn't gotten bored waiting and started browsing the internet waiting for it to finish.) The size of my wiki isn't very large--3642 entries in the page table, 174 in redirect, and smw_relations has 10777 rows--so I don't think it's an unwieldy data set. The size of the categories in the search were: 6 entries and no subcategories, 141 entries with 6 subcategories, 99 entries with 1 subcategory. --Audra On Nov 26, 2007, at 10:31 PM, Sergey Chernyshev wrote: Audra, Can you describe the size of your wiki and amount of redirects? 34 minutes seems to be a huge number. Can you also give an example of SMW query that ran that long? Sergey On Nov 18, 2007 7:05 PM, Audra Johnson [EMAIL PROTECTED] wrote: A few weeks ago, I discovered that searches with a few subqueries were dreadfully slow and found the cause to be making annotated redirects equivalent to their targets. I suggested making redirect equivalency a SMW option--but when I went scanning for how to implement it, I gleefully found that it was already included! The setting is: $smwgQEqualitySupport = true; // Should #redirects be evaluated as equality between page names? (It should probably include a note about efficiency for its comment, just like the one for $smwgQDefaultNamespaces--taking out redirect equality support can make a HUGE difference for more complex queries. HUGE being the difference between a three subquery search taking 34 minutes with redirect equivalency and .3 seconds without.) In any case, my semantic wiki has been happily humming and searching along since I set $smwgQEqualitySupport to false.But I also need a way to tell where annotations in the wiki are pointing to redirected pages, so they can be fixed. So I've made a special page for redirected annotations that extends SMWQueryPage. This will make it easy for people to find where annotations are pointing to redirected pages and fix them to point at the right ones. Messages that would are added for this page: // Messages for Redirected Annotations Special 'redirectedannotations' = 'Redirected annotations', 'smw_redirectedannotations_docu' = 'The object of these annotations points to a redirected page.', 'smw_redirectedannotations_template' = 'On page $1, the annotation $2::$3 redirects to $4.', It required one additional function to SMW_SQLStore in the Special page functions section: function getRedirectedAnnotationsSpecial($requestoptions = NULL) { wfProfileIn (SMWSQLStore::getRedirectedAnnotationsSpecial (SMW)); $db = wfGetDB( DB_SLAVE ); $options = ' ORDER BY subject_title'; if ($requestoptions-limit 0) { $options .= ' LIMIT ' . $requestoptions-limit; } if ($requestoptions-offset 0) { $options .= ' OFFSET ' . $requestoptions- offset; } extract( $db-tableNames('smw_relations', 'redirect') ); $res = $db-query(SELECT subject_title, subject_namespace, relation_title, object_title, object_namespace, rd_title, rd_namespace FROM $smw_relations . INNER JOIN $redirect ON $smw_relations.object_id = $redirect.rd_from . $options, 'SMW::getRedirectedAnnotationsSpecial'); $result = array(); while($row = $db-fetchObject($res)) { $subject_page = Title::newFromText($row- subject_title, $row- subject_namespace); $relation_page = Title::newFromText($row- relation_title, SMW_NS_PROPERTY); $object_page = Title::newFromText($row- object_title, $row- object_namespace); $rd_page = Title::newFromText($row- rd_title, $row-rd_namespace); $result[] = array($subject_page, $relation_page, $object_page, $rd_page); } wfProfileOut (SMWSQLStore::getRedirectedAnnotationsSpecial (SMW)); return $result; } And it needs to be added in the enableSemantics() function in SMW_GlobalFunctions.php: $wgSpecialPages['RedirectedAnnotations'] = array ('SMWSpecialPage','RedirectedAnnotations', 'smwfDoSpecialRedirectedAnnotations', $smwgIP . '/specials/QueryPages/ SMW_SpecialRedirectedAnnotations.php'); I've attached the PHP code for the page itself. Am looking for input
[SMW-devel] Search form parser hook
I wanted to put a SMW search box on the front page and other pages, so I made a search parser hook that will insert one. I don't know how useful it would be to others, but I put it up on the wiki just in case someone else was wanting one: http://ontoworld.org/wiki/Semantic_MediaWiki_search_form_parser_hook - This SF.net email is sponsored by: Splunk Inc. Still grepping through log files to find problems? Stop. Now Search log events and configuration files using AJAX and a browser. Download your FREE copy of Splunk now http://get.splunk.com/ ___ Semediawiki-devel mailing list Semediawiki-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/semediawiki-devel