--- a/common/appobject.py Fri Jan 23 19:18:28 2009 +0100
+++ b/common/appobject.py Fri Jan 23 19:21:29 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/entity.py Fri Jan 23 19:18:28 2009 +0100
+++ b/common/entity.py Fri Jan 23 19:21:29 2009 +0100
@@ -998,6 +998,7 @@
_done.add(self.eid)
containers = tuple(self.e_schema.fulltext_containers())
if containers:
+ yielded = False
for rschema, target in containers:
if target == 'object':
targets = getattr(self, rschema.type)
@@ -1008,6 +1009,9 @@
continue
for container in entity.fti_containers(_done):
yield container
+ yielded = True
+ if not yielded:
+ yield self
else:
yield self
--- a/common/migration.py Fri Jan 23 19:18:28 2009 +0100
+++ b/common/migration.py Fri Jan 23 19:21:29 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 Fri Jan 23 19:18:28 2009 +0100
+++ b/common/mixins.py Fri Jan 23 19:21:29 2009 +0100
@@ -165,7 +165,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 Fri Jan 23 19:18:28 2009 +0100
+++ b/common/selectors.py Fri Jan 23 19:21:29 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/goa/__init__.py Fri Jan 23 19:18:28 2009 +0100
+++ b/goa/__init__.py Fri Jan 23 19:21:29 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 Fri Jan 23 19:18:28 2009 +0100
+++ b/goa/db.py Fri Jan 23 19:21:29 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 Fri Jan 23 19:18:28 2009 +0100
+++ b/goa/overrides/rqlannotation.py Fri Jan 23 19:21:29 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 Fri Jan 23 19:18:28 2009 +0100
+++ b/goa/testlib.py Fri Jan 23 19:21:29 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 Fri Jan 23 19:18:28 2009 +0100
+++ b/goa/tools/i18n.py Fri Jan 23 19:21:29 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 Fri Jan 23 19:18:28 2009 +0100
+++ b/server/migractions.py Fri Jan 23 19:21:29 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 Fri Jan 23 19:18:28 2009 +0100
+++ b/server/msplanner.py Fri Jan 23 19:21:29 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 Fri Jan 23 19:18:28 2009 +0100
+++ b/server/mssteps.py Fri Jan 23 19:21:29 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,7 +274,7 @@
result &= frozenset(step.execute())
result = list(result)
if self.offset:
- result = result[offset:]
+ result = result[self.offset:]
if self.limit:
result = result[:limit]
return result
--- a/server/repository.py Fri Jan 23 19:18:28 2009 +0100
+++ b/server/repository.py Fri Jan 23 19:21:29 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/skeleton/__pkginfo__.py.tmpl Fri Jan 23 19:18:28 2009 +0100
+++ b/skeleton/__pkginfo__.py.tmpl Fri Jan 23 19:21:29 2009 +0100
@@ -10,8 +10,8 @@
copyright = '''Copyright (c) %(year)s %(author)s.
%(author-web-site)s -- mailto:%(author-email)s'''
-author = %(author)s'
-author_email = %(author-email)s'
+author = '%(author)s'
+author_email = '%(author-email)s'
short_desc = '%(shortdesc)s'
long_desc = '''%(longdesc)s'''
--- a/web/box.py Fri Jan 23 19:18:28 2009 +0100
+++ b/web/box.py Fri Jan 23 19:21:29 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
@@ -185,7 +184,7 @@
class attributes.
"""
- def cell_call(self, row, col):
+ def cell_call(self, row, col, view=None):
self.req.add_js('cubicweb.ajax.js')
entity = self.entity(row, col)
box = SideBoxWidget(display_name(self.req, self.rtype), self.id)
--- a/web/facet.py Fri Jan 23 19:18:28 2009 +0100
+++ b/web/facet.py Fri Jan 23 19:21:29 2009 +0100
@@ -245,11 +245,11 @@
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
--- a/web/test/jstest_python.jst Fri Jan 23 19:18:28 2009 +0100
+++ b/web/test/jstest_python.jst Fri Jan 23 19:21:29 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 () {
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/web/test/unittest_owl.py Fri Jan 23 19:21:29 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 Fri Jan 23 19:18:28 2009 +0100
+++ b/web/test/unittest_viewselector.py Fri Jan 23 19:21:29 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
@@ -94,14 +94,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 +114,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 +134,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 +153,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 +162,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 Fri Jan 23 19:18:28 2009 +0100
+++ b/web/views/basecontrollers.py Fri Jan 23 19:21:29 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 Fri Jan 23 19:18:28 2009 +0100
+++ b/web/views/navigation.py Fri Jan 23 19:21:29 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 Fri Jan 23 19:18:28 2009 +0100
+++ b/web/views/startup.py Fri Jan 23 19:21:29 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 Fri Jan 23 19:18:28 2009 +0100
+++ b/web/views/treeview.py Fri Jan 23 19:21:29 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
--- a/web/webconfig.py Fri Jan 23 19:18:28 2009 +0100
+++ b/web/webconfig.py Fri Jan 23 19:21:29 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))