From: <and...@f2...> - 2010-08-19 13:02:00
|
Hello. Unfortunately I got no response to this. Is it really not possible to return pages where a particular property is null? Seems like an obvious thing to want to do! Thanks Andrew. >> Hi. Is it possible to run a query that returns pages where a particular property is empty? For example, I want to dump all entries where where a person has not filled in the address field. Thanks Andrew. |
From: <and...@f2...> - 2010-08-19 14:39:14
|
Hi. Thanks to everyone for their input. What a helpful mailing list :) The thing is having it so that fields are set to "Unknown" is not very user friendly. The fields might be "Hobbies", "Favourite Food", "Fax Number" etc. So there will be times when it is genuinely empty - Fax Number being a good example. You'll end up with a number of fields saying "Unknown". Just looks a bit officious! I guess I can set the critical ones like Address. This is more of an admin function rather than general purpose, so execution time is not really an issue. Now back to SQFT. I have to confess I'm really struggling with it. Why oh why can't Semantic Forms take some of this functionality! ;) Thanks Andrew. >> Andrew and Laurent, As you've noted, this is not directly possible, but there is a workaround. I would suggest is using a parser function within each relevant page (easy enough to put in a template) that will evaluate whether the property has a value, and if it does not, place the page into a category or assign it a tag of some sort (I've used a "string"-type property). How exactly this can/should be done depends on the specifics of your installation, but for this method, you need the ParserFunctions extension. This is best done through a template/form that is used to set values on a page. It can be done retrospectively with a #show: statement, but this is not recommended because may have to re-save all the relevant pages and refresh your data. Recommended Example (in a template or form based on template values) {{#if: {{{AddressValue}}}|[[Address::{{{AddressValue}}}}}]]|[[Address is empty::True]]}} Example (on a page, based on reflexive query - not recommended unless absolutely necessary, e.g., values not set from a template/form, be sure to enclose in <noinclude> tags as well) {{#if: {{#show: {{PAGENAME}}|?Address}}| |[[Address is empty::True]]}} If you're tracking multiple properties like this, you can adapt the above into a universal template, that you would call like {{NullValueCheck|propertyname}}. This won't catch bogus entries or where people enter just a space, but if "Address" is a string-type property, you can quite easily weed those out. Alternatively, if you are using forms/templates for this data, you could set a default value for address to be something like "NEEDS ADDRESS", but this might not fully address existing pages. Hope this helps, Alex -- Alex M. Hendler ontolawgy(tm) LLC http://ontolawgy.com |
From: trueskew <tru...@gm...> - 2010-08-19 15:05:47
|
I suppose "No Fax" and "No Favorite" might work for some of your cases versus "Unknown". But I'll second your issue, that's what I was thinking when I allowed empty properties on my forms, aesthetics for the user. In terms of field input and their fields (like string, radio, boxes), perhaps the compromising answer to aesthetics and search logic is to introduce (NULL), so that you get Fax Number=(NULL) DocType=(NULL) and when editing the page, (NULL) equates to blank for a Fax Number or no radio button marked for a DocType when the fields include "|default=(NULL)". -----Original Message----- From: and...@f2... [mailto:and...@f2...] Sent: Thursday, August 19, 2010 7:39 AM To: sem...@li... Subject: Re: [Semediawiki-user] Empty property query - possible? Hi. Thanks to everyone for their input. What a helpful mailing list :) The thing is having it so that fields are set to "Unknown" is not very user friendly. The fields might be "Hobbies", "Favourite Food", "Fax Number" etc. So there will be times when it is genuinely empty - Fax Number being a good example. You'll end up with a number of fields saying "Unknown". Just looks a bit officious! I guess I can set the critical ones like Address. This is more of an admin function rather than general purpose, so execution time is not really an issue. Now back to SQFT. I have to confess I'm really struggling with it. Why oh why can't Semantic Forms take some of this functionality! ;) Thanks Andrew. >> Andrew and Laurent, As you've noted, this is not directly possible, but there is a workaround. I would suggest is using a parser function within each relevant page (easy enough to put in a template) that will evaluate whether the property has a value, and if it does not, place the page into a category or assign it a tag of some sort (I've used a "string"-type property). How exactly this can/should be done depends on the specifics of your installation, but for this method, you need the ParserFunctions extension. This is best done through a template/form that is used to set values on a page. It can be done retrospectively with a #show: statement, but this is not recommended because may have to re-save all the relevant pages and refresh your data. Recommended Example (in a template or form based on template values) {{#if: {{{AddressValue}}}|[[Address::{{{AddressValue}}}}}]]|[[Address is empty::True]]}} Example (on a page, based on reflexive query - not recommended unless absolutely necessary, e.g., values not set from a template/form, be sure to enclose in <noinclude> tags as well) {{#if: {{#show: {{PAGENAME}}|?Address}}| |[[Address is empty::True]]}} If you're tracking multiple properties like this, you can adapt the above into a universal template, that you would call like {{NullValueCheck|propertyname}}. This won't catch bogus entries or where people enter just a space, but if "Address" is a string-type property, you can quite easily weed those out. Alternatively, if you are using forms/templates for this data, you could set a default value for address to be something like "NEEDS ADDRESS", but this might not fully address existing pages. Hope this helps, Alex -- Alex M. Hendler ontolawgy(tm) LLC http://ontolawgy.com ---------------------------------------------------------------------------- -- This SF.net email is sponsored by Make an app they can't live without Enter the BlackBerry Developer Challenge http://p.sf.net/sfu/RIM-dev2dev _______________________________________________ Semediawiki-user mailing list Sem...@li... https://lists.sourceforge.net/lists/listinfo/semediawiki-user |
From: Yaron K. <ya...@gm...> - 2010-08-19 16:37:19
|
> > .Now back to SQFT. I have to confess I'm really struggling with it. Why oh > why > can't Semantic Forms take some of this functionality! ;) It's a planned feature. -Yaron |
From: trueskew <tru...@gm...> - 2010-08-19 17:06:43
|
I've got a couple areas of my wiki where I could use an inline query template like this: * {{{1}}} {{#if:{{{2}}} | ** {{{2}}}: {{{3}}} }} {{#if:{{{4}}} | ** {{{4}}}: {{{5}}} }} {{#if:{{{6}}} | ** {{{6}}}: {{{7}}} }} etc. where the even variables are data titles. Today I've got 3 or 4 templates without the #if:s that have fixed titles, and that was fine. Now I've got this great search engine and I'd like the user to pick what information they want listed. It would be easy to set up the inline query to pass only certain values to the template. What I'm missing is: Is there a way to pass a fixed string to a template through in inline query? To illustrate, it'd be something like: {{#ask: [[Category:BuildClassifier]] |mainlabel={{PAGENAME}} {{#if: {{{BuildMaterialSelected|}}} | | (send "Build Material") |?Has BuildMaterial= }} {{#if: {{{BuildLocationSelected|}}} | | (send "Build Location") |?Has BuildLocation= }} {{#if: {{{BuildCostSelected|}}} | | (send "Build Cost") |?Has BuildCost= }} |format=template |template=VariableBuildList }} Is there any way to do (send "string") in this context? My alternative is to be less flexible with the output, or to create every possible permutation. My real pages have 7-10 parameters, so the latter won't work out too well. For what it's worth, I know I ask questions that should lie in RTFM, but I've learned a lot of stuff here that either isn't documented well or isn't documented. So as always, I'll take everyone's silence as "no, there's no way". Thanks for reading. |
From: John A. <John@Irie-Inc.com> - 2010-08-23 13:34:17
|
You want to be able to have an ask query have one of it's 'columns' of output be a fixed string, yes? This is yet another request for the ability to specify an expression (even if it is a constant expression), rather than just a property, to the output of #ask. Some vendors have a place where people can submit their 'feature requests' and other users vote them up or down. Does SMW have such a facility? If not yet, any objection to setting one up? On Thu, Aug 19, 2010 at 1:05 PM, trueskew <tru...@gm...> wrote: > I've got a couple areas of my wiki where I could use an inline query > template like this: > > * {{{1}}} {{#if:{{{2}}} | > ** {{{2}}}: {{{3}}} }} {{#if:{{{4}}} | > ** {{{4}}}: {{{5}}} }} {{#if:{{{6}}} | > ** {{{6}}}: {{{7}}} }} etc. > > where the even variables are data titles. Today I've got 3 or 4 templates > without the #if:s that have fixed titles, and that was fine. Now I've got > this great search engine and I'd like the user to pick what information > they > want listed. It would be easy to set up the inline query to pass only > certain values to the template. What I'm missing is: Is there a way to > pass a fixed string to a template through in inline query? To illustrate, > it'd be something like: > > {{#ask: [[Category:BuildClassifier]] > |mainlabel={{PAGENAME}} {{#if: {{{BuildMaterialSelected|}}} | > | (send "Build Material") > |?Has BuildMaterial= }} {{#if: {{{BuildLocationSelected|}}} | > | (send "Build Location") > |?Has BuildLocation= }} {{#if: {{{BuildCostSelected|}}} | > | (send "Build Cost") > |?Has BuildCost= }} > |format=template > |template=VariableBuildList > }} > > Is there any way to do (send "string") in this context? My alternative is > to be less flexible with the output, or to create every possible > permutation. My real pages have 7-10 parameters, so the latter won't work > out too well. > > For what it's worth, I know I ask questions that should lie in RTFM, but > I've learned a lot of stuff here that either isn't documented well or isn't > documented. So as always, I'll take everyone's silence as "no, there's no > way". Thanks for reading. > > > > ------------------------------------------------------------------------------ > This SF.net email is sponsored by > > Make an app they can't live without > Enter the BlackBerry Developer Challenge > http://p.sf.net/sfu/RIM-dev2dev > _______________________________________________ > Semediawiki-user mailing list > Sem...@li... > https://lists.sourceforge.net/lists/listinfo/semediawiki-user > -- John Arrowwood John (at) Irie (dash) Inc (dot) com John (at) Arrowwood Photography (dot) com John (at) Hanlons Razor (dot) com -- http://www.irie-inc.com/ http://arrowwood.blogspot.com/ |
From: Neill M. <ne...@nl...> - 2010-08-23 15:48:09
|
Hi John. You could raise it as an enhancement on Bugzilla. https://bugzilla.wikimedia.org/enter_bug.cgi?product=MediaWiki%20extensions I'd vote for that one! Cheers Neill. > You want to be able to have an ask query have one of it's 'columns' of > output be a fixed string, yes? > > This is yet another request for the ability to specify an expression (even > if it is a constant expression), rather than just a property, to the output > of #ask. > > Some vendors have a place where people can submit their 'feature requests' > and other users vote them up or down. Does SMW have such a facility? If > not yet, any objection to setting one up? > > On Thu, Aug 19, 2010 at 1:05 PM, trueskew<tru...@gm...> wrote: > >> I've got a couple areas of my wiki where I could use an inline query >> template like this: >> >> * {{{1}}} {{#if:{{{2}}} | >> ** {{{2}}}: {{{3}}} }} {{#if:{{{4}}} | >> ** {{{4}}}: {{{5}}} }} {{#if:{{{6}}} | >> ** {{{6}}}: {{{7}}} }} etc. >> >> where the even variables are data titles. Today I've got 3 or 4 templates >> without the #if:s that have fixed titles, and that was fine. Now I've got >> this great search engine and I'd like the user to pick what information >> they >> want listed. It would be easy to set up the inline query to pass only >> certain values to the template. What I'm missing is: Is there a way to >> pass a fixed string to a template through in inline query? To illustrate, >> it'd be something like: >> >> {{#ask: [[Category:BuildClassifier]] >> |mainlabel={{PAGENAME}} {{#if: {{{BuildMaterialSelected|}}} | >> | (send "Build Material") >> |?Has BuildMaterial= }} {{#if: {{{BuildLocationSelected|}}} | >> | (send "Build Location") >> |?Has BuildLocation= }} {{#if: {{{BuildCostSelected|}}} | >> | (send "Build Cost") >> |?Has BuildCost= }} >> |format=template >> |template=VariableBuildList >> }} >> >> Is there any way to do (send "string") in this context? My alternative is >> to be less flexible with the output, or to create every possible >> permutation. My real pages have 7-10 parameters, so the latter won't work >> out too well. >> >> For what it's worth, I know I ask questions that should lie in RTFM, but >> I've learned a lot of stuff here that either isn't documented well or isn't >> documented. So as always, I'll take everyone's silence as "no, there's no >> way". Thanks for reading. >> >> >> >> ------------------------------------------------------------------------------ >> This SF.net email is sponsored by >> >> Make an app they can't live without >> Enter the BlackBerry Developer Challenge >> http://p.sf.net/sfu/RIM-dev2dev >> _______________________________________________ >> Semediawiki-user mailing list >> Sem...@li... >> https://lists.sourceforge.net/lists/listinfo/semediawiki-user >> > > |
From: trueskew <tru...@gm...> - 2010-08-23 16:08:25
|
Great information, and another good thing to document somewhere. I'll do the submission. -----Original Message----- From: Neill Mitchell [mailto:ne...@nl...] Sent: Monday, August 23, 2010 8:48 AM To: sem...@li... Subject: Re: [Semediawiki-user] Inline Query template use - Passing Static Arguments Hi John. You could raise it as an enhancement on Bugzilla. https://bugzilla.wikimedia.org/enter_bug.cgi?product=MediaWiki%20extensions I'd vote for that one! Cheers Neill. > You want to be able to have an ask query have one of it's 'columns' of > output be a fixed string, yes? > > This is yet another request for the ability to specify an expression > (even if it is a constant expression), rather than just a property, to > the output of #ask. > > Some vendors have a place where people can submit their 'feature requests' > and other users vote them up or down. Does SMW have such a facility? > If not yet, any objection to setting one up? > > On Thu, Aug 19, 2010 at 1:05 PM, trueskew<tru...@gm...> wrote: > >> I've got a couple areas of my wiki where I could use an inline query >> template like this: >> >> * {{{1}}} {{#if:{{{2}}} | >> ** {{{2}}}: {{{3}}} }} {{#if:{{{4}}} | >> ** {{{4}}}: {{{5}}} }} {{#if:{{{6}}} | >> ** {{{6}}}: {{{7}}} }} etc. >> >> where the even variables are data titles. Today I've got 3 or 4 >> templates without the #if:s that have fixed titles, and that was >> fine. Now I've got this great search engine and I'd like the user to >> pick what information they want listed. It would be easy to set up >> the inline query to pass only certain values to the template. What >> I'm missing is: Is there a way to pass a fixed string to a template >> through in inline query? To illustrate, it'd be something like: >> >> {{#ask: [[Category:BuildClassifier]] >> |mainlabel={{PAGENAME}} {{#if: {{{BuildMaterialSelected|}}} | (send >> |"Build Material") ?Has BuildMaterial= }} {{#if: >> |{{{BuildLocationSelected|}}} | (send "Build Location") ?Has >> |BuildLocation= }} {{#if: {{{BuildCostSelected|}}} | (send "Build >> |Cost") ?Has BuildCost= }} format=template template=VariableBuildList >> }} >> >> Is there any way to do (send "string") in this context? My >> alternative is to be less flexible with the output, or to create >> every possible permutation. My real pages have 7-10 parameters, so >> the latter won't work out too well. >> >> For what it's worth, I know I ask questions that should lie in RTFM, >> but I've learned a lot of stuff here that either isn't documented >> well or isn't documented. So as always, I'll take everyone's silence >> as "no, there's no way". Thanks for reading. >> >> >> >> --------------------------------------------------------------------- >> --------- >> This SF.net email is sponsored by >> >> Make an app they can't live without >> Enter the BlackBerry Developer Challenge >> http://p.sf.net/sfu/RIM-dev2dev >> _______________________________________________ >> Semediawiki-user mailing list >> Sem...@li... >> https://lists.sourceforge.net/lists/listinfo/semediawiki-user >> > > ---------------------------------------------------------------------------- -- This SF.net email is sponsored by Make an app they can't live without Enter the BlackBerry Developer Challenge http://p.sf.net/sfu/RIM-dev2dev _______________________________________________ Semediawiki-user mailing list Sem...@li... https://lists.sourceforge.net/lists/listinfo/semediawiki-user |
From: <and...@f2...> - 2010-08-19 16:23:50
|
Hello. Thanks for your response. Coming from a database background, I kind of assumed that some sort of (NULL) would be stored. I guess I need to start thinking more wiki! Perhaps this could be achieved in the code? I think it would be useful. Thanks Andrew. >> I suppose "No Fax" and "No Favorite" might work for some of your cases versus "Unknown". But I'll second your issue, that's what I was thinking when I allowed empty properties on my forms, aesthetics for the user. In terms of field input and their fields (like string, radio, boxes), perhaps the compromising answer to aesthetics and search logic is to introduce (NULL), so that you get Fax Number=(NULL) DocType=(NULL) and when editing the page, (NULL) equates to blank for a Fax Number or no radio button marked for a DocType when the fields include "|default=(NULL)". |
From: <and...@f2...> - 2010-08-20 13:26:10
|
Hello Yaron. That really is good news. I think it will elevate Semantic Forms to even greater heights :) Dare I ask for a rough timescale? All the best. Andrew. >> > > .Now back to SQFT. I have to confess I'm really struggling with it. Why oh > > why > > can't Semantic Forms take some of this functionality! ;) It's a planned feature. -Yaron |
From: Yaron K. <ya...@gm...> - 2010-08-20 13:47:25
|
Hi, That's nice of you. If I had to guess, I'd guess that I can add this feature in within the next three months. -Yaron On Fri, Aug 20, 2010 at 9:26 AM, <and...@f2...> wrote: > Hello Yaron. > > That really is good news. I think it will elevate Semantic Forms to even > greater > heights :) Dare I ask for a rough timescale? > > All the best. > Andrew. > > >> > > > .Now back to SQFT. I have to confess I'm really struggling with it. Why > oh > > > why > > > can't Semantic Forms take some of this functionality! ;) > > It's a planned feature. > > -Yaron > > > > > > > ------------------------------------------------------------------------------ > This SF.net email is sponsored by > > Make an app they can't live without > Enter the BlackBerry Developer Challenge > http://p.sf.net/sfu/RIM-dev2dev > _______________________________________________ > Semediawiki-user mailing list > Sem...@li... > https://lists.sourceforge.net/lists/listinfo/semediawiki-user > -- WikiWorks · MediaWiki Consulting · http://wikiworks.com |
From: Neill M. <ne...@nl...> - 2010-08-20 14:40:26
|
This is indeed great news. I agree with Andrew, this will transform SF. Looking forward to it very much. Cheers Neill. On 20/08/10 14:47, Yaron Koren wrote: > Hi, > > That's nice of you. If I had to guess, I'd guess that I can add this feature > in within the next three months. > > -Yaron > > On Fri, Aug 20, 2010 at 9:26 AM,<and...@f2...> wrote: > > >> Hello Yaron. >> >> That really is good news. I think it will elevate Semantic Forms to even >> greater >> heights :) Dare I ask for a rough timescale? >> >> All the best. >> Andrew. >> >> >>>> .Now back to SQFT. I have to confess I'm really struggling with it. Why >>>> >> oh >> >>>> why >>>> can't Semantic Forms take some of this functionality! ;) >>>> >> It's a planned feature. >> >> -Yaron >> >> >> >> >> >> >> ------------------------------------------------------------------------------ >> This SF.net email is sponsored by >> >> Make an app they can't live without >> Enter the BlackBerry Developer Challenge >> http://p.sf.net/sfu/RIM-dev2dev >> _______________________________________________ >> Semediawiki-user mailing list >> Sem...@li... >> https://lists.sourceforge.net/lists/listinfo/semediawiki-user >> >> > > > |
From: <and...@f2...> - 2010-08-20 13:30:36
|
Hello Tim. Thanks for the information. Solves my problem! Daft question, but what do I need to do to install triple store? Thanks Andrew. >> This is possible if you have the triple store installed and can thus use SPARQL queries: This query returns all instances of Person that do not have an email address. The OPTIONAL keyword is critical to ensure unbound instances are returned. {{#SPARQL: SELECT * { ?p a cat:Person. OPTIONAL {?p prop:Email ?email} . FILTER(!BOUND(?email)). } |format=broadtable }} |
From: Smith, T. <smi...@pg...> - 2010-08-20 14:23:05
|
Hi Andrew, You can find all the info for the Triple Store Connector here: http://wiki.ontoprise.com/smwforum/index.php/List_of_Extensions/Triple_store_connector (TSC) In short, there are two versions - one free from SourceForge, the other from Ontoprise for enterprise level applications. I'm using the free version which works well for smaller scale wikis. Once you install the triple store, one thing I've found to be helpful is that you can set a logging level such that it will display the queries that are passed to it. This has made debugging a query much easier at times. One thing I discovered just this morning is that any triples that are created/stored using Semantic Internal Objects are not placed in the triple store and are thus not accessible to SPARQL for querying. Something to keep in mind if you are using SIO. The triple store also provides a SPARQL endpoint so that the semantic content of the wiki can be queried from any webpage. Hope that helps! Tim > -----Original Message----- > From: and...@f2... [mailto:and...@f2...] > Sent: Friday, August 20, 2010 9:30 AM > To: sem...@li... > Subject: Re: [Semediawiki-user] Empty property query - possible? > > Hello Tim. > > Thanks for the information. Solves my problem! Daft question, but what > do I need > to do to install triple store? > > Thanks > Andrew. > > >> > This is possible if you have the triple store installed and can thus > use SPARQL > queries: > > This query returns all instances of Person that do not have an email > address. > The OPTIONAL keyword is critical to ensure unbound instances are > returned. > > {{#SPARQL: SELECT * > { > ?p a cat:Person. > OPTIONAL {?p prop:Email ?email} . > FILTER(!BOUND(?email)). > } > |format=broadtable > }} > > > > ----------------------------------------------------------------------- > ------- > This SF.net email is sponsored by > > Make an app they can't live without > Enter the BlackBerry Developer Challenge > http://p.sf.net/sfu/RIM-dev2dev > _______________________________________________ > Semediawiki-user mailing list > Sem...@li... > https://lists.sourceforge.net/lists/listinfo/semediawiki-user |
From: <and...@f2...> - 2010-08-20 14:48:31
|
Hi Tim. Thanks a lot for the information. I will try out the extension! All the best Andrew. >> Hi Andrew, You can find all the info for the Triple Store Connector here: http://wiki.ontoprise.com/smwforum/index.php/List_of_Extensions/Triple_store_connector (TSC) In short, there are two versions - one free from SourceForge, the other from Ontoprise for enterprise level applications. I'm using the free version which works well for smaller scale wikis. Once you install the triple store, one thing I've found to be helpful is that you can set a logging level such that it will display the queries that are passed to it. This has made debugging a query much easier at times. One thing I discovered just this morning is that any triples that are created/stored using Semantic Internal Objects are not placed in the triple store and are thus not accessible to SPARQL for querying. Something to keep in mind if you are using SIO. The triple store also provides a SPARQL endpoint so that the semantic content of the wiki can be queried from any webpage. Hope that helps! Tim |
From: Laurent A. <la...@al...> - 2010-08-19 13:43:06
|
Unfortunately, it is not possible - mostly for performance reasons. In order to do that, the system would have to first retrieve all pages that match the rest of the query and from these pages, return only pages that do not have the property requested (which means get the list of all properties for each page and check that the request property is not there). It is not impossible to do - someone could write an extension that runs such queries. The problem is that is would rapidly become a slow query to perform. - Laurent On Thu, Aug 19, 2010 at 9:01 AM, <and...@f2...> wrote: > Hello. > > Unfortunately I got no response to this. Is it really not possible to > return > pages where a particular property is null? Seems like an obvious thing to > want > to do! > > Thanks > Andrew. > > >> > Hi. > > Is it possible to run a query that returns pages where a particular > property is > empty? For example, I want to dump all entries where where a person has not > filled in the address field. > > Thanks > Andrew. > > > > > ------------------------------------------------------------------------------ > This SF.net email is sponsored by > > Make an app they can't live without > Enter the BlackBerry Developer Challenge > http://p.sf.net/sfu/RIM-dev2dev > _______________________________________________ > Semediawiki-user mailing list > Sem...@li... > https://lists.sourceforge.net/lists/listinfo/semediawiki-user > -- - Laurent Alquier http://www.linfa.net |
From: Alex M. H. <amh...@on...> - 2010-08-19 13:54:15
|
Andrew and Laurent, As you've noted, this is not directly possible, but there is a workaround. I would suggest is using a parser function within each relevant page (easy enough to put in a template) that will evaluate whether the property has a value, and if it does not, place the page into a category or assign it a tag of some sort (I've used a "string"-type property). How exactly this can/should be done depends on the specifics of your installation, but for this method, you need the ParserFunctions extension. This is best done through a template/form that is used to set values on a page. It can be done retrospectively with a #show: statement, but this is not recommended because may have to re-save all the relevant pages and refresh your data. Recommended Example (in a template or form based on template values) {{#if: {{{AddressValue}}}|[[Address::{{{AddressValue}}}}}]]|[[Address is empty::True]]}} Example (on a page, based on reflexive query - not recommended unless absolutely necessary, e.g., values not set from a template/form, be sure to enclose in <noinclude> tags as well) {{#if: {{#show: {{PAGENAME}}|?Address}}| |[[Address is empty::True]]}} If you're tracking multiple properties like this, you can adapt the above into a universal template, that you would call like {{NullValueCheck|propertyname}}. This won't catch bogus entries or where people enter just a space, but if "Address" is a string-type property, you can quite easily weed those out. Alternatively, if you are using forms/templates for this data, you could set a default value for address to be something like "NEEDS ADDRESS", but this might not fully address existing pages. Hope this helps, Alex -- Alex M. Hendler ontolawgy(tm) LLC http://ontolawgy.com ------- Original message ------- From: "Laurent Alquier" <la...@al...> To: sem...@li... Cc: Subject: Re: [Semediawiki-user] Empty property query - possible? Date: Thursday, August 19, 2010 09:42:59 EDT > Unfortunately, it is not possible - mostly for performance reasons. > > In order to do that, the system would have to first retrieve all pages > that > match the rest of the query and from these pages, return only pages that > do > not have the property requested (which means get the list of all > properties > for each page and check that the request property is not there). > > It is not impossible to do - someone could write an extension that runs > such > queries. > > The problem is that is would rapidly become a slow query to perform. > > - Laurent > > On Thu, Aug 19, 2010 at 9:01 AM, <and...@f2...> wrote: > >> Hello. >> >> Unfortunately I got no response to this. Is it really not possible to >> return >> pages where a particular property is null? Seems like an obvious thing >> to >> want >> to do! >> >> Thanks >> Andrew. >> >> >> >> Hi. >> >> Is it possible to run a query that returns pages where a particular >> property is >> empty? For example, I want to dump all entries where where a person has >> not >> filled in the address field. >> >> Thanks >> Andrew. >> >> >> >> >> ------------------------------------------------------------------------------ >> This SF.net email is sponsored by >> >> Make an app they can't live without >> Enter the BlackBerry Developer Challenge >> http://p.sf.net/sfu/RIM-dev2dev >> _______________________________________________ >> Semediawiki-user mailing list >> Sem...@li... >> https://lists.sourceforge.net/lists/listinfo/semediawiki-user >> > |
From: trueskew <tru...@gm...> - 2010-08-19 14:51:21
|
Hi Andrew, For your options... I recently had the situation of having articles that could optionally link to an attachment. The user could check the attachment type (PDF, DOC, etc.) or leave the field blank to indicate that it was an article with no attachment. This was done before I new better, and as soon as I wanted a search that consisted of PDFs and non-attachment articles, I got educated. I set a default of ARTICLE for new pages so it would never be blank going forward. For existing pages, I tried to craft a clever method for finding them and filling them in, and then realized it was easier to use Special:Ask to just list my pages in a table, include the sometimes-missing field in Additional printouts, and sort by the field to put the missing entries on the top. I had 30 pages to correct, that wasn't too bad, but if you've got 100's... at least you get the list that way. - skew -----Original Message----- From: Alex M. Hendler [mailto:amh...@on...] Sent: Thursday, August 19, 2010 6:54 AM To: sem...@li...; Laurent Alquier Subject: Re: [Semediawiki-user] Empty property query - possible? ... Alternatively, if you are using forms/templates for this data, you could set a default value for address to be something like "NEEDS ADDRESS", but this might not fully address existing pages. Hope this helps, Alex -- Alex M. Hendler ontolawgy(tm) LLC http://ontolawgy.com ------- Original message ------- From: "Laurent Alquier" <la...@al...> To: sem...@li... Cc: Subject: Re: [Semediawiki-user] Empty property query - possible? Date: Thursday, August 19, 2010 09:42:59 EDT > Unfortunately, it is not possible - mostly for performance reasons. > > In order to do that, the system would have to first retrieve all pages > that match the rest of the query and from these pages, return only > pages that do not have the property requested (which means get the > list of all properties for each page and check that the request > property is not there). > > It is not impossible to do - someone could write an extension that > runs such queries. > > The problem is that is would rapidly become a slow query to perform. > > - Laurent > > On Thu, Aug 19, 2010 at 9:01 AM, <and...@f2...> wrote: > >> Hello. >> >> Unfortunately I got no response to this. Is it really not possible to >> return pages where a particular property is null? Seems like an >> obvious thing to want to do! >> >> Thanks >> Andrew. >> >> >> >> Hi. >> >> Is it possible to run a query that returns pages where a particular >> property is empty? For example, I want to dump all entries where >> where a person has not filled in the address field. >> >> Thanks >> Andrew. >> >> >> >> >> --------------------------------------------------------------------- >> --------- >> This SF.net email is sponsored by >> >> Make an app they can't live without >> Enter the BlackBerry Developer Challenge >> http://p.sf.net/sfu/RIM-dev2dev >> _______________________________________________ >> Semediawiki-user mailing list >> Sem...@li... >> https://lists.sourceforge.net/lists/listinfo/semediawiki-user >> > ---------------------------------------------------------------------------- -- This SF.net email is sponsored by Make an app they can't live without Enter the BlackBerry Developer Challenge http://p.sf.net/sfu/RIM-dev2dev _______________________________________________ Semediawiki-user mailing list Sem...@li... https://lists.sourceforge.net/lists/listinfo/semediawiki-user |
From: Patrick N. <ma...@pa...> - 2010-08-19 13:56:14
|
Hi Laurent, On 2010-08-19 13:42 UTC Laurent Alquier wrote: > Unfortunately, it is not possible - mostly for performance reasons. > > In order to do that, the system would have to first retrieve all pages that > match the rest of the query and from these pages, return only pages that do > not have the property requested (which means get the list of all properties > for each page and check that the request property is not there). > > It is not impossible to do - someone could write an extension that runs > such queries. > > The problem is that is would rapidly become a slow query to perform. The good thing is, when using templates to assign values to properties (which is recommended, and a must if you want to use Semantic Forms), you can work around this by assigning a special value to properties that would otherwise be unset. Then you can query for that special value. Example template code: [[Colour::{{{1|unknown}}}]] Via {{#ask: [[Colour::unknown]]}} you then get all pages that did use the template that usually sets the Colour property, but has no Colour parameter. So, as a rule of thumb, when you know that you probably will need to query for pages 'missing' some property, set it to a special value via the template. Patrick. -- Key ID: 0x86E346D4 http://patrick-nagel.net/key.asc Fingerprint: 7745 E1BE FA8B FBAD 76AB 2BFC C981 E686 86E3 46D4 |
From: Smith, T. <smi...@pg...> - 2010-08-19 21:51:52
|
This is possible if you have the triple store installed and can thus use SPARQL queries: This query returns all instances of Person that do not have an email address. The OPTIONAL keyword is critical to ensure unbound instances are returned. {{#SPARQL: SELECT * { ?p a cat:Person. OPTIONAL {?p prop:Email ?email} . FILTER(!BOUND(?email)). } |format=broadtable }} > -----Original Message----- > From: Laurent Alquier [mailto:la...@al...] > Sent: Thursday, August 19, 2010 9:43 AM > To: sem...@li... > Subject: Re: [Semediawiki-user] Empty property query - possible? > > Unfortunately, it is not possible - mostly for performance reasons. > > In order to do that, the system would have to first retrieve all pages > that > match the rest of the query and from these pages, return only pages > that do > not have the property requested (which means get the list of all > properties > for each page and check that the request property is not there). > > It is not impossible to do - someone could write an extension that runs > such > queries. > > The problem is that is would rapidly become a slow query to perform. > > - Laurent > > On Thu, Aug 19, 2010 at 9:01 AM, <and...@f2...> wrote: > > > Hello. > > > > Unfortunately I got no response to this. Is it really not possible to > > return > > pages where a particular property is null? Seems like an obvious > thing to > > want > > to do! > > > > Thanks > > Andrew. > > > > >> > > Hi. > > > > Is it possible to run a query that returns pages where a particular > > property is > > empty? For example, I want to dump all entries where where a person > has not > > filled in the address field. > > > > Thanks > > Andrew. > > > > > > > > > > --------------------------------------------------------------------- > --------- > > This SF.net email is sponsored by > > > > Make an app they can't live without > > Enter the BlackBerry Developer Challenge > > http://p.sf.net/sfu/RIM-dev2dev > > _______________________________________________ > > Semediawiki-user mailing list > > Sem...@li... > > https://lists.sourceforge.net/lists/listinfo/semediawiki-user > > > > > > -- > - Laurent Alquier > http://www.linfa.net > ----------------------------------------------------------------------- > ------- > This SF.net email is sponsored by > > Make an app they can't live without > Enter the BlackBerry Developer Challenge > http://p.sf.net/sfu/RIM-dev2dev > _______________________________________________ > Semediawiki-user mailing list > Sem...@li... > https://lists.sourceforge.net/lists/listinfo/semediawiki-user |