How to install gnowsys-studio
- Download and install ActivePython
- Open Command Prompt
- Type
pypm install gnowsys-studio
Dependencies
- BeautifulSoup>=3.2.0
- diff-match-patch>=20120106
- django>=1.4
- django-4store>=0.3
- django-grappelli>=2.3.4
- django-mptt>=0.4.2
- django-ratings>=0.3.6
- django-registration>=0.8
- django-reversion>=1.5.1
- django-tagging>=0.3.1
- django-xmlrpc>=0.1.3
- html5lib>=0.95
- HTTP4Store>=0.2
- PIL>=1.1.7
- pyparsing>=1.5.5
- rdflib>=3.0.0
Imports
- gstudio
- objectapp
- gstudio.admin
- gstudio.management
- gstudio.migrations
- gstudio.plugins
- gstudio.spam_checker
- gstudio.templatetags
- gstudio.tests
- gstudio.urls
- gstudio.url_shortener
- gstudio.views
- gstudio.xmlrpc
- objectapp.admin
- objectapp.management
- objectapp.migrations
- objectapp.plugins
- objectapp.spam_checker
- objectapp.templatetags
- objectapp.tests
- objectapp.urls
- objectapp.url_shortener
- objectapp.views
- objectapp.xmlrpc
Lastest release
GNOWSYS Studio
A collaborative workspace (studio) for constructing and publishing semantic knowledge networks and ontologies.
Features
The application is devided into two sub-apps. Gstudio and Objectapp. The former includes classes for organizing the network or constructing an ontology. The latter includes classes for holding the instances of object-types, process-types and system-types.
Gstudio Components
Metatypes
To hold Classes which have other classes as its members. e.g. "abstract noun", "adjective", "phylem", "class", "genus", "species" etc.
Object types
To hold Classes: e.g. "thing", "being", "living being", "animals", "cat", "place", "person" etc.
Relation types
To define binary relations (object properties) between classes and objects. e.g., "part of", "friend of", "composed of", "located in" etc. * Attribute types
To define datatype properties for classes and objects. e.g., "population", "size", "length", "height", "first name", "phone number" etc.
System types
To bring together some of the classes into a system or an ontology, a collection of the types defined above for convenience. You can bring together the required classes, relations and attributes into
Process types
To define a process as prior and post states of classes or objects.
Attributes
To store attributes
Relations
To store binary relations
Node Specification
A node specified (described) by its relations or attributes or both.
Relation Specification
To create an expression using a relation with a subject, e.g., "friend of Tom", "components of a cell" etc.
Attribute Specification
To specify an attribute by a subject to say for example: population of India, color of a flower etc. These do not yeild a proposition but an expression, which can be used as a subject in another sentence.
Expression
Expression is more like a relation between two terms, but it does not yeild a proposition, e.g., "Researchers in India", "students residing in India" etc. It is modelled more like relation class, except that the result is not a proposition/triple.
Union
To define a class by a union relation between two or more classes.
Complement
To define a class as a compleemnt of two or more classes.
Intersection
To define a class as an intersection between two or more classes.
Objectapp Components
Objects
To hold the instances of Object types: "Mumbai", "Tom" etc.
Systems
To hold the instances of System types.
Processes
To hold the instances of processes.
Online Collaborative Platform
The application is built as a collaborative on line platform with the following features.
Version Control
All the changes by the users will be recorded. This feature is implemented using using django-reversion.
User Registration
Basic registration, authentication mechanism.
Other Semantic Web features
- data in RDF format
- rdf feed to a triple store
- sparql endpoint
Features to be implemented
- export and import of standard knowledge representation languages: CL, OWL, XTM etc.
Features adopted from Django-Blog-Zinnia
The following features are adopted from django-blog-zinnia code base with a lot of gratitude. Thanks to an excellent codebase of django-blog-zinnia, which taught us best software development practices as well! After reviewing each feature for the purpose of semantic blogging, we will retain or extend the following features.
The features listed here are not thourougly tested. There is a likelyhood of misbehavior.
- Comments
- Sitemaps
- Archives views
- Related entries
- Private entries
- RSS or Atom Feeds
- Tags
- Advanced search engine
- Prepublication and expiration
- Editing in MarkDown, Textile or reStructuredText
- Widgets (Popular entries, Similar entries, ...)
- Spam protection with Akismet or TypePad
- Admin dashboard
- MetaWeblog API, xmlrpc
- Ping Directories
- Ping External links
- Bit.ly support
- Twitter support
- Gravatar support
- Django-CMS plugins
- Collaborative work
- Tags autocompletion
- Entry model extendable
- Pingback/Trackback support
- Blogger conversion utility
- WordPress conversion utility
- WYMeditor, TinyMCE and MarkItUp support
- Ready to use and extendables templates
- Windows Live Writer compatibility
Examples
A sandbox site will give you a preview of the application. Visit http://sbox.gnowledge.org/
Project Page
The project management is done from Savannah: https://savannah.gnu.org/projects/gnowsys/
Mailing list
Join this list if you are intersted in using or contributing as a hacker.
Installation
Dependencies
Make sure to install these packages prior to installation :
- Python 2.x >= 2.5
- Django >= 1.3
- django-mptt >= 0.4.2
- django-tagging >= 0.3.1
- BeautifulSoup >= 3.2.0
- django-xmlrpc >= 0.1.3
- pyparsing >= 1.5.5
- `django-reversion`_ >= 1.5.1
- `django-grappelli`_ >= 2.3.4
- `django-ratings`_ >= 0.3.6
- `rdflib`_ >= 3.0.0
- `django-registration`_ >=0.8
- `django-4store`_ >= 0.3
- `HTTP4Store`_ >= 0.2
- `html5lib`_ >= 0.95
- `PIL`_ >= 1.1.7
- `diff-match-patch`_ >= 20120106
Note that all the dependencies will be resolved if you install gnowsys-studio with :program:`pip` or :program:`easy_install`, excepting Django.
Getting the code
For the latest version of Gstudio use :program:`easy_install`:
$ easy_install gnowsys-studio
or use :program:`pip`:
$ pip install gnowsys-studio
You could also retrieve the last sources from https://github.com/gnowgi/django-gstudio. Clone the repository using :program:`git` and run the installation script:
$ git clone git://github.com/gnowgi/gnowsys-studio.git $ cd gnowsys-studio $ python setup.py install
or more easily via :program:`pip`:
$ pip install -e git://github.com/gnowgi/gnowsys-studio.git#egg=gnowsys-studio
Applications
Then register :mod:`gstudio`, objectapp, and these following applications in the :setting:`INSTALLED_APPS` section of your project's settings.
- INSTALLED_APPS = (
- 'django.contrib.auth', 'django.contrib.sitemaps', 'django.contrib.comments', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.messages', 'django.contrib.sites', 'mptt', 'reversion', 'tagging', 'django_xmlrpc', 'grappelli.dashboard', 'grappelli', 'gstudio', 'objectapp', 'django.contrib.admin', 'django.contrib.admindocs', 'django.contrib.staticfiles', 'djangoratings', 'registration', 'graphviz', 'demo', 'fourstore', 'HTTP4Store', 'html5lib', # Uncomment the south entry to activate south for database migrations # Please do install south before uncommenting # command: sudo pip install south # 'south', )
Template Context Processors
Add these following :setting:`template context processors<TEMPLATE_CONTEXT_PROCESSORS>` if not already present.
TEMPLATE_CONTEXT_PROCESSORS = ( 'django.core.context_processors.auth', 'django.core.context_processors.i18n', 'django.core.context_processors.request', 'django.core.context_processors.media', 'django.core.context_processors.static', 'gstudio.context_processors.version',) # Optional
URLs
Add the following lines to your project's urls.py in order to display the site.
Note that the default gnowsys-studio URLset is provided for convenient usage, but you can customize your URLs if you want. Here's how:
- urlpatterns = patterns(
'', (r'^$', 'django.views.generic.simple.redirect_to',
{'url': '/home/'}),
url(r'^home/', home_view), url(r'^more/',more_view), url(r'^nodetypes/', include('gstudio.urls')), url(r'^objects/', include('objectapp.urls')), url(r'^comments/', include('django.contrib.comments.urls')), #URL for XMLRPC url(r'^xmlrpc/$','django_xmlrpc.views.handle_xmlrpc'), url(r'^i18n/', include('django.conf.urls.i18n')), url(r'^admin/doc/', include('django.contrib.admindocs.urls')), url(r'^admin/gstudio/', include('gstudio.urls.ajaxurls')), url(r'^admin/', include(admin.site.urls)), url(r'^objects/admin/', include(admin.site.urls)), url(r'^nodetypes/admin/', include(admin.site.urls)), url(r'^grappelli/', include('grappelli.urls')), url(r'^accounts/register/$', register, {'backend': 'gstudio.regbackend.MyBackend','form_class': UserRegistrationForm}, name='registration_register'),
url(r'^accounts/', include('registration.urls')),
- url(r'^$', 'django.views.generic.simple.redirect_to',
- { 'template': 'index.html' }, 'index'),
)
Static Files
Since the version 1.3 of Django, gnowsys-studio uses the :mod:`django.contrib.staticfiles` application to serve the static files needed. Please refer to https://docs.djangoproject.com/en/dev/howto/static-files/ for more informations about serving static files.