Hi Larry,
in general, the best place to ask SMW questions is the semediawiki-user mailing list. Quick answers below:
On 11.02.2016 04:16, Larry Martell wrote:
I am a total newbie with SMW, and I've inherited a system that no one knows any details about.
I have a few questions:
How can I find out what and where the database behind the SMW is? I would think there is a config file somewhere, but I can't find it.
The data is stored in the database you have configured for your wiki. The config file where this is defined is LocalSettings.php. You can (additionally) store it in an RDF database if you wish (for this, you need to install such a database management system and add some config options; see SMW documentation).
When I look at a page with browsebysubject I see a type associated with the data, e.g.:
{u'property': u'HasSide', u'dataitem': [{u'item': u'Left', u'type': 2}]} {u'property': u'HasReferenceDataset', u'dataitem': [{u'item': u'RefData, u'type': 9}]}
What do these types mean?
This is probably not relevant to what you want to do.
I have been asked to edit 1000's of pages to remove 2 fields and add a new field.
Take a look at the extension ReplaceText. It can probably do this for you.
To do this with the API would I get the data with browsebysubject and modify that dict? But then how would I write that back?
Or would I get the raw data with index.php?action=raw, modify that, and then write it back with edit (https://www.mediawiki.org/wiki/API:Edit)
An easier way to modify page texts in a one-time operation might be to export the text using Special:Export, modify the resulting XML file with any tool you like, and then re-import the file. Won't work well if your wiki is edited by many people, but if you have the modification script ready you could do this in a few minutes, which is good enough on a relatively static site.
Whatever method you pick, changing the page text in one or the other way it the right way of changing SMW data. SMW's primary data storage is the page text, so you do not need to worry about any specific database related to SMW: the extension will make sure that its contents is updated to agree with the page text. *Never* edit SMW's database tables directly. Your changes will be lost as soon as the wiki pages are edited next time.
This is also why SMW does not have a direct API to write data. Data must be stored in wiki pages, and there is no good way to change an arbitrary page (with all the complexities of MediaWiki: templates, parser functions, LUA code, etc.) so that it will lead to a specific data being stored. It would be easy enough to add some data (in hidden mark-up at the bottom of a page), but modifying existing data will not work in general -- you need to know how your templates work for knowing how to change the contents to get the result you want.
Cheers,
Markus
Thanks much! Larry
MediaWiki-l mailing list To unsubscribe, go to: https://lists.wikimedia.org/mailman/listinfo/mediawiki-l