From: <mo...@gm...> - 2010-11-22 22:25:23
|
Hello everyone My goal is to automatically update the value of a specific property in an article. A first idea was to use the SMWWriter-Extension (which needs the PageObjectModel-Extension). The use of the smwwrite-action only led to an error (Fatal error: Call to undefined method POMTemplate_SMWW::addParameter() in C:SMWWriter.php on line 895). My next idea was to simply receive the whole article, replace the part of the affected variable and update the page with this new article contents. When I try to receive the article data, I get kind of an unexpected content for me. An example: I want to update the weight of a dog instance called “Tom”, i.e. set the property HasWeightInKg from “20” to “25” I use the following API-command to receive the article contents: http://localhost/mediawiki/api.php?action=query&prop=revisions&titles=Tom&rvprop=content . The content that is given back to me is (in XML-format): ---------- <?xml version="1.0"?> <api> <query> <pages> <page pageid="4322" ns="0" title="Tom"> <revisions> <rev xml:space="preserve">{{WeightTemplate |Weight=20 }} This is a second simple test.</rev> </revisions> </page> </pages> </query> </api> ---------- I was rather expecting the content to contain a string like “[[HasWeightInKg:20]]”. I guess that updating the above content of the page doesn’t have any effect on the actual semantic values of the page/instance, does it? I am also missing other data, such as the category, to which the page belongs (i.e. its class). Therefore, this also seems to be a dead end… => My question: Does someone know how to properly receive & update semantic properties of a page by using the API? Kind regards, Simon PS: I am also using the Jena TripleStore, where the properties also should be updated. When I manually edit a page, this is done without problems. I am not sure what I have to pay attention to when using the API... -- Neu: GMX De-Mail - Einfach wie E-Mail, sicher wie ein Brief! Jetzt De-Mail-Adresse reservieren: http://portal.gmx.net/de/go/demail |
From: Markus K. <ma...@se...> - 2010-11-23 08:28:58
|
On 22/11/2010 22:25, mo...@gm... wrote: > Hello everyone > > My goal is to automatically update the value of a specific property in an article. > > A first idea was to use the SMWWriter-Extension (which needs the PageObjectModel-Extension). The use of the smwwrite-action only led to an error (Fatal error: Call to undefined method POMTemplate_SMWW::addParameter() in C:SMWWriter.php on line 895). This should not happen. Maybe Denny can comment on this. In general, SMWWriter ist the suggested way of addressing your problem. -- Markus > > My next idea was to simply receive the whole article, replace the part of the affected variable and update the page with this new article contents. When I try to receive the article data, I get kind of an unexpected content for me. > An example: I want to update the weight of a dog instance called “Tom”, i.e. set the property HasWeightInKg from “20” to “25” I use the following API-command to receive the article contents: http://localhost/mediawiki/api.php?action=query&prop=revisions&titles=Tom&rvprop=content . The content that is given back to me is (in XML-format): > ---------- > <?xml version="1.0"?> > <api> > <query> > <pages> > <page pageid="4322" ns="0" title="Tom"> > <revisions> > <rev xml:space="preserve">{{WeightTemplate > |Weight=20 > }} > This is a second simple test.</rev> > </revisions> > </page> > </pages> > </query> > </api> > ---------- > I was rather expecting the content to contain a string like “[[HasWeightInKg:20]]”. I guess that updating the above content of the page doesn’t have any effect on the actual semantic values of the page/instance, does it? I am also missing other data, such as the category, to which the page belongs (i.e. its class). Therefore, this also seems to be a dead end… > > => My question: Does someone know how to properly receive& update semantic properties of a page by using the API? > > Kind regards, > Simon > > PS: I am also using the Jena TripleStore, where the properties also should be updated. When I manually edit a page, this is done without problems. I am not sure what I have to pay attention to when using the API... > > > > |
From: Samuel L. <sam...@ri...> - 2010-11-30 21:07:01
|
As far as I see, the problem is that the semantic properties in your article are set by a template call (the "{{WeightTemplate|Weight=20}}" part), where the actual semantic tags are created in the Template:WeightTemplate template article (Have you checked the wiki source of that one?), and unfortunately SMWWriter does not support editing facts defined via template calls at the moment. This might also explain why you do not see the category tags directly in the article, since it is maybe too defined in the template. Best Regards // Samuel On 11/22/2010 11:25 PM, mo...@gm... wrote: > ---------- > <?xml version="1.0"?> > <api> > <query> > <pages> > <page pageid="4322" ns="0" title="Tom"> > <revisions> > <rev xml:space="preserve">{{WeightTemplate > |Weight=20 > }} > This is a second simple test.</rev> > </revisions> > </page> > </pages> > </query> > </api> > ---------- > I was rather expecting the content to contain a string like “[[HasWeightInKg:20]]”. I guess that updating the above content of the page doesn’t have any effect on the actual semantic values of the page/instance, does it? I am also missing other data, such as the category, to which the page belongs (i.e. its class). Therefore, this also seems to be a dead end… > > => My question: Does someone know how to properly receive & update semantic properties of a page by using the API? > > Kind regards, > Simon -- Samuel Lampa --------------------------------------- Student @ Uppsala University Blog: http://saml.rilspace.org --------------------------------------- |
From: Samuel L. <sam...@ri...> - 2010-11-30 21:19:00
|
On 11/22/2010 11:25 PM, mo...@gm... wrote: > PS: I am also using the Jena TripleStore, where the properties also should be updated. When I manually edit a page, this is done without problems. I am not sure what I have to pay attention to when using the API.. If you are comfortable with SPARQL (and supposed you get SMWWriter to work with the suggestions sent previously in this list) you might also be interested to experiment with using the RDFIO extension for updating facts via SPARQL (Using the SPARQL+ syntax or ARC [1]). There's a screencast demo of this feature in an early version of RDFIO at [2]. Best Regards // Samuel Lampa [0] http://www.mediawiki.org/wiki/Extension:RDFIO [1] http://arc.semsol.org/docs/v2/sparql+ [2] http://saml.rilspace.org/screencast-rdf-import-and-sparql-update-in-semantic-mediawiki |
From: Patrick N. <ma...@pa...> - 2010-12-01 01:55:48
Attachments:
signature.asc
|
Hi, On 2010-11-23 06:25, mo...@gm... wrote: > My goal is to automatically update the value of a specific property in an article. [...] I use the pywikipedia bot framework for the task, and apply regular expression search & replace operations on the template calls. It's a bit slow, but it's reliable and straight forward. Patrick. -- Key ID: 0x86E346D4 http://patrick-nagel.net/key.asc Fingerprint: 7745 E1BE FA8B FBAD 76AB 2BFC C981 E686 86E3 46D4 |