From: stephen s. <ste...@gm...> - 2011-08-04 15:13:46
|
Hi, I'm struggling to work out how to do date related queries via the api. I'd like to code up something equivalent to {{#ask:[[Has person:someuser]] [[Has end date::>{{#time:d F Y H:i:s}}]] [[:+]] [[modification date::+]] }} but I have no idea how to do the date comparison. This is what I have stabbed at so far: $store = smwfGetStore(); $propertyValue = SMWPropertyValue::makeProperty('Has_person'); $wikiPage = SMWWikiPageValue::makePage('someuser', NS_USER); $description = new SMWValueDescription($wikiPage); $personDescription = new SMWSomeProperty($propertyValue, $description); $date = date( 'd F Y H:i:s' ); $description = new SMWTimeValue( '_dat' ); $description->setUserValue( $date ); $propertyValue = SMWPropertyValue::makeProperty('Has_end_date'); $dateDescription = new SMWSomeProperty($property, $description); // I don't know how I encode the comparison operator in [[Has end date::>{{#time:d F Y H:i:s}}]] $queryDescription = new SMWConjunction(array($personDescription, $dateDescription)); $query = new SMWQuery($queryDescription); $printer = new SMWAutoResultPrinter('', SMWQueryProcessor::INLINE_QUERY); $result = $printer->getResult($store->getQueryResult($query), array(), 1); I used Yury Katkov excellent programming examples page as a starting point ( http://www.semantic-mediawiki.org/wiki/User:Ganqqwerty) Any help greatly appreciated Steve |
From: stephen s. <ste...@gm...> - 2011-09-17 23:06:52
|
Any help on this would be greatly appreciated. I know I am very near as I got it working but managed to break it again and can't figure out what I did I want to be able to perform relative date queries via the api. I can do a specific query as in {{ask:[[Has end date::2011/08/11]]}} To query a specific date that exists: $date = date( '2011/08/11' ); $description = new SMWTimeValue( '_dat' ); $description->setUserValue( $date ); $has_date_decription = new SMWValueDescription($description); $propertyValue = SMWPropertyValue::makeProperty('Has_end_date'); $dateDescription = new SMWSomeProperty($propertyValue, $has_date_decription); $query = new SMWQuery($dateDescription); but I want to be able to query relative dates as in {{ask:[[Has end date::>2011/08/11]]}} The solution is something like ... $date = '>'; $date .= date( '2011/08/11' ); $description = new SMWTimeValue( '_dat' ); $description->setUserValue( $date ); $has_date_decription = new SMWValueDescription($description); $propertyValue = SMWPropertyValue::makeProperty('Has_end_date'); $dateDescription = new SMWSomeProperty($propertyValue, $has_date_decription); $query = new SMWQuery($dateDescription); but this doesn't work. I'm pulling my hair out with this so please, please help. On 4 August 2011 16:13, stephen sutcliffe <ste...@gm...> wrote: > Hi, > > I'm struggling to work out how to do date related queries via the api. > I'd like to code up something equivalent to > > > {{#ask:[[Has person:someuser]] [[Has end date::>{{#time:d F Y > H:i:s}}]] [[:+]] [[modification > date::+]] }} > > but I have no idea how to do the date comparison. This is what I have > stabbed at so far: > > > $store = smwfGetStore(); > > $propertyValue = SMWPropertyValue::makeProperty('Has_person'); > $wikiPage = SMWWikiPageValue::makePage('someuser', NS_USER); > $description = new SMWValueDescription($wikiPage); > $personDescription = new SMWSomeProperty($propertyValue, $description); > > > $date = date( 'd F Y H:i:s' ); > $description = new SMWTimeValue( '_dat' ); > $description->setUserValue( $date ); > $propertyValue = SMWPropertyValue::makeProperty('Has_end_date'); > $dateDescription = new SMWSomeProperty($property, $description); > > // I don't know how I encode the comparison operator in [[Has end > date::>{{#time:d F Y H:i:s}}]] > > $queryDescription = new SMWConjunction(array($personDescription, > $dateDescription)); > > > $query = new SMWQuery($queryDescription); > > > $printer = new SMWAutoResultPrinter('', SMWQueryProcessor::INLINE_QUERY); > $result = $printer->getResult($store->getQueryResult($query), array(), 1); > > > I used Yury Katkov excellent programming examples page as a starting > point ( http://www.semantic-mediawiki.org/wiki/User:Ganqqwerty) > > > Any help greatly appreciated > > Steve > |
From: Tim B. <twb...@gm...> - 2011-09-19 20:22:52
|
I have a property (called "has tags") that stores multiple comma separated values. Is there a way to get a unique list of the "has tags" values? For example: Page1, [[has tags:: a, b, c]] Page2, [[has tags:: b, c]] Page3, [[has tags:: c, d]] Unique list of all tags: a b c d Thank you, Tim Bishop |
From: Jeroen De D. <jer...@gm...> - 2011-09-19 20:48:10
|
Hey, Please refrain from hijacking other peoples threads. In order to get unique tags, you can use the ArrayExtension extension [0] to turn the query results into arrays, combine them, and filter on unique items. It's probably easier if you have a property [[Has tag::]] set multiple times in your page, and then query on that. There is no way to filter on uniqueness directly in the query AFAIK. [0] https://secure.wikimedia.org/wikipedia/mediawiki/wiki/Extension:ArrayExtension Cheers -- Jeroen De Dauw http://www.bn2vs.com Don't panic. Don't be evil. -- On 19 September 2011 22:22, Tim Bishop <twb...@gm...> wrote: > I have a property (called "has tags") that stores multiple comma separated > values. > > Is there a way to get a unique list of the "has tags" values? > > For example: > > Page1, [[has tags:: a, b, c]] > Page2, [[has tags:: b, c]] > Page3, [[has tags:: c, d]] > > Unique list of all tags: > a > b > c > d > > Thank you, > Tim Bishop > > ------------------------------------------------------------------------------ > All the data continuously generated in your IT infrastructure contains a > definitive record of customers, application performance, security > threats, fraudulent activity and more. Splunk takes this data and makes > sense of it. Business sense. IT sense. Common sense. > http://p.sf.net/sfu/splunk-d2dcopy1 > _______________________________________________ > Semediawiki-user mailing list > Sem...@li... > https://lists.sourceforge.net/lists/listinfo/semediawiki-user > |
From: Laurent A. <la...@al...> - 2011-09-19 20:48:59
|
Not with the API, but you can do that with the Semantic Query Form Tool extension : http://www.mediawiki.org/wiki/Extension:SemanticQueryFormTool - Laurent On Mon, Sep 19, 2011 at 4:22 PM, Tim Bishop <twb...@gm...> wrote: > I have a property (called "has tags") that stores multiple comma separated > values. > > Is there a way to get a unique list of the "has tags" values? > > For example: > > Page1, [[has tags:: a, b, c]] > Page2, [[has tags:: b, c]] > Page3, [[has tags:: c, d]] > > Unique list of all tags: > a > b > c > d > > Thank you, > Tim Bishop > > ------------------------------------------------------------------------------ > All the data continuously generated in your IT infrastructure contains a > definitive record of customers, application performance, security > threats, fraudulent activity and more. Splunk takes this data and makes > sense of it. Business sense. IT sense. Common sense. > http://p.sf.net/sfu/splunk-d2dcopy1 > _______________________________________________ > Semediawiki-user mailing list > Sem...@li... > https://lists.sourceforge.net/lists/listinfo/semediawiki-user > -- - Laurent Alquier http://www.linfa.net |
From: Günther Z. <zeh...@mo...> - 2011-09-20 08:01:27
|
Yes getting unique values (including single fields of multi-value properties) was one of the main reasons I wrote the SQFT. However, it depends if your 'has tag' is declared as multi-value property (which I don't think) or as string property. {{#sask: ?has tags | explode=}} would be the simplest form (comma is the default separator value for the parameter explode) to get a unique list (as pop-down list or specify other value of return parameter) from string type properties [1] However, you would need to use SMW 1.5.* not SMW 1.6 to use SQFT. Gu [1] http://mbw.molgen.mpg.de/wiki/Help:Sask ----- Original Message ----- From: Laurent Alquier <la...@al...> To: Tim Bishop <twb...@gm...> Cc: sem...@li... Sent: Monday, September 19, 2011 10:48 PM Subject: Re: [Semediawiki-user] SMW Ask queries via the api Not with the API, but you can do that with the Semantic Query Form Tool extension : http://www.mediawiki.org/wiki/Extension:SemanticQueryFormTool - Laurent On Mon, Sep 19, 2011 at 4:22 PM, Tim Bishop <twb...@gm...> wrote: > I have a property (called "has tags") that stores multiple comma separated > values. > > Is there a way to get a unique list of the "has tags" values? > > For example: > > Page1, [[has tags:: a, b, c]] > Page2, [[has tags:: b, c]] > Page3, [[has tags:: c, d]] > > Unique list of all tags: > a > b > c > d > > Thank you, > Tim Bishop > > ------------------------------------------------------------------------------ > All the data continuously generated in your IT infrastructure contains a > definitive record of customers, application performance, security > threats, fraudulent activity and more. Splunk takes this data and makes > sense of it. Business sense. IT sense. Common sense. > http://p.sf.net/sfu/splunk-d2dcopy1 > _______________________________________________ > Semediawiki-user mailing list > Sem...@li... > https://lists.sourceforge.net/lists/listinfo/semediawiki-user > -- - Laurent Alquier http://www.linfa.net ------------------------------------------------------------------------------ All the data continuously generated in your IT infrastructure contains a definitive record of customers, application performance, security threats, fraudulent activity and more. Splunk takes this data and makes sense of it. Business sense. IT sense. Common sense. http://p.sf.net/sfu/splunk-d2dcopy1 _______________________________________________ Semediawiki-user mailing list Sem...@li... https://lists.sourceforge.net/lists/listinfo/semediawiki-user |
From: Jeroen De D. <jer...@gm...> - 2011-09-19 20:50:22
|
Hey, What exactly do you want to do (ie, what do you need such code for)? Manually building such a query might not be the best approach to take. Cheers -- Jeroen De Dauw http://www.bn2vs.com Don't panic. Don't be evil. -- On 18 September 2011 01:06, stephen sutcliffe <ste...@gm...>wrote: > Any help on this would be greatly appreciated. I know I am very near > as I got it working but managed to break it again and can't figure out > what I did > > I want to be able to perform relative date queries via the api. I can > do a specific query as in > > {{ask:[[Has end date::2011/08/11]]}} > > To query a specific date that exists: > > $date = date( '2011/08/11' ); > $description = new SMWTimeValue( '_dat' ); > $description->setUserValue( $date ); > $has_date_decription = new SMWValueDescription($description); > $propertyValue = SMWPropertyValue::makeProperty('Has_end_date'); > $dateDescription = new SMWSomeProperty($propertyValue, > $has_date_decription); > $query = new SMWQuery($dateDescription); > > but I want to be able to query relative dates as in > > {{ask:[[Has end date::>2011/08/11]]}} > > The solution is something like ... > > $date = '>'; > $date .= date( '2011/08/11' ); > $description = new SMWTimeValue( '_dat' ); > $description->setUserValue( $date ); > $has_date_decription = new SMWValueDescription($description); > $propertyValue = SMWPropertyValue::makeProperty('Has_end_date'); > $dateDescription = new SMWSomeProperty($propertyValue, > $has_date_decription); > $query = new SMWQuery($dateDescription); > > but this doesn't work. > > I'm pulling my hair out with this so please, please help. > > On 4 August 2011 16:13, stephen sutcliffe <ste...@gm...> > wrote: > > Hi, > > > > I'm struggling to work out how to do date related queries via the api. > > I'd like to code up something equivalent to > > > > > > {{#ask:[[Has person:someuser]] [[Has end date::>{{#time:d F Y > > H:i:s}}]] [[:+]] [[modification > > date::+]] }} > > > > but I have no idea how to do the date comparison. This is what I have > > stabbed at so far: > > > > > > $store = smwfGetStore(); > > > > $propertyValue = SMWPropertyValue::makeProperty('Has_person'); > > $wikiPage = SMWWikiPageValue::makePage('someuser', NS_USER); > > $description = new SMWValueDescription($wikiPage); > > $personDescription = new SMWSomeProperty($propertyValue, $description); > > > > > > $date = date( 'd F Y H:i:s' ); > > $description = new SMWTimeValue( '_dat' ); > > $description->setUserValue( $date ); > > $propertyValue = SMWPropertyValue::makeProperty('Has_end_date'); > > $dateDescription = new SMWSomeProperty($property, $description); > > > > // I don't know how I encode the comparison operator in [[Has end > > date::>{{#time:d F Y H:i:s}}]] > > > > $queryDescription = new SMWConjunction(array($personDescription, > > $dateDescription)); > > > > > > $query = new SMWQuery($queryDescription); > > > > > > $printer = new SMWAutoResultPrinter('', > SMWQueryProcessor::INLINE_QUERY); > > $result = $printer->getResult($store->getQueryResult($query), array(), > 1); > > > > > > I used Yury Katkov excellent programming examples page as a starting > > point ( http://www.semantic-mediawiki.org/wiki/User:Ganqqwerty) > > > > > > Any help greatly appreciated > > > > Steve > > > > > ------------------------------------------------------------------------------ > BlackBerry® DevCon Americas, Oct. 18-20, San Francisco, CA > http://p.sf.net/sfu/rim-devcon-copy2 > _______________________________________________ > Semediawiki-user mailing list > Sem...@li... > https://lists.sourceforge.net/lists/listinfo/semediawiki-user > |
From: Dan B. <dan...@gm...> - 2011-09-19 21:14:19
|
/me attempts a daring double hijack... What would be really cool would be to get the number of times each unique value was used. Could properties like these be added as special properties of the associated property? BTW, I wrote up how to use arrays to get the unique list here: http://smw.referata.com/wiki/Tips On 19 September 2011 21:49, Jeroen De Dauw <jer...@gm...> wrote: > Hey, > > What exactly do you want to do (ie, what do you need such code for)? > > Manually building such a query might not be the best approach to take. > > Cheers > > -- > Jeroen De Dauw > http://www.bn2vs.com > Don't panic. Don't be evil. > -- > > > On 18 September 2011 01:06, stephen sutcliffe <ste...@gm...>wrote: > >> Any help on this would be greatly appreciated. I know I am very near >> as I got it working but managed to break it again and can't figure out >> what I did >> >> I want to be able to perform relative date queries via the api. I can >> do a specific query as in >> >> {{ask:[[Has end date::2011/08/11]]}} >> >> To query a specific date that exists: >> >> $date = date( '2011/08/11' ); >> $description = new SMWTimeValue( '_dat' ); >> $description->setUserValue( $date ); >> $has_date_decription = new SMWValueDescription($description); >> $propertyValue = SMWPropertyValue::makeProperty('Has_end_date'); >> $dateDescription = new SMWSomeProperty($propertyValue, >> $has_date_decription); >> $query = new SMWQuery($dateDescription); >> >> but I want to be able to query relative dates as in >> >> {{ask:[[Has end date::>2011/08/11]]}} >> >> The solution is something like ... >> >> $date = '>'; >> $date .= date( '2011/08/11' ); >> $description = new SMWTimeValue( '_dat' ); >> $description->setUserValue( $date ); >> $has_date_decription = new SMWValueDescription($description); >> $propertyValue = SMWPropertyValue::makeProperty('Has_end_date'); >> $dateDescription = new SMWSomeProperty($propertyValue, >> $has_date_decription); >> $query = new SMWQuery($dateDescription); >> >> but this doesn't work. >> >> I'm pulling my hair out with this so please, please help. >> >> On 4 August 2011 16:13, stephen sutcliffe <ste...@gm...> >> wrote: >> > Hi, >> > >> > I'm struggling to work out how to do date related queries via the api. >> > I'd like to code up something equivalent to >> > >> > >> > {{#ask:[[Has person:someuser]] [[Has end date::>{{#time:d F Y >> > H:i:s}}]] [[:+]] [[modification >> > date::+]] }} >> > >> > but I have no idea how to do the date comparison. This is what I have >> > stabbed at so far: >> > >> > >> > $store = smwfGetStore(); >> > >> > $propertyValue = SMWPropertyValue::makeProperty('Has_person'); >> > $wikiPage = SMWWikiPageValue::makePage('someuser', NS_USER); >> > $description = new SMWValueDescription($wikiPage); >> > $personDescription = new SMWSomeProperty($propertyValue, $description); >> > >> > >> > $date = date( 'd F Y H:i:s' ); >> > $description = new SMWTimeValue( '_dat' ); >> > $description->setUserValue( $date ); >> > $propertyValue = SMWPropertyValue::makeProperty('Has_end_date'); >> > $dateDescription = new SMWSomeProperty($property, $description); >> > >> > // I don't know how I encode the comparison operator in [[Has end >> > date::>{{#time:d F Y H:i:s}}]] >> > >> > $queryDescription = new SMWConjunction(array($personDescription, >> > $dateDescription)); >> > >> > >> > $query = new SMWQuery($queryDescription); >> > >> > >> > $printer = new SMWAutoResultPrinter('', >> SMWQueryProcessor::INLINE_QUERY); >> > $result = $printer->getResult($store->getQueryResult($query), array(), >> 1); >> > >> > >> > I used Yury Katkov excellent programming examples page as a starting >> > point ( http://www.semantic-mediawiki.org/wiki/User:Ganqqwerty) >> > >> > >> > Any help greatly appreciated >> > >> > Steve >> > >> >> >> ------------------------------------------------------------------------------ >> BlackBerry® DevCon Americas, Oct. 18-20, San Francisco, CA >> http://p.sf.net/sfu/rim-devcon-copy2 >> _______________________________________________ >> Semediawiki-user mailing list >> Sem...@li... >> https://lists.sourceforge.net/lists/listinfo/semediawiki-user >> > ------------------------------------------------------------------------------ > All the data continuously generated in your IT infrastructure contains a > definitive record of customers, application performance, security > threats, fraudulent activity and more. Splunk takes this data and makes > sense of it. Business sense. IT sense. Common sense. > http://p.sf.net/sfu/splunk-d2dcopy1 > _______________________________________________ > Semediawiki-user mailing list > Sem...@li... > https://lists.sourceforge.net/lists/listinfo/semediawiki-user > |
From: Jeroen De D. <jer...@gm...> - 2011-09-19 21:50:09
|
Hey, > What would be really cool would be to get the number of times each > unique value was used. Could properties like these be added as special > properties of the associated property? Having some special property (ie something built-in SMW) for this does not seem easily feasible to me. You can of course just have your own property that you set to the result of something counting the unique items you obtain doing the steps you described in the tip. Cheers -- Jeroen De Dauw http://www.bn2vs.com Don't panic. Don't be evil. -- |