Re: [SMW-devel] {{#ask}}

2007-11-29 Thread Audra Johnson
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

2007-11-27 Thread Audra Johnson
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

2007-11-14 Thread Audra Johnson
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