Semantic Mediawiki Python Binding
Project description
Sematic MediaWiki Python binding
This package depends on the mwclient 0.7 development version
To install (will install mwclient 0.7dev automatically)
pip install smw
Or install from github
pip install git+git://github.com/baojie/smw.git
Usage example
from smw.SemanticMediaWiki import SemanticMediaWiki
# change this to your wiki's config
config = {
"host": "www.foo.com",
"path": "/wiki/",
"http_login": None,
"http_pass": None,
"wiki_login": None,
"wiki_pass": None,
}
wiki = SemanticMediaWiki(
host=config["host"],
path=config["path"],
http_login=config["http_login"],
http_pass=config["http_pass"],
wiki_login=config["wiki_login"],
wiki_pass=config["wiki_pass"])
# or from a config file (json)
# default ~/.smwrc
# sample config https://github.com/baojie/smw/blob/master/smwrc.sample
wiki = SemanticMediaWiki.from_config()
query = r"""
{{#ask:
[[SMW_PYTHON_TEST::+]]
|?SMW_PYTHON_TEST
|format = json
}}
"""
res = wiki.get_data(query, format='json')
[query_result, query_path] = res
# process query results from SMW >= 1.8.0
items = query_result['results']
for page in items:
print items[page]
page_name = 'Foo'
# get page metadata in RDF/XML
rdf = wiki.getRDF(page_name)
# get page metadata in JSON, simplified for human readability
json_data = wiki.getJSON(page_name)
# parse any wiki script
result = wiki.parse("'''Hello'''")
# get raw page
# this is useful when query is composed on Special:Ask
html = wiki.get('/wiki/Main_Page')
json_result = wiki.get('/wiki/index.php?title=Special:Ask&q=[[Category:People]]&p[format]=json')
# add semantic annotations
page = wiki.site.Pages['SnowWhite']
old_content = page.edit()
new_content = old_content + "[[Category:Princess]][[friend of::Grumpy]]"
page.save(new_content)
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
smw-0.1.3.2.tar.gz
(6.3 kB
view hashes)
Built Distribution
smw-0.1.3.2-py2.7.egg
(10.1 kB
view hashes)