merge
authorsylvain.thenault@logilab.fr
Tue, 27 Jan 2009 13:58:17 +0100
changeset 478 49dfd0bb422c
parent 474 c9b0c3c06be0 (diff)
parent 477 79eccee30049 (current diff)
child 479 ac5c9442b1fd
merge
common/entity.py
--- a/common/appobject.py	Tue Jan 27 13:52:50 2009 +0100
+++ b/common/appobject.py	Tue Jan 27 13:58:17 2009 +0100
@@ -1,7 +1,7 @@
 """Base class for dynamically loaded objects manipulated in the web interface
 
 :organization: Logilab
-:copyright: 2001-2008 LOGILAB S.A. (Paris, FRANCE), all rights reserved.
+:copyright: 2001-2009 LOGILAB S.A. (Paris, FRANCE), all rights reserved.
 :contact: http://www.logilab.fr/ -- mailto:contact@logilab.fr
 """
 __docformat__ = "restructuredtext en"
@@ -12,6 +12,8 @@
 from simplejson import dumps
 
 from logilab.common.deprecation import obsolete
+
+from rql.nodes import VariableRef, SubQuery
 from rql.stmts import Union, Select
 
 from cubicweb import Unauthorized
--- a/common/mail.py	Tue Jan 27 13:52:50 2009 +0100
+++ b/common/mail.py	Tue Jan 27 13:58:17 2009 +0100
@@ -56,9 +56,10 @@
         msg['Reply-to'] = msg['From']
     if config is not None:
         msg['X-CW'] = config.appid
-    msg['To'] = ', '.join(addrheader(addr) for addr in to_addrs if addr is not None)
+    unique_addrs = lambda addrs: sorted(set(addr for addr in addrs if addr is not None))
+    msg['To'] = ', '.join(addrheader(addr) for addr in unique_addrs(to_addrs))
     if cc_addrs:
-        msg['Cc'] = ', '.join(addrheader(addr) for addr in cc_addrs if addr is not None)
+        msg['Cc'] = ', '.join(addrheader(addr) for addr in unique_addrs(cc_addrs))
     if msgid:
         msg['Message-id'] = msgid
     if references:
--- a/common/migration.py	Tue Jan 27 13:52:50 2009 +0100
+++ b/common/migration.py	Tue Jan 27 13:58:17 2009 +0100
@@ -346,7 +346,7 @@
             if optdescr[0] == 'added':
                 optdict = self.config.get_option_def(optdescr[1])
                 if optdict.get('default') is REQUIRED:
-                    self.config.input_option(option, optdict)
+                    self.config.input_option(optdescr[1], optdict)
         self.config.generate_config(open(newconfig, 'w'))
         show_diffs(configfile, newconfig)
         if exists(newconfig):
--- a/common/mixins.py	Tue Jan 27 13:52:50 2009 +0100
+++ b/common/mixins.py	Tue Jan 27 13:58:17 2009 +0100
@@ -145,7 +145,6 @@
         return self.iterchildren()
 
     def is_leaf(self):
-        print '*' * 80
         return len(self.children()) == 0
 
     def is_root(self):
@@ -165,7 +164,11 @@
     
     @property
     def state(self):
-        return self.in_state[0].name
+        try:
+            return self.in_state[0].name
+        except IndexError:
+            self.warning('entity %s has no state', self)
+            return None
     
     @property
     def displayable_state(self):
--- a/common/selectors.py	Tue Jan 27 13:52:50 2009 +0100
+++ b/common/selectors.py	Tue Jan 27 13:58:17 2009 +0100
@@ -499,7 +499,7 @@
     propval = req.property_value('%s.%s.context' % (cls.__registry__, cls.id))
     if not propval:
         propval = cls.context
-    if context is not None and propval is not None and context != propval:
+    if context is not None and propval and context != propval:
         return 0
     return 1
 contextprop_selector = deprecated_function(match_context_prop)
--- a/common/view.py	Tue Jan 27 13:52:50 2009 +0100
+++ b/common/view.py	Tue Jan 27 13:58:17 2009 +0100
@@ -59,6 +59,8 @@
  cubicweb:tlunit            CDATA   #IMPLIED
  cubicweb:loadurl           CDATA   #IMPLIED
  cubicweb:uselabel          CDATA   #IMPLIED
+ cubicweb:facetargs         CDATA   #IMPLIED
+ cubicweb:facetName         CDATA   #IMPLIED
   "> ] '''
 
 TRANSITIONAL_DOCTYPE = u'<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd" %s>\n'
--- a/debian/control	Tue Jan 27 13:52:50 2009 +0100
+++ b/debian/control	Tue Jan 27 13:58:17 2009 +0100
@@ -5,6 +5,7 @@
 Uploaders: Sylvain Thenault <sylvain.thenault@logilab.fr> 
 Build-Depends: debhelper (>= 5.0.37.1), python (>=2.4), python-dev (>=2.4), python-central (>= 0.5)
 Standards-Version: 3.8.0
+Homepage: http://www.cubicweb.org
 XS-Python-Version: >= 2.4, << 2.6
 
 Package: cubicweb
--- a/debian/cubicweb-ctl.postinst	Tue Jan 27 13:52:50 2009 +0100
+++ b/debian/cubicweb-ctl.postinst	Tue Jan 27 13:58:17 2009 +0100
@@ -2,7 +2,7 @@
 
 case "$1" in
     configure|abort-upgrade|abort-remove|abort-deconfigure)
-        update-rc.d cubicweb defaults >/dev/null
+        update-rc.d cubicweb defaults 99 >/dev/null
     ;;
     *)
         echo "postinst called with unknown argument \`$1'" >&2
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/devtools/test/data/bootstrap_cubes	Tue Jan 27 13:58:17 2009 +0100
@@ -0,0 +1,1 @@
+person, comment
--- a/devtools/test/data/bootstrap_packages	Tue Jan 27 13:52:50 2009 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-eperson, ecomment
--- a/devtools/testlib.py	Tue Jan 27 13:52:50 2009 +0100
+++ b/devtools/testlib.py	Tue Jan 27 13:58:17 2009 +0100
@@ -113,6 +113,7 @@
         'combobox' : None,
         'csvexport' : None,
         'ecsvexport' : None,
+        'owl' : None, # XXX
         }
     valmap = {None: None, 'dtd': DTDValidator, 'xml': SaxOnlyValidator}
     no_auto_populate = ()
@@ -328,7 +329,6 @@
         """this method tries to find everything that can be tested
         for `rset` and yields a callable test (as needed in generative tests)
         """
-        rqlst = parse(rset.rql)
         propdefs = self.vreg['propertydefs']
         # make all components visible
         for k, v in propdefs.items():
--- a/doc/book/en/A03a-concepts.en.txt	Tue Jan 27 13:52:50 2009 +0100
+++ b/doc/book/en/A03a-concepts.en.txt	Tue Jan 27 13:58:17 2009 +0100
@@ -11,7 +11,7 @@
 .. image:: images/archi_globale.en.png
 
 
-`CubicWeb` framework is a server/client application framework. Those two 
+`CubicWeb` framework is a server/client application framework. Those two
 parties communicates through RQL (`CubicWeb` query language implementation)
 and ResultSet (which will be explained in :ref:`TermsVocabulary`).
 
@@ -44,7 +44,7 @@
   stored in the database at the time an instance is created. `CubicWeb`
   provides a certain number of system entities included automatically as
   it is necessary for the core of `CubicWeb` and a library of
-  cubes (which defined application entities) that can be explicitely 
+  cubes (which defined application entities) that can be explicitely
   included if necessary.
 
 *entity type*
@@ -69,7 +69,7 @@
 *relation definition*
   A relation definition is a 3-uple (subject entity type, relation type, object
   entity type), with an associated set of property such as cardinality, constraints...
-  
+
 *repository*
   This is the RQL server side of `CubicWeb`. Be carefull not to get
   confused with a Mercurial repository or a debian repository.
@@ -77,7 +77,7 @@
 *source*
   A data source is a container of data (SGBD, LDAP directory, `Google
   App Engine`'s datastore ...) integrated in the
-  `CubicWeb` repository. This repository has at least one source, `system` which 
+  `CubicWeb` repository. This repository has at least one source, `system` which
   contains the schema of the application, plain-text index and others
   vital informations for the system.
 
@@ -86,7 +86,7 @@
 
   - ``repository`` : repository only, accessible for clients using Pyro
   - ``twisted`` : web interface only, access the repository using Pyro
-  - ``all-in-one`` : web interface and repository in a single process. 
+  - ``all-in-one`` : web interface and repository in a single process.
      The repository could be or not accessible using Pyro.
 
 *cube*
@@ -94,7 +94,7 @@
   to provide a specific functionnality or a complete `CubicWeb` application
   potentially using other cubes. The available cubes are located in the file
   system at `/path/to/forest/cubicweb/cubes` for a Mercurial forest installation,
-  for a debian packages installation they will be located in 
+  for a debian packages installation they will be located in
   `/usr/share/cubicweb/cubes`.
   Larger applications can be built faster by importing cubes,
   adding entities and relationships and overriding the
@@ -102,7 +102,7 @@
   cubes.
 
 *instance*
-  An instance is a specific installation of one or multiple cubes. All the required 
+  An instance is a specific installation of one or multiple cubes. All the required
   configuration files necessary for the well being of your web application
   are grouped in an instance. This will refer to the cube(s) your application
   is based on.
@@ -112,7 +112,7 @@
 
 *application*
   The term application is sometime used to talk about an instance
-  and sometimes to talk of a cube depending on the context. 
+  and sometimes to talk of a cube depending on the context.
   So we would like to avoid using this term and try to use *cube* and
   *instance* instead.
 
@@ -127,7 +127,7 @@
 
 *query language*
   A full-blown query language named RQL is used to formulate requests
-  to the database or any sources such as LDAP or `Google App Engine`'s 
+  to the database or any sources such as LDAP or `Google App Engine`'s
   datastore.
 
 *views*
@@ -147,7 +147,7 @@
  This query language is inspired by SQL but is highest level, its implementation
  generates SQL.
 
- 
+
 .. _`Python Remote Object`: http://pyro.sourceforge.net/
 .. _`yams`: http://www.logilab.org/project/yams/
 
@@ -194,14 +194,14 @@
 ~~~~~~~~~~~~~~
 
 The Python API developped to interface with RQL is inspired from the standard db-api,
-with a Connection object having the methods cursor, rollback and commit essentially. 
+with a Connection object having the methods cursor, rollback and commit essentially.
 The most important method is the `execute` method of a cursor :
 
 `execute(rqlstring, args=None, eid_key=None, build_descr=True)`
 
 :rqlstring: the RQL query to execute (unicode)
 :args: if the query contains substitutions, a dictionnary containing the values to use
-:eid_key: 
+:eid_key:
    an implementation detail of the RQL queries cache implies that if a substitution
    is used to introduce an eid *susceptible to raise the ambiguities in the query
    type resolution*, then we have to specify the correponding key in the dictionnary
@@ -210,14 +210,14 @@
 
 The `Connection` object owns the methods `commit` and `rollback`. You *should
 never need to use them* during the development of the web interface based on
-the `CubicWeb` framework as it determines the end of the transaction depending 
+the `CubicWeb` framework as it determines the end of the transaction depending
 on the query execution success.
 
 .. note::
   While executing updates queries (SET, INSERT, DELETE), if a query generates
   an error related to security, a rollback is automatically done on the current
   transaction.
-  
+
 
 The `Request` class (`cubicweb.web`)
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
@@ -243,7 +243,7 @@
     key or the value `default` if the key is not defined
   * `set_session_data(key, value)`, assign a value to a key
   * `del_session_data(key)`,  suppress the value associated to a key
-    
+
 
 :Cookies handling:
   * `get_cookie()`, returns a dictionnary containing the value of the header
@@ -290,7 +290,7 @@
   `__registry__`) and its identifier (attribute `id`). Usually we do not have
   to take care of the register, only the identifier `id`.
 
-We can find a certain number of attributes and methods defined in this class 
+We can find a certain number of attributes and methods defined in this class
 and common to all the application objects.
 
 At the recording, the following attributes are dynamically added to
@@ -333,7 +333,7 @@
     also call the method `complete()` on the entity before returning it
 
 :Data formatting:
-  * `format_date(date, date_format=None, time=False)` returns a string for a 
+  * `format_date(date, date_format=None, time=False)` returns a string for a
     mx date time according to application's configuration
   * `format_time(time)` returns a string for a mx date time according to
     application's configuration
@@ -342,8 +342,8 @@
 
   * `external_resource(rid, default=_MARKER)`, access to a value defined in the
     configuration file `external_resource`
-    
-  * `tal_render(template, variables)`, renders a precompiled page template with 
+
+  * `tal_render(template, variables)`, renders a precompiled page template with
     variables in the given dictionary as context
 
 .. note::
@@ -357,7 +357,7 @@
               PrimaryView.f(self, arg1)
 
   You'd better write: ::
-  
+
       class Truc(PrimaryView):
           def f(self, arg1):
               super(Truc, self).f(arg1)
@@ -374,7 +374,7 @@
 in order to provide a specific feature or even a complete application using
 others cubes.
 
-You can decide to write your own set of cubes if you wish to re-use the 
+You can decide to write your own set of cubes if you wish to re-use the
 entity types you develop. Lots of cubes are available from the `CubicWeb
 Forge`_ under a free software license.
 
@@ -388,12 +388,12 @@
 A cube is structured as follows:
 
 ::
-  
+
   mycube/
   |
   |-- data/
   |   |-- cubes.mycube.css
-  |   |-- cubes.mycube.js  
+  |   |-- cubes.mycube.js
   |   `-- external_resources
   |
   |-- debian/
@@ -437,12 +437,12 @@
   |
   `-- views.py
 
-    
+
 We can use subpackages instead of python modules for ``views.py``, ``entities.py``,
 ``schema.py`` or ``hooks.py``. For example, we could have:
 
 ::
-  
+
   mycube/
   |
   |-- entities.py
@@ -451,7 +451,7 @@
       |-- forms.py
       |-- primary.py
       `-- widgets.py
-  
+
 
 where :
 
@@ -472,13 +472,13 @@
 * file ``__pkginfo__.py`` provides component meta-data, especially the distribution
   and the current version (server side and web interface) or sub-cubes used by
   the cube.
- 
- 
+
+
 At least you should have:
 
 * the file ``__pkginfo__.py``
 * the schema definition
-  XXX false, we may want to have cubes which are only adding a service, 
+  XXX false, we may want to have cubes which are only adding a service,
   no persistent data (eg embeding for instance)
 
 
--- a/doc/book/en/B0011-schema-stdlib.en.txt	Tue Jan 27 13:52:50 2009 +0100
+++ b/doc/book/en/B0011-schema-stdlib.en.txt	Tue Jan 27 13:58:17 2009 +0100
@@ -37,34 +37,54 @@
 An application is based on several basic cubes. In the set of available
 basic cubes we can find for example :
 
-* `comment`, provides an entity type for `Comment` allowing us to comment others
-  site's entities
-
-* `mailinglist`, provides an entity type for `Mailinglist` which groups informations
-  in a discussion list
+* addressbook_: PhoneNumber and PostalAddress
 
-* `file`, provides entity types for `File` et `Image` used to represent
-  files (text or binary) with additionnal informations such as MIME type or
-  encoding.
-  
-* `link`, provides an entity type for hypertext link (`Link`)
+* basket_: Basket (like a shopping cart)
 
-* `blog`, provides an entity type weblog (`Blog`)
-
-* `person`, provides an entity type for a person (`Person`)
+* blog_: Blog (a *very* basic blog)
 
-* `addressbook`, provides an entity type used to represent phone 
-  numbers (`PhoneNumber`) and mailing address (`PostalAddress`)
-  
-* `classtags`, categorization system based on tags (`Tag`)
+* comment_: Comment (to attach comment threads to entities)
 
-* `classfolders`, categorization system based on folders hierarchy in order 
-  to create navigation sections (`Folder`)
-
-* `email`, archiving management for emails (`Email`, `Emailpart`,
+* email_: archiving management for emails (`Email`, `Emailpart`,
   `Emailthread`)
 
-* `basket`, basket management (`Basket`) allowing to group entities
+* event_: Event (define events, display them in calendars)
+
+* file_: File (to allow users to upload and store binary or text files)
+
+* folder_: Folder (to organize things but grouping them in folders)
+
+* keyword_: Keyword (to define classification schemes)
+
+* link_: Link (to collect links to web resources)
+
+* mailinglist_: MailingList (to reference a mailing-list and the URLs
+  for its archives and its admin interface)
+
+* person_: Person (easily mixed with addressbook)
+
+* tag_: Tag (to tag anything)
+
+* task_: Task (something to be done between start and stop date)
+
+* zone_: Zone (to define places within larger places, for example a
+  city in a state in a country)
+
+.. _addressbook: http://www.cubicweb.org/project/cubicweb-addressbook
+.. _basket: http://www.cubicweb.org/project/cubicweb-basket
+.. _blog: http://www.cubicweb.org/project/cubicweb-blog
+.. _comment: http://www.cubicweb.org/project/cubicweb-comment
+.. _email: http://www.cubicweb.org/project/cubicweb-email
+.. _event: http://www.cubicweb.org/project/cubicweb-event
+.. _file: http://www.cubicweb.org/project/cubicweb-file
+.. _folder: http://www.cubicweb.org/project/cubicweb-folder
+.. _keyword: http://www.cubicweb.org/project/cubicweb-keyword
+.. _link: http://www.cubicweb.org/project/cubicweb-link
+.. _mailinglist: http://www.cubicweb.org/project/cubicweb-mailinglist
+.. _person: http://www.cubicweb.org/project/cubicweb-person
+.. _tag: http://www.cubicweb.org/project/cubicweb-tag
+.. _task: http://www.cubicweb.org/project/cubicweb-task
+.. _zone: http://www.cubicweb.org/project/cubicweb-zone
 
 To declare the use of a component, once installed, add the name of the component
 to the variable `__use__` in the file `__pkginfo__.py` of your own component.
--- a/doc/book/en/B1030-form-management.en.txt	Tue Jan 27 13:52:50 2009 +0100
+++ b/doc/book/en/B1030-form-management.en.txt	Tue Jan 27 13:58:17 2009 +0100
@@ -13,7 +13,7 @@
 The form generated by default does not fit your needs? You are not
 required to re-do all by hands! :)
 
-* rtags primary, secondary, generated, generic, 
+* rtags primary, secondary, generated, generic,
   `Entity.relation_category(rtype, x='subject')`
 * inline_view (now a rtag?)
 * widget specification
@@ -36,8 +36,8 @@
    starting by `eid:` and also having a parameter `__type` associated
    (also *qualified* by eid)
 
-2. For all the attributes and the relations of an entity to edit: 
-   
+2. For all the attributes and the relations of an entity to edit:
+
    1. search for a parameter `edits-<relation name>` or `edito-<relation name>`
       qualified in the case of a relation where the entity is object
    2. if found, the value returned is considered as the initial value
@@ -50,24 +50,24 @@
 
    1. if a qualified parameter `__linkto` is specified, its value has to be
       a string (or a list of string) such as: ::
-        
+
         <relation type>:<eids>:<target>
-      
+
       where <target> is either `subject` or `object` and each eid could be
       separated from the others by a `_`. Target specifies if the *edited entity*
       is subject or object of the relation and each relation specified will
       be inserted.
 
     2. if a qualified parameter `__clone_eid` is specified for an entity, the
-       relations of the specified entity passed as value of this parameter are 
+       relations of the specified entity passed as value of this parameter are
        copied on the edited entity.
 
     3. if a qualified parameter `__delete` is specified, its value must be
        a string or a list of string such as follows: ::
-          
+
           <ssubjects eids>:<relation type>:<objects eids>
 
-       where each eid subject or object can be seperated from the other 
+       where each eid subject or object can be seperated from the other
        by `_`. Each relation specified will be deleted.
 
     4. if a qualified parameter `__insert` is specified, its value should
@@ -84,14 +84,14 @@
 
 
 .. note::
-   
+
    * If the parameter `__action_delete` is found, all the entities specified
      as to be edited will be deleted.
-   
+
    * If the parameter`__action_cancel` is found, no action is completed.
 
-   * If the parameter `__action_apply` is found, the editing is applied 
-     normally but the redirection is done on the form 
+   * If the parameter `__action_apply` is found, the editing is applied
+     normally but the redirection is done on the form
      (see :ref:`RedirectionControl`).
 
    * The parameter `__method` is also supported as for the main template
@@ -120,7 +120,7 @@
 
 * `__redirectparams`: forms parameters to add to the path
 
-* `__redirectrql`: redirection RQL request 
+* `__redirectrql`: redirection RQL request
 
 * `__redirectvid`: redirection view identifier
 
@@ -132,6 +132,6 @@
 * `__form_id`: initial view form identifier, used if `__action_apply` is
   found
 
-In general we use either `__redirectpath` and `__redirectparams` or 
+In general we use either `__redirectpath` and `__redirectparams` or
 `__redirectrql` and `__redirectvid`.
 
--- a/goa/__init__.py	Tue Jan 27 13:52:50 2009 +0100
+++ b/goa/__init__.py	Tue Jan 27 13:58:17 2009 +0100
@@ -28,7 +28,7 @@
     regular python datetime object
     """
     if yamstype is None:
-        yamstype = guess_yamstype_from_date(datetimeobj)
+        yamstype = guess_yamstype_for_date(datetimeobj)
     assert yamstype is not None
     if yamstype == 'Datetime':
         # don't use date, db model doesn't actually support it, only datetime
--- a/goa/db.py	Tue Jan 27 13:52:50 2009 +0100
+++ b/goa/db.py	Tue Jan 27 13:58:17 2009 +0100
@@ -391,7 +391,7 @@
 
     @classmethod
     def kind(cls):
-        return self.id
+        return cls.id
 
     @classmethod
     def properties(cls):
--- a/goa/overrides/rqlannotation.py	Tue Jan 27 13:52:50 2009 +0100
+++ b/goa/overrides/rqlannotation.py	Tue Jan 27 13:58:17 2009 +0100
@@ -1,4 +1,4 @@
-def set_qdata(union, noinvariant):
+def set_qdata(getrschema, union, noinvariant):
     pass
         
 class SQLGenAnnotator(object):
--- a/goa/testlib.py	Tue Jan 27 13:52:50 2009 +0100
+++ b/goa/testlib.py	Tue Jan 27 13:58:17 2009 +0100
@@ -7,7 +7,7 @@
 # additional monkey patches necessary in regular cubicweb environment
 from cubicweb.server import rqlannotation
 from cubicweb.goa.overrides import rqlannotation as goarqlannotation
-rqlannotation.sqlgen_annotate = goarqlannotation.sqlgen_annotate
+rqlannotation.SQLGenAnnotator = goarqlannotation.SQLGenAnnotator
 rqlannotation.set_qdata = goarqlannotation.set_qdata
 
 try:
--- a/goa/tools/i18n.py	Tue Jan 27 13:52:50 2009 +0100
+++ b/goa/tools/i18n.py	Tue Jan 27 13:58:17 2009 +0100
@@ -221,7 +221,7 @@
     os.chdir(appdirectory)
     potfiles = []
     if osp.exists(osp.join('i18n', 'entities.pot')):
-        potfiles = potfiles.append( osp.join('i18n', scfile) )
+        potfiles = potfiles.append( osp.join('i18n', 'entities.pot') )
     print '******** extract schema messages'
     schemapot = osp.join(tempdir, 'schema.pot')
     potfiles.append(schemapot)
--- a/server/migractions.py	Tue Jan 27 13:52:50 2009 +0100
+++ b/server/migractions.py	Tue Jan 27 13:58:17 2009 +0100
@@ -11,7 +11,7 @@
 
 
 :organization: Logilab
-:copyright: 2001-2008 LOGILAB S.A. (Paris, FRANCE), all rights reserved.
+:copyright: 2001-2009 LOGILAB S.A. (Paris, FRANCE), all rights reserved.
 :contact: http://www.logilab.fr/ -- mailto:contact@logilab.fr
 """
 __docformat__ = "restructuredtext en"
@@ -679,11 +679,11 @@
         espschema = eschema.specializes()
         if repospschema and not espschema:
             self.rqlexec('DELETE X specializes Y WHERE X is EEType, X name %(x)s',
-                         {'x': str(repoechema)})
+                         {'x': str(repoeschema)})
         elif not repospschema and espschema:
             self.rqlexec('SET X specializes Y WHERE X is EEType, X name %(x)s, '
                          'Y is EEType, Y name %(y)s',
-                         {'x': str(repoechema), 'y': str(epschema)})
+                         {'x': str(repoeschema), 'y': str(espschema)})
         self.rqlexecall(ss.updateeschema2rql(eschema),
                         ask_confirm=self.verbosity >= 2)
         for rschema, targettypes, x in eschema.relation_definitions(True):
--- a/server/msplanner.py	Tue Jan 27 13:52:50 2009 +0100
+++ b/server/msplanner.py	Tue Jan 27 13:58:17 2009 +0100
@@ -999,7 +999,9 @@
             step = AggrStep(plan, selection, select, atemptable, temptable)
             step.children = steps
         elif len(steps) > 1:
-            if select.need_intersect:
+            if select.need_intersect or any(select.need_intersect
+                                            for step in steps
+                                            for select in step.union.children):
                 if temptable:
                     step = IntersectFetchStep(plan)
                 else:
--- a/server/mssteps.py	Tue Jan 27 13:52:50 2009 +0100
+++ b/server/mssteps.py	Tue Jan 27 13:58:17 2009 +0100
@@ -6,7 +6,7 @@
   for now)
 
 :organization: Logilab
-:copyright: 2003-2008 LOGILAB S.A. (Paris, FRANCE), all rights reserved.
+:copyright: 2003-2009 LOGILAB S.A. (Paris, FRANCE), all rights reserved.
 :contact: http://www.logilab.fr/ -- mailto:contact@logilab.fr
 """
 __docformat__ = "restructuredtext en"
@@ -274,9 +274,9 @@
             result &= frozenset(step.execute())
         result = list(result)
         if self.offset:
-            result = result[offset:]
+            result = result[self.offset:]
         if self.limit:
-            result = result[:limit]
+            result = result[:self.limit]
         return result
 
 
--- a/server/querier.py	Tue Jan 27 13:52:50 2009 +0100
+++ b/server/querier.py	Tue Jan 27 13:58:17 2009 +0100
@@ -196,7 +196,7 @@
             self._insert_security(union, noinvariant)
         self.rqlhelper.simplify(union)
         self.sqlannotate(union)
-        set_qdata(union, noinvariant)
+        set_qdata(self.schema.rschema, union, noinvariant)
         if union.has_text_query:
             self.cache_key = None
 
--- a/server/repository.py	Tue Jan 27 13:52:50 2009 +0100
+++ b/server/repository.py	Tue Jan 27 13:58:17 2009 +0100
@@ -791,7 +791,7 @@
         # since the current session user may not have required permissions to
         # do necessary stuff and we don't want to commit user session.
         #
-        # More other, even if session is already an internal session but is
+        # Moreover, even if session is already an internal session but is
         # processing a commit, we have to use another one
         if not session.is_internal_session:
             session = self.internal_session()
@@ -803,6 +803,7 @@
             entity = source.before_entity_insertion(session, lid, etype, eid)
             if source.should_call_hooks:
                 self.hm.call_hooks('before_add_entity', etype, session, entity)
+            # XXX call add_info with complete=False ?
             self.add_info(session, entity, source, lid)
             source.after_entity_insertion(session, lid, entity)
             if source.should_call_hooks:
--- a/server/rqlannotation.py	Tue Jan 27 13:52:50 2009 +0100
+++ b/server/rqlannotation.py	Tue Jan 27 13:58:17 2009 +0100
@@ -20,7 +20,7 @@
     #if server.DEBUG:
     #    print '-------- sql annotate', repr(rqlst)
     getrschema = annotator.schema.rschema
-    has_text_query = need_intersect = False
+    has_text_query = False
     need_distinct = rqlst.distinct
     for rel in rqlst.iget_nodes(Relation):
         if rel.neged(strict=True):
@@ -29,13 +29,6 @@
             else:
                 rschema = getrschema(rel.r_type)
                 if not rschema.is_final():
-                    # if one of the relation's variable is ambiguous, an intersection
-                    # will be necessary
-                    for vref in rel.get_nodes(VariableRef):
-                        var = vref.variable
-                        if not var.stinfo['selected'] and len(var.stinfo['possibletypes']) > 1:
-                            need_intersect = True
-                            break
                     if rschema.inlined:
                         try:
                             var = rel.children[1].children[0].variable
@@ -147,7 +140,6 @@
             except CantSelectPrincipal:
                 stinfo['invariant'] = False
     rqlst.need_distinct = need_distinct
-    rqlst.need_intersect = need_intersect
     return has_text_query
 
 
@@ -207,12 +199,12 @@
     return principal
 
 
-def set_qdata(union, noinvariant):
+def set_qdata(getrschema, union, noinvariant):
     """recursive function to set querier data on variables in the syntax tree
     """
     for select in union.children:
         for subquery in select.with_:
-            set_qdata(subquery.query, noinvariant)
+            set_qdata(getrschema, subquery.query, noinvariant)
         for var in select.defined_vars.itervalues():
             if var.stinfo['invariant']:
                 if var in noinvariant and not var.stinfo['principal'].r_type == 'has_text':
@@ -221,6 +213,23 @@
                     var._q_invariant = True
             else:
                 var._q_invariant = False
+        for rel in select.iget_nodes(Relation):
+            if rel.neged(strict=True) and not rel.is_types_restriction():
+                rschema = getrschema(rel.r_type)
+                if not rschema.is_final():
+                    # if one of the relation's variable is ambiguous but not
+                    # invariant, an intersection will be necessary
+                    for vref in rel.get_nodes(VariableRef):
+                        var = vref.variable
+                        if (not var._q_invariant and var.valuable_references() == 1
+                            and len(var.stinfo['possibletypes']) > 1):
+                            select.need_intersect = True
+                            break
+                    else:
+                        continue
+                    break
+        else:
+            select.need_intersect = False
 
 
 class SQLGenAnnotator(object):
--- a/server/sources/native.py	Tue Jan 27 13:52:50 2009 +0100
+++ b/server/sources/native.py	Tue Jan 27 13:58:17 2009 +0100
@@ -188,7 +188,7 @@
         rqlst.restricted_vars = ()
         rqlst.children[0].solutions = self._sols
         self.repo.querier.sqlgen_annotate(rqlst)
-        set_qdata(rqlst, ())
+        set_qdata(self.schema.rschema, rqlst, ())
         return rqlst
     
     def set_schema(self, schema):
--- a/server/sources/rql2sql.py	Tue Jan 27 13:52:50 2009 +0100
+++ b/server/sources/rql2sql.py	Tue Jan 27 13:58:17 2009 +0100
@@ -488,7 +488,8 @@
                 sql.insert(1, 'FROM (SELECT 1) AS _T')
             sqls.append('\n'.join(sql))
         if select.need_intersect:
-            if distinct:
+            # XXX use getattr for lgc bw compat, remove once 0.37.3 is out
+            if distinct or not getattr(self.dbms_helper, 'intersect_all_support', True):
                 return '\nINTERSECT\n'.join(sqls)
             else:
                 return '\nINTERSECT ALL\n'.join(sqls)
--- a/server/test/unittest_migractions.py	Tue Jan 27 13:52:50 2009 +0100
+++ b/server/test/unittest_migractions.py	Tue Jan 27 13:58:17 2009 +0100
@@ -134,7 +134,7 @@
         self.assertEquals([str(rs) for rs in self.schema['Folder2'].object_relations()],
                           ['filed_under2', 'identity'])
         self.assertEquals(sorted(str(e) for e in self.schema['filed_under2'].subjects()),
-                          ['Affaire', 'Card', 'Division', 'ECache', 'Email', 'EmailThread', 'File', 
+                          ['Affaire', 'Card', 'Division', 'Email', 'EmailThread', 'File', 
                            'Folder2', 'Image', 'Note', 'Personne', 'Societe', 'SubDivision'])
         self.assertEquals(self.schema['filed_under2'].objects(), ('Folder2',))
         eschema = self.schema.eschema('Folder2')
@@ -161,7 +161,7 @@
         self.mh.cmd_add_relation_type('filed_under2')
         self.failUnless('filed_under2' in self.schema)
         self.assertEquals(sorted(str(e) for e in self.schema['filed_under2'].subjects()),
-                          ['Affaire', 'Card', 'Division', 'ECache', 'Email', 'EmailThread', 'File', 
+                          ['Affaire', 'Card', 'Division', 'Email', 'EmailThread', 'File', 
                            'Folder2', 'Image', 'Note', 'Personne', 'Societe', 'SubDivision'])
         self.assertEquals(self.schema['filed_under2'].objects(), ('Folder2',))
 
@@ -364,23 +364,36 @@
     def test_add_remove_cube(self):
         cubes = set(self.config.cubes())
         schema = self.repo.schema
+        self.assertEquals(sorted(schema['see_also']._rproperties.keys()),
+                          sorted([('EmailThread', 'EmailThread'), ('Folder', 'Folder'),
+                                  ('Bookmark', 'Bookmark'), ('Bookmark', 'Note'),
+                                  ('Note', 'Note'), ('Note', 'Bookmark')]))
         try:
-            self.mh.cmd_remove_cube('email')
-            # file was there because it's an email dependancy, should have been removed
-            cubes.remove('email')
-            cubes.remove('file')
-            self.assertEquals(set(self.config.cubes()), cubes)
-            for ertype in ('Email', 'EmailThread', 'EmailPart', 'File', 'Image', 
-                           'sender', 'in_thread', 'reply_to', 'data_format'):
-                self.failIf(ertype in schema, ertype)
-            self.assertEquals(sorted(schema['see_also']._rproperties.keys()),
-                              [('Folder', 'Folder')])
-            self.assertEquals(schema['see_also'].subjects(), ('Folder',))
-            self.assertEquals(schema['see_also'].objects(), ('Folder',))
-            self.assertEquals(self.execute('Any X WHERE X pkey "system.version.email"').rowcount, 0)
-            self.assertEquals(self.execute('Any X WHERE X pkey "system.version.file"').rowcount, 0)
-            self.failIf('email' in self.config.cubes())
-            self.failIf('file' in self.config.cubes())
+            try:
+                self.mh.cmd_remove_cube('email')
+                # file was there because it's an email dependancy, should have been removed
+                cubes.remove('email')
+                cubes.remove('file')
+                self.assertEquals(set(self.config.cubes()), cubes)
+                for ertype in ('Email', 'EmailThread', 'EmailPart', 'File', 'Image', 
+                               'sender', 'in_thread', 'reply_to', 'data_format'):
+                    self.failIf(ertype in schema, ertype)
+                self.assertEquals(sorted(schema['see_also']._rproperties.keys()),
+                                  sorted([('Folder', 'Folder'),
+                                          ('Bookmark', 'Bookmark'),
+                                          ('Bookmark', 'Note'),
+                                          ('Note', 'Note'),
+                                          ('Note', 'Bookmark')]))
+                self.assertEquals(sorted(schema['see_also'].subjects()), ['Bookmark', 'Folder', 'Note'])
+                self.assertEquals(sorted(schema['see_also'].objects()), ['Bookmark', 'Folder', 'Note'])
+                self.assertEquals(self.execute('Any X WHERE X pkey "system.version.email"').rowcount, 0)
+                self.assertEquals(self.execute('Any X WHERE X pkey "system.version.file"').rowcount, 0)
+                self.failIf('email' in self.config.cubes())
+                self.failIf('file' in self.config.cubes())
+            except :
+                import traceback
+                traceback.print_exc()
+                raise
         finally:
             self.mh.cmd_add_cube('email')
             cubes.add('email')
@@ -390,9 +403,13 @@
                            'sender', 'in_thread', 'reply_to', 'data_format'):
                 self.failUnless(ertype in schema, ertype)
             self.assertEquals(sorted(schema['see_also']._rproperties.keys()),
-                              [('EmailThread', 'EmailThread'), ('Folder', 'Folder')])
-            self.assertEquals(sorted(schema['see_also'].subjects()), ['EmailThread', 'Folder'])
-            self.assertEquals(sorted(schema['see_also'].objects()), ['EmailThread', 'Folder'])
+                              sorted([('EmailThread', 'EmailThread'), ('Folder', 'Folder'),
+                                      ('Bookmark', 'Bookmark'),
+                                      ('Bookmark', 'Note'),
+                                      ('Note', 'Note'),
+                                      ('Note', 'Bookmark')]))
+            self.assertEquals(sorted(schema['see_also'].subjects()), ['Bookmark', 'EmailThread', 'Folder', 'Note'])
+            self.assertEquals(sorted(schema['see_also'].objects()), ['Bookmark', 'EmailThread', 'Folder', 'Note'])
             from cubes.email.__pkginfo__ import version as email_version
             from cubes.file.__pkginfo__ import version as file_version
             self.assertEquals(self.execute('Any V WHERE X value V, X pkey "system.version.email"')[0][0],
--- a/server/test/unittest_querier.py	Tue Jan 27 13:52:50 2009 +0100
+++ b/server/test/unittest_querier.py	Tue Jan 27 13:58:17 2009 +0100
@@ -454,7 +454,7 @@
                             'WHERE RT name N, RDEF relation_type RT '
                             'HAVING COUNT(RDEF) > 10')
         self.assertListEquals(rset.rows,
-                              [[u'description', 11], ['in_basket', 12],
+                              [[u'description', 11], ['in_basket', 11],
                                [u'name', 13], [u'created_by', 33],
                                [u'creation_date', 33], [u'is', 33], [u'is_instance_of', 33],
                                [u'modification_date', 33], [u'owned_by', 33]])
--- a/server/test/unittest_rql2sql.py	Tue Jan 27 13:52:50 2009 +0100
+++ b/server/test/unittest_rql2sql.py	Tue Jan 27 13:58:17 2009 +0100
@@ -156,11 +156,6 @@
 ]
 
 ADVANCED= [
-    ('Any X WHERE X is ET, ET eid 2',
-     '''SELECT rel_is0.eid_from
-FROM is_relation AS rel_is0
-WHERE rel_is0.eid_to=2'''),
-
 
     ("Societe S WHERE S nom 'Logilab' OR S nom 'Caesium'",
      '''SELECT S.eid
@@ -1064,7 +1059,57 @@
     
     ]
 
+INTERSECT = [
+    ('Any SN WHERE NOT X in_state S, S name SN',
+     '''SELECT DISTINCT S.name
+FROM Affaire AS X, State AS S
+WHERE (X.in_state IS NULL OR X.in_state!=S.eid)
+INTERSECT
+SELECT DISTINCT S.name
+FROM EUser AS X, State AS S
+WHERE (X.in_state IS NULL OR X.in_state!=S.eid)
+INTERSECT
+SELECT DISTINCT S.name
+FROM Note AS X, State AS S
+WHERE (X.in_state IS NULL OR X.in_state!=S.eid)'''),
 
+    ('Any PN WHERE NOT X travaille S, X nom PN, S is IN(Division, Societe)',
+     '''SELECT X.nom
+FROM Personne AS X
+WHERE NOT EXISTS(SELECT 1 FROM travaille_relation AS rel_travaille0,Division AS S WHERE rel_travaille0.eid_from=X.eid AND rel_travaille0.eid_to=S.eid)
+INTERSECT ALL
+SELECT X.nom
+FROM Personne AS X
+WHERE NOT EXISTS(SELECT 1 FROM travaille_relation AS rel_travaille0,Societe AS S WHERE rel_travaille0.eid_from=X.eid AND rel_travaille0.eid_to=S.eid)'''),
+    
+    ('Any PN WHERE NOT X travaille S, S nom PN, S is IN(Division, Societe)',
+     '''SELECT S.nom
+FROM Division AS S
+WHERE NOT EXISTS(SELECT 1 FROM travaille_relation AS rel_travaille0 WHERE rel_travaille0.eid_to=S.eid)
+UNION ALL
+SELECT S.nom
+FROM Societe AS S
+WHERE NOT EXISTS(SELECT 1 FROM travaille_relation AS rel_travaille0 WHERE rel_travaille0.eid_to=S.eid)'''),
+    
+    ('Personne X WHERE NOT X travaille S, S nom "chouette"',
+     '''SELECT X.eid
+FROM Division AS S, Personne AS X
+WHERE NOT EXISTS(SELECT 1 FROM travaille_relation AS rel_travaille0 WHERE rel_travaille0.eid_from=X.eid AND rel_travaille0.eid_to=S.eid) AND S.nom=chouette
+UNION ALL
+SELECT X.eid
+FROM Personne AS X, Societe AS S
+WHERE NOT EXISTS(SELECT 1 FROM travaille_relation AS rel_travaille0 WHERE rel_travaille0.eid_from=X.eid AND rel_travaille0.eid_to=S.eid) AND S.nom=chouette
+UNION ALL
+SELECT X.eid
+FROM Personne AS X, SubDivision AS S
+WHERE NOT EXISTS(SELECT 1 FROM travaille_relation AS rel_travaille0 WHERE rel_travaille0.eid_from=X.eid AND rel_travaille0.eid_to=S.eid) AND S.nom=chouette'''),
+    
+    ('Any X WHERE X is ET, ET eid 2',
+     '''SELECT rel_is0.eid_from
+FROM is_relation AS rel_is0
+WHERE rel_is0.eid_to=2'''),
+
+    ]
 from logilab.common.adbh import ADV_FUNC_HELPER_DIRECTORY
     
 class PostgresSQLGeneratorTC(RQLGeneratorTC):
@@ -1196,6 +1241,10 @@
     def test_negation(self):
         for t in self._parse(NEGATIONS):
             yield t
+        
+    def test_intersection(self):
+        for t in self._parse(INTERSECT):
+            yield t
 
     def test_union(self):
         for t in self._parse((
@@ -1370,7 +1419,7 @@
         self.o = SQLGenerator(schema, dbms_helper)
 
     def _norm_sql(self, sql):
-        return sql.strip().replace(' ILIKE ', ' LIKE ')
+        return sql.strip().replace(' ILIKE ', ' LIKE ').replace('\nINTERSECT ALL\n', '\nINTERSECT\n')
 
     def test_union(self):
         for t in self._parse((
--- a/web/box.py	Tue Jan 27 13:52:50 2009 +0100
+++ b/web/box.py	Tue Jan 27 13:58:17 2009 +0100
@@ -14,9 +14,9 @@
     accepts_registerer, extresources_registerer,
     etype_rtype_priority_registerer)
 from cubicweb.common.selectors import (
-    etype_rtype_selector, one_line_rset, accept, accept_rtype_selector,
+    etype_rtype_selector, one_line_rset, accept, has_relation,
     primary_view, match_context_prop, has_related_entities,
-    _rqlcondition_selector)
+    _rql_condition)
 from cubicweb.common.view import Template
 from cubicweb.common.appobject import ReloadableMixIn
 
@@ -152,8 +152,7 @@
     __registerer__ = accepts_registerer
     __selectors__ = (one_line_rset, primary_view,
                      match_context_prop, etype_rtype_selector,
-                     accept_rtype_selector, accept,
-                     _rqlcondition_selector)
+                     has_relation, accept, _rql_condition)
     accepts = ('Any',)
     context = 'incontext'
     condition = None
--- a/web/facet.py	Tue Jan 27 13:52:50 2009 +0100
+++ b/web/facet.py	Tue Jan 27 13:58:17 2009 +0100
@@ -29,7 +29,7 @@
 
 def prepare_facets_rqlst(rqlst, args=None):
     """prepare a syntax tree to generate facet filters
-    
+
     * remove ORDERBY clause
     * cleanup selection (remove everything)
     * undefine unnecessary variables
@@ -64,7 +64,7 @@
 def get_facet(req, facetid, rqlst, mainvar):
     return req.vreg.object_by_id('facets', facetid, req, rqlst=rqlst,
                                  filtered_variable=mainvar)
-    
+
 
 def filter_hiddens(w, **kwargs):
     for key, val in kwargs.items():
@@ -139,7 +139,7 @@
         rqlst.add_group_var(newvar)
     rqlst.add_selected(newvar)
     return newvar, rel
-        
+
 def _remove_relation(rqlst, rel, var):
     """remove a constraint relation from the syntax tree"""
     # remove the relation
@@ -229,10 +229,10 @@
             if ovarname == mainvar.name:
                 continue
             if not has_path(vargraph, ovarname, mainvar.name):
-                toremove.add(rqlst.defined_vars[ovarname])            
+                toremove.add(rqlst.defined_vars[ovarname])
 
-        
-        
+
+
 ## base facet classes #########################################################
 class AbstractFacet(AcceptMixIn, AppRsetObject):
     __registerer__ = priority_registerer
@@ -245,14 +245,14 @@
                            help=_('display order of the box')),
         _('context'): dict(type='String', default=None,
                            # None <-> both
-                           vocabulary=(_('tablefilter'), _('facetbox'), None),
+                           vocabulary=(_('tablefilter'), _('facetbox'), ''),
                            help=_('context where this box should be displayed')),
         }
     visible = True
-    context = None
+    context = ''
     needs_update = False
     start_unfolded = True
-    
+
     @classmethod
     def selected(cls, req, rset=None, rqlst=None, context=None,
                  filtered_variable=None):
@@ -280,20 +280,20 @@
     def operator(self):
         # OR between selected values by default
         return self.req.form.get(self.id + '_andor', 'OR')
-    
+
     def get_widget(self):
         """return the widget instance to use to display this facet
         """
         raise NotImplementedError
-    
+
     def add_rql_restrictions(self):
         """add restriction for this facet into the rql syntax tree"""
         raise NotImplementedError
-    
+
 
 class VocabularyFacet(AbstractFacet):
     needs_update = True
-    
+
     def get_widget(self):
         """return the widget instance to use to display this facet
 
@@ -311,12 +311,12 @@
             else:
                 wdg.append(FacetItem(self.req, label, value, value in selected))
         return wdg
-    
+
     def vocabulary(self):
         """return vocabulary for this facet, eg a list of 2-uple (label, value)
         """
         raise NotImplementedError
-    
+
     def possible_values(self):
         """return a list of possible values (as string since it's used to
         compare to a form value in javascript) for this facet
@@ -325,13 +325,13 @@
 
     def support_and(self):
         return False
-    
+
     def rqlexec(self, rql, args=None, cachekey=None):
         try:
             return self.req.execute(rql, args, cachekey)
         except Unauthorized:
             return []
-        
+
 
 class RelationFacet(VocabularyFacet):
     __selectors__ = (one_has_relation, match_context_prop)
@@ -344,10 +344,10 @@
     sortfunc = None
     # ascendant/descendant sorting
     sortasc = True
-    
+
     @property
     def title(self):
-        return display_name(self.req, self.rtype, form=self.role)        
+        return display_name(self.req, self.rtype, form=self.role)
 
     def vocabulary(self):
         """return vocabulary for this facet, eg a list of 2-uple (label, value)
@@ -367,7 +367,7 @@
         finally:
             rqlst.recover()
         return self.rset_vocabulary(rset)
-    
+
     def possible_values(self):
         """return a list of possible values (as string since it's used to
         compare to a form value in javascript) for this facet
@@ -380,7 +380,7 @@
             return [str(x) for x, in self.rqlexec(rqlst.as_string())]
         finally:
             rqlst.recover()
-    
+
     def rset_vocabulary(self, rset):
         _ = self.req._
         return [(_(label), eid) for eid, label in rset]
@@ -432,7 +432,9 @@
 class AttributeFacet(RelationFacet):
     # attribute type
     attrtype = 'String'
-    
+    # type of comparison: default is an exact match on the attribute value
+    comparator = '=' # could be '<', '<=', '>', '>='
+
     def vocabulary(self):
         """return vocabulary for this facet, eg a list of 2-uple (label, value)
         """
@@ -452,14 +454,14 @@
         finally:
             rqlst.recover()
         return self.rset_vocabulary(rset)
-    
+
     def rset_vocabulary(self, rset):
         _ = self.req._
         return [(_(value), value) for value, in rset]
 
     def support_and(self):
         return False
-            
+
     def add_rql_restrictions(self):
         """add restriction for this facet into the rql syntax tree"""
         value = self.req.form.get(self.id)
@@ -467,16 +469,16 @@
             return
         mainvar = self.filtered_variable
         self.rqlst.add_constant_restriction(mainvar, self.rtype, value,
-                                            self.attrtype)
+                                            self.attrtype, self.comparator)
 
 
-        
+
 class FilterRQLBuilder(object):
     """called by javascript to get a rql string from filter form"""
 
     def __init__(self, req):
         self.req = req
-                
+
     def build_rql(self):#, tablefilter=False):
         form = self.req.form
         facetids = form['facets'].split(',')
@@ -490,18 +492,18 @@
                 toupdate.append(facetid)
         return select.as_string(), toupdate
 
-        
+
 ## html widets ################################################################
 
 class FacetVocabularyWidget(HTMLWidget):
-    
+
     def __init__(self, facet):
         self.facet = facet
         self.items = []
 
     def append(self, item):
         self.items.append(item)
-            
+
     def _render(self):
         title = html_escape(self.facet.title)
         facetid = html_escape(self.facet.id)
@@ -527,7 +529,7 @@
         self.w(u'</div>\n')
         self.w(u'</div>\n')
 
-        
+
 class FacetStringWidget(HTMLWidget):
     def __init__(self, facet):
         self.facet = facet
@@ -560,7 +562,7 @@
             imgsrc = self.req.datadir_url + self.selected_img
         else:
             cssclass = ''
-            imgsrc = self.req.datadir_url + self.unselected_img            
+            imgsrc = self.req.datadir_url + self.unselected_img
         self.w(u'<div class="facetValue facetCheckBox%s" cubicweb:value="%s">\n'
                % (cssclass, html_escape(unicode(self.value))))
         self.w(u'<img src="%s" />&nbsp;' % imgsrc)
@@ -571,7 +573,7 @@
 class FacetSeparator(HTMLWidget):
     def __init__(self, label=None):
         self.label = label or u'&nbsp;'
-        
+
     def _render(self):
         pass
 
--- a/web/test/jstest_python.jst	Tue Jan 27 13:52:50 2009 +0100
+++ b/web/test/jstest_python.jst	Tue Jan 27 13:58:17 2009 +0100
@@ -1,11 +1,13 @@
+// run tests with the following command line :
+// $ crosscheck jstest_python.jst
 
 crosscheck.addTest({
 
     setup: function() {
         crosscheck.load("testutils.js");
         crosscheck.load("../data/jquery.js");
-        crosscheck.load("../data/compat.js");
-        crosscheck.load("../data/python.js");
+        crosscheck.load("../data/cubicweb.compat.js");
+        crosscheck.load("../data/cubicweb.python.js");
     },
 
     test_basic_number_parsing: function () {
--- a/web/test/test_views.py	Tue Jan 27 13:52:50 2009 +0100
+++ b/web/test/test_views.py	Tue Jan 27 13:58:17 2009 +0100
@@ -37,7 +37,7 @@
     def test_manual_tests(self):
         rset = self.execute('Any P,F,S WHERE P is EUser, P firstname F, P surname S')
         self.view('table', rset, template=None, displayfilter=True, displaycols=[0,2])
-        rset = self.execute('Any P,F,S WHERE P is EUser, P firstname F, P surname S LIMIT 1')
+        rset = self.execute('Any P,F,S LIMIT 1 WHERE P is EUser, P firstname F, P surname S')
         rset.req.form['rtype'] = 'firstname'
         self.view('editrelation', rset, template=None, htmlcheck=False)
         rset.req.form['rtype'] = 'use_email'
@@ -49,7 +49,7 @@
         # sortable.js should not be included by default
         self.failIf('jquery.tablesorter.js' in self.view('oneline', rset))
         # but should be included by the tableview
-        rset = self.execute('Any P,F,S WHERE P is EUser, P firstname F, P surname S LIMIT 1')
+        rset = self.execute('Any P,F,S LIMIT 1 WHERE P is EUser, P firstname F, P surname S')
         self.failUnless('jquery.tablesorter.js' in self.view('table', rset))
 
     def test_js_added_only_once(self):
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/web/test/unittest_owl.py	Tue Jan 27 13:58:17 2009 +0100
@@ -0,0 +1,4075 @@
+"""unittests for schema2dot"""
+
+import os
+
+from logilab.common.testlib import TestCase, unittest_main
+from logilab.common.compat import set
+from cubicweb.devtools.testlib import WebTest
+
+from lxml import etree
+from StringIO import StringIO
+
+       
+class OWLTC(WebTest):
+    
+    def test_schema2owl(self):
+
+        parser = etree.XMLParser(dtd_validation=True)
+
+        owl= StringIO('''<xsd:schema 
+ xmlns:xsd="http://www.w3.org/2001/XMLSchema"
+ xmlns:owl="http://www.w3.org/2002/07/owl#"
+ targetNamespace="http://www.w3.org/2002/07/owl#"
+ elementFormDefault="qualified" attributeFormDefault="unqualified">
+
+<xsd:import namespace="http://www.w3.org/XML/1998/namespace" schemaLocation="http://www.w3.org/2001/xml.xsd"/>
+
+<!-- The ontology -->
+  
+<xsd:element name="Import">
+  <xsd:complexType>
+    <xsd:simpleContent>
+      <xsd:extension base="xsd:anyURI">
+        <xsd:attributeGroup ref="xml:specialAttrs"/>
+      </xsd:extension>
+    </xsd:simpleContent>
+  </xsd:complexType>
+</xsd:element>
+
+<xsd:element name="Ontology">
+  <xsd:complexType>
+    <xsd:sequence>
+      <xsd:element ref="owl:Import" minOccurs="0" maxOccurs="unbounded"/>
+      <xsd:group ref="owl:ontologyAnnotations"/>
+      <xsd:group ref="owl:Axiom" minOccurs="0" maxOccurs="unbounded"/>
+    </xsd:sequence>
+    <xsd:attribute name="ontologyIRI" type="xsd:anyURI" use="optional"/>
+    <xsd:attribute name="versionIRI" type="xsd:anyURI" use="optional"/>
+    <xsd:attributeGroup ref="xml:specialAttrs"/>
+  </xsd:complexType>
+</xsd:element>
+
+<!-- Entities, anonymous individuals, and literals -->
+
+<xsd:group name="Entity">
+  <xsd:choice>
+    <xsd:element ref="owl:Class"/>
+    <xsd:element ref="owl:Datatype"/>
+    <xsd:element ref="owl:ObjectProperty"/>
+    <xsd:element ref="owl:DataProperty"/>
+    <xsd:element ref="owl:AnnotationProperty"/>
+    <xsd:element ref="owl:NamedIndividual"/>
+  </xsd:choice>
+</xsd:group>
+
+<xsd:element name="Class">
+  <xsd:complexType>
+    <xsd:attribute name="IRI" type="xsd:anyURI" use="required"/>
+    <xsd:attributeGroup ref="xml:specialAttrs"/>
+  </xsd:complexType>
+</xsd:element>
+
+<xsd:element name="Datatype">
+  <xsd:complexType>
+    <xsd:attribute name="IRI" type="xsd:anyURI" use="required"/>
+    <xsd:attributeGroup ref="xml:specialAttrs"/>
+  </xsd:complexType>
+</xsd:element>
+ 
+<xsd:element name="ObjectProperty">
+  <xsd:complexType>
+    <xsd:attribute name="IRI" type="xsd:anyURI" use="required"/>
+    <xsd:attributeGroup ref="xml:specialAttrs"/>
+  </xsd:complexType>
+</xsd:element>
+
+<xsd:element name="DataProperty">
+  <xsd:complexType>
+    <xsd:attribute name="IRI" type="xsd:anyURI" use="required"/>
+    <xsd:attributeGroup ref="xml:specialAttrs"/>
+  </xsd:complexType>
+</xsd:element>
+
+<xsd:element name="AnnotationProperty">
+  <xsd:complexType>
+    <xsd:attribute name="IRI" type="xsd:anyURI" use="required"/>
+    <xsd:attributeGroup ref="xml:specialAttrs"/>
+  </xsd:complexType>
+</xsd:element>
+
+<xsd:group name="Individual">
+  <xsd:choice>
+    <xsd:element ref="owl:NamedIndividual"/>
+    <xsd:element ref="owl:AnonymousIndividual"/>
+  </xsd:choice>
+</xsd:group>
+  
+<xsd:element name="NamedIndividual">
+  <xsd:complexType>
+    <xsd:attribute name="IRI" type="xsd:anyURI" use="required"/>
+    <xsd:attributeGroup ref="xml:specialAttrs"/>
+  </xsd:complexType>
+</xsd:element>
+
+<xsd:element name="AnonymousIndividual">
+  <xsd:complexType>
+    <xsd:attribute name="nodeID" type="xsd:NCName" use="required"/>
+    <xsd:attributeGroup ref="xml:specialAttrs"/>
+  </xsd:complexType>
+</xsd:element>
+
+<xsd:element name="Literal">
+ <xsd:complexType>
+   <xsd:simpleContent>
+     <xsd:extension base="xsd:string">
+       <xsd:attribute name="datatypeIRI" type="xsd:anyURI"/>
+       <xsd:attributeGroup ref="xml:specialAttrs"/>
+     </xsd:extension>
+   </xsd:simpleContent>
+ </xsd:complexType>
+</xsd:element>
+
+<!-- Declarations -->
+
+<xsd:element name="Declaration">
+  <xsd:complexType>
+    <xsd:sequence>
+      <xsd:group ref="owl:axiomAnnotations"/>
+      <xsd:group ref="owl:Entity"/>
+    </xsd:sequence>
+    <xsd:attributeGroup ref="xml:specialAttrs"/>
+  </xsd:complexType>
+</xsd:element>
+  
+<!-- Object property expressions -->
+
+<xsd:group name="ObjectPropertyExpression">
+  <xsd:choice>
+    <xsd:element ref="owl:ObjectProperty"/>
+    <xsd:element ref="owl:InverseObjectProperty"/>
+  </xsd:choice>
+</xsd:group>
+
+<xsd:element name="InverseObjectProperty">
+  <xsd:complexType>
+    <xsd:sequence>
+      <xsd:element ref="owl:ObjectProperty"/>
+    </xsd:sequence>
+    <xsd:attributeGroup ref="xml:specialAttrs"/>
+  </xsd:complexType>
+</xsd:element>
+
+<!-- Data property expressions -->
+
+<xsd:group name="DataPropertyExpression">
+  <xsd:sequence>
+    <xsd:element ref="owl:DataProperty"/>
+  </xsd:sequence>
+</xsd:group>
+
+<!-- Data ranges -->
+
+<xsd:group name="DataRange">
+  <xsd:choice>
+    <xsd:element ref="owl:Datatype"/>
+    <xsd:element ref="owl:DataIntersectionOf"/>
+    <xsd:element ref="owl:DataUnionOf"/>
+    <xsd:element ref="owl:DataComplementOf"/>
+    <xsd:element ref="owl:DataOneOf"/>
+    <xsd:element ref="owl:DatatypeRestriction"/>
+  </xsd:choice>
+</xsd:group>
+
+<xsd:element name="DataIntersectionOf">
+  <xsd:complexType>
+    <xsd:sequence>
+      <xsd:group ref="owl:DataRange" minOccurs="2" maxOccurs="unbounded"/>
+    </xsd:sequence>
+    <xsd:attributeGroup ref="xml:specialAttrs"/>
+  </xsd:complexType>
+</xsd:element>
+
+<xsd:element name="DataUnionOf">
+  <xsd:complexType>
+    <xsd:sequence>
+      <xsd:group ref="owl:DataRange" minOccurs="2" maxOccurs="unbounded"/>
+    </xsd:sequence>
+    <xsd:attributeGroup ref="xml:specialAttrs"/>
+  </xsd:complexType>
+</xsd:element>
+
+<xsd:element name="DataComplementOf">
+  <xsd:complexType>
+    <xsd:sequence>
+      <xsd:group ref="owl:DataRange"/>
+    </xsd:sequence>
+    <xsd:attributeGroup ref="xml:specialAttrs"/>
+  </xsd:complexType>
+</xsd:element>
+
+<xsd:element name="DataOneOf">
+  <xsd:complexType>
+    <xsd:sequence>
+      <xsd:element ref="owl:Literal" minOccurs="1" maxOccurs="unbounded"/>
+    </xsd:sequence>
+    <xsd:attributeGroup ref="xml:specialAttrs"/>
+  </xsd:complexType>
+</xsd:element>
+
+<xsd:element name="DatatypeRestriction">
+  <xsd:complexType>
+    <xsd:sequence>
+      <xsd:element ref="owl:Datatype"/>
+      <xsd:element name="FacetRestriction" minOccurs="1" maxOccurs="unbounded">
+        <xsd:complexType>
+          <xsd:sequence>
+            <xsd:element ref="owl:Literal"/>
+          </xsd:sequence>
+          <xsd:attribute name="facet" type="xsd:anyURI" use="required"/>
+        </xsd:complexType>
+      </xsd:element>
+    </xsd:sequence>
+    <xsd:attributeGroup ref="xml:specialAttrs"/>
+  </xsd:complexType>
+</xsd:element>
+
+<!-- Class expressions -->
+
+<xsd:group name="ClassExpression">
+  <xsd:choice>
+    <xsd:element ref="owl:Class"/>
+    <xsd:element ref="owl:ObjectIntersectionOf"/>
+    <xsd:element ref="owl:ObjectUnionOf"/>
+    <xsd:element ref="owl:ObjectComplementOf"/>
+    <xsd:element ref="owl:ObjectOneOf"/>
+    <xsd:element ref="owl:ObjectSomeValuesFrom"/>
+    <xsd:element ref="owl:ObjectAllValuesFrom"/>
+    <xsd:element ref="owl:ObjectHasValue"/>
+    <xsd:element ref="owl:ObjectHasSelf"/>
+    <xsd:element ref="owl:ObjectMinCardinality"/>
+    <xsd:element ref="owl:ObjectMaxCardinality"/>
+    <xsd:element ref="owl:ObjectExactCardinality"/>
+    <xsd:element ref="owl:DataSomeValuesFrom"/>
+    <xsd:element ref="owl:DataAllValuesFrom"/>
+    <xsd:element ref="owl:DataHasValue"/>
+    <xsd:element ref="owl:DataMinCardinality"/>
+    <xsd:element ref="owl:DataMaxCardinality"/>
+    <xsd:element ref="owl:DataExactCardinality"/>
+  </xsd:choice>
+</xsd:group>
+
+<xsd:element name="ObjectIntersectionOf">
+  <xsd:complexType>
+    <xsd:sequence>
+      <xsd:group ref="owl:ClassExpression" minOccurs="2" maxOccurs="unbounded"/>
+    </xsd:sequence>
+    <xsd:attributeGroup ref="xml:specialAttrs"/>
+  </xsd:complexType>
+</xsd:element>
+
+<xsd:element name="ObjectUnionOf">
+  <xsd:complexType>
+    <xsd:sequence>
+      <xsd:group ref="owl:ClassExpression" minOccurs="2" maxOccurs="unbounded"/>
+    </xsd:sequence>
+    <xsd:attributeGroup ref="xml:specialAttrs"/>
+  </xsd:complexType>
+</xsd:element>
+
+<xsd:element name="ObjectComplementOf">
+  <xsd:complexType>
+    <xsd:sequence>
+      <xsd:group ref="owl:ClassExpression"/>
+    </xsd:sequence>
+    <xsd:attributeGroup ref="xml:specialAttrs"/>
+  </xsd:complexType>
+</xsd:element>
+
+<xsd:element name="ObjectOneOf">
+  <xsd:complexType>
+    <xsd:sequence>
+      <xsd:group ref="owl:Individual" minOccurs="1" maxOccurs="unbounded"/>
+    </xsd:sequence>
+    <xsd:attributeGroup ref="xml:specialAttrs"/>
+  </xsd:complexType>
+</xsd:element>
+
+<xsd:element name="ObjectSomeValuesFrom">
+  <xsd:complexType>
+    <xsd:sequence>
+      <xsd:group ref="owl:ObjectPropertyExpression"/>
+      <xsd:group ref="owl:ClassExpression"/>
+    </xsd:sequence>
+    <xsd:attributeGroup ref="xml:specialAttrs"/>
+  </xsd:complexType>
+</xsd:element>
+
+<xsd:element name="ObjectAllValuesFrom">
+  <xsd:complexType>
+    <xsd:sequence>
+      <xsd:group ref="owl:ObjectPropertyExpression"/>
+      <xsd:group ref="owl:ClassExpression"/>
+    </xsd:sequence>
+    <xsd:attributeGroup ref="xml:specialAttrs"/>
+  </xsd:complexType>
+</xsd:element>
+
+<xsd:element name="ObjectHasValue">
+  <xsd:complexType>
+    <xsd:sequence>
+      <xsd:group ref="owl:ObjectPropertyExpression"/>
+      <xsd:group ref="owl:Individual"/>
+    </xsd:sequence>
+    <xsd:attributeGroup ref="xml:specialAttrs"/>
+  </xsd:complexType>
+</xsd:element>
+
+<xsd:element name="ObjectHasSelf">
+  <xsd:complexType>
+    <xsd:sequence>
+      <xsd:group ref="owl:ObjectPropertyExpression"/>
+    </xsd:sequence>
+    <xsd:attributeGroup ref="xml:specialAttrs"/>
+  </xsd:complexType>
+</xsd:element>
+
+<xsd:element name="ObjectMinCardinality">
+  <xsd:complexType>
+    <xsd:sequence>
+      <xsd:group ref="owl:ObjectPropertyExpression"/>
+      <xsd:group ref="owl:ClassExpression" minOccurs="0" maxOccurs="1"/>
+    </xsd:sequence>
+    <xsd:attribute name="cardinality" type="xsd:nonNegativeInteger" use="required"/>
+    <xsd:attributeGroup ref="xml:specialAttrs"/>
+  </xsd:complexType>
+</xsd:element>
+
+<xsd:element name="ObjectMaxCardinality">
+  <xsd:complexType>
+    <xsd:sequence>
+      <xsd:group ref="owl:ObjectPropertyExpression"/>
+      <xsd:group ref="owl:ClassExpression" minOccurs="0" maxOccurs="1"/>
+    </xsd:sequence>
+    <xsd:attribute name="cardinality" type="xsd:nonNegativeInteger" use="required"/>
+    <xsd:attributeGroup ref="xml:specialAttrs"/>
+  </xsd:complexType>
+</xsd:element>
+
+<xsd:element name="ObjectExactCardinality">
+  <xsd:complexType>
+    <xsd:sequence>
+      <xsd:group ref="owl:ObjectPropertyExpression"/>
+      <xsd:group ref="owl:ClassExpression" minOccurs="0" maxOccurs="1"/>
+    </xsd:sequence>
+    <xsd:attribute name="cardinality" type="xsd:nonNegativeInteger" use="required"/>
+    <xsd:attributeGroup ref="xml:specialAttrs"/>
+  </xsd:complexType>
+</xsd:element>
+
+<xsd:element name="DataSomeValuesFrom">
+  <xsd:complexType>
+    <xsd:sequence>
+      <xsd:group ref="owl:DataPropertyExpression" minOccurs="1" maxOccurs="unbounded"/>
+      <xsd:group ref="owl:DataRange"/>
+    </xsd:sequence>
+    <xsd:attributeGroup ref="xml:specialAttrs"/>
+  </xsd:complexType>
+</xsd:element>
+
+<xsd:element name="DataAllValuesFrom">
+  <xsd:complexType>
+    <xsd:sequence>
+      <xsd:group ref="owl:DataPropertyExpression" minOccurs="1" maxOccurs="unbounded"/>
+      <xsd:group ref="owl:DataRange"/>
+    </xsd:sequence>
+    <xsd:attributeGroup ref="xml:specialAttrs"/>
+  </xsd:complexType>
+</xsd:element>
+
+<xsd:element name="DataHasValue">
+  <xsd:complexType>
+    <xsd:sequence>
+      <xsd:group ref="owl:DataPropertyExpression"/>
+      <xsd:element ref="owl:Literal"/>
+    </xsd:sequence>
+    <xsd:attributeGroup ref="xml:specialAttrs"/>
+  </xsd:complexType>
+</xsd:element>
+
+<xsd:element name="DataMinCardinality">
+  <xsd:complexType>
+    <xsd:sequence>
+      <xsd:group ref="owl:DataPropertyExpression"/>
+      <xsd:group ref="owl:DataRange" minOccurs="0" maxOccurs="1"/>
+    </xsd:sequence>
+    <xsd:attribute name="cardinality" type="xsd:nonNegativeInteger" use="required"/>
+    <xsd:attributeGroup ref="xml:specialAttrs"/>
+  </xsd:complexType>
+</xsd:element>
+
+<xsd:element name="DataMaxCardinality">
+  <xsd:complexType>
+    <xsd:sequence>
+      <xsd:group ref="owl:DataPropertyExpression"/>
+      <xsd:group ref="owl:DataRange" minOccurs="0" maxOccurs="1"/>
+    </xsd:sequence>
+    <xsd:attribute name="cardinality" type="xsd:nonNegativeInteger" use="required"/>
+    <xsd:attributeGroup ref="xml:specialAttrs"/>
+  </xsd:complexType>
+</xsd:element>
+
+<xsd:element name="DataExactCardinality">
+  <xsd:complexType>
+    <xsd:sequence>
+      <xsd:group ref="owl:DataPropertyExpression"/>
+      <xsd:group ref="owl:DataRange" minOccurs="0" maxOccurs="1"/>
+    </xsd:sequence>
+    <xsd:attribute name="cardinality" type="xsd:nonNegativeInteger" use="required"/>
+    <xsd:attributeGroup ref="xml:specialAttrs"/>
+  </xsd:complexType>
+</xsd:element>
+
+<!-- Axioms -->
+
+<xsd:group name="Axiom">
+  <xsd:choice>
+    <xsd:element ref="owl:Declaration"/>
+    <xsd:group ref="owl:ClassAxiom"/>
+    <xsd:group ref="owl:ObjectPropertyAxiom"/>
+    <xsd:group ref="owl:DataPropertyAxiom"/>
+    <xsd:element ref="owl:HasKey"/>
+    <xsd:group ref="owl:Assertion"/>
+    <xsd:group ref="owl:AnnotationAxiom"/>
+  </xsd:choice>
+</xsd:group>
+
+<!-- Class expression axioms -->
+
+<xsd:group name="ClassAxiom">
+  <xsd:choice>
+    <xsd:element ref="owl:SubClassOf"/>
+    <xsd:element ref="owl:EquivalentClasses"/>
+    <xsd:element ref="owl:DisjointClasses"/>
+    <xsd:element ref="owl:DisjointUnion"/>
+  </xsd:choice>
+</xsd:group>
+
+<xsd:element name="SubClassOf">
+  <xsd:complexType>
+    <xsd:sequence>
+      <xsd:group ref="owl:axiomAnnotations"/>
+      <xsd:group ref="owl:ClassExpression"/> <!-- This is the subexpression -->
+      <xsd:group ref="owl:ClassExpression"/> <!-- This is the superexpression -->
+    </xsd:sequence>
+    <xsd:attributeGroup ref="xml:specialAttrs"/>
+  </xsd:complexType>
+</xsd:element>
+
+<xsd:element name="EquivalentClasses">
+  <xsd:complexType>
+    <xsd:sequence>
+      <xsd:group ref="owl:axiomAnnotations"/>
+      <xsd:group ref="owl:ClassExpression" minOccurs="2" maxOccurs="unbounded"/>
+    </xsd:sequence>
+    <xsd:attributeGroup ref="xml:specialAttrs"/>
+  </xsd:complexType>
+</xsd:element>
+
+<xsd:element name="DisjointClasses">
+  <xsd:complexType>
+    <xsd:sequence>
+      <xsd:group ref="owl:axiomAnnotations"/>
+      <xsd:group ref="owl:ClassExpression" minOccurs="2" maxOccurs="unbounded"/>
+    </xsd:sequence>
+    <xsd:attributeGroup ref="xml:specialAttrs"/>
+  </xsd:complexType>
+</xsd:element>
+
+<xsd:element name="DisjointUnion">
+  <xsd:complexType>
+    <xsd:sequence>
+      <xsd:group ref="owl:axiomAnnotations"/>
+      <xsd:element ref="owl:Class"/>
+      <xsd:group ref="owl:ClassExpression" minOccurs="2" maxOccurs="unbounded"/>
+    </xsd:sequence>
+    <xsd:attributeGroup ref="xml:specialAttrs"/>
+  </xsd:complexType>
+</xsd:element>
+
+<!-- Object property axioms -->
+
+<xsd:group name="ObjectPropertyAxiom">
+  <xsd:choice>
+    <xsd:element ref="owl:SubObjectPropertyOf"/>
+    <xsd:element ref="owl:EquivalentObjectProperties"/>
+    <xsd:element ref="owl:DisjointObjectProperties"/>
+    <xsd:element ref="owl:InverseObjectProperties"/>
+    <xsd:element ref="owl:ObjectPropertyDomain"/>
+    <xsd:element ref="owl:ObjectPropertyRange"/>
+    <xsd:element ref="owl:FunctionalObjectProperty"/>
+    <xsd:element ref="owl:InverseFunctionalObjectProperty"/>
+    <xsd:element ref="owl:ReflexiveObjectProperty"/>
+    <xsd:element ref="owl:IrreflexiveObjectProperty"/>
+    <xsd:element ref="owl:SymmetricObjectProperty"/>
+    <xsd:element ref="owl:AsymmetricObjectProperty"/>
+    <xsd:element ref="owl:TransitiveObjectProperty"/>
+  </xsd:choice>
+</xsd:group>
+
+<xsd:element name="SubObjectPropertyOf">
+  <xsd:complexType>
+    <xsd:sequence>
+      <xsd:group ref="owl:axiomAnnotations"/>
+      <xsd:choice> <!-- This is the subproperty expression or the property chain -->
+        <xsd:group ref="owl:ObjectPropertyExpression"/>
+        <xsd:element name="PropertyChain">
+          <xsd:complexType>
+            <xsd:sequence>
+              <xsd:group ref="owl:ObjectPropertyExpression" minOccurs="2" maxOccurs="unbounded"/>
+            </xsd:sequence>
+            <xsd:attributeGroup ref="xml:specialAttrs"/>
+          </xsd:complexType>
+        </xsd:element>
+      </xsd:choice>
+      <xsd:group ref="owl:ObjectPropertyExpression"/> <!-- This is the superproperty expression -->  
+    </xsd:sequence>
+    <xsd:attributeGroup ref="xml:specialAttrs"/>
+  </xsd:complexType>
+</xsd:element>
+
+<xsd:element name="EquivalentObjectProperties">
+  <xsd:complexType>
+    <xsd:sequence>
+      <xsd:group ref="owl:axiomAnnotations"/>
+      <xsd:group ref="owl:ObjectPropertyExpression" minOccurs="2" maxOccurs="unbounded"/>
+    </xsd:sequence>
+    <xsd:attributeGroup ref="xml:specialAttrs"/>
+  </xsd:complexType>
+</xsd:element>
+
+<xsd:element name="DisjointObjectProperties">
+  <xsd:complexType>
+    <xsd:sequence>
+      <xsd:group ref="owl:axiomAnnotations"/>
+      <xsd:group ref="owl:ObjectPropertyExpression" minOccurs="2" maxOccurs="unbounded"/>
+    </xsd:sequence>
+    <xsd:attributeGroup ref="xml:specialAttrs"/>
+  </xsd:complexType>
+</xsd:element>
+
+<xsd:element name="ObjectPropertyDomain">
+  <xsd:complexType>
+    <xsd:sequence>
+      <xsd:group ref="owl:axiomAnnotations"/>
+      <xsd:group ref="owl:ObjectPropertyExpression"/>
+      <xsd:group ref="owl:ClassExpression"/>
+    </xsd:sequence>
+    <xsd:attributeGroup ref="xml:specialAttrs"/>
+  </xsd:complexType>
+</xsd:element>
+
+<xsd:element name="ObjectPropertyRange">
+  <xsd:complexType>
+    <xsd:sequence>
+      <xsd:group ref="owl:axiomAnnotations"/>
+      <xsd:group ref="owl:ObjectPropertyExpression"/>
+      <xsd:group ref="owl:ClassExpression"/>
+    </xsd:sequence>
+    <xsd:attributeGroup ref="xml:specialAttrs"/>
+  </xsd:complexType>
+</xsd:element>
+
+<xsd:element name="InverseObjectProperties">
+  <xsd:complexType>
+    <xsd:sequence>
+      <xsd:group ref="owl:axiomAnnotations"/>
+      <xsd:group ref="owl:ObjectPropertyExpression" minOccurs="2" maxOccurs="2"/>
+    </xsd:sequence>
+    <xsd:attributeGroup ref="xml:specialAttrs"/>
+  </xsd:complexType>
+</xsd:element>
+
+<xsd:element name="FunctionalObjectProperty">
+  <xsd:complexType>
+    <xsd:sequence>
+      <xsd:group ref="owl:axiomAnnotations"/>
+      <xsd:group ref="owl:ObjectPropertyExpression"/>
+    </xsd:sequence>
+    <xsd:attributeGroup ref="xml:specialAttrs"/>
+  </xsd:complexType>
+</xsd:element>
+
+<xsd:element name="InverseFunctionalObjectProperty">
+  <xsd:complexType>
+    <xsd:sequence>
+      <xsd:group ref="owl:axiomAnnotations"/>
+      <xsd:group ref="owl:ObjectPropertyExpression"/>
+    </xsd:sequence>
+    <xsd:attributeGroup ref="xml:specialAttrs"/>
+  </xsd:complexType>
+</xsd:element>
+
+<xsd:element name="ReflexiveObjectProperty">
+  <xsd:complexType>
+    <xsd:sequence>
+      <xsd:group ref="owl:axiomAnnotations"/>
+      <xsd:group ref="owl:ObjectPropertyExpression"/>
+    </xsd:sequence>
+    <xsd:attributeGroup ref="xml:specialAttrs"/>
+  </xsd:complexType>
+</xsd:element>
+
+<xsd:element name="IrreflexiveObjectProperty">
+  <xsd:complexType>
+    <xsd:sequence>
+      <xsd:group ref="owl:axiomAnnotations"/>
+      <xsd:group ref="owl:ObjectPropertyExpression"/>
+    </xsd:sequence>
+    <xsd:attributeGroup ref="xml:specialAttrs"/>
+  </xsd:complexType>
+</xsd:element>
+
+<xsd:element name="SymmetricObjectProperty">
+  <xsd:complexType>
+    <xsd:sequence>
+      <xsd:group ref="owl:axiomAnnotations"/>
+      <xsd:group ref="owl:ObjectPropertyExpression"/>
+    </xsd:sequence>
+    <xsd:attributeGroup ref="xml:specialAttrs"/>
+  </xsd:complexType>
+</xsd:element>
+
+<xsd:element name="AsymmetricObjectProperty">
+  <xsd:complexType>
+    <xsd:sequence>
+      <xsd:group ref="owl:axiomAnnotations"/>
+      <xsd:group ref="owl:ObjectPropertyExpression"/>
+    </xsd:sequence>
+    <xsd:attributeGroup ref="xml:specialAttrs"/>
+  </xsd:complexType>
+</xsd:element>
+ 
+<xsd:element name="TransitiveObjectProperty">
+  <xsd:complexType>
+    <xsd:sequence>
+      <xsd:group ref="owl:axiomAnnotations"/>
+      <xsd:group ref="owl:ObjectPropertyExpression"/>
+    </xsd:sequence>
+    <xsd:attributeGroup ref="xml:specialAttrs"/>
+  </xsd:complexType>
+</xsd:element>
+
+<!-- Data property axioms -->
+
+<xsd:group name="DataPropertyAxiom">
+  <xsd:choice>
+    <xsd:element ref="owl:SubDataPropertyOf"/>
+    <xsd:element ref="owl:EquivalentDataProperties"/>
+    <xsd:element ref="owl:DisjointDataProperties"/>
+    <xsd:element ref="owl:DataPropertyDomain"/>
+    <xsd:element ref="owl:DataPropertyRange"/>
+    <xsd:element ref="owl:FunctionalDataProperty"/>
+  </xsd:choice>
+</xsd:group>
+
+<xsd:element name="SubDataPropertyOf">
+  <xsd:complexType>
+    <xsd:sequence>
+      <xsd:group ref="owl:axiomAnnotations"/>
+      <xsd:group ref="owl:DataPropertyExpression"/> <!-- This is the subproperty expression -->
+      <xsd:group ref="owl:DataPropertyExpression"/> <!-- This is the superproperty expression -->
+    </xsd:sequence>
+    <xsd:attributeGroup ref="xml:specialAttrs"/>
+  </xsd:complexType>
+</xsd:element>
+
+<xsd:element name="EquivalentDataProperties">
+  <xsd:complexType>
+    <xsd:sequence>
+      <xsd:group ref="owl:axiomAnnotations"/>
+      <xsd:group ref="owl:DataPropertyExpression" minOccurs="2" maxOccurs="unbounded"/>
+    </xsd:sequence>
+    <xsd:attributeGroup ref="xml:specialAttrs"/>
+  </xsd:complexType>
+</xsd:element>
+
+<xsd:element name="DisjointDataProperties">
+  <xsd:complexType>
+    <xsd:sequence>
+      <xsd:group ref="owl:axiomAnnotations"/>
+      <xsd:group ref="owl:DataPropertyExpression" minOccurs="2" maxOccurs="unbounded"/>
+    </xsd:sequence>
+    <xsd:attributeGroup ref="xml:specialAttrs"/>
+  </xsd:complexType>
+</xsd:element>
+
+<xsd:element name="DataPropertyDomain">
+  <xsd:complexType>
+    <xsd:sequence>
+      <xsd:group ref="owl:axiomAnnotations"/>
+      <xsd:group ref="owl:DataPropertyExpression"/>
+      <xsd:group ref="owl:ClassExpression"/>
+    </xsd:sequence>
+    <xsd:attributeGroup ref="xml:specialAttrs"/>
+  </xsd:complexType>
+</xsd:element>
+
+<xsd:element name="DataPropertyRange">
+  <xsd:complexType>
+    <xsd:sequence>
+      <xsd:group ref="owl:axiomAnnotations"/>
+      <xsd:group ref="owl:DataPropertyExpression"/>
+      <xsd:group ref="owl:DataRange"/>
+    </xsd:sequence>
+    <xsd:attributeGroup ref="xml:specialAttrs"/>
+  </xsd:complexType>
+</xsd:element>
+
+<xsd:element name="FunctionalDataProperty">
+  <xsd:complexType>
+    <xsd:sequence>
+      <xsd:group ref="owl:axiomAnnotations"/>
+      <xsd:group ref="owl:DataPropertyExpression"/>
+    </xsd:sequence>
+    <xsd:attributeGroup ref="xml:specialAttrs"/>
+  </xsd:complexType>
+</xsd:element>
+
+<!-- Key axioms -->
+
+<xsd:element name="HasKey">
+  <xsd:complexType>
+    <xsd:sequence>
+      <xsd:group ref="owl:axiomAnnotations"/>
+      <xsd:group ref="owl:ClassExpression"/>
+      <xsd:choice minOccurs="1" maxOccurs="unbounded">
+        <xsd:group ref="owl:ObjectPropertyExpression"/>
+        <xsd:group ref="owl:DataPropertyExpression"/>
+      </xsd:choice>
+    </xsd:sequence>
+    <xsd:attributeGroup ref="xml:specialAttrs"/>
+  </xsd:complexType>
+</xsd:element>
+
+<!-- Assertions -->
+
+<xsd:group name="Assertion">
+  <xsd:choice>
+    <xsd:element ref="owl:SameIndividual"/>
+    <xsd:element ref="owl:DifferentIndividuals"/>
+    <xsd:element ref="owl:ClassAssertion"/>
+    <xsd:element ref="owl:ObjectPropertyAssertion"/>
+    <xsd:element ref="owl:NegativeObjectPropertyAssertion"/>
+    <xsd:element ref="owl:DataPropertyAssertion"/>
+    <xsd:element ref="owl:NegativeDataPropertyAssertion"/>
+  </xsd:choice>
+</xsd:group> 
+
+<xsd:element name="SameIndividual">
+  <xsd:complexType>
+    <xsd:sequence>
+      <xsd:group ref="owl:axiomAnnotations"/>
+      <xsd:group ref="owl:Individual" minOccurs="2" maxOccurs="unbounded"/>
+    </xsd:sequence>
+    <xsd:attributeGroup ref="xml:specialAttrs"/>
+  </xsd:complexType>
+</xsd:element>
+
+<xsd:element name="DifferentIndividuals">
+  <xsd:complexType>
+    <xsd:sequence>
+      <xsd:group ref="owl:axiomAnnotations"/>
+      <xsd:group ref="owl:Individual" minOccurs="2" maxOccurs="unbounded"/>
+    </xsd:sequence>
+    <xsd:attributeGroup ref="xml:specialAttrs"/>
+  </xsd:complexType>
+</xsd:element>
+
+<xsd:element name="ClassAssertion">
+  <xsd:complexType>
+    <xsd:sequence>
+      <xsd:group ref="owl:axiomAnnotations"/>
+      <xsd:group ref="owl:ClassExpression"/>
+      <xsd:group ref="owl:Individual"/>
+    </xsd:sequence>
+    <xsd:attributeGroup ref="xml:specialAttrs"/>
+  </xsd:complexType>
+</xsd:element>
+
+<xsd:element name="ObjectPropertyAssertion">
+  <xsd:complexType>
+    <xsd:sequence>
+      <xsd:group ref="owl:axiomAnnotations"/>
+      <xsd:group ref="owl:ObjectPropertyExpression"/>
+      <xsd:group ref="owl:Individual"/> <!-- This is the source invididual  -->
+      <xsd:group ref="owl:Individual"/> <!-- This is the target individual -->
+    </xsd:sequence>
+    <xsd:attributeGroup ref="xml:specialAttrs"/>
+  </xsd:complexType>
+</xsd:element>
+
+<xsd:element name="NegativeObjectPropertyAssertion">
+  <xsd:complexType>
+    <xsd:sequence>
+      <xsd:group ref="owl:axiomAnnotations"/>
+      <xsd:group ref="owl:ObjectPropertyExpression"/>
+      <xsd:group ref="owl:Individual"/> <!-- This is the source invididual  -->
+      <xsd:group ref="owl:Individual"/> <!-- This is the target individual -->
+    </xsd:sequence>
+    <xsd:attributeGroup ref="xml:specialAttrs"/>
+  </xsd:complexType>
+</xsd:element>
+
+<xsd:element name="DataPropertyAssertion">
+  <xsd:complexType>
+    <xsd:sequence>
+      <xsd:group ref="owl:axiomAnnotations"/>
+      <xsd:group ref="owl:DataPropertyExpression"/>
+      <xsd:group ref="owl:Individual"/> <!-- This is the source invididual  -->
+      <xsd:element ref="owl:Literal"/> <!-- This is the target value -->
+    </xsd:sequence>
+    <xsd:attributeGroup ref="xml:specialAttrs"/>
+  </xsd:complexType>
+</xsd:element>
+
+<xsd:element name="NegativeDataPropertyAssertion">
+  <xsd:complexType>
+    <xsd:sequence>
+      <xsd:group ref="owl:axiomAnnotations"/>
+      <xsd:group ref="owl:DataPropertyExpression"/>
+      <xsd:group ref="owl:Individual"/> <!-- This is the source invididual  -->
+      <xsd:element ref="owl:Literal"/> <!-- This is the target value -->
+    </xsd:sequence>
+    <xsd:attributeGroup ref="xml:specialAttrs"/>
+  </xsd:complexType>
+</xsd:element>
+
+<!-- Annotations  -->
+
+<xsd:element name="IRI">
+  <xsd:complexType>
+    <xsd:simpleContent>
+      <xsd:extension base="xsd:anyURI">
+        <xsd:attributeGroup ref="xml:specialAttrs"/>
+      </xsd:extension>
+    </xsd:simpleContent>
+  </xsd:complexType>
+</xsd:element>
+
+<xsd:group name="AnnotationSubject">
+  <xsd:choice>
+    <xsd:element ref="owl:IRI"/>
+    <xsd:element ref="owl:AnonymousIndividual"/>
+  </xsd:choice>
+</xsd:group>
+
+<xsd:group name="AnnotationValue">
+  <xsd:choice>
+    <xsd:element ref="owl:IRI"/>
+    <xsd:element ref="owl:AnonymousIndividual"/>
+    <xsd:element ref="owl:Literal"/>
+  </xsd:choice>
+</xsd:group>
+
+<xsd:element name="Annotation">
+  <xsd:complexType>
+    <xsd:sequence>
+      <xsd:group ref="owl:annotationAnnotations"/>
+      <xsd:element ref="owl:AnnotationProperty"/>
+      <xsd:group ref="owl:AnnotationValue"/>
+    </xsd:sequence>
+    <xsd:attributeGroup ref="xml:specialAttrs"/>
+  </xsd:complexType>
+</xsd:element>
+
+<xsd:group name="axiomAnnotations">
+  <xsd:sequence>
+    <xsd:element ref="owl:Annotation" minOccurs="0" maxOccurs="unbounded"/>
+  </xsd:sequence>
+</xsd:group>
+
+<xsd:group name="ontologyAnnotations">
+  <xsd:sequence>
+    <xsd:element ref="owl:Annotation" minOccurs="0" maxOccurs="unbounded"/>
+  </xsd:sequence>
+</xsd:group>
+
+<xsd:group name="annotationAnnotations">
+  <xsd:sequence>
+    <xsd:element ref="owl:Annotation" minOccurs="0" maxOccurs="unbounded"/>
+  </xsd:sequence>
+</xsd:group>
+
+<!-- Annotation axioms -->
+
+<xsd:group name="AnnotationAxiom">
+  <xsd:choice>
+    <xsd:element ref="owl:AnnotationAssertion"/>
+    <xsd:element ref="owl:SubAnnotationPropertyOf"/>
+    <xsd:element ref="owl:AnnotationPropertyDomain"/>
+    <xsd:element ref="owl:AnnotationPropertyRange"/>
+  </xsd:choice>
+</xsd:group>
+
+<xsd:element name="AnnotationAssertion">
+  <xsd:complexType>
+    <xsd:sequence>
+      <xsd:group ref="owl:axiomAnnotations"/>
+      <xsd:element ref="owl:AnnotationProperty"/>
+      <xsd:group ref="owl:AnnotationSubject"/>
+      <xsd:group ref="owl:AnnotationValue"/>
+    </xsd:sequence>
+    <xsd:attributeGroup ref="xml:specialAttrs"/>
+  </xsd:complexType>
+</xsd:element>
+
+<xsd:element name="SubAnnotationPropertyOf">
+  <xsd:complexType>
+    <xsd:sequence>
+      <xsd:group ref="owl:axiomAnnotations"/>
+      <xsd:element ref="owl:AnnotationProperty"/> <!-- This is the subproperty -->
+      <xsd:element ref="owl:AnnotationProperty"/> <!-- This is the superproperty -->
+    </xsd:sequence>
+    <xsd:attributeGroup ref="xml:specialAttrs"/>
+  </xsd:complexType>
+</xsd:element>
+
+<xsd:element name="AnnotationPropertyDomain">
+  <xsd:complexType>
+    <xsd:sequence>
+      <xsd:group ref="owl:axiomAnnotations"/>
+      <xsd:element ref="owl:AnnotationProperty"/>
+      <xsd:element ref="owl:IRI"/>
+    </xsd:sequence>
+    <xsd:attributeGroup ref="xml:specialAttrs"/>
+  </xsd:complexType>
+</xsd:element>
+
+<xsd:element name="AnnotationPropertyRange">
+  <xsd:complexType>
+    <xsd:sequence>
+      <xsd:group ref="owl:axiomAnnotations"/>
+      <xsd:element ref="owl:AnnotationProperty"/>
+      <xsd:element ref="owl:IRI"/>
+    </xsd:sequence>
+    <xsd:attributeGroup ref="xml:specialAttrs"/>
+  </xsd:complexType>
+</xsd:element>
+
+</xsd:schema>
+
+''')
+
+        rdf = StringIO('''<xsd:schema
+        xmlns:xsd="http://www.w3.org/1999/XMLSchema"
+        xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+        targetNamespace="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
+      
+        <xsd:element name="RDF">
+                <xsd:complexType  content="elementOnly" >
+                        <xsd:sequence  maxOccurs="*" >
+                                <xsd:choice>
+                                        <xsd:element ref="rdf:TypedNode"   /><!-- abstract !-->
+                                        <xsd:element ref="rdf:Bag" />
+                                        <xsd:element ref="rdf:Seq" />
+                                        <xsd:element ref="rdf:Alt" />
+                                </xsd:choice>
+                        </xsd:sequence>
+                </xsd:complexType>
+        </xsd:element>
+
+        <!-- RDF Typed nodes -->
+       <xsd:complexType   name="TypedNodeType" content="elementOnly" >
+                <xsd:sequence maxOccurs="*" >
+                        <xsd:element ref="rdf:PropertyElt"   /><!--abstract !-->
+                </xsd:sequence>
+                <xsd:attribute  name="id" minOccurs="0" type="ID"  />
+                <xsd:attribute  name="type" minOccurs="0" type="string" />
+                <xsd:attribute name="about" minOccurs="0" type="string" />
+                <xsd:attribute  name="aboutEach" minOccurs="0" type="string" />
+                <xsd:attribute   name="aboutEachPrefix" minOccurs="0" type="string" />
+                <xsd:attribute  name="badID" minOccurs="0" type="ID" />
+        </xsd:complexType>
+        <xsd:element name="TypedNode"  abstract="true"  type="rdf:TypedNodeType" />
+
+        <xsd:element name="Description"
+                type="rdf:TypedNodeType" equivClass="rdf:TypedNode" />
+
+
+        <!-- RDF Property Elements -->
+        <xsd:complexType  name="PropertyEltType" >
+                <xsd:any minOccurs="0" />
+                <xsd:attribute name="id"  minOccurs="0"  type="ID" />
+                <xsd:attribute  name="resource" minOccurs="0"  type="string" />
+                <xsd:attribute  name="value" minOccurs="0"  type="string" />
+                <xsd:attribute  name="badID" minOccurs="0" type="ID"  />
+                <xsd:attribute name="parseType"  minOccurs="0" >
+                        <xsd:simpleType base="NMTOKEN">
+                                 <xsd:enumeration value="Resource"/>
+                                 <xsd:enumeration value="Literal" />
+                       </xsd:simpleType>
+                </xsd:attribute>
+                <xsd:anyAttribute  />
+        </xsd:complexType>
+
+        <xsd:element name="PropertyElt"  abstract="true" type="rdf:PropertyEltType" />
+
+        <xsd:element   name="subject"   equivClass="rdf:PropertyElt"  />
+        <xsd:element name="predicate"   equivClass="rdf:PropertyElt" />
+        <xsd:element name="object"  equivClass="rdf:PropertyElt" />
+        <xsd:element   name="type"  equivClass="rdf:PropertyElt" />
+
+        <xsd:element name="value">
+                <xsd:complexType>
+                        <xsd:any />
+                        <xsd:anyAttribute />
+                </xsd:complexType>
+        </xsd:element>
+
+
+        <!-- RDF Containers -->
+        <xsd:complexType name="Container" abstract="true" content="elementOnly" >
+                <xsd:sequence maxOccurs="*">
+                        <xsd:element name="li">
+                                <xsd:complexType>
+                                        <xsd:any/>
+                                        <xsd:attribute name="id"  minOccurs="0" type="ID" />
+                                        <xsd:attribute name="parseType" minOccurs="0" >
+                                                <xsd:simpleType base="NMTOKEN">
+                                                     <xsd:enumeration value="Resource"/>
+                                                     <xsd:enumeration value="Literal" />
+                                                </xsd:simpleType>
+                                        </xsd:attribute>
+                                        <xsd:anyAttribute />
+                                </xsd:complexType>
+                        </xsd:element>
+                </xsd:sequence>
+                <xsd:attribute name="id" type="ID" />
+                <xsd:anyAttribute />
+        </xsd:complexType>
+
+        <xsd:element name="Alt" type="rdf:Container" />
+        <xsd:element name="Bag" type="rdf:Container" />
+        <xsd:element name="Seq" type="rdf:Container" />
+
+</xsd:schema>
+
+ ''')
+        
+        
+        xmlschema_rdf = etree.parse(rdf)
+        xmlschema_owl = etree.parse(owl)
+        
+        owlschema = etree.XMLSchema(xmlschema_owl)
+        valid = StringIO('''<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE rdf:RDF [
+        <!ENTITY owl "http://www.w3.org/2002/07/owl#" >
+        <!ENTITY xsd "http://www.w3.org/2001/XMLSchema#" >
+        <!ENTITY rdfs "http://www.w3.org/2000/01/rdf-schema#" >
+        <!ENTITY rdf "http://www.w3.org/1999/02/22-rdf-syntax-ns#" >
+        <!ENTITY inst_jplorg2 "http://logilab.org/owl/ontologies/inst_jplorg2#" >
+        
+        ]>
+<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#" xmlns:xsd="http://www.w3.org/2001/XMLSchema#" xmlns:owl="http://www.w3.org/2002/07/owl#" xmlns="http://logilab.org/owl/ontologies/inst_jplorg2#" xmlns:inst_jplorg2="http://logilab.org/owl/ontologies/inst_jplorg2#" xml:base="http://logilab.org/owl/ontologies/inst_jplorg2#">
+
+    <owl:Ontology rdf:about="">
+        <rdfs:comment>
+        inst_jplorg2 Cubicweb OWL Ontology                           
+                                        
+        </rdfs:comment>
+        <!-- classes definition --><owl:Class rdf:ID="Blog"><rdfs:subClassOf rdf:resource="http://www.w3.org/2002/07/owl#Thing"/>
+                                <!-- relations --><rdfs:subClassOf>
+                              <owl:Restriction>
+                              <owl:onProperty rdf:resource="#in_basket"/>
+                                <owl:cardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">n</owl:cardinality>
+                              </owl:Restriction>
+                           </rdfs:subClassOf>
+                                <rdfs:subClassOf>
+                              <owl:Restriction>
+                              <owl:onProperty rdf:resource="#interested_in"/>
+                                <owl:cardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">n</owl:cardinality>
+                              </owl:Restriction>
+                           </rdfs:subClassOf>
+                                <rdfs:subClassOf>
+                              <owl:Restriction>
+                              <owl:onProperty rdf:resource="#entry_of"/>
+                                <owl:cardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">n</owl:cardinality>
+                              </owl:Restriction>
+                           </rdfs:subClassOf>
+                                <!-- attributes --><rdfs:subClassOf>
+                              <owl:Restriction>
+                                  <owl:onProperty rdf:resource="#title"/>
+                                  <owl:cardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">1</owl:cardinality>
+                              </owl:Restriction>
+                        </rdfs:subClassOf><rdfs:subClassOf>
+                              <owl:Restriction>
+                                  <owl:onProperty rdf:resource="#description"/>
+                                  <owl:cardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">1</owl:cardinality>
+                              </owl:Restriction>
+                        </rdfs:subClassOf><rdfs:subClassOf>
+                              <owl:Restriction>
+                                  <owl:onProperty rdf:resource="#creation_date"/>
+                                  <owl:cardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">1</owl:cardinality>
+                              </owl:Restriction>
+                        </rdfs:subClassOf><rdfs:subClassOf>
+                              <owl:Restriction>
+                                  <owl:onProperty rdf:resource="#modification_date"/>
+                                  <owl:cardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">1</owl:cardinality>
+                              </owl:Restriction>
+                        </rdfs:subClassOf></owl:Class><owl:Class rdf:ID="BlogEntry"><rdfs:subClassOf rdf:resource="http://www.w3.org/2002/07/owl#Thing"/>
+                                <!-- relations --><rdfs:subClassOf>
+                              <owl:Restriction>
+                              <owl:onProperty rdf:resource="#see_also"/>
+                                <owl:cardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">n</owl:cardinality>
+                              </owl:Restriction>
+                           </rdfs:subClassOf>
+                                <rdfs:subClassOf>
+                              <owl:Restriction>
+                              <owl:onProperty rdf:resource="#see_also"/>
+                                <owl:cardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">n</owl:cardinality>
+                              </owl:Restriction>
+                           </rdfs:subClassOf>
+                                <rdfs:subClassOf>
+                              <owl:Restriction>
+                              <owl:onProperty rdf:resource="#see_also"/>
+                                <owl:cardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">n</owl:cardinality>
+                              </owl:Restriction>
+                           </rdfs:subClassOf>
+                                <rdfs:subClassOf>
+                              <owl:Restriction>
+                              <owl:onProperty rdf:resource="#see_also"/>
+                                <owl:cardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">n</owl:cardinality>
+                              </owl:Restriction>
+                           </rdfs:subClassOf>
+                                <rdfs:subClassOf>
+                              <owl:Restriction>
+                              <owl:onProperty rdf:resource="#see_also"/>
+                                <owl:cardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">n</owl:cardinality>
+                              </owl:Restriction>
+                           </rdfs:subClassOf>
+                                <rdfs:subClassOf>
+                              <owl:Restriction>
+                              <owl:onProperty rdf:resource="#see_also"/>
+                                <owl:cardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">n</owl:cardinality>
+                              </owl:Restriction>
+                           </rdfs:subClassOf>
+                                <rdfs:subClassOf>
+                              <owl:Restriction>
+                              <owl:onProperty rdf:resource="#see_also"/>
+                                <owl:cardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">n</owl:cardinality>
+                              </owl:Restriction>
+                           </rdfs:subClassOf>
+                                <rdfs:subClassOf>
+                              <owl:Restriction>
+                              <owl:onProperty rdf:resource="#see_also"/>
+                                <owl:cardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">n</owl:cardinality>
+                              </owl:Restriction>
+                           </rdfs:subClassOf>
+                                <rdfs:subClassOf>
+                              <owl:Restriction>
+                              <owl:onProperty rdf:resource="#entry_of"/>
+                                <owl:maxCardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">1</owl:maxCardinality>
+                              </owl:Restriction>
+                           </rdfs:subClassOf>
+                                <rdfs:subClassOf>
+                              <owl:Restriction>
+                              <owl:onProperty rdf:resource="#in_basket"/>
+                                <owl:cardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">n</owl:cardinality>
+                              </owl:Restriction>
+                           </rdfs:subClassOf>
+                                <rdfs:subClassOf>
+                              <owl:Restriction>
+                              <owl:onProperty rdf:resource="#filed_under"/>
+                                <owl:cardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">n</owl:cardinality>
+                              </owl:Restriction>
+                           </rdfs:subClassOf>
+                                <rdfs:subClassOf>
+                              <owl:Restriction>
+                              <owl:onProperty rdf:resource="#interested_in"/>
+                                <owl:cardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">n</owl:cardinality>
+                              </owl:Restriction>
+                           </rdfs:subClassOf>
+                                <rdfs:subClassOf>
+                              <owl:Restriction>
+                              <owl:onProperty rdf:resource="#comments"/>
+                                <owl:cardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">n</owl:cardinality>
+                              </owl:Restriction>
+                           </rdfs:subClassOf>
+                                <rdfs:subClassOf>
+                              <owl:Restriction>
+                              <owl:onProperty rdf:resource="#tags"/>
+                                <owl:cardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">n</owl:cardinality>
+                              </owl:Restriction>
+                           </rdfs:subClassOf>
+                                <!-- attributes --><rdfs:subClassOf>
+                              <owl:Restriction>
+                                  <owl:onProperty rdf:resource="#title"/>
+                                  <owl:cardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">1</owl:cardinality>
+                              </owl:Restriction>
+                        </rdfs:subClassOf><rdfs:subClassOf>
+                              <owl:Restriction>
+                                  <owl:onProperty rdf:resource="#content_format"/>
+                                  <owl:cardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">1</owl:cardinality>
+                              </owl:Restriction>
+                        </rdfs:subClassOf><rdfs:subClassOf>
+                              <owl:Restriction>
+                                  <owl:onProperty rdf:resource="#content"/>
+                                  <owl:cardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">1</owl:cardinality>
+                              </owl:Restriction>
+                        </rdfs:subClassOf><rdfs:subClassOf>
+                              <owl:Restriction>
+                                  <owl:onProperty rdf:resource="#creation_date"/>
+                                  <owl:cardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">1</owl:cardinality>
+                              </owl:Restriction>
+                        </rdfs:subClassOf><rdfs:subClassOf>
+                              <owl:Restriction>
+                                  <owl:onProperty rdf:resource="#modification_date"/>
+                                  <owl:cardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">1</owl:cardinality>
+                              </owl:Restriction>
+                        </rdfs:subClassOf></owl:Class><owl:Class rdf:ID="Card"><rdfs:subClassOf rdf:resource="http://www.w3.org/2002/07/owl#Thing"/>
+                                <!-- relations --><rdfs:subClassOf>
+                              <owl:Restriction>
+                              <owl:onProperty rdf:resource="#see_also"/>
+                                <owl:cardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">n</owl:cardinality>
+                              </owl:Restriction>
+                           </rdfs:subClassOf>
+                                <rdfs:subClassOf>
+                              <owl:Restriction>
+                              <owl:onProperty rdf:resource="#see_also"/>
+                                <owl:cardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">n</owl:cardinality>
+                              </owl:Restriction>
+                           </rdfs:subClassOf>
+                                <rdfs:subClassOf>
+                              <owl:Restriction>
+                              <owl:onProperty rdf:resource="#see_also"/>
+                                <owl:cardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">n</owl:cardinality>
+                              </owl:Restriction>
+                           </rdfs:subClassOf>
+                                <rdfs:subClassOf>
+                              <owl:Restriction>
+                              <owl:onProperty rdf:resource="#see_also"/>
+                                <owl:cardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">n</owl:cardinality>
+                              </owl:Restriction>
+                           </rdfs:subClassOf>
+                                <rdfs:subClassOf>
+                              <owl:Restriction>
+                              <owl:onProperty rdf:resource="#see_also"/>
+                                <owl:cardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">n</owl:cardinality>
+                              </owl:Restriction>
+                           </rdfs:subClassOf>
+                                <rdfs:subClassOf>
+                              <owl:Restriction>
+                              <owl:onProperty rdf:resource="#see_also"/>
+                                <owl:cardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">n</owl:cardinality>
+                              </owl:Restriction>
+                           </rdfs:subClassOf>
+                                <rdfs:subClassOf>
+                              <owl:Restriction>
+                              <owl:onProperty rdf:resource="#see_also"/>
+                                <owl:cardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">n</owl:cardinality>
+                              </owl:Restriction>
+                           </rdfs:subClassOf>
+                                <rdfs:subClassOf>
+                              <owl:Restriction>
+                              <owl:onProperty rdf:resource="#see_also"/>
+                                <owl:cardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">n</owl:cardinality>
+                              </owl:Restriction>
+                           </rdfs:subClassOf>
+                                <rdfs:subClassOf>
+                              <owl:Restriction>
+                              <owl:onProperty rdf:resource="#in_basket"/>
+                                <owl:cardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">n</owl:cardinality>
+                              </owl:Restriction>
+                           </rdfs:subClassOf>
+                                <rdfs:subClassOf>
+                              <owl:Restriction>
+                              <owl:onProperty rdf:resource="#filed_under"/>
+                                <owl:cardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">n</owl:cardinality>
+                              </owl:Restriction>
+                           </rdfs:subClassOf>
+                                <rdfs:subClassOf>
+                              <owl:Restriction>
+                              <owl:onProperty rdf:resource="#require_permission"/>
+                                <owl:cardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">n</owl:cardinality>
+                              </owl:Restriction>
+                           </rdfs:subClassOf>
+                                <rdfs:subClassOf>
+                              <owl:Restriction>
+                              <owl:onProperty rdf:resource="#test_case_for"/>
+                                <owl:maxCardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">1</owl:maxCardinality>
+                              </owl:Restriction>
+                           </rdfs:subClassOf>
+                                <rdfs:subClassOf>
+                              <owl:Restriction>
+                              <owl:onProperty rdf:resource="#test_case_of"/>
+                                <owl:maxCardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">1</owl:maxCardinality>
+                              </owl:Restriction>
+                           </rdfs:subClassOf>
+                                <rdfs:subClassOf>
+                              <owl:Restriction>
+                              <owl:onProperty rdf:resource="#documented_by"/>
+                                <owl:cardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">n</owl:cardinality>
+                              </owl:Restriction>
+                           </rdfs:subClassOf>
+                                <rdfs:subClassOf>
+                              <owl:Restriction>
+                              <owl:onProperty rdf:resource="#instance_of"/>
+                                <owl:cardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">n</owl:cardinality>
+                              </owl:Restriction>
+                           </rdfs:subClassOf>
+                                <rdfs:subClassOf>
+                              <owl:Restriction>
+                              <owl:onProperty rdf:resource="#comments"/>
+                                <owl:cardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">n</owl:cardinality>
+                              </owl:Restriction>
+                           </rdfs:subClassOf>
+                                <rdfs:subClassOf>
+                              <owl:Restriction>
+                              <owl:onProperty rdf:resource="#tags"/>
+                                <owl:cardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">n</owl:cardinality>
+                              </owl:Restriction>
+                           </rdfs:subClassOf>
+                                <!-- attributes --><rdfs:subClassOf>
+                              <owl:Restriction>
+                                  <owl:onProperty rdf:resource="#title"/>
+                                  <owl:cardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">1</owl:cardinality>
+                              </owl:Restriction>
+                        </rdfs:subClassOf><rdfs:subClassOf>
+                              <owl:Restriction>
+                                  <owl:onProperty rdf:resource="#synopsis"/>
+                                  <owl:cardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">1</owl:cardinality>
+                              </owl:Restriction>
+                        </rdfs:subClassOf><rdfs:subClassOf>
+                              <owl:Restriction>
+                                  <owl:onProperty rdf:resource="#content_format"/>
+                                  <owl:cardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">1</owl:cardinality>
+                              </owl:Restriction>
+                        </rdfs:subClassOf><rdfs:subClassOf>
+                              <owl:Restriction>
+                                  <owl:onProperty rdf:resource="#content"/>
+                                  <owl:cardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">1</owl:cardinality>
+                              </owl:Restriction>
+                        </rdfs:subClassOf><rdfs:subClassOf>
+                              <owl:Restriction>
+                                  <owl:onProperty rdf:resource="#wikiid"/>
+                                  <owl:cardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">1</owl:cardinality>
+                              </owl:Restriction>
+                        </rdfs:subClassOf><rdfs:subClassOf>
+                              <owl:Restriction>
+                                  <owl:onProperty rdf:resource="#creation_date"/>
+                                  <owl:cardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">1</owl:cardinality>
+                              </owl:Restriction>
+                        </rdfs:subClassOf><rdfs:subClassOf>
+                              <owl:Restriction>
+                                  <owl:onProperty rdf:resource="#modification_date"/>
+                                  <owl:cardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">1</owl:cardinality>
+                              </owl:Restriction>
+                        </rdfs:subClassOf></owl:Class><owl:Class rdf:ID="Email"><rdfs:subClassOf rdf:resource="http://www.w3.org/2002/07/owl#Thing"/>
+                                <!-- relations --><rdfs:subClassOf>
+                              <owl:Restriction>
+                              <owl:onProperty rdf:resource="#see_also"/>
+                                <owl:cardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">n</owl:cardinality>
+                              </owl:Restriction>
+                           </rdfs:subClassOf>
+                                <rdfs:subClassOf>
+                              <owl:Restriction>
+                              <owl:onProperty rdf:resource="#see_also"/>
+                                <owl:cardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">n</owl:cardinality>
+                              </owl:Restriction>
+                           </rdfs:subClassOf>
+                                <rdfs:subClassOf>
+                              <owl:Restriction>
+                              <owl:onProperty rdf:resource="#sent_on"/>
+                                <owl:cardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">n</owl:cardinality>
+                              </owl:Restriction>
+                           </rdfs:subClassOf>
+                                <rdfs:subClassOf>
+                              <owl:Restriction>
+                              <owl:onProperty rdf:resource="#in_basket"/>
+                                <owl:cardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">n</owl:cardinality>
+                              </owl:Restriction>
+                           </rdfs:subClassOf>
+                                <rdfs:subClassOf>
+                              <owl:Restriction>
+                              <owl:onProperty rdf:resource="#sender"/>
+                                <owl:minCardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">1</owl:minCardinality>
+                        <owl:maxCardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">1</owl:maxCardinality>
+                              </owl:Restriction>
+                           </rdfs:subClassOf>
+                                <rdfs:subClassOf>
+                              <owl:Restriction>
+                              <owl:onProperty rdf:resource="#recipients"/>
+                                <owl:cardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">n</owl:cardinality>
+                              </owl:Restriction>
+                           </rdfs:subClassOf>
+                                <rdfs:subClassOf>
+                              <owl:Restriction>
+                              <owl:onProperty rdf:resource="#cc"/>
+                                <owl:cardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">n</owl:cardinality>
+                              </owl:Restriction>
+                           </rdfs:subClassOf>
+                                <rdfs:subClassOf>
+                              <owl:Restriction>
+                              <owl:onProperty rdf:resource="#parts"/>
+                                <owl:cardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">n</owl:cardinality>
+                              </owl:Restriction>
+                           </rdfs:subClassOf>
+                                <rdfs:subClassOf>
+                              <owl:Restriction>
+                              <owl:onProperty rdf:resource="#attachment"/>
+                                <owl:cardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">n</owl:cardinality>
+                              </owl:Restriction>
+                           </rdfs:subClassOf>
+                                <rdfs:subClassOf>
+                              <owl:Restriction>
+                              <owl:onProperty rdf:resource="#reply_to"/>
+                                <owl:maxCardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">1</owl:maxCardinality>
+                              </owl:Restriction>
+                           </rdfs:subClassOf>
+                                <rdfs:subClassOf>
+                              <owl:Restriction>
+                              <owl:onProperty rdf:resource="#cites"/>
+                                <owl:cardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">n</owl:cardinality>
+                              </owl:Restriction>
+                           </rdfs:subClassOf>
+                                <rdfs:subClassOf>
+                              <owl:Restriction>
+                              <owl:onProperty rdf:resource="#in_thread"/>
+                                <owl:maxCardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">1</owl:maxCardinality>
+                              </owl:Restriction>
+                           </rdfs:subClassOf>
+                                <rdfs:subClassOf>
+                              <owl:Restriction>
+                              <owl:onProperty rdf:resource="#tags"/>
+                                <owl:cardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">n</owl:cardinality>
+                              </owl:Restriction>
+                           </rdfs:subClassOf>
+                                <rdfs:subClassOf>
+                              <owl:Restriction>
+                              <owl:onProperty rdf:resource="#generated_by"/>
+                                <owl:cardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">n</owl:cardinality>
+                              </owl:Restriction>
+                           </rdfs:subClassOf>
+                                <rdfs:subClassOf>
+                              <owl:Restriction>
+                              <owl:onProperty rdf:resource="#generated_by"/>
+                                <owl:cardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">n</owl:cardinality>
+                              </owl:Restriction>
+                           </rdfs:subClassOf>
+                                <rdfs:subClassOf>
+                              <owl:Restriction>
+                              <owl:onProperty rdf:resource="#comments"/>
+                                <owl:cardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">n</owl:cardinality>
+                              </owl:Restriction>
+                           </rdfs:subClassOf>
+                                <rdfs:subClassOf>
+                              <owl:Restriction>
+                              <owl:onProperty rdf:resource="#reply_to"/>
+                                <owl:cardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">n</owl:cardinality>
+                              </owl:Restriction>
+                           </rdfs:subClassOf>
+                                <rdfs:subClassOf>
+                              <owl:Restriction>
+                              <owl:onProperty rdf:resource="#cites"/>
+                                <owl:cardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">n</owl:cardinality>
+                              </owl:Restriction>
+                           </rdfs:subClassOf>
+                                <!-- attributes --><rdfs:subClassOf>
+                              <owl:Restriction>
+                                  <owl:onProperty rdf:resource="#subject"/>
+                                  <owl:cardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">1</owl:cardinality>
+                              </owl:Restriction>
+                        </rdfs:subClassOf><rdfs:subClassOf>
+                              <owl:Restriction>
+                                  <owl:onProperty rdf:resource="#date"/>
+                                  <owl:cardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">1</owl:cardinality>
+                              </owl:Restriction>
+                        </rdfs:subClassOf><rdfs:subClassOf>
+                              <owl:Restriction>
+                                  <owl:onProperty rdf:resource="#messageid"/>
+                                  <owl:cardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">1</owl:cardinality>
+                              </owl:Restriction>
+                        </rdfs:subClassOf><rdfs:subClassOf>
+                              <owl:Restriction>
+                                  <owl:onProperty rdf:resource="#headers"/>
+                                  <owl:cardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">1</owl:cardinality>
+                              </owl:Restriction>
+                        </rdfs:subClassOf><rdfs:subClassOf>
+                              <owl:Restriction>
+                                  <owl:onProperty rdf:resource="#creation_date"/>
+                                  <owl:cardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">1</owl:cardinality>
+                              </owl:Restriction>
+                        </rdfs:subClassOf><rdfs:subClassOf>
+                              <owl:Restriction>
+                                  <owl:onProperty rdf:resource="#modification_date"/>
+                                  <owl:cardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">1</owl:cardinality>
+                              </owl:Restriction>
+                        </rdfs:subClassOf></owl:Class><owl:Class rdf:ID="EmailThread"><rdfs:subClassOf rdf:resource="http://www.w3.org/2002/07/owl#Thing"/>
+                                <!-- relations --><rdfs:subClassOf>
+                              <owl:Restriction>
+                              <owl:onProperty rdf:resource="#see_also"/>
+                                <owl:cardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">n</owl:cardinality>
+                              </owl:Restriction>
+                           </rdfs:subClassOf>
+                                <rdfs:subClassOf>
+                              <owl:Restriction>
+                              <owl:onProperty rdf:resource="#forked_from"/>
+                                <owl:maxCardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">1</owl:maxCardinality>
+                              </owl:Restriction>
+                           </rdfs:subClassOf>
+                                <rdfs:subClassOf>
+                              <owl:Restriction>
+                              <owl:onProperty rdf:resource="#in_basket"/>
+                                <owl:cardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">n</owl:cardinality>
+                              </owl:Restriction>
+                           </rdfs:subClassOf>
+                                <rdfs:subClassOf>
+                              <owl:Restriction>
+                              <owl:onProperty rdf:resource="#in_thread"/>
+                                <owl:cardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">n</owl:cardinality>
+                              </owl:Restriction>
+                           </rdfs:subClassOf>
+                                <rdfs:subClassOf>
+                              <owl:Restriction>
+                              <owl:onProperty rdf:resource="#forked_from"/>
+                                <owl:cardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">n</owl:cardinality>
+                              </owl:Restriction>
+                           </rdfs:subClassOf>
+                                <!-- attributes --><rdfs:subClassOf>
+                              <owl:Restriction>
+                                  <owl:onProperty rdf:resource="#title"/>
+                                  <owl:cardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">1</owl:cardinality>
+                              </owl:Restriction>
+                        </rdfs:subClassOf><rdfs:subClassOf>
+                              <owl:Restriction>
+                                  <owl:onProperty rdf:resource="#creation_date"/>
+                                  <owl:cardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">1</owl:cardinality>
+                              </owl:Restriction>
+                        </rdfs:subClassOf><rdfs:subClassOf>
+                              <owl:Restriction>
+                                  <owl:onProperty rdf:resource="#modification_date"/>
+                                  <owl:cardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">1</owl:cardinality>
+                              </owl:Restriction>
+                        </rdfs:subClassOf></owl:Class><owl:Class rdf:ID="ExtProject"><rdfs:subClassOf rdf:resource="http://www.w3.org/2002/07/owl#Thing"/>
+                                <!-- relations --><rdfs:subClassOf>
+                              <owl:Restriction>
+                              <owl:onProperty rdf:resource="#see_also"/>
+                                <owl:cardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">n</owl:cardinality>
+                              </owl:Restriction>
+                           </rdfs:subClassOf>
+                                <rdfs:subClassOf>
+                              <owl:Restriction>
+                              <owl:onProperty rdf:resource="#see_also"/>
+                                <owl:cardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">n</owl:cardinality>
+                              </owl:Restriction>
+                           </rdfs:subClassOf>
+                                <rdfs:subClassOf>
+                              <owl:Restriction>
+                              <owl:onProperty rdf:resource="#see_also"/>
+                                <owl:cardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">n</owl:cardinality>
+                              </owl:Restriction>
+                           </rdfs:subClassOf>
+                                <rdfs:subClassOf>
+                              <owl:Restriction>
+                              <owl:onProperty rdf:resource="#see_also"/>
+                                <owl:cardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">n</owl:cardinality>
+                              </owl:Restriction>
+                           </rdfs:subClassOf>
+                                <rdfs:subClassOf>
+                              <owl:Restriction>
+                              <owl:onProperty rdf:resource="#see_also"/>
+                                <owl:cardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">n</owl:cardinality>
+                              </owl:Restriction>
+                           </rdfs:subClassOf>
+                                <rdfs:subClassOf>
+                              <owl:Restriction>
+                              <owl:onProperty rdf:resource="#see_also"/>
+                                <owl:cardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">n</owl:cardinality>
+                              </owl:Restriction>
+                           </rdfs:subClassOf>
+                                <rdfs:subClassOf>
+                              <owl:Restriction>
+                              <owl:onProperty rdf:resource="#see_also"/>
+                                <owl:cardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">n</owl:cardinality>
+                              </owl:Restriction>
+                           </rdfs:subClassOf>
+                                <rdfs:subClassOf>
+                              <owl:Restriction>
+                              <owl:onProperty rdf:resource="#see_also"/>
+                                <owl:cardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">n</owl:cardinality>
+                              </owl:Restriction>
+                           </rdfs:subClassOf>
+                                <rdfs:subClassOf>
+                              <owl:Restriction>
+                              <owl:onProperty rdf:resource="#in_basket"/>
+                                <owl:cardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">n</owl:cardinality>
+                              </owl:Restriction>
+                           </rdfs:subClassOf>
+                                <rdfs:subClassOf>
+                              <owl:Restriction>
+                              <owl:onProperty rdf:resource="#filed_under"/>
+                                <owl:cardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">n</owl:cardinality>
+                              </owl:Restriction>
+                           </rdfs:subClassOf>
+                                <rdfs:subClassOf>
+                              <owl:Restriction>
+                              <owl:onProperty rdf:resource="#require_permission"/>
+                                <owl:cardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">n</owl:cardinality>
+                              </owl:Restriction>
+                           </rdfs:subClassOf>
+                                <rdfs:subClassOf>
+                              <owl:Restriction>
+                              <owl:onProperty rdf:resource="#recommends"/>
+                                <owl:cardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">n</owl:cardinality>
+                              </owl:Restriction>
+                           </rdfs:subClassOf>
+                                <rdfs:subClassOf>
+                              <owl:Restriction>
+                              <owl:onProperty rdf:resource="#uses"/>
+                                <owl:cardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">n</owl:cardinality>
+                              </owl:Restriction>
+                           </rdfs:subClassOf>
+                                <rdfs:subClassOf>
+                              <owl:Restriction>
+                              <owl:onProperty rdf:resource="#tags"/>
+                                <owl:cardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">n</owl:cardinality>
+                              </owl:Restriction>
+                           </rdfs:subClassOf>
+                                <!-- attributes --><rdfs:subClassOf>
+                              <owl:Restriction>
+                                  <owl:onProperty rdf:resource="#name"/>
+                                  <owl:cardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">1</owl:cardinality>
+                              </owl:Restriction>
+                        </rdfs:subClassOf><rdfs:subClassOf>
+                              <owl:Restriction>
+                                  <owl:onProperty rdf:resource="#description_format"/>
+                                  <owl:cardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">1</owl:cardinality>
+                              </owl:Restriction>
+                        </rdfs:subClassOf><rdfs:subClassOf>
+                              <owl:Restriction>
+                                  <owl:onProperty rdf:resource="#description"/>
+                                  <owl:cardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">1</owl:cardinality>
+                              </owl:Restriction>
+                        </rdfs:subClassOf><rdfs:subClassOf>
+                              <owl:Restriction>
+                                  <owl:onProperty rdf:resource="#url"/>
+                                  <owl:cardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">1</owl:cardinality>
+                              </owl:Restriction>
+                        </rdfs:subClassOf><rdfs:subClassOf>
+                              <owl:Restriction>
+                                  <owl:onProperty rdf:resource="#creation_date"/>
+                                  <owl:cardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">1</owl:cardinality>
+                              </owl:Restriction>
+                        </rdfs:subClassOf><rdfs:subClassOf>
+                              <owl:Restriction>
+                                  <owl:onProperty rdf:resource="#modification_date"/>
+                                  <owl:cardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">1</owl:cardinality>
+                              </owl:Restriction>
+                        </rdfs:subClassOf></owl:Class><owl:Class rdf:ID="File"><rdfs:subClassOf rdf:resource="http://www.w3.org/2002/07/owl#Thing"/>
+                                <!-- relations --><rdfs:subClassOf>
+                              <owl:Restriction>
+                              <owl:onProperty rdf:resource="#see_also"/>
+                                <owl:cardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">n</owl:cardinality>
+                              </owl:Restriction>
+                           </rdfs:subClassOf>
+                                <rdfs:subClassOf>
+                              <owl:Restriction>
+                              <owl:onProperty rdf:resource="#see_also"/>
+                                <owl:cardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">n</owl:cardinality>
+                              </owl:Restriction>
+                           </rdfs:subClassOf>
+                                <rdfs:subClassOf>
+                              <owl:Restriction>
+                              <owl:onProperty rdf:resource="#see_also"/>
+                                <owl:cardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">n</owl:cardinality>
+                              </owl:Restriction>
+                           </rdfs:subClassOf>
+                                <rdfs:subClassOf>
+                              <owl:Restriction>
+                              <owl:onProperty rdf:resource="#see_also"/>
+                                <owl:cardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">n</owl:cardinality>
+                              </owl:Restriction>
+                           </rdfs:subClassOf>
+                                <rdfs:subClassOf>
+                              <owl:Restriction>
+                              <owl:onProperty rdf:resource="#see_also"/>
+                                <owl:cardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">n</owl:cardinality>
+                              </owl:Restriction>
+                           </rdfs:subClassOf>
+                                <rdfs:subClassOf>
+                              <owl:Restriction>
+                              <owl:onProperty rdf:resource="#see_also"/>
+                                <owl:cardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">n</owl:cardinality>
+                              </owl:Restriction>
+                           </rdfs:subClassOf>
+                                <rdfs:subClassOf>
+                              <owl:Restriction>
+                              <owl:onProperty rdf:resource="#see_also"/>
+                                <owl:cardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">n</owl:cardinality>
+                              </owl:Restriction>
+                           </rdfs:subClassOf>
+                                <rdfs:subClassOf>
+                              <owl:Restriction>
+                              <owl:onProperty rdf:resource="#see_also"/>
+                                <owl:cardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">n</owl:cardinality>
+                              </owl:Restriction>
+                           </rdfs:subClassOf>
+                                <rdfs:subClassOf>
+                              <owl:Restriction>
+                              <owl:onProperty rdf:resource="#in_basket"/>
+                                <owl:cardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">n</owl:cardinality>
+                              </owl:Restriction>
+                           </rdfs:subClassOf>
+                                <rdfs:subClassOf>
+                              <owl:Restriction>
+                              <owl:onProperty rdf:resource="#filed_under"/>
+                                <owl:cardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">n</owl:cardinality>
+                              </owl:Restriction>
+                           </rdfs:subClassOf>
+                                <rdfs:subClassOf>
+                              <owl:Restriction>
+                              <owl:onProperty rdf:resource="#require_permission"/>
+                                <owl:cardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">n</owl:cardinality>
+                              </owl:Restriction>
+                           </rdfs:subClassOf>
+                                <rdfs:subClassOf>
+                              <owl:Restriction>
+                              <owl:onProperty rdf:resource="#documented_by"/>
+                                <owl:cardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">n</owl:cardinality>
+                              </owl:Restriction>
+                           </rdfs:subClassOf>
+                                <rdfs:subClassOf>
+                              <owl:Restriction>
+                              <owl:onProperty rdf:resource="#comments"/>
+                                <owl:cardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">n</owl:cardinality>
+                              </owl:Restriction>
+                           </rdfs:subClassOf>
+                                <rdfs:subClassOf>
+                              <owl:Restriction>
+                              <owl:onProperty rdf:resource="#attachment"/>
+                                <owl:cardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">n</owl:cardinality>
+                              </owl:Restriction>
+                           </rdfs:subClassOf>
+                                <rdfs:subClassOf>
+                              <owl:Restriction>
+                              <owl:onProperty rdf:resource="#attachment"/>
+                                <owl:cardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">n</owl:cardinality>
+                              </owl:Restriction>
+                           </rdfs:subClassOf>
+                                <rdfs:subClassOf>
+                              <owl:Restriction>
+                              <owl:onProperty rdf:resource="#tags"/>
+                                <owl:cardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">n</owl:cardinality>
+                              </owl:Restriction>
+                           </rdfs:subClassOf>
+                                <!-- attributes --><rdfs:subClassOf>
+                              <owl:Restriction>
+                                  <owl:onProperty rdf:resource="#data"/>
+                                  <owl:cardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">1</owl:cardinality>
+                              </owl:Restriction>
+                        </rdfs:subClassOf><rdfs:subClassOf>
+                              <owl:Restriction>
+                                  <owl:onProperty rdf:resource="#data_format"/>
+                                  <owl:cardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">1</owl:cardinality>
+                              </owl:Restriction>
+                        </rdfs:subClassOf><rdfs:subClassOf>
+                              <owl:Restriction>
+                                  <owl:onProperty rdf:resource="#data_encoding"/>
+                                  <owl:cardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">1</owl:cardinality>
+                              </owl:Restriction>
+                        </rdfs:subClassOf><rdfs:subClassOf>
+                              <owl:Restriction>
+                                  <owl:onProperty rdf:resource="#name"/>
+                                  <owl:cardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">1</owl:cardinality>
+                              </owl:Restriction>
+                        </rdfs:subClassOf><rdfs:subClassOf>
+                              <owl:Restriction>
+                                  <owl:onProperty rdf:resource="#description_format"/>
+                                  <owl:cardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">1</owl:cardinality>
+                              </owl:Restriction>
+                        </rdfs:subClassOf><rdfs:subClassOf>
+                              <owl:Restriction>
+                                  <owl:onProperty rdf:resource="#description"/>
+                                  <owl:cardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">1</owl:cardinality>
+                              </owl:Restriction>
+                        </rdfs:subClassOf><rdfs:subClassOf>
+                              <owl:Restriction>
+                                  <owl:onProperty rdf:resource="#creation_date"/>
+                                  <owl:cardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">1</owl:cardinality>
+                              </owl:Restriction>
+                        </rdfs:subClassOf><rdfs:subClassOf>
+                              <owl:Restriction>
+                                  <owl:onProperty rdf:resource="#modification_date"/>
+                                  <owl:cardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">1</owl:cardinality>
+                              </owl:Restriction>
+                        </rdfs:subClassOf></owl:Class><owl:Class rdf:ID="Image"><rdfs:subClassOf rdf:resource="http://www.w3.org/2002/07/owl#Thing"/>
+                                <!-- relations --><rdfs:subClassOf>
+                              <owl:Restriction>
+                              <owl:onProperty rdf:resource="#in_basket"/>
+                                <owl:cardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">n</owl:cardinality>
+                              </owl:Restriction>
+                           </rdfs:subClassOf>
+                                <rdfs:subClassOf>
+                              <owl:Restriction>
+                              <owl:onProperty rdf:resource="#see_also"/>
+                                <owl:cardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">n</owl:cardinality>
+                              </owl:Restriction>
+                           </rdfs:subClassOf>
+                                <rdfs:subClassOf>
+                              <owl:Restriction>
+                              <owl:onProperty rdf:resource="#see_also"/>
+                                <owl:cardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">n</owl:cardinality>
+                              </owl:Restriction>
+                           </rdfs:subClassOf>
+                                <rdfs:subClassOf>
+                              <owl:Restriction>
+                              <owl:onProperty rdf:resource="#see_also"/>
+                                <owl:cardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">n</owl:cardinality>
+                              </owl:Restriction>
+                           </rdfs:subClassOf>
+                                <rdfs:subClassOf>
+                              <owl:Restriction>
+                              <owl:onProperty rdf:resource="#see_also"/>
+                                <owl:cardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">n</owl:cardinality>
+                              </owl:Restriction>
+                           </rdfs:subClassOf>
+                                <rdfs:subClassOf>
+                              <owl:Restriction>
+                              <owl:onProperty rdf:resource="#see_also"/>
+                                <owl:cardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">n</owl:cardinality>
+                              </owl:Restriction>
+                           </rdfs:subClassOf>
+                                <rdfs:subClassOf>
+                              <owl:Restriction>
+                              <owl:onProperty rdf:resource="#see_also"/>
+                                <owl:cardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">n</owl:cardinality>
+                              </owl:Restriction>
+                           </rdfs:subClassOf>
+                                <rdfs:subClassOf>
+                              <owl:Restriction>
+                              <owl:onProperty rdf:resource="#see_also"/>
+                                <owl:cardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">n</owl:cardinality>
+                              </owl:Restriction>
+                           </rdfs:subClassOf>
+                                <rdfs:subClassOf>
+                              <owl:Restriction>
+                              <owl:onProperty rdf:resource="#see_also"/>
+                                <owl:cardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">n</owl:cardinality>
+                              </owl:Restriction>
+                           </rdfs:subClassOf>
+                                <rdfs:subClassOf>
+                              <owl:Restriction>
+                              <owl:onProperty rdf:resource="#see_also"/>
+                                <owl:cardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">n</owl:cardinality>
+                              </owl:Restriction>
+                           </rdfs:subClassOf>
+                                <rdfs:subClassOf>
+                              <owl:Restriction>
+                              <owl:onProperty rdf:resource="#require_permission"/>
+                                <owl:cardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">n</owl:cardinality>
+                              </owl:Restriction>
+                           </rdfs:subClassOf>
+                                <rdfs:subClassOf>
+                              <owl:Restriction>
+                              <owl:onProperty rdf:resource="#attachment"/>
+                                <owl:cardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">n</owl:cardinality>
+                              </owl:Restriction>
+                           </rdfs:subClassOf>
+                                <rdfs:subClassOf>
+                              <owl:Restriction>
+                              <owl:onProperty rdf:resource="#screenshot"/>
+                                <owl:cardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">n</owl:cardinality>
+                              </owl:Restriction>
+                           </rdfs:subClassOf>
+                                <rdfs:subClassOf>
+                              <owl:Restriction>
+                              <owl:onProperty rdf:resource="#tags"/>
+                                <owl:cardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">n</owl:cardinality>
+                              </owl:Restriction>
+                           </rdfs:subClassOf>
+                                <!-- attributes --><rdfs:subClassOf>
+                              <owl:Restriction>
+                                  <owl:onProperty rdf:resource="#data"/>
+                                  <owl:cardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">1</owl:cardinality>
+                              </owl:Restriction>
+                        </rdfs:subClassOf><rdfs:subClassOf>
+                              <owl:Restriction>
+                                  <owl:onProperty rdf:resource="#data_format"/>
+                                  <owl:cardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">1</owl:cardinality>
+                              </owl:Restriction>
+                        </rdfs:subClassOf><rdfs:subClassOf>
+                              <owl:Restriction>
+                                  <owl:onProperty rdf:resource="#data_encoding"/>
+                                  <owl:cardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">1</owl:cardinality>
+                              </owl:Restriction>
+                        </rdfs:subClassOf><rdfs:subClassOf>
+                              <owl:Restriction>
+                                  <owl:onProperty rdf:resource="#name"/>
+                                  <owl:cardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">1</owl:cardinality>
+                              </owl:Restriction>
+                        </rdfs:subClassOf><rdfs:subClassOf>
+                              <owl:Restriction>
+                                  <owl:onProperty rdf:resource="#description_format"/>
+                                  <owl:cardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">1</owl:cardinality>
+                              </owl:Restriction>
+                        </rdfs:subClassOf><rdfs:subClassOf>
+                              <owl:Restriction>
+                                  <owl:onProperty rdf:resource="#description"/>
+                                  <owl:cardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">1</owl:cardinality>
+                              </owl:Restriction>
+                        </rdfs:subClassOf><rdfs:subClassOf>
+                              <owl:Restriction>
+                                  <owl:onProperty rdf:resource="#creation_date"/>
+                                  <owl:cardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">1</owl:cardinality>
+                              </owl:Restriction>
+                        </rdfs:subClassOf><rdfs:subClassOf>
+                              <owl:Restriction>
+                                  <owl:onProperty rdf:resource="#modification_date"/>
+                                  <owl:cardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">1</owl:cardinality>
+                              </owl:Restriction>
+                        </rdfs:subClassOf></owl:Class><owl:Class rdf:ID="License"><rdfs:subClassOf rdf:resource="http://www.w3.org/2002/07/owl#Thing"/>
+                                <!-- relations --><rdfs:subClassOf>
+                              <owl:Restriction>
+                              <owl:onProperty rdf:resource="#in_basket"/>
+                                <owl:cardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">n</owl:cardinality>
+                              </owl:Restriction>
+                           </rdfs:subClassOf>
+                                <rdfs:subClassOf>
+                              <owl:Restriction>
+                              <owl:onProperty rdf:resource="#license_of"/>
+                                <owl:cardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">n</owl:cardinality>
+                              </owl:Restriction>
+                           </rdfs:subClassOf>
+                                <rdfs:subClassOf>
+                              <owl:Restriction>
+                              <owl:onProperty rdf:resource="#tags"/>
+                                <owl:cardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">n</owl:cardinality>
+                              </owl:Restriction>
+                           </rdfs:subClassOf>
+                                <!-- attributes --><rdfs:subClassOf>
+                              <owl:Restriction>
+                                  <owl:onProperty rdf:resource="#name"/>
+                                  <owl:cardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">1</owl:cardinality>
+                              </owl:Restriction>
+                        </rdfs:subClassOf><rdfs:subClassOf>
+                              <owl:Restriction>
+                                  <owl:onProperty rdf:resource="#shortdesc"/>
+                                  <owl:cardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">1</owl:cardinality>
+                              </owl:Restriction>
+                        </rdfs:subClassOf><rdfs:subClassOf>
+                              <owl:Restriction>
+                                  <owl:onProperty rdf:resource="#longdesc_format"/>
+                                  <owl:cardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">1</owl:cardinality>
+                              </owl:Restriction>
+                        </rdfs:subClassOf><rdfs:subClassOf>
+                              <owl:Restriction>
+                                  <owl:onProperty rdf:resource="#longdesc"/>
+                                  <owl:cardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">1</owl:cardinality>
+                              </owl:Restriction>
+                        </rdfs:subClassOf><rdfs:subClassOf>
+                              <owl:Restriction>
+                                  <owl:onProperty rdf:resource="#url"/>
+                                  <owl:cardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">1</owl:cardinality>
+                              </owl:Restriction>
+                        </rdfs:subClassOf><rdfs:subClassOf>
+                              <owl:Restriction>
+                                  <owl:onProperty rdf:resource="#creation_date"/>
+                                  <owl:cardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">1</owl:cardinality>
+                              </owl:Restriction>
+                        </rdfs:subClassOf><rdfs:subClassOf>
+                              <owl:Restriction>
+                                  <owl:onProperty rdf:resource="#modification_date"/>
+                                  <owl:cardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">1</owl:cardinality>
+                              </owl:Restriction>
+                        </rdfs:subClassOf></owl:Class><owl:Class rdf:ID="Link"><rdfs:subClassOf rdf:resource="http://www.w3.org/2002/07/owl#Thing"/>
+                                <!-- relations --><rdfs:subClassOf>
+                              <owl:Restriction>
+                              <owl:onProperty rdf:resource="#see_also"/>
+                                <owl:cardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">n</owl:cardinality>
+                              </owl:Restriction>
+                           </rdfs:subClassOf>
+                                <rdfs:subClassOf>
+                              <owl:Restriction>
+                              <owl:onProperty rdf:resource="#see_also"/>
+                                <owl:cardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">n</owl:cardinality>
+                              </owl:Restriction>
+                           </rdfs:subClassOf>
+                                <rdfs:subClassOf>
+                              <owl:Restriction>
+                              <owl:onProperty rdf:resource="#see_also"/>
+                                <owl:cardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">n</owl:cardinality>
+                              </owl:Restriction>
+                           </rdfs:subClassOf>
+                                <rdfs:subClassOf>
+                              <owl:Restriction>
+                              <owl:onProperty rdf:resource="#see_also"/>
+                                <owl:cardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">n</owl:cardinality>
+                              </owl:Restriction>
+                           </rdfs:subClassOf>
+                                <rdfs:subClassOf>
+                              <owl:Restriction>
+                              <owl:onProperty rdf:resource="#see_also"/>
+                                <owl:cardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">n</owl:cardinality>
+                              </owl:Restriction>
+                           </rdfs:subClassOf>
+                                <rdfs:subClassOf>
+                              <owl:Restriction>
+                              <owl:onProperty rdf:resource="#see_also"/>
+                                <owl:cardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">n</owl:cardinality>
+                              </owl:Restriction>
+                           </rdfs:subClassOf>
+                                <rdfs:subClassOf>
+                              <owl:Restriction>
+                              <owl:onProperty rdf:resource="#see_also"/>
+                                <owl:cardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">n</owl:cardinality>
+                              </owl:Restriction>
+                           </rdfs:subClassOf>
+                                <rdfs:subClassOf>
+                              <owl:Restriction>
+                              <owl:onProperty rdf:resource="#see_also"/>
+                                <owl:cardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">n</owl:cardinality>
+                              </owl:Restriction>
+                           </rdfs:subClassOf>
+                                <rdfs:subClassOf>
+                              <owl:Restriction>
+                              <owl:onProperty rdf:resource="#in_basket"/>
+                                <owl:cardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">n</owl:cardinality>
+                              </owl:Restriction>
+                           </rdfs:subClassOf>
+                                <rdfs:subClassOf>
+                              <owl:Restriction>
+                              <owl:onProperty rdf:resource="#filed_under"/>
+                                <owl:cardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">n</owl:cardinality>
+                              </owl:Restriction>
+                           </rdfs:subClassOf>
+                                <rdfs:subClassOf>
+                              <owl:Restriction>
+                              <owl:onProperty rdf:resource="#comments"/>
+                                <owl:cardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">n</owl:cardinality>
+                              </owl:Restriction>
+                           </rdfs:subClassOf>
+                                <rdfs:subClassOf>
+                              <owl:Restriction>
+                              <owl:onProperty rdf:resource="#tags"/>
+                                <owl:cardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">n</owl:cardinality>
+                              </owl:Restriction>
+                           </rdfs:subClassOf>
+                                <!-- attributes --><rdfs:subClassOf>
+                              <owl:Restriction>
+                                  <owl:onProperty rdf:resource="#title"/>
+                                  <owl:cardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">1</owl:cardinality>
+                              </owl:Restriction>
+                        </rdfs:subClassOf><rdfs:subClassOf>
+                              <owl:Restriction>
+                                  <owl:onProperty rdf:resource="#url"/>
+                                  <owl:cardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">1</owl:cardinality>
+                              </owl:Restriction>
+                        </rdfs:subClassOf><rdfs:subClassOf>
+                              <owl:Restriction>
+                                  <owl:onProperty rdf:resource="#embed"/>
+                                  <owl:cardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">1</owl:cardinality>
+                              </owl:Restriction>
+                        </rdfs:subClassOf><rdfs:subClassOf>
+                              <owl:Restriction>
+                                  <owl:onProperty rdf:resource="#description_format"/>
+                                  <owl:cardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">1</owl:cardinality>
+                              </owl:Restriction>
+                        </rdfs:subClassOf><rdfs:subClassOf>
+                              <owl:Restriction>
+                                  <owl:onProperty rdf:resource="#description"/>
+                                  <owl:cardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">1</owl:cardinality>
+                              </owl:Restriction>
+                        </rdfs:subClassOf><rdfs:subClassOf>
+                              <owl:Restriction>
+                                  <owl:onProperty rdf:resource="#creation_date"/>
+                                  <owl:cardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">1</owl:cardinality>
+                              </owl:Restriction>
+                        </rdfs:subClassOf><rdfs:subClassOf>
+                              <owl:Restriction>
+                                  <owl:onProperty rdf:resource="#modification_date"/>
+                                  <owl:cardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">1</owl:cardinality>
+                              </owl:Restriction>
+                        </rdfs:subClassOf></owl:Class><owl:Class rdf:ID="MailingList"><rdfs:subClassOf rdf:resource="http://www.w3.org/2002/07/owl#Thing"/>
+                                <!-- relations --><rdfs:subClassOf>
+                              <owl:Restriction>
+                              <owl:onProperty rdf:resource="#in_basket"/>
+                                <owl:cardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">n</owl:cardinality>
+                              </owl:Restriction>
+                           </rdfs:subClassOf>
+                                <rdfs:subClassOf>
+                              <owl:Restriction>
+                              <owl:onProperty rdf:resource="#use_email"/>
+                                <owl:minCardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">1</owl:minCardinality>
+                        <owl:maxCardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">1</owl:maxCardinality>
+                              </owl:Restriction>
+                           </rdfs:subClassOf>
+                                <rdfs:subClassOf>
+                              <owl:Restriction>
+                              <owl:onProperty rdf:resource="#mailinglist_of"/>
+                                <owl:cardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">n</owl:cardinality>
+                              </owl:Restriction>
+                           </rdfs:subClassOf>
+                                <rdfs:subClassOf>
+                              <owl:Restriction>
+                              <owl:onProperty rdf:resource="#sent_on"/>
+                                <owl:cardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">n</owl:cardinality>
+                              </owl:Restriction>
+                           </rdfs:subClassOf>
+                                <rdfs:subClassOf>
+                              <owl:Restriction>
+                              <owl:onProperty rdf:resource="#tags"/>
+                                <owl:cardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">n</owl:cardinality>
+                              </owl:Restriction>
+                           </rdfs:subClassOf>
+                                <!-- attributes --><rdfs:subClassOf>
+                              <owl:Restriction>
+                                  <owl:onProperty rdf:resource="#name"/>
+                                  <owl:cardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">1</owl:cardinality>
+                              </owl:Restriction>
+                        </rdfs:subClassOf><rdfs:subClassOf>
+                              <owl:Restriction>
+                                  <owl:onProperty rdf:resource="#mlid"/>
+                                  <owl:cardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">1</owl:cardinality>
+                              </owl:Restriction>
+                        </rdfs:subClassOf><rdfs:subClassOf>
+                              <owl:Restriction>
+                                  <owl:onProperty rdf:resource="#description_format"/>
+                                  <owl:cardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">1</owl:cardinality>
+                              </owl:Restriction>
+                        </rdfs:subClassOf><rdfs:subClassOf>
+                              <owl:Restriction>
+                                  <owl:onProperty rdf:resource="#description"/>
+                                  <owl:cardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">1</owl:cardinality>
+                              </owl:Restriction>
+                        </rdfs:subClassOf><rdfs:subClassOf>
+                              <owl:Restriction>
+                                  <owl:onProperty rdf:resource="#archive"/>
+                                  <owl:cardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">1</owl:cardinality>
+                              </owl:Restriction>
+                        </rdfs:subClassOf><rdfs:subClassOf>
+                              <owl:Restriction>
+                                  <owl:onProperty rdf:resource="#homepage"/>
+                                  <owl:cardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">1</owl:cardinality>
+                              </owl:Restriction>
+                        </rdfs:subClassOf><rdfs:subClassOf>
+                              <owl:Restriction>
+                                  <owl:onProperty rdf:resource="#creation_date"/>
+                                  <owl:cardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">1</owl:cardinality>
+                              </owl:Restriction>
+                        </rdfs:subClassOf><rdfs:subClassOf>
+                              <owl:Restriction>
+                                  <owl:onProperty rdf:resource="#modification_date"/>
+                                  <owl:cardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">1</owl:cardinality>
+                              </owl:Restriction>
+                        </rdfs:subClassOf></owl:Class><owl:Class rdf:ID="Project"><rdfs:subClassOf rdf:resource="http://www.w3.org/2002/07/owl#Thing"/>
+                                <!-- relations --><rdfs:subClassOf>
+                              <owl:Restriction>
+                              <owl:onProperty rdf:resource="#see_also"/>
+                                <owl:cardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">n</owl:cardinality>
+                              </owl:Restriction>
+                           </rdfs:subClassOf>
+                                <rdfs:subClassOf>
+                              <owl:Restriction>
+                              <owl:onProperty rdf:resource="#see_also"/>
+                                <owl:cardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">n</owl:cardinality>
+                              </owl:Restriction>
+                           </rdfs:subClassOf>
+                                <rdfs:subClassOf>
+                              <owl:Restriction>
+                              <owl:onProperty rdf:resource="#see_also"/>
+                                <owl:cardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">n</owl:cardinality>
+                              </owl:Restriction>
+                           </rdfs:subClassOf>
+                                <rdfs:subClassOf>
+                              <owl:Restriction>
+                              <owl:onProperty rdf:resource="#see_also"/>
+                                <owl:cardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">n</owl:cardinality>
+                              </owl:Restriction>
+                           </rdfs:subClassOf>
+                                <rdfs:subClassOf>
+                              <owl:Restriction>
+                              <owl:onProperty rdf:resource="#see_also"/>
+                                <owl:cardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">n</owl:cardinality>
+                              </owl:Restriction>
+                           </rdfs:subClassOf>
+                                <rdfs:subClassOf>
+                              <owl:Restriction>
+                              <owl:onProperty rdf:resource="#see_also"/>
+                                <owl:cardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">n</owl:cardinality>
+                              </owl:Restriction>
+                           </rdfs:subClassOf>
+                                <rdfs:subClassOf>
+                              <owl:Restriction>
+                              <owl:onProperty rdf:resource="#see_also"/>
+                                <owl:cardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">n</owl:cardinality>
+                              </owl:Restriction>
+                           </rdfs:subClassOf>
+                                <rdfs:subClassOf>
+                              <owl:Restriction>
+                              <owl:onProperty rdf:resource="#see_also"/>
+                                <owl:cardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">n</owl:cardinality>
+                              </owl:Restriction>
+                           </rdfs:subClassOf>
+                                <rdfs:subClassOf>
+                              <owl:Restriction>
+                              <owl:onProperty rdf:resource="#in_basket"/>
+                                <owl:cardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">n</owl:cardinality>
+                              </owl:Restriction>
+                           </rdfs:subClassOf>
+                                <rdfs:subClassOf>
+                              <owl:Restriction>
+                              <owl:onProperty rdf:resource="#uses"/>
+                                <owl:cardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">n</owl:cardinality>
+                              </owl:Restriction>
+                           </rdfs:subClassOf>
+                                <rdfs:subClassOf>
+                              <owl:Restriction>
+                              <owl:onProperty rdf:resource="#uses"/>
+                                <owl:cardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">n</owl:cardinality>
+                              </owl:Restriction>
+                           </rdfs:subClassOf>
+                                <rdfs:subClassOf>
+                              <owl:Restriction>
+                              <owl:onProperty rdf:resource="#recommends"/>
+                                <owl:cardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">n</owl:cardinality>
+                              </owl:Restriction>
+                           </rdfs:subClassOf>
+                                <rdfs:subClassOf>
+                              <owl:Restriction>
+                              <owl:onProperty rdf:resource="#recommends"/>
+                                <owl:cardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">n</owl:cardinality>
+                              </owl:Restriction>
+                           </rdfs:subClassOf>
+                                <rdfs:subClassOf>
+                              <owl:Restriction>
+                              <owl:onProperty rdf:resource="#documented_by"/>
+                                <owl:cardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">n</owl:cardinality>
+                              </owl:Restriction>
+                           </rdfs:subClassOf>
+                                <rdfs:subClassOf>
+                              <owl:Restriction>
+                              <owl:onProperty rdf:resource="#documented_by"/>
+                                <owl:cardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">n</owl:cardinality>
+                              </owl:Restriction>
+                           </rdfs:subClassOf>
+                                <rdfs:subClassOf>
+                              <owl:Restriction>
+                              <owl:onProperty rdf:resource="#screenshot"/>
+                                <owl:cardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">n</owl:cardinality>
+                              </owl:Restriction>
+                           </rdfs:subClassOf>
+                                <rdfs:subClassOf>
+                              <owl:Restriction>
+                              <owl:onProperty rdf:resource="#in_state"/>
+                                <owl:minCardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">1</owl:minCardinality>
+                        <owl:maxCardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">1</owl:maxCardinality>
+                              </owl:Restriction>
+                           </rdfs:subClassOf>
+                                <rdfs:subClassOf>
+                              <owl:Restriction>
+                              <owl:onProperty rdf:resource="#filed_under"/>
+                                <owl:cardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">n</owl:cardinality>
+                              </owl:Restriction>
+                           </rdfs:subClassOf>
+                                <rdfs:subClassOf>
+                              <owl:Restriction>
+                              <owl:onProperty rdf:resource="#require_permission"/>
+                                <owl:cardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">n</owl:cardinality>
+                              </owl:Restriction>
+                           </rdfs:subClassOf>
+                                <rdfs:subClassOf>
+                              <owl:Restriction>
+                              <owl:onProperty rdf:resource="#recommends"/>
+                                <owl:cardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">n</owl:cardinality>
+                              </owl:Restriction>
+                           </rdfs:subClassOf>
+                                <rdfs:subClassOf>
+                              <owl:Restriction>
+                              <owl:onProperty rdf:resource="#tags"/>
+                                <owl:cardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">n</owl:cardinality>
+                              </owl:Restriction>
+                           </rdfs:subClassOf>
+                                <rdfs:subClassOf>
+                              <owl:Restriction>
+                              <owl:onProperty rdf:resource="#concerns"/>
+                                <owl:cardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">n</owl:cardinality>
+                              </owl:Restriction>
+                           </rdfs:subClassOf>
+                                <rdfs:subClassOf>
+                              <owl:Restriction>
+                              <owl:onProperty rdf:resource="#test_case_of"/>
+                                <owl:cardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">n</owl:cardinality>
+                              </owl:Restriction>
+                           </rdfs:subClassOf>
+                                <rdfs:subClassOf>
+                              <owl:Restriction>
+                              <owl:onProperty rdf:resource="#mailinglist_of"/>
+                                <owl:maxCardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">1</owl:maxCardinality>
+                              </owl:Restriction>
+                           </rdfs:subClassOf>
+                                <rdfs:subClassOf>
+                              <owl:Restriction>
+                              <owl:onProperty rdf:resource="#uses"/>
+                                <owl:cardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">n</owl:cardinality>
+                              </owl:Restriction>
+                           </rdfs:subClassOf>
+                                <rdfs:subClassOf>
+                              <owl:Restriction>
+                              <owl:onProperty rdf:resource="#interested_in"/>
+                                <owl:cardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">n</owl:cardinality>
+                              </owl:Restriction>
+                           </rdfs:subClassOf>
+                                <rdfs:subClassOf>
+                              <owl:Restriction>
+                              <owl:onProperty rdf:resource="#license_of"/>
+                                <owl:cardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">n</owl:cardinality>
+                              </owl:Restriction>
+                           </rdfs:subClassOf>
+                                <rdfs:subClassOf>
+                              <owl:Restriction>
+                              <owl:onProperty rdf:resource="#version_of"/>
+                                <owl:cardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">n</owl:cardinality>
+                              </owl:Restriction>
+                           </rdfs:subClassOf>
+                                <rdfs:subClassOf>
+                              <owl:Restriction>
+                              <owl:onProperty rdf:resource="#wf_info_for"/>
+                                <owl:cardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">n</owl:cardinality>
+                              </owl:Restriction>
+                           </rdfs:subClassOf>
+                                <!-- attributes --><rdfs:subClassOf>
+                              <owl:Restriction>
+                                  <owl:onProperty rdf:resource="#name"/>
+                                  <owl:cardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">1</owl:cardinality>
+                              </owl:Restriction>
+                        </rdfs:subClassOf><rdfs:subClassOf>
+                              <owl:Restriction>
+                                  <owl:onProperty rdf:resource="#summary"/>
+                                  <owl:cardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">1</owl:cardinality>
+                              </owl:Restriction>
+                        </rdfs:subClassOf><rdfs:subClassOf>
+                              <owl:Restriction>
+                                  <owl:onProperty rdf:resource="#url"/>
+                                  <owl:cardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">1</owl:cardinality>
+                              </owl:Restriction>
+                        </rdfs:subClassOf><rdfs:subClassOf>
+                              <owl:Restriction>
+                                  <owl:onProperty rdf:resource="#vcsurl"/>
+                                  <owl:cardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">1</owl:cardinality>
+                              </owl:Restriction>
+                        </rdfs:subClassOf><rdfs:subClassOf>
+                              <owl:Restriction>
+                                  <owl:onProperty rdf:resource="#reporturl"/>
+                                  <owl:cardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">1</owl:cardinality>
+                              </owl:Restriction>
+                        </rdfs:subClassOf><rdfs:subClassOf>
+                              <owl:Restriction>
+                                  <owl:onProperty rdf:resource="#downloadurl"/>
+                                  <owl:cardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">1</owl:cardinality>
+                              </owl:Restriction>
+                        </rdfs:subClassOf><rdfs:subClassOf>
+                              <owl:Restriction>
+                                  <owl:onProperty rdf:resource="#debian_source_package"/>
+                                  <owl:cardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">1</owl:cardinality>
+                              </owl:Restriction>
+                        </rdfs:subClassOf><rdfs:subClassOf>
+                              <owl:Restriction>
+                                  <owl:onProperty rdf:resource="#description_format"/>
+                                  <owl:cardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">1</owl:cardinality>
+                              </owl:Restriction>
+                        </rdfs:subClassOf><rdfs:subClassOf>
+                              <owl:Restriction>
+                                  <owl:onProperty rdf:resource="#description"/>
+                                  <owl:cardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">1</owl:cardinality>
+                              </owl:Restriction>
+                        </rdfs:subClassOf><rdfs:subClassOf>
+                              <owl:Restriction>
+                                  <owl:onProperty rdf:resource="#creation_date"/>
+                                  <owl:cardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">1</owl:cardinality>
+                              </owl:Restriction>
+                        </rdfs:subClassOf><rdfs:subClassOf>
+                              <owl:Restriction>
+                                  <owl:onProperty rdf:resource="#modification_date"/>
+                                  <owl:cardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">1</owl:cardinality>
+                              </owl:Restriction>
+                        </rdfs:subClassOf></owl:Class><owl:Class rdf:ID="TestInstance"><rdfs:subClassOf rdf:resource="http://www.w3.org/2002/07/owl#Thing"/>
+                                <!-- relations --><rdfs:subClassOf>
+                              <owl:Restriction>
+                              <owl:onProperty rdf:resource="#instance_of"/>
+                                <owl:minCardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">1</owl:minCardinality>
+                        <owl:maxCardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">1</owl:maxCardinality>
+                              </owl:Restriction>
+                           </rdfs:subClassOf>
+                                <rdfs:subClassOf>
+                              <owl:Restriction>
+                              <owl:onProperty rdf:resource="#for_version"/>
+                                <owl:minCardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">1</owl:minCardinality>
+                        <owl:maxCardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">1</owl:maxCardinality>
+                              </owl:Restriction>
+                           </rdfs:subClassOf>
+                                <rdfs:subClassOf>
+                              <owl:Restriction>
+                              <owl:onProperty rdf:resource="#generate_bug"/>
+                                <owl:cardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">n</owl:cardinality>
+                              </owl:Restriction>
+                           </rdfs:subClassOf>
+                                <rdfs:subClassOf>
+                              <owl:Restriction>
+                              <owl:onProperty rdf:resource="#in_basket"/>
+                                <owl:cardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">n</owl:cardinality>
+                              </owl:Restriction>
+                           </rdfs:subClassOf>
+                                <rdfs:subClassOf>
+                              <owl:Restriction>
+                              <owl:onProperty rdf:resource="#in_state"/>
+                                <owl:minCardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">1</owl:minCardinality>
+                        <owl:maxCardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">1</owl:maxCardinality>
+                              </owl:Restriction>
+                           </rdfs:subClassOf>
+                                <rdfs:subClassOf>
+                              <owl:Restriction>
+                              <owl:onProperty rdf:resource="#require_permission"/>
+                                <owl:cardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">n</owl:cardinality>
+                              </owl:Restriction>
+                           </rdfs:subClassOf>
+                                <rdfs:subClassOf>
+                              <owl:Restriction>
+                              <owl:onProperty rdf:resource="#comments"/>
+                                <owl:cardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">n</owl:cardinality>
+                              </owl:Restriction>
+                           </rdfs:subClassOf>
+                                <rdfs:subClassOf>
+                              <owl:Restriction>
+                              <owl:onProperty rdf:resource="#wf_info_for"/>
+                                <owl:cardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">n</owl:cardinality>
+                              </owl:Restriction>
+                           </rdfs:subClassOf>
+                                <!-- attributes --><rdfs:subClassOf>
+                              <owl:Restriction>
+                                  <owl:onProperty rdf:resource="#name"/>
+                                  <owl:cardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">1</owl:cardinality>
+                              </owl:Restriction>
+                        </rdfs:subClassOf><rdfs:subClassOf>
+                              <owl:Restriction>
+                                  <owl:onProperty rdf:resource="#creation_date"/>
+                                  <owl:cardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">1</owl:cardinality>
+                              </owl:Restriction>
+                        </rdfs:subClassOf><rdfs:subClassOf>
+                              <owl:Restriction>
+                                  <owl:onProperty rdf:resource="#modification_date"/>
+                                  <owl:cardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">1</owl:cardinality>
+                              </owl:Restriction>
+                        </rdfs:subClassOf></owl:Class><owl:Class rdf:ID="Ticket"><rdfs:subClassOf rdf:resource="http://www.w3.org/2002/07/owl#Thing"/>
+                                <!-- relations --><rdfs:subClassOf>
+                              <owl:Restriction>
+                              <owl:onProperty rdf:resource="#see_also"/>
+                                <owl:cardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">n</owl:cardinality>
+                              </owl:Restriction>
+                           </rdfs:subClassOf>
+                                <rdfs:subClassOf>
+                              <owl:Restriction>
+                              <owl:onProperty rdf:resource="#see_also"/>
+                                <owl:cardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">n</owl:cardinality>
+                              </owl:Restriction>
+                           </rdfs:subClassOf>
+                                <rdfs:subClassOf>
+                              <owl:Restriction>
+                              <owl:onProperty rdf:resource="#see_also"/>
+                                <owl:cardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">n</owl:cardinality>
+                              </owl:Restriction>
+                           </rdfs:subClassOf>
+                                <rdfs:subClassOf>
+                              <owl:Restriction>
+                              <owl:onProperty rdf:resource="#see_also"/>
+                                <owl:cardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">n</owl:cardinality>
+                              </owl:Restriction>
+                           </rdfs:subClassOf>
+                                <rdfs:subClassOf>
+                              <owl:Restriction>
+                              <owl:onProperty rdf:resource="#see_also"/>
+                                <owl:cardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">n</owl:cardinality>
+                              </owl:Restriction>
+                           </rdfs:subClassOf>
+                                <rdfs:subClassOf>
+                              <owl:Restriction>
+                              <owl:onProperty rdf:resource="#see_also"/>
+                                <owl:cardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">n</owl:cardinality>
+                              </owl:Restriction>
+                           </rdfs:subClassOf>
+                                <rdfs:subClassOf>
+                              <owl:Restriction>
+                              <owl:onProperty rdf:resource="#see_also"/>
+                                <owl:cardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">n</owl:cardinality>
+                              </owl:Restriction>
+                           </rdfs:subClassOf>
+                                <rdfs:subClassOf>
+                              <owl:Restriction>
+                              <owl:onProperty rdf:resource="#see_also"/>
+                                <owl:cardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">n</owl:cardinality>
+                              </owl:Restriction>
+                           </rdfs:subClassOf>
+                                <rdfs:subClassOf>
+                              <owl:Restriction>
+                              <owl:onProperty rdf:resource="#see_also"/>
+                                <owl:cardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">n</owl:cardinality>
+                              </owl:Restriction>
+                           </rdfs:subClassOf>
+                                <rdfs:subClassOf>
+                              <owl:Restriction>
+                              <owl:onProperty rdf:resource="#in_basket"/>
+                                <owl:cardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">n</owl:cardinality>
+                              </owl:Restriction>
+                           </rdfs:subClassOf>
+                                <rdfs:subClassOf>
+                              <owl:Restriction>
+                              <owl:onProperty rdf:resource="#concerns"/>
+                                <owl:minCardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">1</owl:minCardinality>
+                        <owl:maxCardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">1</owl:maxCardinality>
+                              </owl:Restriction>
+                           </rdfs:subClassOf>
+                                <rdfs:subClassOf>
+                              <owl:Restriction>
+                              <owl:onProperty rdf:resource="#appeared_in"/>
+                                <owl:maxCardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">1</owl:maxCardinality>
+                              </owl:Restriction>
+                           </rdfs:subClassOf>
+                                <rdfs:subClassOf>
+                              <owl:Restriction>
+                              <owl:onProperty rdf:resource="#done_in"/>
+                                <owl:maxCardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">1</owl:maxCardinality>
+                              </owl:Restriction>
+                           </rdfs:subClassOf>
+                                <rdfs:subClassOf>
+                              <owl:Restriction>
+                              <owl:onProperty rdf:resource="#in_state"/>
+                                <owl:minCardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">1</owl:minCardinality>
+                        <owl:maxCardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">1</owl:maxCardinality>
+                              </owl:Restriction>
+                           </rdfs:subClassOf>
+                                <rdfs:subClassOf>
+                              <owl:Restriction>
+                              <owl:onProperty rdf:resource="#attachment"/>
+                                <owl:cardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">n</owl:cardinality>
+                              </owl:Restriction>
+                           </rdfs:subClassOf>
+                                <rdfs:subClassOf>
+                              <owl:Restriction>
+                              <owl:onProperty rdf:resource="#attachment"/>
+                                <owl:cardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">n</owl:cardinality>
+                              </owl:Restriction>
+                           </rdfs:subClassOf>
+                                <rdfs:subClassOf>
+                              <owl:Restriction>
+                              <owl:onProperty rdf:resource="#identical_to"/>
+                                <owl:cardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">n</owl:cardinality>
+                              </owl:Restriction>
+                           </rdfs:subClassOf>
+                                <rdfs:subClassOf>
+                              <owl:Restriction>
+                              <owl:onProperty rdf:resource="#depends_on"/>
+                                <owl:cardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">n</owl:cardinality>
+                              </owl:Restriction>
+                           </rdfs:subClassOf>
+                                <rdfs:subClassOf>
+                              <owl:Restriction>
+                              <owl:onProperty rdf:resource="#require_permission"/>
+                                <owl:cardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">n</owl:cardinality>
+                              </owl:Restriction>
+                           </rdfs:subClassOf>
+                                <rdfs:subClassOf>
+                              <owl:Restriction>
+                              <owl:onProperty rdf:resource="#tags"/>
+                                <owl:cardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">n</owl:cardinality>
+                              </owl:Restriction>
+                           </rdfs:subClassOf>
+                                <rdfs:subClassOf>
+                              <owl:Restriction>
+                              <owl:onProperty rdf:resource="#depends_on"/>
+                                <owl:cardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">n</owl:cardinality>
+                              </owl:Restriction>
+                           </rdfs:subClassOf>
+                                <rdfs:subClassOf>
+                              <owl:Restriction>
+                              <owl:onProperty rdf:resource="#comments"/>
+                                <owl:cardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">n</owl:cardinality>
+                              </owl:Restriction>
+                           </rdfs:subClassOf>
+                                <rdfs:subClassOf>
+                              <owl:Restriction>
+                              <owl:onProperty rdf:resource="#generate_bug"/>
+                                <owl:cardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">n</owl:cardinality>
+                              </owl:Restriction>
+                           </rdfs:subClassOf>
+                                <rdfs:subClassOf>
+                              <owl:Restriction>
+                              <owl:onProperty rdf:resource="#wf_info_for"/>
+                                <owl:cardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">n</owl:cardinality>
+                              </owl:Restriction>
+                           </rdfs:subClassOf>
+                                <rdfs:subClassOf>
+                              <owl:Restriction>
+                              <owl:onProperty rdf:resource="#test_case_for"/>
+                                <owl:cardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">n</owl:cardinality>
+                              </owl:Restriction>
+                           </rdfs:subClassOf>
+                                <!-- attributes --><rdfs:subClassOf>
+                              <owl:Restriction>
+                                  <owl:onProperty rdf:resource="#title"/>
+                                  <owl:cardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">1</owl:cardinality>
+                              </owl:Restriction>
+                        </rdfs:subClassOf><rdfs:subClassOf>
+                              <owl:Restriction>
+                                  <owl:onProperty rdf:resource="#type"/>
+                                  <owl:cardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">1</owl:cardinality>
+                              </owl:Restriction>
+                        </rdfs:subClassOf><rdfs:subClassOf>
+                              <owl:Restriction>
+                                  <owl:onProperty rdf:resource="#priority"/>
+                                  <owl:cardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">1</owl:cardinality>
+                              </owl:Restriction>
+                        </rdfs:subClassOf><rdfs:subClassOf>
+                              <owl:Restriction>
+                                  <owl:onProperty rdf:resource="#load"/>
+                                  <owl:cardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">1</owl:cardinality>
+                              </owl:Restriction>
+                        </rdfs:subClassOf><rdfs:subClassOf>
+                              <owl:Restriction>
+                                  <owl:onProperty rdf:resource="#load_left"/>
+                                  <owl:cardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">1</owl:cardinality>
+                              </owl:Restriction>
+                        </rdfs:subClassOf><rdfs:subClassOf>
+                              <owl:Restriction>
+                                  <owl:onProperty rdf:resource="#debian_bug_number"/>
+                                  <owl:cardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">1</owl:cardinality>
+                              </owl:Restriction>
+                        </rdfs:subClassOf><rdfs:subClassOf>
+                              <owl:Restriction>
+                                  <owl:onProperty rdf:resource="#description_format"/>
+                                  <owl:cardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">1</owl:cardinality>
+                              </owl:Restriction>
+                        </rdfs:subClassOf><rdfs:subClassOf>
+                              <owl:Restriction>
+                                  <owl:onProperty rdf:resource="#description"/>
+                                  <owl:cardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">1</owl:cardinality>
+                              </owl:Restriction>
+                        </rdfs:subClassOf><rdfs:subClassOf>
+                              <owl:Restriction>
+                                  <owl:onProperty rdf:resource="#creation_date"/>
+                                  <owl:cardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">1</owl:cardinality>
+                              </owl:Restriction>
+                        </rdfs:subClassOf><rdfs:subClassOf>
+                              <owl:Restriction>
+                                  <owl:onProperty rdf:resource="#modification_date"/>
+                                  <owl:cardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">1</owl:cardinality>
+                              </owl:Restriction>
+                        </rdfs:subClassOf></owl:Class><owl:Class rdf:ID="Version"><rdfs:subClassOf rdf:resource="http://www.w3.org/2002/07/owl#Thing"/>
+                                <!-- relations --><rdfs:subClassOf>
+                              <owl:Restriction>
+                              <owl:onProperty rdf:resource="#in_basket"/>
+                                <owl:cardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">n</owl:cardinality>
+                              </owl:Restriction>
+                           </rdfs:subClassOf>
+                                <rdfs:subClassOf>
+                              <owl:Restriction>
+                              <owl:onProperty rdf:resource="#version_of"/>
+                                <owl:minCardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">1</owl:minCardinality>
+                        <owl:maxCardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">1</owl:maxCardinality>
+                              </owl:Restriction>
+                           </rdfs:subClassOf>
+                                <rdfs:subClassOf>
+                              <owl:Restriction>
+                              <owl:onProperty rdf:resource="#todo_by"/>
+                                <owl:cardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">n</owl:cardinality>
+                              </owl:Restriction>
+                           </rdfs:subClassOf>
+                                <rdfs:subClassOf>
+                              <owl:Restriction>
+                              <owl:onProperty rdf:resource="#in_state"/>
+                                <owl:minCardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">1</owl:minCardinality>
+                        <owl:maxCardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">1</owl:maxCardinality>
+                              </owl:Restriction>
+                           </rdfs:subClassOf>
+                                <rdfs:subClassOf>
+                              <owl:Restriction>
+                              <owl:onProperty rdf:resource="#conflicts"/>
+                                <owl:cardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">n</owl:cardinality>
+                              </owl:Restriction>
+                           </rdfs:subClassOf>
+                                <rdfs:subClassOf>
+                              <owl:Restriction>
+                              <owl:onProperty rdf:resource="#depends_on"/>
+                                <owl:cardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">n</owl:cardinality>
+                              </owl:Restriction>
+                           </rdfs:subClassOf>
+                                <rdfs:subClassOf>
+                              <owl:Restriction>
+                              <owl:onProperty rdf:resource="#require_permission"/>
+                                <owl:cardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">n</owl:cardinality>
+                              </owl:Restriction>
+                           </rdfs:subClassOf>
+                                <rdfs:subClassOf>
+                              <owl:Restriction>
+                              <owl:onProperty rdf:resource="#done_in"/>
+                                <owl:cardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">n</owl:cardinality>
+                              </owl:Restriction>
+                           </rdfs:subClassOf>
+                                <rdfs:subClassOf>
+                              <owl:Restriction>
+                              <owl:onProperty rdf:resource="#tags"/>
+                                <owl:cardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">n</owl:cardinality>
+                              </owl:Restriction>
+                           </rdfs:subClassOf>
+                                <rdfs:subClassOf>
+                              <owl:Restriction>
+                              <owl:onProperty rdf:resource="#depends_on"/>
+                                <owl:cardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">n</owl:cardinality>
+                              </owl:Restriction>
+                           </rdfs:subClassOf>
+                                <rdfs:subClassOf>
+                              <owl:Restriction>
+                              <owl:onProperty rdf:resource="#for_version"/>
+                                <owl:cardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">n</owl:cardinality>
+                              </owl:Restriction>
+                           </rdfs:subClassOf>
+                                <rdfs:subClassOf>
+                              <owl:Restriction>
+                              <owl:onProperty rdf:resource="#wf_info_for"/>
+                                <owl:cardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">n</owl:cardinality>
+                              </owl:Restriction>
+                           </rdfs:subClassOf>
+                                <rdfs:subClassOf>
+                              <owl:Restriction>
+                              <owl:onProperty rdf:resource="#appeared_in"/>
+                                <owl:cardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">n</owl:cardinality>
+                              </owl:Restriction>
+                           </rdfs:subClassOf>
+                                <!-- attributes --><rdfs:subClassOf>
+                              <owl:Restriction>
+                                  <owl:onProperty rdf:resource="#num"/>
+                                  <owl:cardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">1</owl:cardinality>
+                              </owl:Restriction>
+                        </rdfs:subClassOf><rdfs:subClassOf>
+                              <owl:Restriction>
+                                  <owl:onProperty rdf:resource="#description_format"/>
+                                  <owl:cardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">1</owl:cardinality>
+                              </owl:Restriction>
+                        </rdfs:subClassOf><rdfs:subClassOf>
+                              <owl:Restriction>
+                                  <owl:onProperty rdf:resource="#description"/>
+                                  <owl:cardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">1</owl:cardinality>
+                              </owl:Restriction>
+                        </rdfs:subClassOf><rdfs:subClassOf>
+                              <owl:Restriction>
+                                  <owl:onProperty rdf:resource="#starting_date"/>
+                                  <owl:cardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">1</owl:cardinality>
+                              </owl:Restriction>
+                        </rdfs:subClassOf><rdfs:subClassOf>
+                              <owl:Restriction>
+                                  <owl:onProperty rdf:resource="#prevision_date"/>
+                                  <owl:cardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">1</owl:cardinality>
+                              </owl:Restriction>
+                        </rdfs:subClassOf><rdfs:subClassOf>
+                              <owl:Restriction>
+                                  <owl:onProperty rdf:resource="#publication_date"/>
+                                  <owl:cardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">1</owl:cardinality>
+                              </owl:Restriction>
+                        </rdfs:subClassOf><rdfs:subClassOf>
+                              <owl:Restriction>
+                                  <owl:onProperty rdf:resource="#creation_date"/>
+                                  <owl:cardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">1</owl:cardinality>
+                              </owl:Restriction>
+                        </rdfs:subClassOf><rdfs:subClassOf>
+                              <owl:Restriction>
+                                  <owl:onProperty rdf:resource="#modification_date"/>
+                                  <owl:cardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">1</owl:cardinality>
+                              </owl:Restriction>
+                        </rdfs:subClassOf></owl:Class><!-- property definition --><!-- object property --><owl:ObjectProperty rdf:ID="in_basket">
+                              <rdfs:domain rdf:resource="#Blog"/>
+                              <rdfs:range rdf:resource="#Basket"/>
+                           </owl:ObjectProperty>                   
+                             
+                                <owl:ObjectProperty rdf:ID="interested_in">
+                              <rdfs:domain rdf:resource="#Blog"/>
+                              <rdfs:range rdf:resource="#EUser"/>
+                           </owl:ObjectProperty>                   
+                             
+                                <owl:ObjectProperty rdf:ID="entry_of">
+                              <rdfs:domain rdf:resource="#Blog"/>
+                              <rdfs:range rdf:resource="#BlogEntry"/>
+                           </owl:ObjectProperty>                   
+                             
+                                <owl:ObjectProperty rdf:ID="see_also">
+                              <rdfs:domain rdf:resource="#BlogEntry"/>
+                              <rdfs:range rdf:resource="#Link"/>
+                           </owl:ObjectProperty>                   
+                             
+                                <owl:ObjectProperty rdf:ID="see_also">
+                              <rdfs:domain rdf:resource="#BlogEntry"/>
+                              <rdfs:range rdf:resource="#Project"/>
+                           </owl:ObjectProperty>                   
+                             
+                                <owl:ObjectProperty rdf:ID="see_also">
+                              <rdfs:domain rdf:resource="#BlogEntry"/>
+                              <rdfs:range rdf:resource="#ExtProject"/>
+                           </owl:ObjectProperty>                   
+                             
+                                <owl:ObjectProperty rdf:ID="see_also">
+                              <rdfs:domain rdf:resource="#BlogEntry"/>
+                              <rdfs:range rdf:resource="#BlogEntry"/>
+                           </owl:ObjectProperty>                   
+                             
+                                <owl:ObjectProperty rdf:ID="see_also">
+                              <rdfs:domain rdf:resource="#BlogEntry"/>
+                              <rdfs:range rdf:resource="#Card"/>
+                           </owl:ObjectProperty>                   
+                             
+                                <owl:ObjectProperty rdf:ID="see_also">
+                              <rdfs:domain rdf:resource="#BlogEntry"/>
+                              <rdfs:range rdf:resource="#File"/>
+                           </owl:ObjectProperty>                   
+                             
+                                <owl:ObjectProperty rdf:ID="see_also">
+                              <rdfs:domain rdf:resource="#BlogEntry"/>
+                              <rdfs:range rdf:resource="#Image"/>
+                           </owl:ObjectProperty>                   
+                             
+                                <owl:ObjectProperty rdf:ID="see_also">
+                              <rdfs:domain rdf:resource="#BlogEntry"/>
+                              <rdfs:range rdf:resource="#Ticket"/>
+                           </owl:ObjectProperty>                   
+                             
+                                <owl:ObjectProperty rdf:ID="entry_of">
+                              <rdfs:domain rdf:resource="#BlogEntry"/>
+                              <rdfs:range rdf:resource="#Blog"/>
+                           </owl:ObjectProperty>                   
+                             
+                                <owl:ObjectProperty rdf:ID="in_basket">
+                              <rdfs:domain rdf:resource="#BlogEntry"/>
+                              <rdfs:range rdf:resource="#Basket"/>
+                           </owl:ObjectProperty>                   
+                             
+                                <owl:ObjectProperty rdf:ID="filed_under">
+                              <rdfs:domain rdf:resource="#BlogEntry"/>
+                              <rdfs:range rdf:resource="#Folder"/>
+                           </owl:ObjectProperty>                   
+                             
+                                <owl:ObjectProperty rdf:ID="interested_in">
+                              <rdfs:domain rdf:resource="#BlogEntry"/>
+                              <rdfs:range rdf:resource="#EUser"/>
+                           </owl:ObjectProperty>                   
+                             
+                                <owl:ObjectProperty rdf:ID="comments">
+                              <rdfs:domain rdf:resource="#BlogEntry"/>
+                              <rdfs:range rdf:resource="#Comment"/>
+                           </owl:ObjectProperty>                   
+                             
+                                <owl:ObjectProperty rdf:ID="tags">
+                              <rdfs:domain rdf:resource="#BlogEntry"/>
+                              <rdfs:range rdf:resource="#Tag"/>
+                           </owl:ObjectProperty>                   
+                             
+                                <owl:ObjectProperty rdf:ID="see_also">
+                              <rdfs:domain rdf:resource="#Card"/>
+                              <rdfs:range rdf:resource="#Project"/>
+                           </owl:ObjectProperty>                   
+                             
+                                <owl:ObjectProperty rdf:ID="see_also">
+                              <rdfs:domain rdf:resource="#Card"/>
+                              <rdfs:range rdf:resource="#ExtProject"/>
+                           </owl:ObjectProperty>                   
+                             
+                                <owl:ObjectProperty rdf:ID="see_also">
+                              <rdfs:domain rdf:resource="#Card"/>
+                              <rdfs:range rdf:resource="#Link"/>
+                           </owl:ObjectProperty>                   
+                             
+                                <owl:ObjectProperty rdf:ID="see_also">
+                              <rdfs:domain rdf:resource="#Card"/>
+                              <rdfs:range rdf:resource="#BlogEntry"/>
+                           </owl:ObjectProperty>                   
+                             
+                                <owl:ObjectProperty rdf:ID="see_also">
+                              <rdfs:domain rdf:resource="#Card"/>
+                              <rdfs:range rdf:resource="#File"/>
+                           </owl:ObjectProperty>                   
+                             
+                                <owl:ObjectProperty rdf:ID="see_also">
+                              <rdfs:domain rdf:resource="#Card"/>
+                              <rdfs:range rdf:resource="#Image"/>
+                           </owl:ObjectProperty>                   
+                             
+                                <owl:ObjectProperty rdf:ID="see_also">
+                              <rdfs:domain rdf:resource="#Card"/>
+                              <rdfs:range rdf:resource="#Ticket"/>
+                           </owl:ObjectProperty>                   
+                             
+                                <owl:ObjectProperty rdf:ID="see_also">
+                              <rdfs:domain rdf:resource="#Card"/>
+                              <rdfs:range rdf:resource="#Card"/>
+                           </owl:ObjectProperty>                   
+                             
+                                <owl:ObjectProperty rdf:ID="in_basket">
+                              <rdfs:domain rdf:resource="#Card"/>
+                              <rdfs:range rdf:resource="#Basket"/>
+                           </owl:ObjectProperty>                   
+                             
+                                <owl:ObjectProperty rdf:ID="filed_under">
+                              <rdfs:domain rdf:resource="#Card"/>
+                              <rdfs:range rdf:resource="#Folder"/>
+                           </owl:ObjectProperty>                   
+                             
+                                <owl:ObjectProperty rdf:ID="require_permission">
+                              <rdfs:domain rdf:resource="#Card"/>
+                              <rdfs:range rdf:resource="#EPermission"/>
+                           </owl:ObjectProperty>                   
+                             
+                                <owl:ObjectProperty rdf:ID="test_case_for">
+                              <rdfs:domain rdf:resource="#Card"/>
+                              <rdfs:range rdf:resource="#Ticket"/>
+                           </owl:ObjectProperty>                   
+                             
+                                <owl:ObjectProperty rdf:ID="test_case_of">
+                              <rdfs:domain rdf:resource="#Card"/>
+                              <rdfs:range rdf:resource="#Project"/>
+                           </owl:ObjectProperty>                   
+                             
+                                <owl:ObjectProperty rdf:ID="documented_by">
+                              <rdfs:domain rdf:resource="#Card"/>
+                              <rdfs:range rdf:resource="#Project"/>
+                           </owl:ObjectProperty>                   
+                             
+                                <owl:ObjectProperty rdf:ID="instance_of">
+                              <rdfs:domain rdf:resource="#Card"/>
+                              <rdfs:range rdf:resource="#TestInstance"/>
+                           </owl:ObjectProperty>                   
+                             
+                                <owl:ObjectProperty rdf:ID="comments">
+                              <rdfs:domain rdf:resource="#Card"/>
+                              <rdfs:range rdf:resource="#Comment"/>
+                           </owl:ObjectProperty>                   
+                             
+                                <owl:ObjectProperty rdf:ID="tags">
+                              <rdfs:domain rdf:resource="#Card"/>
+                              <rdfs:range rdf:resource="#Tag"/>
+                           </owl:ObjectProperty>                   
+                             
+                                <owl:ObjectProperty rdf:ID="see_also">
+                              <rdfs:domain rdf:resource="#Email"/>
+                              <rdfs:range rdf:resource="#Image"/>
+                           </owl:ObjectProperty>                   
+                             
+                                <owl:ObjectProperty rdf:ID="see_also">
+                              <rdfs:domain rdf:resource="#Email"/>
+                              <rdfs:range rdf:resource="#Ticket"/>
+                           </owl:ObjectProperty>                   
+                             
+                                <owl:ObjectProperty rdf:ID="sent_on">
+                              <rdfs:domain rdf:resource="#Email"/>
+                              <rdfs:range rdf:resource="#MailingList"/>
+                           </owl:ObjectProperty>                   
+                             
+                                <owl:ObjectProperty rdf:ID="in_basket">
+                              <rdfs:domain rdf:resource="#Email"/>
+                              <rdfs:range rdf:resource="#Basket"/>
+                           </owl:ObjectProperty>                   
+                             
+                                <owl:ObjectProperty rdf:ID="sender">
+                              <rdfs:domain rdf:resource="#Email"/>
+                              <rdfs:range rdf:resource="#EmailAddress"/>
+                           </owl:ObjectProperty>                   
+                             
+                                <owl:ObjectProperty rdf:ID="recipients">
+                              <rdfs:domain rdf:resource="#Email"/>
+                              <rdfs:range rdf:resource="#EmailAddress"/>
+                           </owl:ObjectProperty>                   
+                             
+                                <owl:ObjectProperty rdf:ID="cc">
+                              <rdfs:domain rdf:resource="#Email"/>
+                              <rdfs:range rdf:resource="#EmailAddress"/>
+                           </owl:ObjectProperty>                   
+                             
+                                <owl:ObjectProperty rdf:ID="parts">
+                              <rdfs:domain rdf:resource="#Email"/>
+                              <rdfs:range rdf:resource="#EmailPart"/>
+                           </owl:ObjectProperty>                   
+                             
+                                <owl:ObjectProperty rdf:ID="attachment">
+                              <rdfs:domain rdf:resource="#Email"/>
+                              <rdfs:range rdf:resource="#File"/>
+                           </owl:ObjectProperty>                   
+                             
+                                <owl:ObjectProperty rdf:ID="reply_to">
+                              <rdfs:domain rdf:resource="#Email"/>
+                              <rdfs:range rdf:resource="#Email"/>
+                           </owl:ObjectProperty>                   
+                             
+                                <owl:ObjectProperty rdf:ID="cites">
+                              <rdfs:domain rdf:resource="#Email"/>
+                              <rdfs:range rdf:resource="#Email"/>
+                           </owl:ObjectProperty>                   
+                             
+                                <owl:ObjectProperty rdf:ID="in_thread">
+                              <rdfs:domain rdf:resource="#Email"/>
+                              <rdfs:range rdf:resource="#EmailThread"/>
+                           </owl:ObjectProperty>                   
+                             
+                                <owl:ObjectProperty rdf:ID="tags">
+                              <rdfs:domain rdf:resource="#Email"/>
+                              <rdfs:range rdf:resource="#Tag"/>
+                           </owl:ObjectProperty>                   
+                             
+                                <owl:ObjectProperty rdf:ID="generated_by">
+                              <rdfs:domain rdf:resource="#Email"/>
+                              <rdfs:range rdf:resource="#TrInfo"/>
+                           </owl:ObjectProperty>                   
+                             
+                                <owl:ObjectProperty rdf:ID="generated_by">
+                              <rdfs:domain rdf:resource="#Email"/>
+                              <rdfs:range rdf:resource="#Comment"/>
+                           </owl:ObjectProperty>                   
+                             
+                                <owl:ObjectProperty rdf:ID="comments">
+                              <rdfs:domain rdf:resource="#Email"/>
+                              <rdfs:range rdf:resource="#Comment"/>
+                           </owl:ObjectProperty>                   
+                             
+                                <owl:ObjectProperty rdf:ID="reply_to">
+                              <rdfs:domain rdf:resource="#Email"/>
+                              <rdfs:range rdf:resource="#Email"/>
+                           </owl:ObjectProperty>                   
+                             
+                                <owl:ObjectProperty rdf:ID="cites">
+                              <rdfs:domain rdf:resource="#Email"/>
+                              <rdfs:range rdf:resource="#Email"/>
+                           </owl:ObjectProperty>                   
+                             
+                                <owl:ObjectProperty rdf:ID="see_also">
+                              <rdfs:domain rdf:resource="#EmailThread"/>
+                              <rdfs:range rdf:resource="#EmailThread"/>
+                           </owl:ObjectProperty>                   
+                             
+                                <owl:ObjectProperty rdf:ID="forked_from">
+                              <rdfs:domain rdf:resource="#EmailThread"/>
+                              <rdfs:range rdf:resource="#EmailThread"/>
+                           </owl:ObjectProperty>                   
+                             
+                                <owl:ObjectProperty rdf:ID="in_basket">
+                              <rdfs:domain rdf:resource="#EmailThread"/>
+                              <rdfs:range rdf:resource="#Basket"/>
+                           </owl:ObjectProperty>                   
+                             
+                                <owl:ObjectProperty rdf:ID="in_thread">
+                              <rdfs:domain rdf:resource="#EmailThread"/>
+                              <rdfs:range rdf:resource="#Email"/>
+                           </owl:ObjectProperty>                   
+                             
+                                <owl:ObjectProperty rdf:ID="forked_from">
+                              <rdfs:domain rdf:resource="#EmailThread"/>
+                              <rdfs:range rdf:resource="#EmailThread"/>
+                           </owl:ObjectProperty>                   
+                             
+                                <owl:ObjectProperty rdf:ID="see_also">
+                              <rdfs:domain rdf:resource="#ExtProject"/>
+                              <rdfs:range rdf:resource="#Project"/>
+                           </owl:ObjectProperty>                   
+                             
+                                <owl:ObjectProperty rdf:ID="see_also">
+                              <rdfs:domain rdf:resource="#ExtProject"/>
+                              <rdfs:range rdf:resource="#BlogEntry"/>
+                           </owl:ObjectProperty>                   
+                             
+                                <owl:ObjectProperty rdf:ID="see_also">
+                              <rdfs:domain rdf:resource="#ExtProject"/>
+                              <rdfs:range rdf:resource="#Card"/>
+                           </owl:ObjectProperty>                   
+                             
+                                <owl:ObjectProperty rdf:ID="see_also">
+                              <rdfs:domain rdf:resource="#ExtProject"/>
+                              <rdfs:range rdf:resource="#Link"/>
+                           </owl:ObjectProperty>                   
+                             
+                                <owl:ObjectProperty rdf:ID="see_also">
+                              <rdfs:domain rdf:resource="#ExtProject"/>
+                              <rdfs:range rdf:resource="#File"/>
+                           </owl:ObjectProperty>                   
+                             
+                                <owl:ObjectProperty rdf:ID="see_also">
+                              <rdfs:domain rdf:resource="#ExtProject"/>
+                              <rdfs:range rdf:resource="#Image"/>
+                           </owl:ObjectProperty>                   
+                             
+                                <owl:ObjectProperty rdf:ID="see_also">
+                              <rdfs:domain rdf:resource="#ExtProject"/>
+                              <rdfs:range rdf:resource="#Ticket"/>
+                           </owl:ObjectProperty>                   
+                             
+                                <owl:ObjectProperty rdf:ID="see_also">
+                              <rdfs:domain rdf:resource="#ExtProject"/>
+                              <rdfs:range rdf:resource="#ExtProject"/>
+                           </owl:ObjectProperty>                   
+                             
+                                <owl:ObjectProperty rdf:ID="in_basket">
+                              <rdfs:domain rdf:resource="#ExtProject"/>
+                              <rdfs:range rdf:resource="#Basket"/>
+                           </owl:ObjectProperty>                   
+                             
+                                <owl:ObjectProperty rdf:ID="filed_under">
+                              <rdfs:domain rdf:resource="#ExtProject"/>
+                              <rdfs:range rdf:resource="#Folder"/>
+                           </owl:ObjectProperty>                   
+                             
+                                <owl:ObjectProperty rdf:ID="require_permission">
+                              <rdfs:domain rdf:resource="#ExtProject"/>
+                              <rdfs:range rdf:resource="#EPermission"/>
+                           </owl:ObjectProperty>                   
+                             
+                                <owl:ObjectProperty rdf:ID="recommends">
+                              <rdfs:domain rdf:resource="#ExtProject"/>
+                              <rdfs:range rdf:resource="#Project"/>
+                           </owl:ObjectProperty>                   
+                             
+                                <owl:ObjectProperty rdf:ID="uses">
+                              <rdfs:domain rdf:resource="#ExtProject"/>
+                              <rdfs:range rdf:resource="#Project"/>
+                           </owl:ObjectProperty>                   
+                             
+                                <owl:ObjectProperty rdf:ID="tags">
+                              <rdfs:domain rdf:resource="#ExtProject"/>
+                              <rdfs:range rdf:resource="#Tag"/>
+                           </owl:ObjectProperty>                   
+                             
+                                <owl:ObjectProperty rdf:ID="see_also">
+                              <rdfs:domain rdf:resource="#File"/>
+                              <rdfs:range rdf:resource="#Project"/>
+                           </owl:ObjectProperty>                   
+                             
+                                <owl:ObjectProperty rdf:ID="see_also">
+                              <rdfs:domain rdf:resource="#File"/>
+                              <rdfs:range rdf:resource="#Link"/>
+                           </owl:ObjectProperty>                   
+                             
+                                <owl:ObjectProperty rdf:ID="see_also">
+                              <rdfs:domain rdf:resource="#File"/>
+                              <rdfs:range rdf:resource="#BlogEntry"/>
+                           </owl:ObjectProperty>                   
+                             
+                                <owl:ObjectProperty rdf:ID="see_also">
+                              <rdfs:domain rdf:resource="#File"/>
+                              <rdfs:range rdf:resource="#Image"/>
+                           </owl:ObjectProperty>                   
+                             
+                                <owl:ObjectProperty rdf:ID="see_also">
+                              <rdfs:domain rdf:resource="#File"/>
+                              <rdfs:range rdf:resource="#ExtProject"/>
+                           </owl:ObjectProperty>                   
+                             
+                                <owl:ObjectProperty rdf:ID="see_also">
+                              <rdfs:domain rdf:resource="#File"/>
+                              <rdfs:range rdf:resource="#Card"/>
+                           </owl:ObjectProperty>                   
+                             
+                                <owl:ObjectProperty rdf:ID="see_also">
+                              <rdfs:domain rdf:resource="#File"/>
+                              <rdfs:range rdf:resource="#Ticket"/>
+                           </owl:ObjectProperty>                   
+                             
+                                <owl:ObjectProperty rdf:ID="see_also">
+                              <rdfs:domain rdf:resource="#File"/>
+                              <rdfs:range rdf:resource="#File"/>
+                           </owl:ObjectProperty>                   
+                             
+                                <owl:ObjectProperty rdf:ID="in_basket">
+                              <rdfs:domain rdf:resource="#File"/>
+                              <rdfs:range rdf:resource="#Basket"/>
+                           </owl:ObjectProperty>                   
+                             
+                                <owl:ObjectProperty rdf:ID="filed_under">
+                              <rdfs:domain rdf:resource="#File"/>
+                              <rdfs:range rdf:resource="#Folder"/>
+                           </owl:ObjectProperty>                   
+                             
+                                <owl:ObjectProperty rdf:ID="require_permission">
+                              <rdfs:domain rdf:resource="#File"/>
+                              <rdfs:range rdf:resource="#EPermission"/>
+                           </owl:ObjectProperty>                   
+                             
+                                <owl:ObjectProperty rdf:ID="documented_by">
+                              <rdfs:domain rdf:resource="#File"/>
+                              <rdfs:range rdf:resource="#Project"/>
+                           </owl:ObjectProperty>                   
+                             
+                                <owl:ObjectProperty rdf:ID="comments">
+                              <rdfs:domain rdf:resource="#File"/>
+                              <rdfs:range rdf:resource="#Comment"/>
+                           </owl:ObjectProperty>                   
+                             
+                                <owl:ObjectProperty rdf:ID="attachment">
+                              <rdfs:domain rdf:resource="#File"/>
+                              <rdfs:range rdf:resource="#Email"/>
+                           </owl:ObjectProperty>                   
+                             
+                                <owl:ObjectProperty rdf:ID="attachment">
+                              <rdfs:domain rdf:resource="#File"/>
+                              <rdfs:range rdf:resource="#Ticket"/>
+                           </owl:ObjectProperty>                   
+                             
+                                <owl:ObjectProperty rdf:ID="tags">
+                              <rdfs:domain rdf:resource="#File"/>
+                              <rdfs:range rdf:resource="#Tag"/>
+                           </owl:ObjectProperty>                   
+                             
+                                <owl:ObjectProperty rdf:ID="in_basket">
+                              <rdfs:domain rdf:resource="#Image"/>
+                              <rdfs:range rdf:resource="#Basket"/>
+                           </owl:ObjectProperty>                   
+                             
+                                <owl:ObjectProperty rdf:ID="see_also">
+                              <rdfs:domain rdf:resource="#Image"/>
+                              <rdfs:range rdf:resource="#File"/>
+                           </owl:ObjectProperty>                   
+                             
+                                <owl:ObjectProperty rdf:ID="see_also">
+                              <rdfs:domain rdf:resource="#Image"/>
+                              <rdfs:range rdf:resource="#ExtProject"/>
+                           </owl:ObjectProperty>                   
+                             
+                                <owl:ObjectProperty rdf:ID="see_also">
+                              <rdfs:domain rdf:resource="#Image"/>
+                              <rdfs:range rdf:resource="#Card"/>
+                           </owl:ObjectProperty>                   
+                             
+                                <owl:ObjectProperty rdf:ID="see_also">
+                              <rdfs:domain rdf:resource="#Image"/>
+                              <rdfs:range rdf:resource="#BlogEntry"/>
+                           </owl:ObjectProperty>                   
+                             
+                                <owl:ObjectProperty rdf:ID="see_also">
+                              <rdfs:domain rdf:resource="#Image"/>
+                              <rdfs:range rdf:resource="#Link"/>
+                           </owl:ObjectProperty>                   
+                             
+                                <owl:ObjectProperty rdf:ID="see_also">
+                              <rdfs:domain rdf:resource="#Image"/>
+                              <rdfs:range rdf:resource="#Email"/>
+                           </owl:ObjectProperty>                   
+                             
+                                <owl:ObjectProperty rdf:ID="see_also">
+                              <rdfs:domain rdf:resource="#Image"/>
+                              <rdfs:range rdf:resource="#Image"/>
+                           </owl:ObjectProperty>                   
+                             
+                                <owl:ObjectProperty rdf:ID="see_also">
+                              <rdfs:domain rdf:resource="#Image"/>
+                              <rdfs:range rdf:resource="#Project"/>
+                           </owl:ObjectProperty>                   
+                             
+                                <owl:ObjectProperty rdf:ID="see_also">
+                              <rdfs:domain rdf:resource="#Image"/>
+                              <rdfs:range rdf:resource="#Ticket"/>
+                           </owl:ObjectProperty>                   
+                             
+                                <owl:ObjectProperty rdf:ID="require_permission">
+                              <rdfs:domain rdf:resource="#Image"/>
+                              <rdfs:range rdf:resource="#EPermission"/>
+                           </owl:ObjectProperty>                   
+                             
+                                <owl:ObjectProperty rdf:ID="attachment">
+                              <rdfs:domain rdf:resource="#Image"/>
+                              <rdfs:range rdf:resource="#Ticket"/>
+                           </owl:ObjectProperty>                   
+                             
+                                <owl:ObjectProperty rdf:ID="screenshot">
+                              <rdfs:domain rdf:resource="#Image"/>
+                              <rdfs:range rdf:resource="#Project"/>
+                           </owl:ObjectProperty>                   
+                             
+                                <owl:ObjectProperty rdf:ID="tags">
+                              <rdfs:domain rdf:resource="#Image"/>
+                              <rdfs:range rdf:resource="#Tag"/>
+                           </owl:ObjectProperty>                   
+                             
+                                <owl:ObjectProperty rdf:ID="in_basket">
+                              <rdfs:domain rdf:resource="#License"/>
+                              <rdfs:range rdf:resource="#Basket"/>
+                           </owl:ObjectProperty>                   
+                             
+                                <owl:ObjectProperty rdf:ID="license_of">
+                              <rdfs:domain rdf:resource="#License"/>
+                              <rdfs:range rdf:resource="#Project"/>
+                           </owl:ObjectProperty>                   
+                             
+                                <owl:ObjectProperty rdf:ID="tags">
+                              <rdfs:domain rdf:resource="#License"/>
+                              <rdfs:range rdf:resource="#Tag"/>
+                           </owl:ObjectProperty>                   
+                             
+                                <owl:ObjectProperty rdf:ID="see_also">
+                              <rdfs:domain rdf:resource="#Link"/>
+                              <rdfs:range rdf:resource="#BlogEntry"/>
+                           </owl:ObjectProperty>                   
+                             
+                                <owl:ObjectProperty rdf:ID="see_also">
+                              <rdfs:domain rdf:resource="#Link"/>
+                              <rdfs:range rdf:resource="#Project"/>
+                           </owl:ObjectProperty>                   
+                             
+                                <owl:ObjectProperty rdf:ID="see_also">
+                              <rdfs:domain rdf:resource="#Link"/>
+                              <rdfs:range rdf:resource="#Card"/>
+                           </owl:ObjectProperty>                   
+                             
+                                <owl:ObjectProperty rdf:ID="see_also">
+                              <rdfs:domain rdf:resource="#Link"/>
+                              <rdfs:range rdf:resource="#ExtProject"/>
+                           </owl:ObjectProperty>                   
+                             
+                                <owl:ObjectProperty rdf:ID="see_also">
+                              <rdfs:domain rdf:resource="#Link"/>
+                              <rdfs:range rdf:resource="#File"/>
+                           </owl:ObjectProperty>                   
+                             
+                                <owl:ObjectProperty rdf:ID="see_also">
+                              <rdfs:domain rdf:resource="#Link"/>
+                              <rdfs:range rdf:resource="#Link"/>
+                           </owl:ObjectProperty>                   
+                             
+                                <owl:ObjectProperty rdf:ID="see_also">
+                              <rdfs:domain rdf:resource="#Link"/>
+                              <rdfs:range rdf:resource="#Image"/>
+                           </owl:ObjectProperty>                   
+                             
+                                <owl:ObjectProperty rdf:ID="see_also">
+                              <rdfs:domain rdf:resource="#Link"/>
+                              <rdfs:range rdf:resource="#Ticket"/>
+                           </owl:ObjectProperty>                   
+                             
+                                <owl:ObjectProperty rdf:ID="in_basket">
+                              <rdfs:domain rdf:resource="#Link"/>
+                              <rdfs:range rdf:resource="#Basket"/>
+                           </owl:ObjectProperty>                   
+                             
+                                <owl:ObjectProperty rdf:ID="filed_under">
+                              <rdfs:domain rdf:resource="#Link"/>
+                              <rdfs:range rdf:resource="#Folder"/>
+                           </owl:ObjectProperty>                   
+                             
+                                <owl:ObjectProperty rdf:ID="comments">
+                              <rdfs:domain rdf:resource="#Link"/>
+                              <rdfs:range rdf:resource="#Comment"/>
+                           </owl:ObjectProperty>                   
+                             
+                                <owl:ObjectProperty rdf:ID="tags">
+                              <rdfs:domain rdf:resource="#Link"/>
+                              <rdfs:range rdf:resource="#Tag"/>
+                           </owl:ObjectProperty>                   
+                             
+                                <owl:ObjectProperty rdf:ID="in_basket">
+                              <rdfs:domain rdf:resource="#MailingList"/>
+                              <rdfs:range rdf:resource="#Basket"/>
+                           </owl:ObjectProperty>                   
+                             
+                                <owl:ObjectProperty rdf:ID="use_email">
+                              <rdfs:domain rdf:resource="#MailingList"/>
+                              <rdfs:range rdf:resource="#EmailAddress"/>
+                           </owl:ObjectProperty>                   
+                             
+                                <owl:ObjectProperty rdf:ID="mailinglist_of">
+                              <rdfs:domain rdf:resource="#MailingList"/>
+                              <rdfs:range rdf:resource="#Project"/>
+                           </owl:ObjectProperty>                   
+                             
+                                <owl:ObjectProperty rdf:ID="sent_on">
+                              <rdfs:domain rdf:resource="#MailingList"/>
+                              <rdfs:range rdf:resource="#Email"/>
+                           </owl:ObjectProperty>                   
+                             
+                                <owl:ObjectProperty rdf:ID="tags">
+                              <rdfs:domain rdf:resource="#MailingList"/>
+                              <rdfs:range rdf:resource="#Tag"/>
+                           </owl:ObjectProperty>                   
+                             
+                                <owl:ObjectProperty rdf:ID="see_also">
+                              <rdfs:domain rdf:resource="#Project"/>
+                              <rdfs:range rdf:resource="#BlogEntry"/>
+                           </owl:ObjectProperty>                   
+                             
+                                <owl:ObjectProperty rdf:ID="see_also">
+                              <rdfs:domain rdf:resource="#Project"/>
+                              <rdfs:range rdf:resource="#Link"/>
+                           </owl:ObjectProperty>                   
+                             
+                                <owl:ObjectProperty rdf:ID="see_also">
+                              <rdfs:domain rdf:resource="#Project"/>
+                              <rdfs:range rdf:resource="#Card"/>
+                           </owl:ObjectProperty>                   
+                             
+                                <owl:ObjectProperty rdf:ID="see_also">
+                              <rdfs:domain rdf:resource="#Project"/>
+                              <rdfs:range rdf:resource="#File"/>
+                           </owl:ObjectProperty>                   
+                             
+                                <owl:ObjectProperty rdf:ID="see_also">
+                              <rdfs:domain rdf:resource="#Project"/>
+                              <rdfs:range rdf:resource="#ExtProject"/>
+                           </owl:ObjectProperty>                   
+                             
+                                <owl:ObjectProperty rdf:ID="see_also">
+                              <rdfs:domain rdf:resource="#Project"/>
+                              <rdfs:range rdf:resource="#Ticket"/>
+                           </owl:ObjectProperty>                   
+                             
+                                <owl:ObjectProperty rdf:ID="see_also">
+                              <rdfs:domain rdf:resource="#Project"/>
+                              <rdfs:range rdf:resource="#Image"/>
+                           </owl:ObjectProperty>                   
+                             
+                                <owl:ObjectProperty rdf:ID="see_also">
+                              <rdfs:domain rdf:resource="#Project"/>
+                              <rdfs:range rdf:resource="#Project"/>
+                           </owl:ObjectProperty>                   
+                             
+                                <owl:ObjectProperty rdf:ID="in_basket">
+                              <rdfs:domain rdf:resource="#Project"/>
+                              <rdfs:range rdf:resource="#Basket"/>
+                           </owl:ObjectProperty>                   
+                             
+                                <owl:ObjectProperty rdf:ID="uses">
+                              <rdfs:domain rdf:resource="#Project"/>
+                              <rdfs:range rdf:resource="#ExtProject"/>
+                           </owl:ObjectProperty>                   
+                             
+                                <owl:ObjectProperty rdf:ID="uses">
+                              <rdfs:domain rdf:resource="#Project"/>
+                              <rdfs:range rdf:resource="#Project"/>
+                           </owl:ObjectProperty>                   
+                             
+                                <owl:ObjectProperty rdf:ID="recommends">
+                              <rdfs:domain rdf:resource="#Project"/>
+                              <rdfs:range rdf:resource="#ExtProject"/>
+                           </owl:ObjectProperty>                   
+                             
+                                <owl:ObjectProperty rdf:ID="recommends">
+                              <rdfs:domain rdf:resource="#Project"/>
+                              <rdfs:range rdf:resource="#Project"/>
+                           </owl:ObjectProperty>                   
+                             
+                                <owl:ObjectProperty rdf:ID="documented_by">
+                              <rdfs:domain rdf:resource="#Project"/>
+                              <rdfs:range rdf:resource="#Card"/>
+                           </owl:ObjectProperty>                   
+                             
+                                <owl:ObjectProperty rdf:ID="documented_by">
+                              <rdfs:domain rdf:resource="#Project"/>
+                              <rdfs:range rdf:resource="#File"/>
+                           </owl:ObjectProperty>                   
+                             
+                                <owl:ObjectProperty rdf:ID="screenshot">
+                              <rdfs:domain rdf:resource="#Project"/>
+                              <rdfs:range rdf:resource="#Image"/>
+                           </owl:ObjectProperty>                   
+                             
+                                <owl:ObjectProperty rdf:ID="in_state">
+                              <rdfs:domain rdf:resource="#Project"/>
+                              <rdfs:range rdf:resource="#State"/>
+                           </owl:ObjectProperty>                   
+                             
+                                <owl:ObjectProperty rdf:ID="filed_under">
+                              <rdfs:domain rdf:resource="#Project"/>
+                              <rdfs:range rdf:resource="#Folder"/>
+                           </owl:ObjectProperty>                   
+                             
+                                <owl:ObjectProperty rdf:ID="require_permission">
+                              <rdfs:domain rdf:resource="#Project"/>
+                              <rdfs:range rdf:resource="#EPermission"/>
+                           </owl:ObjectProperty>                   
+                             
+                                <owl:ObjectProperty rdf:ID="recommends">
+                              <rdfs:domain rdf:resource="#Project"/>
+                              <rdfs:range rdf:resource="#Project"/>
+                           </owl:ObjectProperty>                   
+                             
+                                <owl:ObjectProperty rdf:ID="tags">
+                              <rdfs:domain rdf:resource="#Project"/>
+                              <rdfs:range rdf:resource="#Tag"/>
+                           </owl:ObjectProperty>                   
+                             
+                                <owl:ObjectProperty rdf:ID="concerns">
+                              <rdfs:domain rdf:resource="#Project"/>
+                              <rdfs:range rdf:resource="#Ticket"/>
+                           </owl:ObjectProperty>                   
+                             
+                                <owl:ObjectProperty rdf:ID="test_case_of">
+                              <rdfs:domain rdf:resource="#Project"/>
+                              <rdfs:range rdf:resource="#Card"/>
+                           </owl:ObjectProperty>                   
+                             
+                                <owl:ObjectProperty rdf:ID="mailinglist_of">
+                              <rdfs:domain rdf:resource="#Project"/>
+                              <rdfs:range rdf:resource="#MailingList"/>
+                           </owl:ObjectProperty>                   
+                             
+                                <owl:ObjectProperty rdf:ID="uses">
+                              <rdfs:domain rdf:resource="#Project"/>
+                              <rdfs:range rdf:resource="#Project"/>
+                           </owl:ObjectProperty>                   
+                             
+                                <owl:ObjectProperty rdf:ID="interested_in">
+                              <rdfs:domain rdf:resource="#Project"/>
+                              <rdfs:range rdf:resource="#EUser"/>
+                           </owl:ObjectProperty>                   
+                             
+                                <owl:ObjectProperty rdf:ID="license_of">
+                              <rdfs:domain rdf:resource="#Project"/>
+                              <rdfs:range rdf:resource="#License"/>
+                           </owl:ObjectProperty>                   
+                             
+                                <owl:ObjectProperty rdf:ID="version_of">
+                              <rdfs:domain rdf:resource="#Project"/>
+                              <rdfs:range rdf:resource="#Version"/>
+                           </owl:ObjectProperty>                   
+                             
+                                <owl:ObjectProperty rdf:ID="wf_info_for">
+                              <rdfs:domain rdf:resource="#Project"/>
+                              <rdfs:range rdf:resource="#TrInfo"/>
+                           </owl:ObjectProperty>                   
+                             
+                                <owl:ObjectProperty rdf:ID="instance_of">
+                              <rdfs:domain rdf:resource="#TestInstance"/>
+                              <rdfs:range rdf:resource="#Card"/>
+                           </owl:ObjectProperty>                   
+                             
+                                <owl:ObjectProperty rdf:ID="for_version">
+                              <rdfs:domain rdf:resource="#TestInstance"/>
+                              <rdfs:range rdf:resource="#Version"/>
+                           </owl:ObjectProperty>                   
+                             
+                                <owl:ObjectProperty rdf:ID="generate_bug">
+                              <rdfs:domain rdf:resource="#TestInstance"/>
+                              <rdfs:range rdf:resource="#Ticket"/>
+                           </owl:ObjectProperty>                   
+                             
+                                <owl:ObjectProperty rdf:ID="in_basket">
+                              <rdfs:domain rdf:resource="#TestInstance"/>
+                              <rdfs:range rdf:resource="#Basket"/>
+                           </owl:ObjectProperty>                   
+                             
+                                <owl:ObjectProperty rdf:ID="in_state">
+                              <rdfs:domain rdf:resource="#TestInstance"/>
+                              <rdfs:range rdf:resource="#State"/>
+                           </owl:ObjectProperty>                   
+                             
+                                <owl:ObjectProperty rdf:ID="require_permission">
+                              <rdfs:domain rdf:resource="#TestInstance"/>
+                              <rdfs:range rdf:resource="#EPermission"/>
+                           </owl:ObjectProperty>                   
+                             
+                                <owl:ObjectProperty rdf:ID="comments">
+                              <rdfs:domain rdf:resource="#TestInstance"/>
+                              <rdfs:range rdf:resource="#Comment"/>
+                           </owl:ObjectProperty>                   
+                             
+                                <owl:ObjectProperty rdf:ID="wf_info_for">
+                              <rdfs:domain rdf:resource="#TestInstance"/>
+                              <rdfs:range rdf:resource="#TrInfo"/>
+                           </owl:ObjectProperty>                   
+                             
+                                <owl:ObjectProperty rdf:ID="see_also">
+                              <rdfs:domain rdf:resource="#Ticket"/>
+                              <rdfs:range rdf:resource="#ExtProject"/>
+                           </owl:ObjectProperty>                   
+                             
+                                <owl:ObjectProperty rdf:ID="see_also">
+                              <rdfs:domain rdf:resource="#Ticket"/>
+                              <rdfs:range rdf:resource="#Project"/>
+                           </owl:ObjectProperty>                   
+                             
+                                <owl:ObjectProperty rdf:ID="see_also">
+                              <rdfs:domain rdf:resource="#Ticket"/>
+                              <rdfs:range rdf:resource="#Card"/>
+                           </owl:ObjectProperty>                   
+                             
+                                <owl:ObjectProperty rdf:ID="see_also">
+                              <rdfs:domain rdf:resource="#Ticket"/>
+                              <rdfs:range rdf:resource="#File"/>
+                           </owl:ObjectProperty>                   
+                             
+                                <owl:ObjectProperty rdf:ID="see_also">
+                              <rdfs:domain rdf:resource="#Ticket"/>
+                              <rdfs:range rdf:resource="#BlogEntry"/>
+                           </owl:ObjectProperty>                   
+                             
+                                <owl:ObjectProperty rdf:ID="see_also">
+                              <rdfs:domain rdf:resource="#Ticket"/>
+                              <rdfs:range rdf:resource="#Link"/>
+                           </owl:ObjectProperty>                   
+                             
+                                <owl:ObjectProperty rdf:ID="see_also">
+                              <rdfs:domain rdf:resource="#Ticket"/>
+                              <rdfs:range rdf:resource="#Email"/>
+                           </owl:ObjectProperty>                   
+                             
+                                <owl:ObjectProperty rdf:ID="see_also">
+                              <rdfs:domain rdf:resource="#Ticket"/>
+                              <rdfs:range rdf:resource="#Image"/>
+                           </owl:ObjectProperty>                   
+                             
+                                <owl:ObjectProperty rdf:ID="see_also">
+                              <rdfs:domain rdf:resource="#Ticket"/>
+                              <rdfs:range rdf:resource="#Ticket"/>
+                           </owl:ObjectProperty>                   
+                             
+                                <owl:ObjectProperty rdf:ID="in_basket">
+                              <rdfs:domain rdf:resource="#Ticket"/>
+                              <rdfs:range rdf:resource="#Basket"/>
+                           </owl:ObjectProperty>                   
+                             
+                                <owl:ObjectProperty rdf:ID="concerns">
+                              <rdfs:domain rdf:resource="#Ticket"/>
+                              <rdfs:range rdf:resource="#Project"/>
+                           </owl:ObjectProperty>                   
+                             
+                                <owl:ObjectProperty rdf:ID="appeared_in">
+                              <rdfs:domain rdf:resource="#Ticket"/>
+                              <rdfs:range rdf:resource="#Version"/>
+                           </owl:ObjectProperty>                   
+                             
+                                <owl:ObjectProperty rdf:ID="done_in">
+                              <rdfs:domain rdf:resource="#Ticket"/>
+                              <rdfs:range rdf:resource="#Version"/>
+                           </owl:ObjectProperty>                   
+                             
+                                <owl:ObjectProperty rdf:ID="in_state">
+                              <rdfs:domain rdf:resource="#Ticket"/>
+                              <rdfs:range rdf:resource="#State"/>
+                           </owl:ObjectProperty>                   
+                             
+                                <owl:ObjectProperty rdf:ID="attachment">
+                              <rdfs:domain rdf:resource="#Ticket"/>
+                              <rdfs:range rdf:resource="#Image"/>
+                           </owl:ObjectProperty>                   
+                             
+                                <owl:ObjectProperty rdf:ID="attachment">
+                              <rdfs:domain rdf:resource="#Ticket"/>
+                              <rdfs:range rdf:resource="#File"/>
+                           </owl:ObjectProperty>                   
+                             
+                                <owl:ObjectProperty rdf:ID="identical_to">
+                              <rdfs:domain rdf:resource="#Ticket"/>
+                              <rdfs:range rdf:resource="#Ticket"/>
+                           </owl:ObjectProperty>                   
+                             
+                                <owl:ObjectProperty rdf:ID="depends_on">
+                              <rdfs:domain rdf:resource="#Ticket"/>
+                              <rdfs:range rdf:resource="#Ticket"/>
+                           </owl:ObjectProperty>                   
+                             
+                                <owl:ObjectProperty rdf:ID="require_permission">
+                              <rdfs:domain rdf:resource="#Ticket"/>
+                              <rdfs:range rdf:resource="#EPermission"/>
+                           </owl:ObjectProperty>                   
+                             
+                                <owl:ObjectProperty rdf:ID="tags">
+                              <rdfs:domain rdf:resource="#Ticket"/>
+                              <rdfs:range rdf:resource="#Tag"/>
+                           </owl:ObjectProperty>                   
+                             
+                                <owl:ObjectProperty rdf:ID="depends_on">
+                              <rdfs:domain rdf:resource="#Ticket"/>
+                              <rdfs:range rdf:resource="#Ticket"/>
+                           </owl:ObjectProperty>                   
+                             
+                                <owl:ObjectProperty rdf:ID="comments">
+                              <rdfs:domain rdf:resource="#Ticket"/>
+                              <rdfs:range rdf:resource="#Comment"/>
+                           </owl:ObjectProperty>                   
+                             
+                                <owl:ObjectProperty rdf:ID="generate_bug">
+                              <rdfs:domain rdf:resource="#Ticket"/>
+                              <rdfs:range rdf:resource="#TestInstance"/>
+                           </owl:ObjectProperty>                   
+                             
+                                <owl:ObjectProperty rdf:ID="wf_info_for">
+                              <rdfs:domain rdf:resource="#Ticket"/>
+                              <rdfs:range rdf:resource="#TrInfo"/>
+                           </owl:ObjectProperty>                   
+                             
+                                <owl:ObjectProperty rdf:ID="test_case_for">
+                              <rdfs:domain rdf:resource="#Ticket"/>
+                              <rdfs:range rdf:resource="#Card"/>
+                           </owl:ObjectProperty>                   
+                             
+                                <owl:ObjectProperty rdf:ID="in_basket">
+                              <rdfs:domain rdf:resource="#Version"/>
+                              <rdfs:range rdf:resource="#Basket"/>
+                           </owl:ObjectProperty>                   
+                             
+                                <owl:ObjectProperty rdf:ID="version_of">
+                              <rdfs:domain rdf:resource="#Version"/>
+                              <rdfs:range rdf:resource="#Project"/>
+                           </owl:ObjectProperty>                   
+                             
+                                <owl:ObjectProperty rdf:ID="todo_by">
+                              <rdfs:domain rdf:resource="#Version"/>
+                              <rdfs:range rdf:resource="#EUser"/>
+                           </owl:ObjectProperty>                   
+                             
+                                <owl:ObjectProperty rdf:ID="in_state">
+                              <rdfs:domain rdf:resource="#Version"/>
+                              <rdfs:range rdf:resource="#State"/>
+                           </owl:ObjectProperty>                   
+                             
+                                <owl:ObjectProperty rdf:ID="conflicts">
+                              <rdfs:domain rdf:resource="#Version"/>
+                              <rdfs:range rdf:resource="#Version"/>
+                           </owl:ObjectProperty>                   
+                             
+                                <owl:ObjectProperty rdf:ID="depends_on">
+                              <rdfs:domain rdf:resource="#Version"/>
+                              <rdfs:range rdf:resource="#Version"/>
+                           </owl:ObjectProperty>                   
+                             
+                                <owl:ObjectProperty rdf:ID="require_permission">
+                              <rdfs:domain rdf:resource="#Version"/>
+                              <rdfs:range rdf:resource="#EPermission"/>
+                           </owl:ObjectProperty>                   
+                             
+                                <owl:ObjectProperty rdf:ID="done_in">
+                              <rdfs:domain rdf:resource="#Version"/>
+                              <rdfs:range rdf:resource="#Ticket"/>
+                           </owl:ObjectProperty>                   
+                             
+                                <owl:ObjectProperty rdf:ID="tags">
+                              <rdfs:domain rdf:resource="#Version"/>
+                              <rdfs:range rdf:resource="#Tag"/>
+                           </owl:ObjectProperty>                   
+                             
+                                <owl:ObjectProperty rdf:ID="depends_on">
+                              <rdfs:domain rdf:resource="#Version"/>
+                              <rdfs:range rdf:resource="#Version"/>
+                           </owl:ObjectProperty>                   
+                             
+                                <owl:ObjectProperty rdf:ID="for_version">
+                              <rdfs:domain rdf:resource="#Version"/>
+                              <rdfs:range rdf:resource="#TestInstance"/>
+                           </owl:ObjectProperty>                   
+                             
+                                <owl:ObjectProperty rdf:ID="wf_info_for">
+                              <rdfs:domain rdf:resource="#Version"/>
+                              <rdfs:range rdf:resource="#TrInfo"/>
+                           </owl:ObjectProperty>                   
+                             
+                                <owl:ObjectProperty rdf:ID="appeared_in">
+                              <rdfs:domain rdf:resource="#Version"/>
+                              <rdfs:range rdf:resource="#Ticket"/>
+                           </owl:ObjectProperty>                   
+                             
+                                <!-- datatype property --><owl:DatatypeProperty rdf:ID="title">
+                          <rdfs:domain rdf:resource="#Blog"/>
+                          <rdfs:range rdf:resource="xsd:string"/>
+                       </owl:DatatypeProperty><owl:DatatypeProperty rdf:ID="description">
+                          <rdfs:domain rdf:resource="#Blog"/>
+                          <rdfs:range rdf:resource="xsd:string"/>
+                       </owl:DatatypeProperty><owl:DatatypeProperty rdf:ID="creation_date">
+                          <rdfs:domain rdf:resource="#Blog"/>
+                          <rdfs:range rdf:resource="xsd:dateTime"/>
+                       </owl:DatatypeProperty><owl:DatatypeProperty rdf:ID="modification_date">
+                          <rdfs:domain rdf:resource="#Blog"/>
+                          <rdfs:range rdf:resource="xsd:dateTime"/>
+                       </owl:DatatypeProperty><owl:DatatypeProperty rdf:ID="title">
+                          <rdfs:domain rdf:resource="#BlogEntry"/>
+                          <rdfs:range rdf:resource="xsd:string"/>
+                       </owl:DatatypeProperty><owl:DatatypeProperty rdf:ID="content_format">
+                          <rdfs:domain rdf:resource="#BlogEntry"/>
+                          <rdfs:range rdf:resource="xsd:string"/>
+                       </owl:DatatypeProperty><owl:DatatypeProperty rdf:ID="content">
+                          <rdfs:domain rdf:resource="#BlogEntry"/>
+                          <rdfs:range rdf:resource="xsd:string"/>
+                       </owl:DatatypeProperty><owl:DatatypeProperty rdf:ID="creation_date">
+                          <rdfs:domain rdf:resource="#BlogEntry"/>
+                          <rdfs:range rdf:resource="xsd:dateTime"/>
+                       </owl:DatatypeProperty><owl:DatatypeProperty rdf:ID="modification_date">
+                          <rdfs:domain rdf:resource="#BlogEntry"/>
+                          <rdfs:range rdf:resource="xsd:dateTime"/>
+                       </owl:DatatypeProperty><owl:DatatypeProperty rdf:ID="title">
+                          <rdfs:domain rdf:resource="#Card"/>
+                          <rdfs:range rdf:resource="xsd:string"/>
+                       </owl:DatatypeProperty><owl:DatatypeProperty rdf:ID="synopsis">
+                          <rdfs:domain rdf:resource="#Card"/>
+                          <rdfs:range rdf:resource="xsd:string"/>
+                       </owl:DatatypeProperty><owl:DatatypeProperty rdf:ID="content_format">
+                          <rdfs:domain rdf:resource="#Card"/>
+                          <rdfs:range rdf:resource="xsd:string"/>
+                       </owl:DatatypeProperty><owl:DatatypeProperty rdf:ID="content">
+                          <rdfs:domain rdf:resource="#Card"/>
+                          <rdfs:range rdf:resource="xsd:string"/>
+                       </owl:DatatypeProperty><owl:DatatypeProperty rdf:ID="wikiid">
+                          <rdfs:domain rdf:resource="#Card"/>
+                          <rdfs:range rdf:resource="xsd:string"/>
+                       </owl:DatatypeProperty><owl:DatatypeProperty rdf:ID="creation_date">
+                          <rdfs:domain rdf:resource="#Card"/>
+                          <rdfs:range rdf:resource="xsd:dateTime"/>
+                       </owl:DatatypeProperty><owl:DatatypeProperty rdf:ID="modification_date">
+                          <rdfs:domain rdf:resource="#Card"/>
+                          <rdfs:range rdf:resource="xsd:dateTime"/>
+                       </owl:DatatypeProperty><owl:DatatypeProperty rdf:ID="subject">
+                          <rdfs:domain rdf:resource="#Email"/>
+                          <rdfs:range rdf:resource="xsd:string"/>
+                       </owl:DatatypeProperty><owl:DatatypeProperty rdf:ID="date">
+                          <rdfs:domain rdf:resource="#Email"/>
+                          <rdfs:range rdf:resource="xsd:dateTime"/>
+                       </owl:DatatypeProperty><owl:DatatypeProperty rdf:ID="messageid">
+                          <rdfs:domain rdf:resource="#Email"/>
+                          <rdfs:range rdf:resource="xsd:string"/>
+                       </owl:DatatypeProperty><owl:DatatypeProperty rdf:ID="headers">
+                          <rdfs:domain rdf:resource="#Email"/>
+                          <rdfs:range rdf:resource="xsd:string"/>
+                       </owl:DatatypeProperty><owl:DatatypeProperty rdf:ID="creation_date">
+                          <rdfs:domain rdf:resource="#Email"/>
+                          <rdfs:range rdf:resource="xsd:dateTime"/>
+                       </owl:DatatypeProperty><owl:DatatypeProperty rdf:ID="modification_date">
+                          <rdfs:domain rdf:resource="#Email"/>
+                          <rdfs:range rdf:resource="xsd:dateTime"/>
+                       </owl:DatatypeProperty><owl:DatatypeProperty rdf:ID="title">
+                          <rdfs:domain rdf:resource="#EmailThread"/>
+                          <rdfs:range rdf:resource="xsd:string"/>
+                       </owl:DatatypeProperty><owl:DatatypeProperty rdf:ID="creation_date">
+                          <rdfs:domain rdf:resource="#EmailThread"/>
+                          <rdfs:range rdf:resource="xsd:dateTime"/>
+                       </owl:DatatypeProperty><owl:DatatypeProperty rdf:ID="modification_date">
+                          <rdfs:domain rdf:resource="#EmailThread"/>
+                          <rdfs:range rdf:resource="xsd:dateTime"/>
+                       </owl:DatatypeProperty><owl:DatatypeProperty rdf:ID="name">
+                          <rdfs:domain rdf:resource="#ExtProject"/>
+                          <rdfs:range rdf:resource="xsd:string"/>
+                       </owl:DatatypeProperty><owl:DatatypeProperty rdf:ID="description_format">
+                          <rdfs:domain rdf:resource="#ExtProject"/>
+                          <rdfs:range rdf:resource="xsd:string"/>
+                       </owl:DatatypeProperty><owl:DatatypeProperty rdf:ID="description">
+                          <rdfs:domain rdf:resource="#ExtProject"/>
+                          <rdfs:range rdf:resource="xsd:string"/>
+                       </owl:DatatypeProperty><owl:DatatypeProperty rdf:ID="url">
+                          <rdfs:domain rdf:resource="#ExtProject"/>
+                          <rdfs:range rdf:resource="xsd:string"/>
+                       </owl:DatatypeProperty><owl:DatatypeProperty rdf:ID="creation_date">
+                          <rdfs:domain rdf:resource="#ExtProject"/>
+                          <rdfs:range rdf:resource="xsd:dateTime"/>
+                       </owl:DatatypeProperty><owl:DatatypeProperty rdf:ID="modification_date">
+                          <rdfs:domain rdf:resource="#ExtProject"/>
+                          <rdfs:range rdf:resource="xsd:dateTime"/>
+                       </owl:DatatypeProperty><owl:DatatypeProperty rdf:ID="data">
+                          <rdfs:domain rdf:resource="#File"/>
+                          <rdfs:range rdf:resource="xsd:byte"/>
+                       </owl:DatatypeProperty><owl:DatatypeProperty rdf:ID="data_format">
+                          <rdfs:domain rdf:resource="#File"/>
+                          <rdfs:range rdf:resource="xsd:string"/>
+                       </owl:DatatypeProperty><owl:DatatypeProperty rdf:ID="data_encoding">
+                          <rdfs:domain rdf:resource="#File"/>
+                          <rdfs:range rdf:resource="xsd:string"/>
+                       </owl:DatatypeProperty><owl:DatatypeProperty rdf:ID="name">
+                          <rdfs:domain rdf:resource="#File"/>
+                          <rdfs:range rdf:resource="xsd:string"/>
+                       </owl:DatatypeProperty><owl:DatatypeProperty rdf:ID="description_format">
+                          <rdfs:domain rdf:resource="#File"/>
+                          <rdfs:range rdf:resource="xsd:string"/>
+                       </owl:DatatypeProperty><owl:DatatypeProperty rdf:ID="description">
+                          <rdfs:domain rdf:resource="#File"/>
+                          <rdfs:range rdf:resource="xsd:string"/>
+                       </owl:DatatypeProperty><owl:DatatypeProperty rdf:ID="creation_date">
+                          <rdfs:domain rdf:resource="#File"/>
+                          <rdfs:range rdf:resource="xsd:dateTime"/>
+                       </owl:DatatypeProperty><owl:DatatypeProperty rdf:ID="modification_date">
+                          <rdfs:domain rdf:resource="#File"/>
+                          <rdfs:range rdf:resource="xsd:dateTime"/>
+                       </owl:DatatypeProperty><owl:DatatypeProperty rdf:ID="data">
+                          <rdfs:domain rdf:resource="#Image"/>
+                          <rdfs:range rdf:resource="xsd:byte"/>
+                       </owl:DatatypeProperty><owl:DatatypeProperty rdf:ID="data_format">
+                          <rdfs:domain rdf:resource="#Image"/>
+                          <rdfs:range rdf:resource="xsd:string"/>
+                       </owl:DatatypeProperty><owl:DatatypeProperty rdf:ID="data_encoding">
+                          <rdfs:domain rdf:resource="#Image"/>
+                          <rdfs:range rdf:resource="xsd:string"/>
+                       </owl:DatatypeProperty><owl:DatatypeProperty rdf:ID="name">
+                          <rdfs:domain rdf:resource="#Image"/>
+                          <rdfs:range rdf:resource="xsd:string"/>
+                       </owl:DatatypeProperty><owl:DatatypeProperty rdf:ID="description_format">
+                          <rdfs:domain rdf:resource="#Image"/>
+                          <rdfs:range rdf:resource="xsd:string"/>
+                       </owl:DatatypeProperty><owl:DatatypeProperty rdf:ID="description">
+                          <rdfs:domain rdf:resource="#Image"/>
+                          <rdfs:range rdf:resource="xsd:string"/>
+                       </owl:DatatypeProperty><owl:DatatypeProperty rdf:ID="creation_date">
+                          <rdfs:domain rdf:resource="#Image"/>
+                          <rdfs:range rdf:resource="xsd:dateTime"/>
+                       </owl:DatatypeProperty><owl:DatatypeProperty rdf:ID="modification_date">
+                          <rdfs:domain rdf:resource="#Image"/>
+                          <rdfs:range rdf:resource="xsd:dateTime"/>
+                       </owl:DatatypeProperty><owl:DatatypeProperty rdf:ID="name">
+                          <rdfs:domain rdf:resource="#License"/>
+                          <rdfs:range rdf:resource="xsd:string"/>
+                       </owl:DatatypeProperty><owl:DatatypeProperty rdf:ID="shortdesc">
+                          <rdfs:domain rdf:resource="#License"/>
+                          <rdfs:range rdf:resource="xsd:string"/>
+                       </owl:DatatypeProperty><owl:DatatypeProperty rdf:ID="longdesc_format">
+                          <rdfs:domain rdf:resource="#License"/>
+                          <rdfs:range rdf:resource="xsd:string"/>
+                       </owl:DatatypeProperty><owl:DatatypeProperty rdf:ID="longdesc">
+                          <rdfs:domain rdf:resource="#License"/>
+                          <rdfs:range rdf:resource="xsd:string"/>
+                       </owl:DatatypeProperty><owl:DatatypeProperty rdf:ID="url">
+                          <rdfs:domain rdf:resource="#License"/>
+                          <rdfs:range rdf:resource="xsd:string"/>
+                       </owl:DatatypeProperty><owl:DatatypeProperty rdf:ID="creation_date">
+                          <rdfs:domain rdf:resource="#License"/>
+                          <rdfs:range rdf:resource="xsd:dateTime"/>
+                       </owl:DatatypeProperty><owl:DatatypeProperty rdf:ID="modification_date">
+                          <rdfs:domain rdf:resource="#License"/>
+                          <rdfs:range rdf:resource="xsd:dateTime"/>
+                       </owl:DatatypeProperty><owl:DatatypeProperty rdf:ID="title">
+                          <rdfs:domain rdf:resource="#Link"/>
+                          <rdfs:range rdf:resource="xsd:string"/>
+                       </owl:DatatypeProperty><owl:DatatypeProperty rdf:ID="url">
+                          <rdfs:domain rdf:resource="#Link"/>
+                          <rdfs:range rdf:resource="xsd:string"/>
+                       </owl:DatatypeProperty><owl:DatatypeProperty rdf:ID="embed">
+                          <rdfs:domain rdf:resource="#Link"/>
+                          <rdfs:range rdf:resource="xsd:boolean"/>
+                       </owl:DatatypeProperty><owl:DatatypeProperty rdf:ID="description_format">
+                          <rdfs:domain rdf:resource="#Link"/>
+                          <rdfs:range rdf:resource="xsd:string"/>
+                       </owl:DatatypeProperty><owl:DatatypeProperty rdf:ID="description">
+                          <rdfs:domain rdf:resource="#Link"/>
+                          <rdfs:range rdf:resource="xsd:string"/>
+                       </owl:DatatypeProperty><owl:DatatypeProperty rdf:ID="creation_date">
+                          <rdfs:domain rdf:resource="#Link"/>
+                          <rdfs:range rdf:resource="xsd:dateTime"/>
+                       </owl:DatatypeProperty><owl:DatatypeProperty rdf:ID="modification_date">
+                          <rdfs:domain rdf:resource="#Link"/>
+                          <rdfs:range rdf:resource="xsd:dateTime"/>
+                       </owl:DatatypeProperty><owl:DatatypeProperty rdf:ID="name">
+                          <rdfs:domain rdf:resource="#MailingList"/>
+                          <rdfs:range rdf:resource="xsd:string"/>
+                       </owl:DatatypeProperty><owl:DatatypeProperty rdf:ID="mlid">
+                          <rdfs:domain rdf:resource="#MailingList"/>
+                          <rdfs:range rdf:resource="xsd:string"/>
+                       </owl:DatatypeProperty><owl:DatatypeProperty rdf:ID="description_format">
+                          <rdfs:domain rdf:resource="#MailingList"/>
+                          <rdfs:range rdf:resource="xsd:string"/>
+                       </owl:DatatypeProperty><owl:DatatypeProperty rdf:ID="description">
+                          <rdfs:domain rdf:resource="#MailingList"/>
+                          <rdfs:range rdf:resource="xsd:string"/>
+                       </owl:DatatypeProperty><owl:DatatypeProperty rdf:ID="archive">
+                          <rdfs:domain rdf:resource="#MailingList"/>
+                          <rdfs:range rdf:resource="xsd:string"/>
+                       </owl:DatatypeProperty><owl:DatatypeProperty rdf:ID="homepage">
+                          <rdfs:domain rdf:resource="#MailingList"/>
+                          <rdfs:range rdf:resource="xsd:string"/>
+                       </owl:DatatypeProperty><owl:DatatypeProperty rdf:ID="creation_date">
+                          <rdfs:domain rdf:resource="#MailingList"/>
+                          <rdfs:range rdf:resource="xsd:dateTime"/>
+                       </owl:DatatypeProperty><owl:DatatypeProperty rdf:ID="modification_date">
+                          <rdfs:domain rdf:resource="#MailingList"/>
+                          <rdfs:range rdf:resource="xsd:dateTime"/>
+                       </owl:DatatypeProperty><owl:DatatypeProperty rdf:ID="name">
+                          <rdfs:domain rdf:resource="#Project"/>
+                          <rdfs:range rdf:resource="xsd:string"/>
+                       </owl:DatatypeProperty><owl:DatatypeProperty rdf:ID="summary">
+                          <rdfs:domain rdf:resource="#Project"/>
+                          <rdfs:range rdf:resource="xsd:string"/>
+                       </owl:DatatypeProperty><owl:DatatypeProperty rdf:ID="url">
+                          <rdfs:domain rdf:resource="#Project"/>
+                          <rdfs:range rdf:resource="xsd:string"/>
+                       </owl:DatatypeProperty><owl:DatatypeProperty rdf:ID="vcsurl">
+                          <rdfs:domain rdf:resource="#Project"/>
+                          <rdfs:range rdf:resource="xsd:string"/>
+                       </owl:DatatypeProperty><owl:DatatypeProperty rdf:ID="reporturl">
+                          <rdfs:domain rdf:resource="#Project"/>
+                          <rdfs:range rdf:resource="xsd:string"/>
+                       </owl:DatatypeProperty><owl:DatatypeProperty rdf:ID="downloadurl">
+                          <rdfs:domain rdf:resource="#Project"/>
+                          <rdfs:range rdf:resource="xsd:string"/>
+                       </owl:DatatypeProperty><owl:DatatypeProperty rdf:ID="debian_source_package">
+                          <rdfs:domain rdf:resource="#Project"/>
+                          <rdfs:range rdf:resource="xsd:string"/>
+                       </owl:DatatypeProperty><owl:DatatypeProperty rdf:ID="description_format">
+                          <rdfs:domain rdf:resource="#Project"/>
+                          <rdfs:range rdf:resource="xsd:string"/>
+                       </owl:DatatypeProperty><owl:DatatypeProperty rdf:ID="description">
+                          <rdfs:domain rdf:resource="#Project"/>
+                          <rdfs:range rdf:resource="xsd:string"/>
+                       </owl:DatatypeProperty><owl:DatatypeProperty rdf:ID="creation_date">
+                          <rdfs:domain rdf:resource="#Project"/>
+                          <rdfs:range rdf:resource="xsd:dateTime"/>
+                       </owl:DatatypeProperty><owl:DatatypeProperty rdf:ID="modification_date">
+                          <rdfs:domain rdf:resource="#Project"/>
+                          <rdfs:range rdf:resource="xsd:dateTime"/>
+                       </owl:DatatypeProperty><owl:DatatypeProperty rdf:ID="name">
+                          <rdfs:domain rdf:resource="#TestInstance"/>
+                          <rdfs:range rdf:resource="xsd:string"/>
+                       </owl:DatatypeProperty><owl:DatatypeProperty rdf:ID="creation_date">
+                          <rdfs:domain rdf:resource="#TestInstance"/>
+                          <rdfs:range rdf:resource="xsd:dateTime"/>
+                       </owl:DatatypeProperty><owl:DatatypeProperty rdf:ID="modification_date">
+                          <rdfs:domain rdf:resource="#TestInstance"/>
+                          <rdfs:range rdf:resource="xsd:dateTime"/>
+                       </owl:DatatypeProperty><owl:DatatypeProperty rdf:ID="title">
+                          <rdfs:domain rdf:resource="#Ticket"/>
+                          <rdfs:range rdf:resource="xsd:string"/>
+                       </owl:DatatypeProperty><owl:DatatypeProperty rdf:ID="type">
+                          <rdfs:domain rdf:resource="#Ticket"/>
+                          <rdfs:range rdf:resource="xsd:string"/>
+                       </owl:DatatypeProperty><owl:DatatypeProperty rdf:ID="priority">
+                          <rdfs:domain rdf:resource="#Ticket"/>
+                          <rdfs:range rdf:resource="xsd:string"/>
+                       </owl:DatatypeProperty><owl:DatatypeProperty rdf:ID="load">
+                          <rdfs:domain rdf:resource="#Ticket"/>
+                          <rdfs:range rdf:resource="xsd:float"/>
+                       </owl:DatatypeProperty><owl:DatatypeProperty rdf:ID="load_left">
+                          <rdfs:domain rdf:resource="#Ticket"/>
+                          <rdfs:range rdf:resource="xsd:float"/>
+                       </owl:DatatypeProperty><owl:DatatypeProperty rdf:ID="debian_bug_number">
+                          <rdfs:domain rdf:resource="#Ticket"/>
+                          <rdfs:range rdf:resource="xsd:int"/>
+                       </owl:DatatypeProperty><owl:DatatypeProperty rdf:ID="description_format">
+                          <rdfs:domain rdf:resource="#Ticket"/>
+                          <rdfs:range rdf:resource="xsd:string"/>
+                       </owl:DatatypeProperty><owl:DatatypeProperty rdf:ID="description">
+                          <rdfs:domain rdf:resource="#Ticket"/>
+                          <rdfs:range rdf:resource="xsd:string"/>
+                       </owl:DatatypeProperty><owl:DatatypeProperty rdf:ID="creation_date">
+                          <rdfs:domain rdf:resource="#Ticket"/>
+                          <rdfs:range rdf:resource="xsd:dateTime"/>
+                       </owl:DatatypeProperty><owl:DatatypeProperty rdf:ID="modification_date">
+                          <rdfs:domain rdf:resource="#Ticket"/>
+                          <rdfs:range rdf:resource="xsd:dateTime"/>
+                       </owl:DatatypeProperty><owl:DatatypeProperty rdf:ID="num">
+                          <rdfs:domain rdf:resource="#Version"/>
+                          <rdfs:range rdf:resource="xsd:string"/>
+                       </owl:DatatypeProperty><owl:DatatypeProperty rdf:ID="description_format">
+                          <rdfs:domain rdf:resource="#Version"/>
+                          <rdfs:range rdf:resource="xsd:string"/>
+                       </owl:DatatypeProperty><owl:DatatypeProperty rdf:ID="description">
+                          <rdfs:domain rdf:resource="#Version"/>
+                          <rdfs:range rdf:resource="xsd:string"/>
+                       </owl:DatatypeProperty><owl:DatatypeProperty rdf:ID="starting_date">
+                          <rdfs:domain rdf:resource="#Version"/>
+                          <rdfs:range rdf:resource="xsd:date"/>
+                       </owl:DatatypeProperty><owl:DatatypeProperty rdf:ID="prevision_date">
+                          <rdfs:domain rdf:resource="#Version"/>
+                          <rdfs:range rdf:resource="xsd:date"/>
+                       </owl:DatatypeProperty><owl:DatatypeProperty rdf:ID="publication_date">
+                          <rdfs:domain rdf:resource="#Version"/>
+                          <rdfs:range rdf:resource="xsd:date"/>
+                       </owl:DatatypeProperty><owl:DatatypeProperty rdf:ID="creation_date">
+                          <rdfs:domain rdf:resource="#Version"/>
+                          <rdfs:range rdf:resource="xsd:dateTime"/>
+                       </owl:DatatypeProperty><owl:DatatypeProperty rdf:ID="modification_date">
+                          <rdfs:domain rdf:resource="#Version"/>
+                          <rdfs:range rdf:resource="xsd:dateTime"/>
+                       </owl:DatatypeProperty> </owl:Ontology></rdf:RDF> ''')
+        doc = etree.parse(valid)
+        owlschema.validate(doc)
+
+if __name__ == '__main__':
+    unittest_main()
+
--- a/web/test/unittest_viewselector.py	Tue Jan 27 13:52:50 2009 +0100
+++ b/web/test/unittest_viewselector.py	Tue Jan 27 13:58:17 2009 +0100
@@ -15,9 +15,9 @@
 from cubicweb.web._exceptions import NoSelectableObject
 from cubicweb.web.action import Action
 from cubicweb.web.views import (baseviews, tableview, baseforms, calendar, 
-                             management, embedding, actions, startup, 
-                             euser, schemaentities, xbel, vcard, 
-                             idownloadable, wdoc, debug)
+                                management, embedding, actions, startup, 
+                                euser, schemaentities, xbel, vcard,
+                                treeview, idownloadable, wdoc, debug)
 from cubicweb.entities.lib import Card
 from cubicweb.interfaces import IMileStone
 
@@ -75,6 +75,7 @@
                               ('index', startup.IndexView),
                               ('info', management.ProcessInformationView),
                               ('manage', startup.ManageView),
+                              ('owl', startup.OWLView),
                               ('schema', startup.SchemaView),
                               ('systemepropertiesform', management.SystemEpropertiesForm)])
         # no entity but etype
@@ -94,14 +95,17 @@
                              [('csvexport', baseviews.CSVRsetView),
                               ('ecsvexport', baseviews.CSVEntityView),
                               ('editable-table', tableview.EditableTableView),
+                              ('filetree', treeview.FileTreeView),
                               ('list', baseviews.ListView),
                               ('oneline', baseviews.OneLineView),
                               ('primary', baseviews.PrimaryView),
+                              ('rsetxml', baseviews.XMLRsetView),
                               ('rss', baseviews.RssView),
                               ('secondary', baseviews.SecondaryView),
                               ('security', management.SecurityManagementView),
                               ('table', tableview.TableView),
                               ('text', baseviews.TextView),
+                              ('treeview', treeview.TreeView),
                               ('xbel', xbel.XbelView),
                               ('xml', baseviews.XmlView),
                               ])
@@ -111,14 +115,17 @@
                              [('csvexport', baseviews.CSVRsetView),
                               ('ecsvexport', baseviews.CSVEntityView),
                               ('editable-table', tableview.EditableTableView),
+                              ('filetree', treeview.FileTreeView),
                               ('list', baseviews.ListView),
                               ('oneline', baseviews.OneLineView),
                               ('primary', baseviews.PrimaryView),
+                              ('rsetxml', baseviews.XMLRsetView),
                               ('rss', baseviews.RssView),
                               ('secondary', baseviews.SecondaryView),
                               ('security', management.SecurityManagementView),
                               ('table', tableview.TableView),
                               ('text', baseviews.TextView),
+                              ('treeview', treeview.TreeView),
                               ('xbel', xbel.XbelView),
                               ('xml', baseviews.XmlView),
                               ])
@@ -128,14 +135,17 @@
                              [('csvexport', baseviews.CSVRsetView),
                               ('ecsvexport', baseviews.CSVEntityView),
                               ('editable-table', tableview.EditableTableView),
+                              ('filetree', treeview.FileTreeView),
                               ('list', baseviews.ListView),
                               ('oneline', baseviews.OneLineView),
                               ('primary', baseviews.PrimaryView),
+                              ('rsetxml', baseviews.XMLRsetView),
                               ('rss', baseviews.RssView),
                               ('secondary', baseviews.SecondaryView),
                               ('security', management.SecurityManagementView),
                               ('table', tableview.TableView),
                               ('text', baseviews.TextView),
+                              ('treeview', treeview.TreeView),
                               ('xbel', xbel.XbelView),
                               ('xml', baseviews.XmlView),
                               ])
@@ -144,6 +154,7 @@
         self.assertListEqual(self.pviews(req, rset),
                              [('csvexport', baseviews.CSVRsetView),
                               ('editable-table', tableview.EditableTableView),
+                              ('rsetxml', baseviews.XMLRsetView),
                               ('table', tableview.TableView),
                               ])
         # list of euser entities
@@ -152,14 +163,17 @@
                              [('csvexport', baseviews.CSVRsetView),
                               ('ecsvexport', baseviews.CSVEntityView),
                               ('editable-table', tableview.EditableTableView),
+                              ('filetree', treeview.FileTreeView),
                               ('list', baseviews.ListView),
                               ('oneline', baseviews.OneLineView),
                               ('primary', euser.EUserPrimaryView),
+                              ('rsetxml', baseviews.XMLRsetView),
                               ('rss', baseviews.RssView),
                               ('secondary', baseviews.SecondaryView),
                               ('security', management.SecurityManagementView),
                               ('table', tableview.TableView),
                               ('text', baseviews.TextView),
+                              ('treeview', treeview.TreeView),
                               ('vcard', vcard.VCardEUserView),
                               ('xbel', xbel.XbelView),
                               ('xml', baseviews.XmlView),
--- a/web/views/basecontrollers.py	Tue Jan 27 13:52:50 2009 +0100
+++ b/web/views/basecontrollers.py	Tue Jan 27 13:58:17 2009 +0100
@@ -235,7 +235,7 @@
                 stream.write(u'<div id="pageContent">')
                 vtitle = self.req.form.get('vtitle')
                 if vtitle:
-                    w(u'<h1 class="vtitle">%s</h1>\n' % vtitle)
+                    stream.write(u'<h1 class="vtitle">%s</h1>\n' % vtitle)
             view.pagination(req, rset, view.w, not view.need_navigation)
             if divid == 'pageContent':
                 stream.write(u'<div id="contentmain">')
--- a/web/views/navigation.py	Tue Jan 27 13:52:50 2009 +0100
+++ b/web/views/navigation.py	Tue Jan 27 13:58:17 2009 +0100
@@ -11,9 +11,9 @@
 from logilab.mtconverter import html_escape
 
 from cubicweb.interfaces import IPrevNext
-from cubicweb.common.selectors import (paginated_rset, sortedrset_selector,
-                                    primary_view, match_context_prop,
-                                    one_line_rset, implement_interface)
+from cubicweb.common.selectors import (paginated_rset, sorted_rset,
+                                       primary_view, match_context_prop,
+                                       one_line_rset, implement_interface)
 from cubicweb.common.uilib import cut
 from cubicweb.web.component import EntityVComponent, NavigationComponent
 
@@ -49,7 +49,7 @@
     """sorted navigation apply if navigation is needed (according to page size)
     and if the result set is sorted
     """
-    __selectors__ = (paginated_rset, sortedrset_selector)
+    __selectors__ = (paginated_rset, sorted_rset)
     
     # number of considered chars to build page links
     nb_chars = 5
--- a/web/views/startup.py	Tue Jan 27 13:52:50 2009 +0100
+++ b/web/views/startup.py	Tue Jan 27 13:58:17 2009 +0100
@@ -15,6 +15,24 @@
 
 _ = unicode
 
+OWL_CARD_MAP = {'1': '<rdf:type rdf:resource="&owl;FunctionalProperty"/>',                      
+                '?': '<owl:maxCardinality rdf:datatype="&xsd;int">1</owl:maxCardinality>',
+                '+': '<owl:minCardinality rdf:datatype="&xsd;int">1</owl:minCardinality>',
+                '*': ''
+                }
+
+OWL_CARD_MAP_DATA = {'String': 'xsd:string',
+                     'Datetime': 'xsd:dateTime',
+                     'Bytes': 'xsd:byte',
+                     'Float': 'xsd:float',
+                     'Boolean': 'xsd:boolean',
+                     'Int': 'xsd:int',
+                     'Date':'xsd:date',
+                     'Time': 'xsd:time',
+                     'Password': 'xsd:byte',
+                     'Decimal' : 'xsd:decimal',
+                     'Interval': 'xsd:duration'
+                     }
 
 class ManageView(StartupView):
     id = 'manage'
@@ -190,3 +208,162 @@
                                      skipmeta=skipmeta)
         self.w(ureport_as_html(layout))
 
+
+class OWLView(StartupView):
+    id = 'owl'
+    title = _('owl')
+    templatable =False
+
+    def call(self):
+        skipmeta = int(self.req.form.get('skipmeta', True))
+        self.visit_schemaOWL(display_relations=True,
+                             skiprels=('is', 'is_instance_of', 'identity',
+                                       'owned_by', 'created_by'),
+                             skipmeta=skipmeta)
+
+
+    def visit_schemaOWL(self, display_relations=0,
+                     skiprels=(), skipmeta=True):
+        """get a layout for a whole schema"""
+        self.w(u'''<?xml version="1.0" encoding="UTF-8"?>
+        <!DOCTYPE rdf:RDF [
+        <!ENTITY owl "http://www.w3.org/2002/07/owl#" >
+        <!ENTITY xsd "http://www.w3.org/2001/XMLSchema#" >
+        <!ENTITY rdfs "http://www.w3.org/2000/01/rdf-schema#" >
+        <!ENTITY rdf "http://www.w3.org/1999/02/22-rdf-syntax-ns#" >
+        <!ENTITY %s "http://logilab.org/owl/ontologies/%s#" >
+        
+        ]>        
+        <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+            xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"
+            xmlns:xsd="http://www.w3.org/2001/XMLSchema#"
+            xmlns:owl="http://www.w3.org/2002/07/owl#"
+            xmlns="http://logilab.org/owl/ontologies/%s#"
+            xmlns:%s="http://logilab.org/owl/ontologies/%s#"
+            xml:base="http://logilab.org/owl/ontologies/%s">
+
+    <owl:Ontology rdf:about="">
+        <rdfs:comment>
+        %s Cubicweb OWL Ontology                           
+                                        
+        </rdfs:comment>
+   </owl:Ontology>
+        ''' % (self.schema.name, self.schema.name, self.schema.name, self.schema.name, self.schema.name, self.schema.name, self.schema.name))
+        entities = [eschema for eschema in self.schema.entities()
+                    if not eschema.is_final()]
+        if skipmeta:
+            entities = [eschema for eschema in entities
+                        if not eschema.meta]
+        keys = [(eschema.type, eschema) for eschema in entities]
+        self.w(u'<!-- classes definition -->')
+        for key, eschema in sorted(keys):
+            self.visit_entityschemaOWL(eschema, skiprels)
+        self.w(u'<!-- property definition -->')
+        self.w(u'<!-- object property -->')
+        for key, eschema in sorted(keys):
+             self.visit_property_schemaOWL(eschema, skiprels)
+        self.w(u'<!-- datatype property -->')
+        for key, eschema in sorted(keys):
+            self.visit_property_object_schemaOWL(eschema, skiprels)
+        self.w(u'</rdf:RDF>')
+           
+    def eschema_link_url(self, eschema):
+        return self.req.build_url('eetype/%s?vid=eschema' % eschema)
+    
+    def rschema_link_url(self, rschema):
+        return self.req.build_url('ertype/%s?vid=eschema' % rschema)
+
+    def possible_views(self, etype):
+        rset = self.req.etype_rset(etype)
+        return [v for v in self._possible_views(self.req, rset)
+                if v.category != 'startupview']
+
+    def stereotype(self, name):
+        return Span((' <<%s>>' % name,), klass='stereotype')
+                       
+    def visit_entityschemaOWL(self, eschema, skiprels=()):
+        """get a layout for an entity OWL schema"""
+        etype = eschema.type
+        
+        if eschema.meta:
+            self.stereotype('meta')
+            self.w(u'''<owl:Class rdf:ID="%s"><rdfs:subClassOf rdf:resource="http://www.w3.org/2002/07/owl#Thing"/>
+                                '''%eschema, stereotype)
+        else:
+             self.w(u'''<owl:Class rdf:ID="%s"><rdfs:subClassOf rdf:resource="http://www.w3.org/2002/07/owl#Thing"/>
+                                '''% eschema)         
+       
+        self.w(u'<!-- relations -->')    
+        for rschema, targetschemas, role in eschema.relation_definitions():
+            if rschema.type in skiprels:
+                continue
+            if not (rschema.has_local_role('read') or rschema.has_perm(self.req, 'read')):
+                continue
+            for oeschema in targetschemas:
+                label = rschema.type
+                if role == 'subject':
+                    card = rschema.rproperty(eschema, oeschema, 'cardinality')[0]
+                else:
+                    card = rschema.rproperty(oeschema, eschema, 'cardinality')[1]
+                self.w(u'''<rdfs:subClassOf>
+                              <owl:Restriction>
+                              <owl:onProperty rdf:resource="#%s"/>
+                                %s
+                              </owl:Restriction>
+                           </rdfs:subClassOf>
+                                ''' % (label, OWL_CARD_MAP[card]))
+
+        self.w(u'<!-- attributes -->')
+              
+        for rschema, aschema in eschema.attribute_definitions():
+            if not (rschema.has_local_role('read') or rschema.has_perm(self.req, 'read')):
+                continue
+            aname = rschema.type
+            if aname == 'eid':
+                continue
+            card_data = aschema.type
+            self.w(u'''<rdfs:subClassOf>
+                              <owl:Restriction>
+                                 <owl:onProperty rdf:resource="#%s"/>
+                                 <rdf:type rdf:resource="&owl;FunctionalProperty"/>
+                                 </owl:Restriction>
+                        </rdfs:subClassOf>'''
+                          
+                   % aname)
+        self.w(u'</owl:Class>')
+    
+    def visit_property_schemaOWL(self, eschema, skiprels=()):
+        """get a layout for property entity OWL schema"""
+        etype = eschema.type
+
+        for rschema, targetschemas, role in eschema.relation_definitions():
+            if rschema.type in skiprels:
+                continue
+            if not (rschema.has_local_role('read') or rschema.has_perm(self.req, 'read')):
+                continue
+            rschemaurl = self.rschema_link_url(rschema)
+            for oeschema in targetschemas:
+                label = rschema.type
+                self.w(u'''<owl:ObjectProperty rdf:ID="%s">
+                              <rdfs:domain rdf:resource="#%s"/>
+                              <rdfs:range rdf:resource="#%s"/>
+                           </owl:ObjectProperty>                   
+                             
+                                ''' % (label, eschema, oeschema.type ))
+
+    def visit_property_object_schemaOWL(self, eschema, skiprels=()):
+               
+        for rschema, aschema in eschema.attribute_definitions():
+            if not (rschema.has_local_role('read') or rschema.has_perm(self.req, 'read')):
+                continue
+            aname = rschema.type
+            if aname == 'eid':
+                continue
+            card_data = aschema.type
+            self.w(u'''<owl:DatatypeProperty rdf:ID="%s">
+                          <rdfs:domain rdf:resource="#%s"/>
+                          <rdfs:range rdf:resource="%s"/>
+                       </owl:DatatypeProperty>'''
+                   % (aname, eschema, OWL_CARD_MAP_DATA[card_data]))
+
+       
--- a/web/views/treeview.py	Tue Jan 27 13:52:50 2009 +0100
+++ b/web/views/treeview.py	Tue Jan 27 13:58:17 2009 +0100
@@ -9,8 +9,9 @@
 class TreeView(EntityView):
     id = 'treeview'
     accepts = ('Any',)
-    fstree = False
     itemvid = 'treeitemview'
+    css_classes = 'treeview widget'
+    title = _('tree view')
     
     def call(self, subvid=None):
         if subvid is None and 'subvid' in self.req.form:
@@ -19,17 +20,14 @@
             subvid = 'oneline'
         self.req.add_css('jquery.treeview.css')
         self.req.add_js(('cubicweb.ajax.js', 'jquery.treeview.js', 'cubicweb.widgets.js'))
-        css_classes = 'treeview widget'
-        if self.fstree:
-            css_classes += ' filetree'
         # XXX noautoload is a quick hack to avoid treeview to be rebuilt
         #     after a json query and avoid double toggling bugs.
         #     Need to find a way to do that cleanly.
         if 'noautoload' in self.req.form:
-            self.w(u'<ul class="%s" cubicweb:wdgtype="TreeView">' % css_classes)
+            self.w(u'<ul class="%s" cubicweb:wdgtype="TreeView">' % self.css_classes)
         else:
             self.w(u'<ul class="%s" cubicweb:loadtype="auto" cubicweb:wdgtype="TreeView">'
-                   % css_classes)
+                   % self.css_classes)
         for rowidx in xrange(len(self.rset)):
             self.wview(self.itemvid, self.rset, row=rowidx, col=0,
                        vid=subvid, parentvid=self.id)
@@ -40,14 +38,15 @@
     """specific version of the treeview to display file trees
     """
     id = 'filetree'
-    fstree = True
+    css_classes = 'treeview widget filetree'
+    title = _('file tree view')
 
     def call(self, subvid=None):
         super(FileTreeView, self).call(subvid='filetree-oneline')
 
 
 
-class FileItemInnerView(OneLineView):
+class FileItemInnerView(EntityView):
     """inner view used by the TreeItemView instead of oneline view
 
     This view adds an enclosing <span> with some specific CSS classes
@@ -58,10 +57,10 @@
     def cell_call(self, row, col):
         entity = self.entity(row, col)
         if ITree.is_implemented_by(entity.__class__) and not entity.is_leaf():
-            self.w(u'<span class="folder">%s</span>' % entity.view('oneline'))
+            self.w(u'<div class="folder">%s</div>' % entity.view('oneline'))
         else:
             # XXX define specific CSS classes according to mime types
-            self.w(u'<span class="file">%s</span>' % entity.view('oneline'))
+            self.w(u'<div class="file">%s</div>' % entity.view('oneline'))
 
 
 class DefaultTreeViewItemView(EntityView):
@@ -76,7 +75,7 @@
         if row == len(self.rset) - 1:
             self.w(u'<li class="last">%s</li>' % itemview)
         else:
-            self.w(u'<li><span>%s</span></li>' % itemview)
+            self.w(u'<li>%s</li>' % itemview)
 
 
 class TreeViewItemView(EntityView):
--- a/web/webconfig.py	Tue Jan 27 13:52:50 2009 +0100
+++ b/web/webconfig.py	Tue Jan 27 13:58:17 2009 +0100
@@ -1,7 +1,7 @@
 """common web configuration for twisted/modpython applications
 
 :organization: Logilab
-:copyright: 2001-2008 LOGILAB S.A. (Paris, FRANCE), all rights reserved.
+:copyright: 2001-2009 LOGILAB S.A. (Paris, FRANCE), all rights reserved.
 :contact: http://www.logilab.fr/ -- mailto:contact@logilab.fr
 """
 __docformat__ = "restructuredtext en"
@@ -349,6 +349,6 @@
         stream.close()
 
     def static_file_del(self, rpath):
-        if static_file_exists(rpath):
+        if self.static_file_exists(rpath):
             os.remove(join(self.static_directory, rpath))