diff --git a/MANIFEST.in b/MANIFEST.in index 489eedda29b25afa54280fe6416ca4257c6cda39_TUFOSUZFU1QuaW4=..3ae53fdbd185a62b2c68ad24fb676e3c62922ed2_TUFOSUZFU1QuaW4= 100644 --- a/MANIFEST.in +++ b/MANIFEST.in @@ -9,3 +9,4 @@ exclude .gitlab-ci.yml exclude .yamllint exclude Dockerfile +recursive-include test/data *.ttl *.rdf diff --git a/create_fake_data.py b/create_fake_data.py index 489eedda29b25afa54280fe6416ca4257c6cda39_Y3JlYXRlX2Zha2VfZGF0YS5weQ==..3ae53fdbd185a62b2c68ad24fb676e3c62922ed2_Y3JlYXRlX2Zha2VfZGF0YS5weQ== 100644 --- a/create_fake_data.py +++ b/create_fake_data.py @@ -1,2 +1,4 @@ +from cubicweb import Binary + dataservice = cnx.create_entity( "DataService", @@ -1,7 +3,7 @@ dataservice = cnx.create_entity( "DataService", - data_url="https://file.poulet", - name="mon dataservice :D", + data_url="https://dbpedia.org/resource/Leonardo_da_Vinci", + name="DBpedia Leo", ) recipe = cnx.create_entity( "ImportRecipe", @@ -5,7 +7,7 @@ ) recipe = cnx.create_entity( "ImportRecipe", - name="Ma recette poulet", + name="Ma recette", dataservice=[dataservice], ) @@ -9,7 +11,46 @@ dataservice=[dataservice], ) +with open("./test/data/dboPerson.rdf", "rb") as fp: + file = cnx.create_entity( + "File", + **{ + "title": f"dboPerson.rdf", + "data": Binary(fp.read()), + "data_format": "application/rdf+xml", + "data_name": "dbo:person ontology", + }, + ) + +with open("./test/data/ok_shacl.ttl", "rb") as fp: + ok_shacl = cnx.create_entity( + "SHACLFile", + file=cnx.create_entity( + "File", + **{ + "title": f"ok_shacl.ttl", + "data": Binary(fp.read()), + "data_format": "text/turtle", + "data_name": "shacl ok", + }, + ), + ) + +with open("./test/data/nok_shacl.ttl", "rb") as fp: + nok_shacl = cnx.create_entity( + "SHACLFile", + file=cnx.create_entity( + "File", + **{ + "title": f"nok_shacl.ttl", + "data": Binary(fp.read()), + "data_format": "text/turtle", + "data_name": "shacl nok", + }, + ), + ) + importprocedure = cnx.create_entity( "ImportProcedure", sparql_endpoint="https://sparql.poulet", import_recipes=[recipe], @@ -12,5 +53,7 @@ importprocedure = cnx.create_entity( "ImportProcedure", sparql_endpoint="https://sparql.poulet", import_recipes=[recipe], + ontology_file=file, + shacl_files=[ok_shacl, nok_shacl], ) @@ -16,1 +59,2 @@ ) +cnx.commit() diff --git a/cubicweb_rodolf/__pkginfo__.py b/cubicweb_rodolf/__pkginfo__.py index 489eedda29b25afa54280fe6416ca4257c6cda39_Y3ViaWN3ZWJfcm9kb2xmL19fcGtnaW5mb19fLnB5..3ae53fdbd185a62b2c68ad24fb676e3c62922ed2_Y3ViaWN3ZWJfcm9kb2xmL19fcGtnaW5mb19fLnB5 100644 --- a/cubicweb_rodolf/__pkginfo__.py +++ b/cubicweb_rodolf/__pkginfo__.py @@ -17,6 +17,8 @@ "cubicweb[postgresql]": ">= 4.5.2,< 5.0.0", "cubicweb-file": None, "cubicweb-rq": None, + "requests": None, + "pyshacl": None, } __recommends__ = {} diff --git a/cubicweb_rodolf/ccplugin.py b/cubicweb_rodolf/ccplugin.py index 489eedda29b25afa54280fe6416ca4257c6cda39_Y3ViaWN3ZWJfcm9kb2xmL2NjcGx1Z2luLnB5..3ae53fdbd185a62b2c68ad24fb676e3c62922ed2_Y3ViaWN3ZWJfcm9kb2xmL2NjcGx1Z2luLnB5 100644 --- a/cubicweb_rodolf/ccplugin.py +++ b/cubicweb_rodolf/ccplugin.py @@ -17,7 +17,6 @@ import logging import rq -from datetime import datetime from cubicweb.cwctl import CWCTL from cubicweb.toolsutils import Command @@ -25,7 +24,7 @@ from cubicweb_rq.ccplugin import get_rq_redis_connection from cubicweb_rq import admincnx -from cubicweb_rodolf.import_data import import_data +from cubicweb_rodolf.import_data import launch_import_procedure @CWCTL.register @@ -46,25 +45,7 @@ with admincnx(appid) as cnx, rq.Connection(connection): procedures = cnx.find("ImportProcedure").entities() for procedure in procedures: - if not procedure.activated: - continue - for import_process in procedure.create_needed_import_process(): - self.logger.info( - f"[rodolf-import]: create rq task for import process '{import_process.eid}'" - ) - task_title = "import-process {eid} ({date})".format( - eid={import_process.eid}, - date=datetime.utcnow().strftime("%Y-%m-%d"), - ) - rqtask = cnx.create_entity( - "RqTask", name="import_process", title=task_title - ) - import_process.cw_set(rq_task=rqtask) - cnx.commit() - rqtask.cw_adapt_to("IRqJob").enqueue( - import_data, import_process_eid=import_process.eid - ) - cnx.commit() - started_processes += 1 - - self.logger.info(f"[rodolf-import]: {started_processes} rq-tasks created") + started_processes += launch_import_procedure( + cnx, procedure, self.logger + ) + self.logger.info(f"[rodolf-import]: {started_processes} rq-tasks created") diff --git a/cubicweb_rodolf/entities.py b/cubicweb_rodolf/entities.py index 489eedda29b25afa54280fe6416ca4257c6cda39_Y3ViaWN3ZWJfcm9kb2xmL2VudGl0aWVzLnB5..3ae53fdbd185a62b2c68ad24fb676e3c62922ed2_Y3ViaWN3ZWJfcm9kb2xmL2VudGl0aWVzLnB5 100644 --- a/cubicweb_rodolf/entities.py +++ b/cubicweb_rodolf/entities.py @@ -31,6 +31,13 @@ } +class SHACLFile(AnyEntity): + __regid__ = "SHACLFile" + + def dc_title(self): + return self.name if self.name else self.file[0].dc_title() + + class DataService(AnyEntity): __regid__ = "DataService" @@ -42,6 +49,9 @@ class ImportProcedure(AnyEntity): __regid__ = "ImportProcedure" + def dc_title(self): + return self.name if self.name else self.sparql_endpoint + @property def import_recipe_to_launch(self): for recipe in self.import_recipes: diff --git a/cubicweb_rodolf/import_data.py b/cubicweb_rodolf/import_data.py index 489eedda29b25afa54280fe6416ca4257c6cda39_Y3ViaWN3ZWJfcm9kb2xmL2ltcG9ydF9kYXRhLnB5..3ae53fdbd185a62b2c68ad24fb676e3c62922ed2_Y3ViaWN3ZWJfcm9kb2xmL2ltcG9ydF9kYXRhLnB5 100644 --- a/cubicweb_rodolf/import_data.py +++ b/cubicweb_rodolf/import_data.py @@ -16,5 +16,9 @@ # along with this program. If not, see <https://www.gnu.org/licenses/>. import logging +import requests +import pyshacl + +from datetime import datetime from cubicweb_rq.rq import rqjob @@ -19,5 +23,51 @@ from cubicweb_rq.rq import rqjob +from rdflib import Graph + +from cubicweb.rdf import RDF_MIMETYPE_TO_FORMAT + + +def rdf_graph_from_dataservice(import_recipe): + data_service_url = import_recipe.dataservice[0].data_url + response = requests.get( + data_service_url, + headers={"Accept": ";".join(RDF_MIMETYPE_TO_FORMAT.keys())}, + allow_redirects=True, + timeout=4, + ) + if not response.ok: + return Graph() + + # XXX Aply procees_type functions if any + # XXX Store request result in file + + content_type = response.headers["Content-Type"] + rdf_parse_format = content_type + for mime_type, rdf_format in RDF_MIMETYPE_TO_FORMAT.items(): + if mime_type in content_type: + rdf_parse_format = rdf_format + break + + return Graph().parse(data=response.text, format=rdf_parse_format) + + +def check_rdf_graph(graph, import_procedure): + errors = {} + everything_ok = True + for shacl_file in import_procedure.shacl_files: + file = shacl_file.file[0] + shacl_shapes_graph = Graph().parse( + data=file.data.getvalue().decode("utf8"), + format=file.data_format, + ) + conforms, _graph_reports, text_reports = pyshacl.validate( + graph, + shacl_graph=shacl_shapes_graph, + ) + if not conforms: + everything_ok = False + errors[shacl_file.eid] = text_reports + return everything_ok, errors @rqjob @@ -25,7 +75,7 @@ cnx, import_process_eid=None, ): - """Import data based on OAI-PMH. + """Import data. :param Connection cnx: database connection :param int import_process_eid: ImportProcess eid @@ -39,5 +89,8 @@ task_failed = False formatted_exc = None log = logging.getLogger("rq.task") + import_recipe = import_process.import_recipe[0] + dataservice = import_recipe.dataservice[0] + import_procedure = import_process.import_procedure[0] try: @@ -42,7 +95,25 @@ try: - log.info("starting poulet") - results = "POULET" # XXX fetch data and apply checks and transformations + log.info( + f"Starting import process with recipe {import_recipe.dc_title()} " + f"from {dataservice.dc_title()} to populate {import_procedure.dc_title()}" + ) + rdf_graph = rdf_graph_from_dataservice(import_recipe) + log.info(f"Data was successfully downloaded from {dataservice.dc_title()}") + + valid_rdf, shacl_errors = check_rdf_graph(rdf_graph, import_procedure) + if not valid_rdf: + for key, value in shacl_errors.items(): + shacl_file = cnx.entity_from_eid(key) + log.error( + f"Data from {dataservice.dc_title()} does not comply with SHACL file " + f"{shacl_file.dc_title()} and gives message : \n\t\t{value}" + ) + task_failed = True + else: + log.info("Data was successfully validated") + # XXX PUT in S3 file + except Exception as error: task_failed = True log.error(error, exc_info=True) @@ -52,4 +123,28 @@ else: wf.fire_transition("success") cnx.commit() - return results + return not task_failed + + +def launch_import_procedure(cnx, procedure, logger): + started_processes = 0 + if not procedure.activated: + return 0 + for import_process in procedure.create_needed_import_process(): + logger.info( + f"[rodolf-import]: create rq task for import process " + f"'{import_process.dc_title()}' ({import_process.eid})" + ) + task_title = "import-process {eid} ({date})".format( + eid={import_process.eid}, + date=datetime.utcnow().strftime("%Y-%m-%d"), + ) + rqtask = cnx.create_entity("RqTask", name="import_process", title=task_title) + import_process.cw_set(rq_task=rqtask) + cnx.commit() + rqtask.cw_adapt_to("IRqJob").enqueue( + import_data, import_process_eid=import_process.eid + ) + cnx.commit() + started_processes += 1 + return started_processes diff --git a/cubicweb_rodolf/schema.py b/cubicweb_rodolf/schema.py index 489eedda29b25afa54280fe6416ca4257c6cda39_Y3ViaWN3ZWJfcm9kb2xmL3NjaGVtYS5weQ==..3ae53fdbd185a62b2c68ad24fb676e3c62922ed2_Y3ViaWN3ZWJfcm9kb2xmL3NjaGVtYS5weQ== 100644 --- a/cubicweb_rodolf/schema.py +++ b/cubicweb_rodolf/schema.py @@ -17,5 +17,10 @@ """cubicweb-rodolf schema""" -from yams.buildobjs import Boolean, EntityType, String, SubjectRelation +from yams.buildobjs import ( + Boolean, + EntityType, + String, + SubjectRelation, +) from cubicweb.schema import WorkflowableEntityType @@ -21,5 +26,4 @@ from cubicweb.schema import WorkflowableEntityType -from cubicweb_file.schema import File class SHACLFile(EntityType): @@ -23,5 +27,4 @@ class SHACLFile(EntityType): - file = File() name = String() @@ -27,6 +30,7 @@ name = String() + file = SubjectRelation("File", cardinality="??", inlined=True) class ImportProcedure(EntityType): name = String() sparql_endpoint = String(required=True) @@ -28,9 +32,9 @@ class ImportProcedure(EntityType): name = String() sparql_endpoint = String(required=True) - ontology_file = File() + ontology_file = SubjectRelation("File", cardinality="??", inlined=True) shacl_files = SubjectRelation("SHACLFile", cardinality="**") import_recipes = SubjectRelation("ImportRecipe", cardinality="**") activated = Boolean(required=True, default=True) @@ -61,5 +65,5 @@ import_recipe = SubjectRelation("ImportRecipe", cardinality="1*") import_procedure = SubjectRelation("ImportProcedure", cardinality="1*") rq_task = SubjectRelation("RqTask", cardinality="11", inlined=True) - has_output_dataset = File() - import_report = File() + has_output_dataset = SubjectRelation("File", cardinality="??", inlined=True) + import_report = SubjectRelation("File", cardinality="??", inlined=True) diff --git a/setup.py b/setup.py index 489eedda29b25afa54280fe6416ca4257c6cda39_c2V0dXAucHk=..3ae53fdbd185a62b2c68ad24fb676e3c62922ed2_c2V0dXAucHk= 100644 --- a/setup.py +++ b/setup.py @@ -80,5 +80,8 @@ "rodolf=cubicweb_rodolf", ], }, + extras_require={ + "dev": ["fakeredis"], + }, zip_safe=False, ) diff --git a/test/data/dboPerson.rdf b/test/data/dboPerson.rdf new file mode 100644 index 0000000000000000000000000000000000000000..3ae53fdbd185a62b2c68ad24fb676e3c62922ed2_dGVzdC9kYXRhL2Rib1BlcnNvbi5yZGY= --- /dev/null +++ b/test/data/dboPerson.rdf @@ -0,0 +1,1518 @@ +<?xml version="1.0" encoding="utf-8" ?> +<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:owl="http://www.w3.org/2002/07/owl#" + xmlns:wdrs="http://www.w3.org/2007/05/powder-s#" + xmlns:prov="http://www.w3.org/ns/prov#" + xmlns:ov="http://open.vocab.org/terms/" > + <rdf:Description rdf:about="http://dbpedia.org/ontology/Activity"> + <owl:disjointWith rdf:resource="http://dbpedia.org/ontology/Person" /> + </rdf:Description> + <rdf:Description rdf:about="http://dbpedia.org/ontology/Person"> + <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#Class" /> + <rdfs:subClassOf rdf:resource="http://dbpedia.org/ontology/Animal" /> + <owl:equivalentClass rdf:resource="http://xmlns.com/foaf/0.1/Person" /> + <owl:equivalentClass rdf:resource="http://schema.org/Person" /> + <owl:equivalentClass rdf:resource="http://www.wikidata.org/entity/Q215627" /> + <owl:equivalentClass rdf:resource="http://www.wikidata.org/entity/Q5" /> + <owl:equivalentClass rdf:resource="http://www.ontologydesignpatterns.org/ont/dul/DUL.owl#NaturalPerson" /> + <rdfs:label xml:lang="es">persona</rdfs:label> + <rdfs:label xml:lang="fr">personne</rdfs:label> + <rdfs:label xml:lang="ja">人_(法律)</rdfs:label> + <rdfs:label xml:lang="ur">شخص</rdfs:label> + <rdfs:label xml:lang="ga">duine</rdfs:label> + <rdfs:label xml:lang="pt">pessoa</rdfs:label> + <rdfs:label xml:lang="de">Person</rdfs:label> + <rdfs:label xml:lang="eu">pertsona</rdfs:label> + <rdfs:label xml:lang="da">person</rdfs:label> + <rdfs:label xml:lang="hy">Õ¡Õ¶Õ±</rdfs:label> + <rdfs:label xml:lang="en">person</rdfs:label> + <rdfs:label xml:lang="sl">Oseba</rdfs:label> + <rdfs:label xml:lang="it">persona</rdfs:label> + <rdfs:label xml:lang="nl">persoon</rdfs:label> + <rdfs:label xml:lang="el">ΠληÏοφοÏίες Ï€Ïοσώπου</rdfs:label> + <rdfs:label xml:lang="ar">شخص</rdfs:label> + <rdfs:label xml:lang="pl">osoba</rdfs:label> + <rdfs:isDefinedBy rdf:resource="http://dbpedia.org/ontology/" /> + <wdrs:describedby rdf:resource="http://dbpedia.org/ontology/data/definitions.ttl" /> + <owl:sameAs rdf:resource="http://dbpedia.org/ontology/Person" /> + <prov:wasDerivedFrom rdf:resource="http://mappings.dbpedia.org/index.php/OntologyClass:Person" /> + </rdf:Description> + <rdf:Description rdf:about="http://dbpedia.org/ontology/MeanOfTransportation"> + <owl:disjointWith rdf:resource="http://dbpedia.org/ontology/Person" /> + </rdf:Description> + <rdf:Description rdf:about="http://dbpedia.org/ontology/OrganisationMember"> + <rdfs:subClassOf rdf:resource="http://dbpedia.org/ontology/Person" /> + </rdf:Description> + <rdf:Description rdf:about="http://dbpedia.org/ontology/UnitOfWork"> + <owl:disjointWith rdf:resource="http://dbpedia.org/ontology/Person" /> + </rdf:Description> + <rdf:Description rdf:about="http://dbpedia.org/ontology/Tower"> + <owl:disjointWith rdf:resource="http://dbpedia.org/ontology/Person" /> + </rdf:Description> + <rdf:Description rdf:about="http://dbpedia.org/ontology/Academic"> + <rdfs:subClassOf rdf:resource="http://dbpedia.org/ontology/Person" /> + </rdf:Description> + <rdf:Description rdf:about="http://dbpedia.org/ontology/Architect"> + <rdfs:subClassOf rdf:resource="http://dbpedia.org/ontology/Person" /> + </rdf:Description> + <rdf:Description rdf:about="http://dbpedia.org/ontology/Astronaut"> + <rdfs:subClassOf rdf:resource="http://dbpedia.org/ontology/Person" /> + </rdf:Description> + <rdf:Description rdf:about="http://dbpedia.org/ontology/Athlete"> + <rdfs:subClassOf rdf:resource="http://dbpedia.org/ontology/Person" /> + </rdf:Description> + <rdf:Description rdf:about="http://dbpedia.org/ontology/BeautyQueen"> + <rdfs:subClassOf rdf:resource="http://dbpedia.org/ontology/Person" /> + </rdf:Description> + <rdf:Description rdf:about="http://dbpedia.org/ontology/BusinessPerson"> + <rdfs:subClassOf rdf:resource="http://dbpedia.org/ontology/Person" /> + </rdf:Description> + <rdf:Description rdf:about="http://dbpedia.org/ontology/Chef"> + <rdfs:subClassOf rdf:resource="http://dbpedia.org/ontology/Person" /> + </rdf:Description> + <rdf:Description rdf:about="http://dbpedia.org/ontology/Cleric"> + <rdfs:subClassOf rdf:resource="http://dbpedia.org/ontology/Person" /> + </rdf:Description> + <rdf:Description rdf:about="http://dbpedia.org/ontology/Economist"> + <rdfs:subClassOf rdf:resource="http://dbpedia.org/ontology/Person" /> + </rdf:Description> + <rdf:Description rdf:about="http://dbpedia.org/ontology/Engineer"> + <rdfs:subClassOf rdf:resource="http://dbpedia.org/ontology/Person" /> + </rdf:Description> + <rdf:Description rdf:about="http://dbpedia.org/ontology/HorseTrainer"> + <rdfs:subClassOf rdf:resource="http://dbpedia.org/ontology/Person" /> + </rdf:Description> + <rdf:Description rdf:about="http://dbpedia.org/ontology/Journalist"> + <rdfs:subClassOf rdf:resource="http://dbpedia.org/ontology/Person" /> + </rdf:Description> + <rdf:Description rdf:about="http://dbpedia.org/ontology/Model"> + <rdfs:subClassOf rdf:resource="http://dbpedia.org/ontology/Person" /> + </rdf:Description> + <rdf:Description rdf:about="http://dbpedia.org/ontology/Noble"> + <rdfs:subClassOf rdf:resource="http://dbpedia.org/ontology/Person" /> + </rdf:Description> + <rdf:Description rdf:about="http://dbpedia.org/ontology/PoliceOfficer"> + <rdfs:subClassOf rdf:resource="http://dbpedia.org/ontology/Person" /> + </rdf:Description> + <rdf:Description rdf:about="http://dbpedia.org/ontology/Scientist"> + <rdfs:subClassOf rdf:resource="http://dbpedia.org/ontology/Person" /> + </rdf:Description> + <rdf:Description rdf:about="http://dbpedia.org/ontology/Spy"> + <rdfs:subClassOf rdf:resource="http://dbpedia.org/ontology/Person" /> + </rdf:Description> + <rdf:Description rdf:about="http://dbpedia.org/ontology/restingPlacePosition"> + <rdfs:domain rdf:resource="http://dbpedia.org/ontology/Person" /> + </rdf:Description> + <rdf:Description rdf:about="http://dbpedia.org/ontology/MilitaryPerson"> + <rdfs:subClassOf rdf:resource="http://dbpedia.org/ontology/Person" /> + </rdf:Description> + <rdf:Description rdf:about="http://dbpedia.org/ontology/Youtuber"> + <rdfs:subClassOf rdf:resource="http://dbpedia.org/ontology/Person" /> + </rdf:Description> + <rdf:Description rdf:about="http://dbpedia.org/ontology/AmericanLeader"> + <rdfs:subClassOf rdf:resource="http://dbpedia.org/ontology/Person" /> + </rdf:Description> + <rdf:Description rdf:about="http://dbpedia.org/ontology/Judge"> + <rdfs:subClassOf rdf:resource="http://dbpedia.org/ontology/Person" /> + </rdf:Description> + <rdf:Description rdf:about="http://dbpedia.org/ontology/Pilot"> + <rdfs:subClassOf rdf:resource="http://dbpedia.org/ontology/Person" /> + </rdf:Description> + <rdf:Description rdf:about="http://dbpedia.org/ontology/PlayboyPlaymate"> + <rdfs:subClassOf rdf:resource="http://dbpedia.org/ontology/Person" /> + </rdf:Description> + <rdf:Description rdf:about="http://dbpedia.org/ontology/Presenter"> + <rdfs:subClassOf rdf:resource="http://dbpedia.org/ontology/Person" /> + </rdf:Description> + <rdf:Description rdf:about="http://dbpedia.org/ontology/TimePeriod"> + <owl:disjointWith rdf:resource="http://dbpedia.org/ontology/Person" /> + </rdf:Description> + <rdf:Description rdf:about="http://dbpedia.org/ontology/Coach"> + <rdfs:subClassOf rdf:resource="http://dbpedia.org/ontology/Person" /> + </rdf:Description> + <rdf:Description rdf:about="http://dbpedia.org/ontology/SportsManager"> + <rdfs:subClassOf rdf:resource="http://dbpedia.org/ontology/Person" /> + </rdf:Description> + <rdf:Description rdf:about="http://dbpedia.org/ontology/spokesperson"> + <rdfs:range rdf:resource="http://dbpedia.org/ontology/Person" /> + </rdf:Description> + <rdf:Description rdf:about="http://dbpedia.org/ontology/taoiseach"> + <rdfs:range rdf:resource="http://dbpedia.org/ontology/Person" /> + </rdf:Description> + <rdf:Description rdf:about="http://dbpedia.org/ontology/vicePrimeMinister"> + <rdfs:range rdf:resource="http://dbpedia.org/ontology/Person" /> + </rdf:Description> + <rdf:Description rdf:about="http://dbpedia.org/ontology/associate"> + <rdfs:range rdf:resource="http://dbpedia.org/ontology/Person" /> + </rdf:Description> + <rdf:Description rdf:about="http://dbpedia.org/ontology/clubsRecordGoalscorer"> + <rdfs:range rdf:resource="http://dbpedia.org/ontology/Person" /> + </rdf:Description> + <rdf:Description rdf:about="http://dbpedia.org/ontology/firstWinner"> + <rdfs:range rdf:resource="http://dbpedia.org/ontology/Person" /> + </rdf:Description> + <rdf:Description rdf:about="http://dbpedia.org/ontology/managingEditor"> + <rdfs:range rdf:resource="http://dbpedia.org/ontology/Person" /> + </rdf:Description> + <rdf:Description rdf:about="http://dbpedia.org/ontology/recentWinner"> + <rdfs:range rdf:resource="http://dbpedia.org/ontology/Person" /> + </rdf:Description> + <rdf:Description rdf:about="http://dbpedia.org/ontology/superintendent"> + <rdfs:range rdf:resource="http://dbpedia.org/ontology/Person" /> + </rdf:Description> + <rdf:Description rdf:about="http://dbpedia.org/ontology/Artist"> + <rdfs:subClassOf rdf:resource="http://dbpedia.org/ontology/Person" /> + </rdf:Description> + <rdf:Description rdf:about="http://dbpedia.org/ontology/Building"> + <owl:disjointWith rdf:resource="http://dbpedia.org/ontology/Person" /> + </rdf:Description> + <rdf:Description rdf:about="http://dbpedia.org/ontology/Criminal"> + <rdfs:subClassOf rdf:resource="http://dbpedia.org/ontology/Person" /> + </rdf:Description> + <rdf:Description rdf:about="http://dbpedia.org/ontology/Event"> + <owl:disjointWith rdf:resource="http://dbpedia.org/ontology/Person" /> + </rdf:Description> + <rdf:Description rdf:about="http://dbpedia.org/ontology/Mountain"> + <owl:disjointWith rdf:resource="http://dbpedia.org/ontology/Person" /> + </rdf:Description> + <rdf:Description rdf:about="http://dbpedia.org/ontology/Philosopher"> + <rdfs:subClassOf rdf:resource="http://dbpedia.org/ontology/Person" /> + </rdf:Description> + <rdf:Description rdf:about="http://dbpedia.org/ontology/Politician"> + <rdfs:subClassOf rdf:resource="http://dbpedia.org/ontology/Person" /> + </rdf:Description> + <rdf:Description rdf:about="http://dbpedia.org/ontology/Religious"> + <rdfs:subClassOf rdf:resource="http://dbpedia.org/ontology/Person" /> + </rdf:Description> + <rdf:Description rdf:about="http://dbpedia.org/ontology/Royalty"> + <rdfs:subClassOf rdf:resource="http://dbpedia.org/ontology/Person" /> + </rdf:Description> + <rdf:Description rdf:about="http://dbpedia.org/ontology/Writer"> + <rdfs:subClassOf rdf:resource="http://dbpedia.org/ontology/Person" /> + </rdf:Description> + <rdf:Description rdf:about="http://dbpedia.org/ontology/academicAdvisor"> + <rdfs:range rdf:resource="http://dbpedia.org/ontology/Person" /> + </rdf:Description> + <rdf:Description rdf:about="http://dbpedia.org/ontology/alongside"> + <rdfs:range rdf:resource="http://dbpedia.org/ontology/Person" /> + </rdf:Description> + <rdf:Description rdf:about="http://dbpedia.org/ontology/appointer"> + <rdfs:range rdf:resource="http://dbpedia.org/ontology/Person" /> + </rdf:Description> + <rdf:Description rdf:about="http://dbpedia.org/ontology/beatifiedBy"> + <rdfs:range rdf:resource="http://dbpedia.org/ontology/Person" /> + </rdf:Description> + <rdf:Description rdf:about="http://dbpedia.org/ontology/board"> + <rdfs:domain rdf:resource="http://dbpedia.org/ontology/Person" /> + </rdf:Description> + <rdf:Description rdf:about="http://dbpedia.org/ontology/breeder"> + <rdfs:range rdf:resource="http://dbpedia.org/ontology/Person" /> + </rdf:Description> + <rdf:Description rdf:about="http://dbpedia.org/ontology/careerStation"> + <rdfs:domain rdf:resource="http://dbpedia.org/ontology/Person" /> + </rdf:Description> + <rdf:Description rdf:about="http://dbpedia.org/ontology/ceo"> + <rdfs:range rdf:resource="http://dbpedia.org/ontology/Person" /> + </rdf:Description> + <rdf:Description rdf:about="http://dbpedia.org/ontology/chef"> + <rdfs:range rdf:resource="http://dbpedia.org/ontology/Person" /> + </rdf:Description> + <rdf:Description rdf:about="http://dbpedia.org/ontology/citizenship"> + <rdfs:domain rdf:resource="http://dbpedia.org/ontology/Person" /> + </rdf:Description> + <rdf:Description rdf:about="http://dbpedia.org/ontology/college"> + <rdfs:domain rdf:resource="http://dbpedia.org/ontology/Person" /> + </rdf:Description> + <rdf:Description rdf:about="http://dbpedia.org/ontology/dean"> + <rdfs:range rdf:resource="http://dbpedia.org/ontology/Person" /> + </rdf:Description> + <rdf:Description rdf:about="http://dbpedia.org/ontology/doctoralAdvisor"> + <rdfs:range rdf:resource="http://dbpedia.org/ontology/Person" /> + </rdf:Description> + <rdf:Description rdf:about="http://dbpedia.org/ontology/doctoralStudent"> + <rdfs:range rdf:resource="http://dbpedia.org/ontology/Person" /> + </rdf:Description> + <rdf:Description rdf:about="http://dbpedia.org/ontology/father"> + <rdfs:range rdf:resource="http://dbpedia.org/ontology/Person" /> + </rdf:Description> + <rdf:Description rdf:about="http://dbpedia.org/ontology/militaryService"> + <rdfs:domain rdf:resource="http://dbpedia.org/ontology/Person" /> + </rdf:Description> + <rdf:Description rdf:about="http://dbpedia.org/ontology/mother"> + <rdfs:range rdf:resource="http://dbpedia.org/ontology/Person" /> + </rdf:Description> + <rdf:Description rdf:about="http://dbpedia.org/ontology/notableIdea"> + <rdfs:domain rdf:resource="http://dbpedia.org/ontology/Person" /> + </rdf:Description> + <rdf:Description rdf:about="http://dbpedia.org/ontology/notableStudent"> + <rdfs:range rdf:resource="http://dbpedia.org/ontology/Person" /> + </rdf:Description> + <rdf:Description rdf:about="http://dbpedia.org/ontology/partner"> + <rdfs:domain rdf:resource="http://dbpedia.org/ontology/Person" /> + <rdfs:range rdf:resource="http://dbpedia.org/ontology/Person" /> + </rdf:Description> + <rdf:Description rdf:about="http://dbpedia.org/ontology/personFunction"> + <rdfs:domain rdf:resource="http://dbpedia.org/ontology/Person" /> + </rdf:Description> + <rdf:Description rdf:about="http://dbpedia.org/ontology/photographer"> + <rdfs:range rdf:resource="http://dbpedia.org/ontology/Person" /> + </rdf:Description> + <rdf:Description rdf:about="http://dbpedia.org/ontology/profession"> + <rdfs:domain rdf:resource="http://dbpedia.org/ontology/Person" /> + </rdf:Description> + <rdf:Description rdf:about="http://dbpedia.org/ontology/relation"> + <rdfs:domain rdf:resource="http://dbpedia.org/ontology/Person" /> + <rdfs:range rdf:resource="http://dbpedia.org/ontology/Person" /> + </rdf:Description> + <rdf:Description rdf:about="http://dbpedia.org/ontology/school"> + <rdfs:domain rdf:resource="http://dbpedia.org/ontology/Person" /> + </rdf:Description> + <rdf:Description rdf:about="http://dbpedia.org/ontology/secretaryGeneral"> + <rdfs:range rdf:resource="http://dbpedia.org/ontology/Person" /> + </rdf:Description> + <rdf:Description rdf:about="http://dbpedia.org/ontology/trainer"> + <rdfs:range rdf:resource="http://dbpedia.org/ontology/Person" /> + </rdf:Description> + <rdf:Description rdf:about="http://dbpedia.org/ontology/agency"> + <rdfs:domain rdf:resource="http://dbpedia.org/ontology/Person" /> + </rdf:Description> + <rdf:Description rdf:about="http://dbpedia.org/ontology/alumni"> + <rdfs:range rdf:resource="http://dbpedia.org/ontology/Person" /> + </rdf:Description> + <rdf:Description rdf:about="http://dbpedia.org/ontology/chairperson"> + <rdfs:range rdf:resource="http://dbpedia.org/ontology/Person" /> + </rdf:Description> + <rdf:Description rdf:about="http://dbpedia.org/ontology/chancellor"> + <rdfs:range rdf:resource="http://dbpedia.org/ontology/Person" /> + </rdf:Description> + <rdf:Description rdf:about="http://dbpedia.org/ontology/chiefEditor"> + <rdfs:range rdf:resource="http://dbpedia.org/ontology/Person" /> + </rdf:Description> + <rdf:Description rdf:about="http://dbpedia.org/ontology/choreographer"> + <rdfs:range rdf:resource="http://dbpedia.org/ontology/Person" /> + </rdf:Description> + <rdf:Description rdf:about="http://dbpedia.org/ontology/currentPartner"> + <rdfs:range rdf:resource="http://dbpedia.org/ontology/Person" /> + </rdf:Description> + <rdf:Description rdf:about="http://dbpedia.org/ontology/formerCoach"> + <rdfs:range rdf:resource="http://dbpedia.org/ontology/Person" /> + </rdf:Description> + <rdf:Description rdf:about="http://dbpedia.org/ontology/formerPartner"> + <rdfs:range rdf:resource="http://dbpedia.org/ontology/Person" /> + </rdf:Description> + <rdf:Description rdf:about="http://dbpedia.org/ontology/governorGeneral"> + <rdfs:range rdf:resource="http://dbpedia.org/ontology/Person" /> + </rdf:Description> + <rdf:Description rdf:about="http://dbpedia.org/ontology/head"> + <rdfs:range rdf:resource="http://dbpedia.org/ontology/Person" /> + </rdf:Description> + <rdf:Description rdf:about="http://dbpedia.org/ontology/leaderName"> + <rdfs:range rdf:resource="http://dbpedia.org/ontology/Person" /> + </rdf:Description> + <rdf:Description rdf:about="http://dbpedia.org/ontology/lieutenant"> + <rdfs:range rdf:resource="http://dbpedia.org/ontology/Person" /> + </rdf:Description> + <rdf:Description rdf:about="http://dbpedia.org/ontology/provost"> + <rdfs:range rdf:resource="http://dbpedia.org/ontology/Person" /> + </rdf:Description> + <rdf:Description rdf:about="http://dbpedia.org/ontology/rector"> + <rdfs:range rdf:resource="http://dbpedia.org/ontology/Person" /> + </rdf:Description> + <rdf:Description rdf:about="http://dbpedia.org/ontology/significantProject"> + <rdfs:domain rdf:resource="http://dbpedia.org/ontology/Person" /> + </rdf:Description> + <rdf:Description rdf:about="http://dbpedia.org/ontology/vicePresident"> + <rdfs:range rdf:resource="http://dbpedia.org/ontology/Person" /> + </rdf:Description> + <rdf:Description rdf:about="http://dbpedia.org/ontology/bodyDiscovered"> + <rdfs:domain rdf:resource="http://dbpedia.org/ontology/Person" /> + </rdf:Description> + <rdf:Description rdf:about="http://dbpedia.org/ontology/showJudge"> + <rdfs:range rdf:resource="http://dbpedia.org/ontology/Person" /> + </rdf:Description> + <rdf:Description rdf:about="http://dbpedia.org/ontology/bronzeMedalist"> + <rdfs:range rdf:resource="http://dbpedia.org/ontology/Person" /> + </rdf:Description> + <rdf:Description rdf:about="http://dbpedia.org/ontology/curator"> + <rdfs:range rdf:resource="http://dbpedia.org/ontology/Person" /> + </rdf:Description> + <rdf:Description rdf:about="http://dbpedia.org/ontology/goldMedalist"> + <rdfs:range rdf:resource="http://dbpedia.org/ontology/Person" /> + </rdf:Description> + <rdf:Description rdf:about="http://dbpedia.org/ontology/silverMedalist"> + <rdfs:range rdf:resource="http://dbpedia.org/ontology/Person" /> + </rdf:Description> + <rdf:Description rdf:about="http://dbpedia.org/ontology/viceLeader"> + <rdfs:range rdf:resource="http://dbpedia.org/ontology/Person" /> + </rdf:Description> + <rdf:Description rdf:about="http://dbpedia.org/ontology/religiousHead"> + <rdfs:range rdf:resource="http://dbpedia.org/ontology/Person" /> + </rdf:Description> + <rdf:Description rdf:about="http://dbpedia.org/ontology/electionDate"> + <rdfs:domain rdf:resource="http://dbpedia.org/ontology/Person" /> + </rdf:Description> + <rdf:Description rdf:about="http://dbpedia.org/ontology/allegiance"> + <rdfs:domain rdf:resource="http://dbpedia.org/ontology/Person" /> + </rdf:Description> + <rdf:Description rdf:about="http://dbpedia.org/ontology/activeYears"> + <rdfs:domain rdf:resource="http://dbpedia.org/ontology/Person" /> + </rdf:Description> + <rdf:Description rdf:about="http://dbpedia.org/ontology/canonizedBy"> + <rdfs:range rdf:resource="http://dbpedia.org/ontology/Person" /> + </rdf:Description> + <rdf:Description rdf:about="http://dbpedia.org/ontology/Monarch"> + <rdfs:subClassOf rdf:resource="http://dbpedia.org/ontology/Person" /> + </rdf:Description> + <rdf:Description rdf:about="http://dbpedia.org/ontology/OfficeHolder"> + <rdfs:subClassOf rdf:resource="http://dbpedia.org/ontology/Person" /> + </rdf:Description> + <rdf:Description rdf:about="http://dbpedia.org/ontology/administrator"> + <rdfs:range rdf:resource="http://dbpedia.org/ontology/Person" /> + </rdf:Description> + <rdf:Description rdf:about="http://dbpedia.org/ontology/creatorOfDish"> + <rdfs:range rdf:resource="http://dbpedia.org/ontology/Person" /> + </rdf:Description> + <rdf:Description rdf:about="http://dbpedia.org/ontology/firstAscentPerson"> + <rdfs:range rdf:resource="http://dbpedia.org/ontology/Person" /> + </rdf:Description> + <rdf:Description rdf:about="http://dbpedia.org/ontology/monarch"> + <rdfs:range rdf:resource="http://dbpedia.org/ontology/Person" /> + </rdf:Description> + <rdf:Description rdf:about="http://dbpedia.org/ontology/nobelLaureates"> + <rdfs:range rdf:resource="http://dbpedia.org/ontology/Person" /> + </rdf:Description> + <rdf:Description rdf:about="http://dbpedia.org/ontology/officerInCharge"> + <rdfs:range rdf:resource="http://dbpedia.org/ontology/Person" /> + </rdf:Description> + <rdf:Description rdf:about="http://dbpedia.org/ontology/opponent"> + <rdfs:domain rdf:resource="http://dbpedia.org/ontology/Person" /> + <rdfs:range rdf:resource="http://dbpedia.org/ontology/Person" /> + </rdf:Description> + <rdf:Description rdf:about="http://dbpedia.org/ontology/patronSaint"> + <rdfs:range rdf:resource="http://dbpedia.org/ontology/Person" /> + </rdf:Description> + <rdf:Description rdf:about="http://dbpedia.org/ontology/placeOfBurial"> + <rdfs:domain rdf:resource="http://dbpedia.org/ontology/Person" /> + </rdf:Description> + <rdf:Description rdf:about="http://dbpedia.org/ontology/principal"> + <rdfs:range rdf:resource="http://dbpedia.org/ontology/Person" /> + </rdf:Description> + <rdf:Description rdf:about="http://dbpedia.org/ontology/principalEngineer"> + <rdfs:range rdf:resource="http://dbpedia.org/ontology/Person" /> + </rdf:Description> + <rdf:Description rdf:about="http://dbpedia.org/ontology/viceChancellor"> + <rdfs:range rdf:resource="http://dbpedia.org/ontology/Person" /> + </rdf:Description> + <rdf:Description rdf:about="http://dbpedia.org/ontology/formerChoreographer"> + <rdfs:range rdf:resource="http://dbpedia.org/ontology/Person" /> + </rdf:Description> + <rdf:Description rdf:about="http://dbpedia.org/ontology/"> + <ov:defines rdf:resource="http://dbpedia.org/ontology/Person" /> + </rdf:Description> + <rdf:Description rdf:about="http://dbpedia.org/ontology/Archeologist"> + <rdfs:subClassOf rdf:resource="http://dbpedia.org/ontology/Person" /> + </rdf:Description> + <rdf:Description rdf:about="http://dbpedia.org/ontology/Aristocrat"> + <rdfs:subClassOf rdf:resource="http://dbpedia.org/ontology/Person" /> + </rdf:Description> + <rdf:Description rdf:about="http://dbpedia.org/ontology/ConveyorSystem"> + <owl:disjointWith rdf:resource="http://dbpedia.org/ontology/Person" /> + </rdf:Description> + <rdf:Description rdf:about="http://dbpedia.org/ontology/DBpedian"> + <rdfs:subClassOf rdf:resource="http://dbpedia.org/ontology/Person" /> + </rdf:Description> + <rdf:Description rdf:about="http://dbpedia.org/ontology/Egyptologist"> + <rdfs:subClassOf rdf:resource="http://dbpedia.org/ontology/Person" /> + </rdf:Description> + <rdf:Description rdf:about="http://dbpedia.org/ontology/Escalator"> + <owl:disjointWith rdf:resource="http://dbpedia.org/ontology/Person" /> + </rdf:Description> + <rdf:Description rdf:about="http://dbpedia.org/ontology/Farmer"> + <rdfs:subClassOf rdf:resource="http://dbpedia.org/ontology/Person" /> + </rdf:Description> + <rdf:Description rdf:about="http://dbpedia.org/ontology/FileSystem"> + <owl:disjointWith rdf:resource="http://dbpedia.org/ontology/Person" /> + </rdf:Description> + <rdf:Description rdf:about="http://dbpedia.org/ontology/GeologicalPeriod"> + <owl:disjointWith rdf:resource="http://dbpedia.org/ontology/Person" /> + </rdf:Description> + <rdf:Description rdf:about="http://dbpedia.org/ontology/HistoricalPeriod"> + <owl:disjointWith rdf:resource="http://dbpedia.org/ontology/Person" /> + </rdf:Description> + <rdf:Description rdf:about="http://dbpedia.org/ontology/Lawyer"> + <rdfs:subClassOf rdf:resource="http://dbpedia.org/ontology/Person" /> + </rdf:Description> + <rdf:Description rdf:about="http://dbpedia.org/ontology/Linguist"> + <rdfs:subClassOf rdf:resource="http://dbpedia.org/ontology/Person" /> + </rdf:Description> + <rdf:Description rdf:about="http://dbpedia.org/ontology/Man"> + <rdfs:subClassOf rdf:resource="http://dbpedia.org/ontology/Person" /> + </rdf:Description> + <rdf:Description rdf:about="http://dbpedia.org/ontology/MemberResistanceMovement"> + <rdfs:subClassOf rdf:resource="http://dbpedia.org/ontology/Person" /> + </rdf:Description> + <rdf:Description rdf:about="http://dbpedia.org/ontology/Mine"> + <owl:disjointWith rdf:resource="http://dbpedia.org/ontology/Person" /> + </rdf:Description> + <rdf:Description rdf:about="http://dbpedia.org/ontology/MovieDirector"> + <rdfs:subClassOf rdf:resource="http://dbpedia.org/ontology/Person" /> + </rdf:Description> + <rdf:Description rdf:about="http://dbpedia.org/ontology/MovingWalkway"> + <owl:disjointWith rdf:resource="http://dbpedia.org/ontology/Person" /> + </rdf:Description> + <rdf:Description rdf:about="http://dbpedia.org/ontology/Nebula"> + <owl:disjointWith rdf:resource="http://dbpedia.org/ontology/Person" /> + </rdf:Description> + <rdf:Description rdf:about="http://dbpedia.org/ontology/On-SiteTransportation"> + <owl:disjointWith rdf:resource="http://dbpedia.org/ontology/Person" /> + </rdf:Description> + <rdf:Description rdf:about="http://dbpedia.org/ontology/PeriodOfArtisticStyle"> + <owl:disjointWith rdf:resource="http://dbpedia.org/ontology/Person" /> + </rdf:Description> + <rdf:Description rdf:about="http://dbpedia.org/ontology/Person/height"> + <rdfs:domain rdf:resource="http://dbpedia.org/ontology/Person" /> + </rdf:Description> + <rdf:Description rdf:about="http://dbpedia.org/ontology/Person/weight"> + <rdfs:domain rdf:resource="http://dbpedia.org/ontology/Person" /> + </rdf:Description> + <rdf:Description rdf:about="http://dbpedia.org/ontology/PoliticianSpouse"> + <rdfs:subClassOf rdf:resource="http://dbpedia.org/ontology/Person" /> + </rdf:Description> + <rdf:Description rdf:about="http://dbpedia.org/ontology/Producer"> + <rdfs:subClassOf rdf:resource="http://dbpedia.org/ontology/Person" /> + </rdf:Description> + <rdf:Description rdf:about="http://dbpedia.org/ontology/ProtohistoricalPeriod"> + <owl:disjointWith rdf:resource="http://dbpedia.org/ontology/Person" /> + </rdf:Description> + <rdf:Description rdf:about="http://dbpedia.org/ontology/Psychologist"> + <rdfs:subClassOf rdf:resource="http://dbpedia.org/ontology/Person" /> + </rdf:Description> + <rdf:Description rdf:about="http://dbpedia.org/ontology/Referee"> + <rdfs:subClassOf rdf:resource="http://dbpedia.org/ontology/Person" /> + </rdf:Description> + <rdf:Description rdf:about="http://dbpedia.org/ontology/RomanEmperor"> + <rdfs:subClassOf rdf:resource="http://dbpedia.org/ontology/Person" /> + </rdf:Description> + <rdf:Description rdf:about="http://dbpedia.org/ontology/StarCluster"> + <owl:disjointWith rdf:resource="http://dbpedia.org/ontology/Person" /> + </rdf:Description> + <rdf:Description rdf:about="http://dbpedia.org/ontology/TelevisionDirector"> + <rdfs:subClassOf rdf:resource="http://dbpedia.org/ontology/Person" /> + </rdf:Description> + <rdf:Description rdf:about="http://dbpedia.org/ontology/TheatreDirector"> + <rdfs:subClassOf rdf:resource="http://dbpedia.org/ontology/Person" /> + </rdf:Description> + <rdf:Description rdf:about="http://dbpedia.org/ontology/Woman"> + <rdfs:subClassOf rdf:resource="http://dbpedia.org/ontology/Person" /> + </rdf:Description> + <rdf:Description rdf:about="http://dbpedia.org/ontology/achievement"> + <rdfs:domain rdf:resource="http://dbpedia.org/ontology/Person" /> + </rdf:Description> + <rdf:Description rdf:about="http://dbpedia.org/ontology/actingHeadteacher"> + <rdfs:range rdf:resource="http://dbpedia.org/ontology/Person" /> + </rdf:Description> + <rdf:Description rdf:about="http://dbpedia.org/ontology/activeYearsEndDateMgr"> + <rdfs:domain rdf:resource="http://dbpedia.org/ontology/Person" /> + </rdf:Description> + <rdf:Description rdf:about="http://dbpedia.org/ontology/activeYearsEndYearMgr"> + <rdfs:domain rdf:resource="http://dbpedia.org/ontology/Person" /> + </rdf:Description> + <rdf:Description rdf:about="http://dbpedia.org/ontology/activeYearsStartDateMgr"> + <rdfs:domain rdf:resource="http://dbpedia.org/ontology/Person" /> + </rdf:Description> + <rdf:Description rdf:about="http://dbpedia.org/ontology/activeYearsStartYearMgr"> + <rdfs:domain rdf:resource="http://dbpedia.org/ontology/Person" /> + </rdf:Description> + <rdf:Description rdf:about="http://dbpedia.org/ontology/activity"> + <rdfs:domain rdf:resource="http://dbpedia.org/ontology/Person" /> + </rdf:Description> + <rdf:Description rdf:about="http://dbpedia.org/ontology/affair"> + <rdfs:domain rdf:resource="http://dbpedia.org/ontology/Person" /> + </rdf:Description> + <rdf:Description rdf:about="http://dbpedia.org/ontology/announcedFrom"> + <rdfs:domain rdf:resource="http://dbpedia.org/ontology/Person" /> + </rdf:Description> + <rdf:Description rdf:about="http://dbpedia.org/ontology/apcPresident"> + <rdfs:range rdf:resource="http://dbpedia.org/ontology/Person" /> + </rdf:Description> + <rdf:Description rdf:about="http://dbpedia.org/ontology/approach"> + <rdfs:domain rdf:resource="http://dbpedia.org/ontology/Person" /> + </rdf:Description> + <rdf:Description rdf:about="http://dbpedia.org/ontology/arrestDate"> + <rdfs:domain rdf:resource="http://dbpedia.org/ontology/Person" /> + </rdf:Description> + <rdf:Description rdf:about="http://dbpedia.org/ontology/artisticFunction"> + <rdfs:domain rdf:resource="http://dbpedia.org/ontology/Person" /> + </rdf:Description> + <rdf:Description rdf:about="http://dbpedia.org/ontology/astrologicalSign"> + <rdfs:domain rdf:resource="http://dbpedia.org/ontology/Person" /> + </rdf:Description> + <rdf:Description rdf:about="http://dbpedia.org/ontology/attorneyGeneral"> + <rdfs:range rdf:resource="http://dbpedia.org/ontology/Person" /> + </rdf:Description> + <rdf:Description rdf:about="http://dbpedia.org/ontology/aunt"> + <rdfs:range rdf:resource="http://dbpedia.org/ontology/Person" /> + </rdf:Description> + <rdf:Description rdf:about="http://dbpedia.org/ontology/awardName"> + <rdfs:domain rdf:resource="http://dbpedia.org/ontology/Person" /> + </rdf:Description> + <rdf:Description rdf:about="http://dbpedia.org/ontology/badGuy"> + <rdfs:domain rdf:resource="http://dbpedia.org/ontology/Person" /> + </rdf:Description> + <rdf:Description rdf:about="http://dbpedia.org/ontology/bestLap"> + <rdfs:domain rdf:resource="http://dbpedia.org/ontology/Person" /> + </rdf:Description> + <rdf:Description rdf:about="http://dbpedia.org/ontology/bigPoolRecord"> + <rdfs:domain rdf:resource="http://dbpedia.org/ontology/Person" /> + </rdf:Description> + <rdf:Description rdf:about="http://dbpedia.org/ontology/birthSign"> + <rdfs:domain rdf:resource="http://dbpedia.org/ontology/Person" /> + </rdf:Description> + <rdf:Description rdf:about="http://dbpedia.org/ontology/bloodGroup"> + <rdfs:domain rdf:resource="http://dbpedia.org/ontology/Person" /> + </rdf:Description> + <rdf:Description rdf:about="http://dbpedia.org/ontology/bloodType"> + <rdfs:domain rdf:resource="http://dbpedia.org/ontology/Person" /> + </rdf:Description> + <rdf:Description rdf:about="http://dbpedia.org/ontology/bourgmestre"> + <rdfs:range rdf:resource="http://dbpedia.org/ontology/Person" /> + </rdf:Description> + <rdf:Description rdf:about="http://dbpedia.org/ontology/britishWins"> + <rdfs:domain rdf:resource="http://dbpedia.org/ontology/Person" /> + </rdf:Description> + <rdf:Description rdf:about="http://dbpedia.org/ontology/brother"> + <rdfs:range rdf:resource="http://dbpedia.org/ontology/Person" /> + </rdf:Description> + <rdf:Description rdf:about="http://dbpedia.org/ontology/bustSize"> + <rdfs:domain rdf:resource="http://dbpedia.org/ontology/Person" /> + </rdf:Description> + <rdf:Description rdf:about="http://dbpedia.org/ontology/bustWaistHipSize"> + <rdfs:domain rdf:resource="http://dbpedia.org/ontology/Person" /> + </rdf:Description> + <rdf:Description rdf:about="http://dbpedia.org/ontology/case"> + <rdfs:domain rdf:resource="http://dbpedia.org/ontology/Person" /> + </rdf:Description> + <rdf:Description rdf:about="http://dbpedia.org/ontology/catch"> + <rdfs:domain rdf:resource="http://dbpedia.org/ontology/Person" /> + </rdf:Description> + <rdf:Description rdf:about="http://dbpedia.org/ontology/causeOfDeath"> + <rdfs:domain rdf:resource="http://dbpedia.org/ontology/Person" /> + </rdf:Description> + <rdf:Description rdf:about="http://dbpedia.org/ontology/chaplain"> + <rdfs:range rdf:resource="http://dbpedia.org/ontology/Person" /> + </rdf:Description> + <rdf:Description rdf:about="http://dbpedia.org/ontology/circumcised"> + <rdfs:domain rdf:resource="http://dbpedia.org/ontology/Person" /> + </rdf:Description> + <rdf:Description rdf:about="http://dbpedia.org/ontology/clothSize"> + <rdfs:domain rdf:resource="http://dbpedia.org/ontology/Person" /> + </rdf:Description> + <rdf:Description rdf:about="http://dbpedia.org/ontology/clothingSize"> + <rdfs:domain rdf:resource="http://dbpedia.org/ontology/Person" /> + </rdf:Description> + <rdf:Description rdf:about="http://dbpedia.org/ontology/coExecutiveProducer"> + <rdfs:range rdf:resource="http://dbpedia.org/ontology/Person" /> + </rdf:Description> + <rdf:Description rdf:about="http://dbpedia.org/ontology/coProducer"> + <rdfs:range rdf:resource="http://dbpedia.org/ontology/Person" /> + </rdf:Description> + <rdf:Description rdf:about="http://dbpedia.org/ontology/coalition"> + <rdfs:domain rdf:resource="http://dbpedia.org/ontology/Person" /> + </rdf:Description> + <rdf:Description rdf:about="http://dbpedia.org/ontology/collaboration"> + <rdfs:domain rdf:resource="http://dbpedia.org/ontology/Person" /> + <rdfs:range rdf:resource="http://dbpedia.org/ontology/Person" /> + </rdf:Description> + <rdf:Description rdf:about="http://dbpedia.org/ontology/colleague"> + <rdfs:domain rdf:resource="http://dbpedia.org/ontology/Person" /> + <rdfs:range rdf:resource="http://dbpedia.org/ontology/Person" /> + </rdf:Description> + <rdf:Description rdf:about="http://dbpedia.org/ontology/commandant"> + <rdfs:range rdf:resource="http://dbpedia.org/ontology/Person" /> + </rdf:Description> + <rdf:Description rdf:about="http://dbpedia.org/ontology/competitionTitle"> + <rdfs:domain rdf:resource="http://dbpedia.org/ontology/Person" /> + </rdf:Description> + <rdf:Description rdf:about="http://dbpedia.org/ontology/compiler"> + <rdfs:range rdf:resource="http://dbpedia.org/ontology/Person" /> + </rdf:Description> + <rdf:Description rdf:about="http://dbpedia.org/ontology/complexion"> + <rdfs:domain rdf:resource="http://dbpedia.org/ontology/Person" /> + </rdf:Description> + <rdf:Description rdf:about="http://dbpedia.org/ontology/contest"> + <rdfs:domain rdf:resource="http://dbpedia.org/ontology/Person" /> + </rdf:Description> + <rdf:Description rdf:about="http://dbpedia.org/ontology/continentalTournament"> + <rdfs:domain rdf:resource="http://dbpedia.org/ontology/Person" /> + </rdf:Description> + <rdf:Description rdf:about="http://dbpedia.org/ontology/continentalTournamentBronze"> + <rdfs:domain rdf:resource="http://dbpedia.org/ontology/Person" /> + </rdf:Description> + <rdf:Description rdf:about="http://dbpedia.org/ontology/continentalTournamentGold"> + <rdfs:domain rdf:resource="http://dbpedia.org/ontology/Person" /> + </rdf:Description> + <rdf:Description rdf:about="http://dbpedia.org/ontology/continentalTournamentSilver"> + <rdfs:domain rdf:resource="http://dbpedia.org/ontology/Person" /> + </rdf:Description> + <rdf:Description rdf:about="http://dbpedia.org/ontology/convictionDate"> + <rdfs:domain rdf:resource="http://dbpedia.org/ontology/Person" /> + </rdf:Description> + <rdf:Description rdf:about="http://dbpedia.org/ontology/copilote"> + <rdfs:domain rdf:resource="http://dbpedia.org/ontology/Person" /> + <rdfs:range rdf:resource="http://dbpedia.org/ontology/Person" /> + </rdf:Description> + <rdf:Description rdf:about="http://dbpedia.org/ontology/costumeDesigner"> + <rdfs:range rdf:resource="http://dbpedia.org/ontology/Person" /> + </rdf:Description> + <rdf:Description rdf:about="http://dbpedia.org/ontology/cousurper"> + <rdfs:domain rdf:resource="http://dbpedia.org/ontology/Person" /> + <rdfs:range rdf:resource="http://dbpedia.org/ontology/Person" /> + </rdf:Description> + <rdf:Description rdf:about="http://dbpedia.org/ontology/created"> + <rdfs:domain rdf:resource="http://dbpedia.org/ontology/Person" /> + </rdf:Description> + <rdf:Description rdf:about="http://dbpedia.org/ontology/currentTeamManager"> + <rdfs:domain rdf:resource="http://dbpedia.org/ontology/Person" /> + </rdf:Description> + <rdf:Description rdf:about="http://dbpedia.org/ontology/custodian"> + <rdfs:range rdf:resource="http://dbpedia.org/ontology/Person" /> + </rdf:Description> + <rdf:Description rdf:about="http://dbpedia.org/ontology/danseCompetition"> + <rdfs:domain rdf:resource="http://dbpedia.org/ontology/Person" /> + </rdf:Description> + <rdf:Description rdf:about="http://dbpedia.org/ontology/danseScore"> + <rdfs:domain rdf:resource="http://dbpedia.org/ontology/Person" /> + </rdf:Description> + <rdf:Description rdf:about="http://dbpedia.org/ontology/dateOfBurial"> + <rdfs:domain rdf:resource="http://dbpedia.org/ontology/Person" /> + </rdf:Description> + <rdf:Description rdf:about="http://dbpedia.org/ontology/daughter"> + <rdfs:range rdf:resource="http://dbpedia.org/ontology/Person" /> + </rdf:Description> + <rdf:Description rdf:about="http://dbpedia.org/ontology/deadInFightDate"> + <rdfs:domain rdf:resource="http://dbpedia.org/ontology/Person" /> + </rdf:Description> + <rdf:Description rdf:about="http://dbpedia.org/ontology/deadInFightPlace"> + <rdfs:domain rdf:resource="http://dbpedia.org/ontology/Person" /> + </rdf:Description> + <rdf:Description rdf:about="http://dbpedia.org/ontology/deathAge"> + <rdfs:domain rdf:resource="http://dbpedia.org/ontology/Person" /> + </rdf:Description> + <rdf:Description rdf:about="http://dbpedia.org/ontology/debutWork"> + <rdfs:domain rdf:resource="http://dbpedia.org/ontology/Person" /> + </rdf:Description> + <rdf:Description rdf:about="http://dbpedia.org/ontology/decoration"> + <rdfs:domain rdf:resource="http://dbpedia.org/ontology/Person" /> + </rdf:Description> + <rdf:Description rdf:about="http://dbpedia.org/ontology/delegateMayor"> + <rdfs:range rdf:resource="http://dbpedia.org/ontology/Person" /> + </rdf:Description> + <rdf:Description rdf:about="http://dbpedia.org/ontology/derivedWord"> + <rdfs:domain rdf:resource="http://dbpedia.org/ontology/Person" /> + </rdf:Description> + <rdf:Description rdf:about="http://dbpedia.org/ontology/detractor"> + <rdfs:domain rdf:resource="http://dbpedia.org/ontology/Person" /> + <rdfs:range rdf:resource="http://dbpedia.org/ontology/Person" /> + </rdf:Description> + <rdf:Description rdf:about="http://dbpedia.org/ontology/diploma"> + <rdfs:domain rdf:resource="http://dbpedia.org/ontology/Person" /> + </rdf:Description> + <rdf:Description rdf:about="http://dbpedia.org/ontology/dubber"> + <rdfs:domain rdf:resource="http://dbpedia.org/ontology/Person" /> + <rdfs:range rdf:resource="http://dbpedia.org/ontology/Person" /> + </rdf:Description> + <rdf:Description rdf:about="http://dbpedia.org/ontology/educationPlace"> + <rdfs:domain rdf:resource="http://dbpedia.org/ontology/Person" /> + </rdf:Description> + <rdf:Description rdf:about="http://dbpedia.org/ontology/endCareer"> + <rdfs:domain rdf:resource="http://dbpedia.org/ontology/Person" /> + </rdf:Description> + <rdf:Description rdf:about="http://dbpedia.org/ontology/endReign"> + <rdfs:domain rdf:resource="http://dbpedia.org/ontology/Person" /> + </rdf:Description> + <rdf:Description rdf:about="http://dbpedia.org/ontology/escalafon"> + <rdfs:domain rdf:resource="http://dbpedia.org/ontology/Person" /> + </rdf:Description> + <rdf:Description rdf:about="http://dbpedia.org/ontology/ethnicity"> + <rdfs:domain rdf:resource="http://dbpedia.org/ontology/Person" /> + </rdf:Description> + <rdf:Description rdf:about="http://dbpedia.org/ontology/executiveHeadteacher"> + <rdfs:range rdf:resource="http://dbpedia.org/ontology/Person" /> + </rdf:Description> + <rdf:Description rdf:about="http://dbpedia.org/ontology/expedition"> + <rdfs:domain rdf:resource="http://dbpedia.org/ontology/Person" /> + </rdf:Description> + <rdf:Description rdf:about="http://dbpedia.org/ontology/externalOrnament"> + <rdfs:domain rdf:resource="http://dbpedia.org/ontology/Person" /> + </rdf:Description> + <rdf:Description rdf:about="http://dbpedia.org/ontology/eyeColour"> + <rdfs:domain rdf:resource="http://dbpedia.org/ontology/Person" /> + </rdf:Description> + <rdf:Description rdf:about="http://dbpedia.org/ontology/familyMember"> + <rdfs:range rdf:resource="http://dbpedia.org/ontology/Person" /> + </rdf:Description> + <rdf:Description rdf:about="http://dbpedia.org/ontology/feat"> + <rdfs:domain rdf:resource="http://dbpedia.org/ontology/Person" /> + </rdf:Description> + <rdf:Description rdf:about="http://dbpedia.org/ontology/federation"> + <rdfs:domain rdf:resource="http://dbpedia.org/ontology/Person" /> + </rdf:Description> + <rdf:Description rdf:about="http://dbpedia.org/ontology/filmNumber"> + <rdfs:domain rdf:resource="http://dbpedia.org/ontology/Person" /> + </rdf:Description> + <rdf:Description rdf:about="http://dbpedia.org/ontology/flagBearer"> + <rdfs:range rdf:resource="http://dbpedia.org/ontology/Person" /> + </rdf:Description> + <rdf:Description rdf:about="http://dbpedia.org/ontology/foot"> + <rdfs:domain rdf:resource="http://dbpedia.org/ontology/Person" /> + </rdf:Description> + <rdf:Description rdf:about="http://dbpedia.org/ontology/footedness"> + <rdfs:range rdf:resource="http://dbpedia.org/ontology/Person" /> + </rdf:Description> + <rdf:Description rdf:about="http://dbpedia.org/ontology/freeDanseScore"> + <rdfs:domain rdf:resource="http://dbpedia.org/ontology/Person" /> + </rdf:Description> + <rdf:Description rdf:about="http://dbpedia.org/ontology/freeProgCompetition"> + <rdfs:domain rdf:resource="http://dbpedia.org/ontology/Person" /> + </rdf:Description> + <rdf:Description rdf:about="http://dbpedia.org/ontology/freeProgScore"> + <rdfs:domain rdf:resource="http://dbpedia.org/ontology/Person" /> + </rdf:Description> + <rdf:Description rdf:about="http://dbpedia.org/ontology/freeScoreCompetition"> + <rdfs:domain rdf:resource="http://dbpedia.org/ontology/Person" /> + </rdf:Description> + <rdf:Description rdf:about="http://dbpedia.org/ontology/friend"> + <rdfs:domain rdf:resource="http://dbpedia.org/ontology/Person" /> + <rdfs:range rdf:resource="http://dbpedia.org/ontology/Person" /> + </rdf:Description> + <rdf:Description rdf:about="http://dbpedia.org/ontology/fullCompetition"> + <rdfs:domain rdf:resource="http://dbpedia.org/ontology/Person" /> + </rdf:Description> + <rdf:Description rdf:about="http://dbpedia.org/ontology/fullScore"> + <rdfs:domain rdf:resource="http://dbpedia.org/ontology/Person" /> + </rdf:Description> + <rdf:Description rdf:about="http://dbpedia.org/ontology/grave"> + <rdfs:domain rdf:resource="http://dbpedia.org/ontology/Person" /> + </rdf:Description> + <rdf:Description rdf:about="http://dbpedia.org/ontology/guest"> + <rdfs:range rdf:resource="http://dbpedia.org/ontology/Person" /> + </rdf:Description> + <rdf:Description rdf:about="http://dbpedia.org/ontology/gymApparatus"> + <rdfs:domain rdf:resource="http://dbpedia.org/ontology/Person" /> + </rdf:Description> + <rdf:Description rdf:about="http://dbpedia.org/ontology/hairColour"> + <rdfs:domain rdf:resource="http://dbpedia.org/ontology/Person" /> + </rdf:Description> + <rdf:Description rdf:about="http://dbpedia.org/ontology/hand"> + <rdfs:domain rdf:resource="http://dbpedia.org/ontology/Person" /> + </rdf:Description> + <rdf:Description rdf:about="http://dbpedia.org/ontology/handedness"> + <rdfs:domain rdf:resource="http://dbpedia.org/ontology/Person" /> + </rdf:Description> + <rdf:Description rdf:about="http://dbpedia.org/ontology/handisport"> + <rdfs:domain rdf:resource="http://dbpedia.org/ontology/Person" /> + </rdf:Description> + <rdf:Description rdf:about="http://dbpedia.org/ontology/hasNaturalBust"> + <rdfs:domain rdf:resource="http://dbpedia.org/ontology/Person" /> + </rdf:Description> + <rdf:Description rdf:about="http://dbpedia.org/ontology/headOfFamily"> + <rdfs:range rdf:resource="http://dbpedia.org/ontology/Person" /> + </rdf:Description> + <rdf:Description rdf:about="http://dbpedia.org/ontology/headteacher"> + <rdfs:range rdf:resource="http://dbpedia.org/ontology/Person" /> + </rdf:Description> + <rdf:Description rdf:about="http://dbpedia.org/ontology/heir"> + <rdfs:range rdf:resource="http://dbpedia.org/ontology/Person" /> + </rdf:Description> + <rdf:Description rdf:about="http://dbpedia.org/ontology/hipSize"> + <rdfs:domain rdf:resource="http://dbpedia.org/ontology/Person" /> + </rdf:Description> + <rdf:Description rdf:about="http://dbpedia.org/ontology/homage"> + <rdfs:domain rdf:resource="http://dbpedia.org/ontology/Person" /> + </rdf:Description> + <rdf:Description rdf:about="http://dbpedia.org/ontology/idNumber"> + <rdfs:domain rdf:resource="http://dbpedia.org/ontology/Person" /> + </rdf:Description> + <rdf:Description rdf:about="http://dbpedia.org/ontology/iihfHof"> + <rdfs:domain rdf:resource="http://dbpedia.org/ontology/Person" /> + </rdf:Description> + <rdf:Description rdf:about="http://dbpedia.org/ontology/imposedDanseCompetition"> + <rdfs:domain rdf:resource="http://dbpedia.org/ontology/Person" /> + </rdf:Description> + <rdf:Description rdf:about="http://dbpedia.org/ontology/imposedDanseScore"> + <rdfs:domain rdf:resource="http://dbpedia.org/ontology/Person" /> + </rdf:Description> + <rdf:Description rdf:about="http://dbpedia.org/ontology/individualisedPnd"> + <rdfs:domain rdf:resource="http://dbpedia.org/ontology/Person" /> + </rdf:Description> + <rdf:Description rdf:about="http://dbpedia.org/ontology/juniorYearsEndYear"> + <rdfs:domain rdf:resource="http://dbpedia.org/ontology/Person" /> + </rdf:Description> + <rdf:Description rdf:about="http://dbpedia.org/ontology/juniorYearsStartYear"> + <rdfs:domain rdf:resource="http://dbpedia.org/ontology/Person" /> + </rdf:Description> + <rdf:Description rdf:about="http://dbpedia.org/ontology/jutsu"> + <rdfs:domain rdf:resource="http://dbpedia.org/ontology/Person" /> + </rdf:Description> + <rdf:Description rdf:about="http://dbpedia.org/ontology/killedBy"> + <rdfs:domain rdf:resource="http://dbpedia.org/ontology/Person" /> + </rdf:Description> + <rdf:Description rdf:about="http://dbpedia.org/ontology/lahHof"> + <rdfs:domain rdf:resource="http://dbpedia.org/ontology/Person" /> + </rdf:Description> + <rdf:Description rdf:about="http://dbpedia.org/ontology/landeshauptmann"> + <rdfs:range rdf:resource="http://dbpedia.org/ontology/Person" /> + </rdf:Description> + <rdf:Description rdf:about="http://dbpedia.org/ontology/lastFamilyMember"> + <rdfs:range rdf:resource="http://dbpedia.org/ontology/Person" /> + </rdf:Description> + <rdf:Description rdf:about="http://dbpedia.org/ontology/leadership"> + <rdfs:domain rdf:resource="http://dbpedia.org/ontology/Person" /> + </rdf:Description> + <rdf:Description rdf:about="http://dbpedia.org/ontology/leagueManager"> + <rdfs:domain rdf:resource="http://dbpedia.org/ontology/Person" /> + </rdf:Description> + <rdf:Description rdf:about="http://dbpedia.org/ontology/linguisticsTradition"> + <rdfs:domain rdf:resource="http://dbpedia.org/ontology/Person" /> + </rdf:Description> + <rdf:Description rdf:about="http://dbpedia.org/ontology/littlePoolRecord"> + <rdfs:domain rdf:resource="http://dbpedia.org/ontology/Person" /> + </rdf:Description> + <rdf:Description rdf:about="http://dbpedia.org/ontology/livingPlace"> + <rdfs:domain rdf:resource="http://dbpedia.org/ontology/Person" /> + </rdf:Description> + <rdf:Description rdf:about="http://dbpedia.org/ontology/mainCharacter"> + <rdfs:range rdf:resource="http://dbpedia.org/ontology/Person" /> + </rdf:Description> + <rdf:Description rdf:about="http://dbpedia.org/ontology/mainDomain"> + <rdfs:domain rdf:resource="http://dbpedia.org/ontology/Person" /> + </rdf:Description> + <rdf:Description rdf:about="http://dbpedia.org/ontology/makeupArtist"> + <rdfs:range rdf:resource="http://dbpedia.org/ontology/Person" /> + </rdf:Description> + <rdf:Description rdf:about="http://dbpedia.org/ontology/mastersWins"> + <rdfs:domain rdf:resource="http://dbpedia.org/ontology/Person" /> + </rdf:Description> + <rdf:Description rdf:about="http://dbpedia.org/ontology/matchPoint"> + <rdfs:domain rdf:resource="http://dbpedia.org/ontology/Person" /> + </rdf:Description> + <rdf:Description rdf:about="http://dbpedia.org/ontology/measurements"> + <rdfs:domain rdf:resource="http://dbpedia.org/ontology/Person" /> + </rdf:Description> + <rdf:Description rdf:about="http://dbpedia.org/ontology/medalist"> + <rdfs:range rdf:resource="http://dbpedia.org/ontology/Person" /> + </rdf:Description> + <rdf:Description rdf:about="http://dbpedia.org/ontology/media"> + <rdfs:domain rdf:resource="http://dbpedia.org/ontology/Person" /> + </rdf:Description> + <rdf:Description rdf:about="http://dbpedia.org/ontology/member"> + <rdfs:domain rdf:resource="http://dbpedia.org/ontology/Person" /> + </rdf:Description> + <rdf:Description rdf:about="http://dbpedia.org/ontology/memberOfParliament"> + <rdfs:range rdf:resource="http://dbpedia.org/ontology/Person" /> + </rdf:Description> + <rdf:Description rdf:about="http://dbpedia.org/ontology/mood"> + <rdfs:domain rdf:resource="http://dbpedia.org/ontology/Person" /> + </rdf:Description> + <rdf:Description rdf:about="http://dbpedia.org/ontology/mount"> + <rdfs:domain rdf:resource="http://dbpedia.org/ontology/Person" /> + </rdf:Description> + <rdf:Description rdf:about="http://dbpedia.org/ontology/movie"> + <rdfs:domain rdf:resource="http://dbpedia.org/ontology/Person" /> + </rdf:Description> + <rdf:Description rdf:about="http://dbpedia.org/ontology/nationalTeamMatchPoint"> + <rdfs:domain rdf:resource="http://dbpedia.org/ontology/Person" /> + </rdf:Description> + <rdf:Description rdf:about="http://dbpedia.org/ontology/nationalTeamYear"> + <rdfs:domain rdf:resource="http://dbpedia.org/ontology/Person" /> + </rdf:Description> + <rdf:Description rdf:about="http://dbpedia.org/ontology/nationalTournament"> + <rdfs:domain rdf:resource="http://dbpedia.org/ontology/Person" /> + </rdf:Description> + <rdf:Description rdf:about="http://dbpedia.org/ontology/nationalTournamentBronze"> + <rdfs:domain rdf:resource="http://dbpedia.org/ontology/Person" /> + </rdf:Description> + <rdf:Description rdf:about="http://dbpedia.org/ontology/nationalTournamentGold"> + <rdfs:domain rdf:resource="http://dbpedia.org/ontology/Person" /> + </rdf:Description> + <rdf:Description rdf:about="http://dbpedia.org/ontology/nationalTournamentSilver"> + <rdfs:domain rdf:resource="http://dbpedia.org/ontology/Person" /> + </rdf:Description> + <rdf:Description rdf:about="http://dbpedia.org/ontology/networth"> + <rdfs:domain rdf:resource="http://dbpedia.org/ontology/Person" /> + </rdf:Description> + <rdf:Description rdf:about="http://dbpedia.org/ontology/nndbId"> + <rdfs:domain rdf:resource="http://dbpedia.org/ontology/Person" /> + </rdf:Description> + <rdf:Description rdf:about="http://dbpedia.org/ontology/nonProfessionalCareer"> + <rdfs:domain rdf:resource="http://dbpedia.org/ontology/Person" /> + </rdf:Description> + <rdf:Description rdf:about="http://dbpedia.org/ontology/noteOnRestingPlace"> + <rdfs:domain rdf:resource="http://dbpedia.org/ontology/Person" /> + </rdf:Description> + <rdf:Description rdf:about="http://dbpedia.org/ontology/numberOfRun"> + <rdfs:domain rdf:resource="http://dbpedia.org/ontology/Person" /> + </rdf:Description> + <rdf:Description rdf:about="http://dbpedia.org/ontology/officialOpenedBy"> + <rdfs:range rdf:resource="http://dbpedia.org/ontology/Person" /> + </rdf:Description> + <rdf:Description rdf:about="http://dbpedia.org/ontology/olympicGames"> + <rdfs:domain rdf:resource="http://dbpedia.org/ontology/Person" /> + </rdf:Description> + <rdf:Description rdf:about="http://dbpedia.org/ontology/olympicGamesBronze"> + <rdfs:domain rdf:resource="http://dbpedia.org/ontology/Person" /> + </rdf:Description> + <rdf:Description rdf:about="http://dbpedia.org/ontology/olympicGamesGold"> + <rdfs:domain rdf:resource="http://dbpedia.org/ontology/Person" /> + </rdf:Description> + <rdf:Description rdf:about="http://dbpedia.org/ontology/olympicGamesSilver"> + <rdfs:domain rdf:resource="http://dbpedia.org/ontology/Person" /> + </rdf:Description> + <rdf:Description rdf:about="http://dbpedia.org/ontology/olympicGamesWins"> + <rdfs:domain rdf:resource="http://dbpedia.org/ontology/Person" /> + </rdf:Description> + <rdf:Description rdf:about="http://dbpedia.org/ontology/olympicOathSwornBy"> + <rdfs:range rdf:resource="http://dbpedia.org/ontology/Person" /> + </rdf:Description> + <rdf:Description rdf:about="http://dbpedia.org/ontology/olympicOathSwornByAthlete"> + <rdfs:range rdf:resource="http://dbpedia.org/ontology/Person" /> + </rdf:Description> + <rdf:Description rdf:about="http://dbpedia.org/ontology/olympicOathSwornByJudge"> + <rdfs:range rdf:resource="http://dbpedia.org/ontology/Person" /> + </rdf:Description> + <rdf:Description rdf:about="http://dbpedia.org/ontology/orientation"> + <rdfs:domain rdf:resource="http://dbpedia.org/ontology/Person" /> + </rdf:Description> + <rdf:Description rdf:about="http://dbpedia.org/ontology/originalDanseCompetition"> + <rdfs:domain rdf:resource="http://dbpedia.org/ontology/Person" /> + </rdf:Description> + <rdf:Description rdf:about="http://dbpedia.org/ontology/originalDanseScore"> + <rdfs:domain rdf:resource="http://dbpedia.org/ontology/Person" /> + </rdf:Description> + <rdf:Description rdf:about="http://dbpedia.org/ontology/otherActivity"> + <rdfs:domain rdf:resource="http://dbpedia.org/ontology/Person" /> + </rdf:Description> + <rdf:Description rdf:about="http://dbpedia.org/ontology/otherFunction"> + <rdfs:domain rdf:resource="http://dbpedia.org/ontology/Person" /> + </rdf:Description> + <rdf:Description rdf:about="http://dbpedia.org/ontology/otherMedia"> + <rdfs:domain rdf:resource="http://dbpedia.org/ontology/Person" /> + </rdf:Description> + <rdf:Description rdf:about="http://dbpedia.org/ontology/otherOccupation"> + <rdfs:domain rdf:resource="http://dbpedia.org/ontology/Person" /> + </rdf:Description> + <rdf:Description rdf:about="http://dbpedia.org/ontology/painter"> + <rdfs:range rdf:resource="http://dbpedia.org/ontology/Person" /> + </rdf:Description> + <rdf:Description rdf:about="http://dbpedia.org/ontology/parliamentaryGroup"> + <rdfs:domain rdf:resource="http://dbpedia.org/ontology/Person" /> + </rdf:Description> + <rdf:Description rdf:about="http://dbpedia.org/ontology/particularSign"> + <rdfs:domain rdf:resource="http://dbpedia.org/ontology/Person" /> + </rdf:Description> + <rdf:Description rdf:about="http://dbpedia.org/ontology/pastMember"> + <rdfs:range rdf:resource="http://dbpedia.org/ontology/Person" /> + </rdf:Description> + <rdf:Description rdf:about="http://dbpedia.org/ontology/pastor"> + <rdfs:range rdf:resource="http://dbpedia.org/ontology/Person" /> + </rdf:Description> + <rdf:Description rdf:about="http://dbpedia.org/ontology/patent"> + <rdfs:domain rdf:resource="http://dbpedia.org/ontology/Person" /> + </rdf:Description> + <rdf:Description rdf:about="http://dbpedia.org/ontology/penisLength"> + <rdfs:domain rdf:resource="http://dbpedia.org/ontology/Person" /> + </rdf:Description> + <rdf:Description rdf:about="http://dbpedia.org/ontology/performer"> + <rdfs:range rdf:resource="http://dbpedia.org/ontology/Person" /> + </rdf:Description> + <rdf:Description rdf:about="http://dbpedia.org/ontology/pgaWins"> + <rdfs:domain rdf:resource="http://dbpedia.org/ontology/Person" /> + </rdf:Description> + <rdf:Description rdf:about="http://dbpedia.org/ontology/piercing"> + <rdfs:domain rdf:resource="http://dbpedia.org/ontology/Person" /> + </rdf:Description> + <rdf:Description rdf:about="http://dbpedia.org/ontology/playerInTeam"> + <rdfs:range rdf:resource="http://dbpedia.org/ontology/Person" /> + </rdf:Description> + <rdf:Description rdf:about="http://dbpedia.org/ontology/playerStatus"> + <rdfs:domain rdf:resource="http://dbpedia.org/ontology/Person" /> + </rdf:Description> + <rdf:Description rdf:about="http://dbpedia.org/ontology/podium"> + <rdfs:domain rdf:resource="http://dbpedia.org/ontology/Person" /> + </rdf:Description> + <rdf:Description rdf:about="http://dbpedia.org/ontology/polePosition"> + <rdfs:domain rdf:resource="http://dbpedia.org/ontology/Person" /> + </rdf:Description> + <rdf:Description rdf:about="http://dbpedia.org/ontology/politicalFunction"> + <rdfs:domain rdf:resource="http://dbpedia.org/ontology/Person" /> + </rdf:Description> + <rdf:Description rdf:about="http://dbpedia.org/ontology/prefaceBy"> + <rdfs:range rdf:resource="http://dbpedia.org/ontology/Person" /> + </rdf:Description> + <rdf:Description rdf:about="http://dbpedia.org/ontology/prefect"> + <rdfs:range rdf:resource="http://dbpedia.org/ontology/Person" /> + </rdf:Description> + <rdf:Description rdf:about="http://dbpedia.org/ontology/presidentGeneralCouncil"> + <rdfs:range rdf:resource="http://dbpedia.org/ontology/Person" /> + </rdf:Description> + <rdf:Description rdf:about="http://dbpedia.org/ontology/presidentRegionalCouncil"> + <rdfs:range rdf:resource="http://dbpedia.org/ontology/Person" /> + </rdf:Description> + <rdf:Description rdf:about="http://dbpedia.org/ontology/primogenitor"> + <rdfs:range rdf:resource="http://dbpedia.org/ontology/Person" /> + </rdf:Description> + <rdf:Description rdf:about="http://dbpedia.org/ontology/project"> + <rdfs:domain rdf:resource="http://dbpedia.org/ontology/Person" /> + </rdf:Description> + <rdf:Description rdf:about="http://dbpedia.org/ontology/publication"> + <rdfs:domain rdf:resource="http://dbpedia.org/ontology/Person" /> + </rdf:Description> + <rdf:Description rdf:about="http://dbpedia.org/ontology/raceWins"> + <rdfs:domain rdf:resource="http://dbpedia.org/ontology/Person" /> + </rdf:Description> + <rdf:Description rdf:about="http://dbpedia.org/ontology/radio"> + <rdfs:domain rdf:resource="http://dbpedia.org/ontology/Person" /> + </rdf:Description> + <rdf:Description rdf:about="http://dbpedia.org/ontology/reffBourgmestre"> + <rdfs:range rdf:resource="http://dbpedia.org/ontology/Person" /> + </rdf:Description> + <rdf:Description rdf:about="http://dbpedia.org/ontology/reign"> + <rdfs:domain rdf:resource="http://dbpedia.org/ontology/Person" /> + </rdf:Description> + <rdf:Description rdf:about="http://dbpedia.org/ontology/reignName"> + <rdfs:domain rdf:resource="http://dbpedia.org/ontology/Person" /> + </rdf:Description> + <rdf:Description rdf:about="http://dbpedia.org/ontology/relatedFunctions"> + <rdfs:domain rdf:resource="http://dbpedia.org/ontology/Person" /> + </rdf:Description> + <rdf:Description rdf:about="http://dbpedia.org/ontology/restingDate"> + <rdfs:domain rdf:resource="http://dbpedia.org/ontology/Person" /> + </rdf:Description> + <rdf:Description rdf:about="http://dbpedia.org/ontology/retirementDate"> + <rdfs:domain rdf:resource="http://dbpedia.org/ontology/Person" /> + </rdf:Description> + <rdf:Description rdf:about="http://dbpedia.org/ontology/salary"> + <rdfs:domain rdf:resource="http://dbpedia.org/ontology/Person" /> + </rdf:Description> + <rdf:Description rdf:about="http://dbpedia.org/ontology/scene"> + <rdfs:domain rdf:resource="http://dbpedia.org/ontology/Person" /> + </rdf:Description> + <rdf:Description rdf:about="http://dbpedia.org/ontology/seasonManager"> + <rdfs:domain rdf:resource="http://dbpedia.org/ontology/Person" /> + </rdf:Description> + <rdf:Description rdf:about="http://dbpedia.org/ontology/second"> + <rdfs:domain rdf:resource="http://dbpedia.org/ontology/Person" /> + </rdf:Description> + <rdf:Description rdf:about="http://dbpedia.org/ontology/seiyu"> + <rdfs:domain rdf:resource="http://dbpedia.org/ontology/Person" /> + <rdfs:range rdf:resource="http://dbpedia.org/ontology/Person" /> + </rdf:Description> + <rdf:Description rdf:about="http://dbpedia.org/ontology/senator"> + <rdfs:range rdf:resource="http://dbpedia.org/ontology/Person" /> + </rdf:Description> + <rdf:Description rdf:about="http://dbpedia.org/ontology/sentence"> + <rdfs:domain rdf:resource="http://dbpedia.org/ontology/Person" /> + </rdf:Description> + <rdf:Description rdf:about="http://dbpedia.org/ontology/setDesigner"> + <rdfs:range rdf:resource="http://dbpedia.org/ontology/Person" /> + </rdf:Description> + <rdf:Description rdf:about="http://dbpedia.org/ontology/sexualOrientation"> + <rdfs:domain rdf:resource="http://dbpedia.org/ontology/Person" /> + </rdf:Description> + <rdf:Description rdf:about="http://dbpedia.org/ontology/shipCrew"> + <rdfs:range rdf:resource="http://dbpedia.org/ontology/Person" /> + </rdf:Description> + <rdf:Description rdf:about="http://dbpedia.org/ontology/shoeNumber"> + <rdfs:domain rdf:resource="http://dbpedia.org/ontology/Person" /> + </rdf:Description> + <rdf:Description rdf:about="http://dbpedia.org/ontology/shoeSize"> + <rdfs:domain rdf:resource="http://dbpedia.org/ontology/Person" /> + </rdf:Description> + <rdf:Description rdf:about="http://dbpedia.org/ontology/shoot"> + <rdfs:domain rdf:resource="http://dbpedia.org/ontology/Person" /> + </rdf:Description> + <rdf:Description rdf:about="http://dbpedia.org/ontology/shortProgCompetition"> + <rdfs:domain rdf:resource="http://dbpedia.org/ontology/Person" /> + </rdf:Description> + <rdf:Description rdf:about="http://dbpedia.org/ontology/shortProgScore"> + <rdfs:domain rdf:resource="http://dbpedia.org/ontology/Person" /> + </rdf:Description> + <rdf:Description rdf:about="http://dbpedia.org/ontology/sibling"> + <rdfs:domain rdf:resource="http://dbpedia.org/ontology/Person" /> + <rdfs:range rdf:resource="http://dbpedia.org/ontology/Person" /> + </rdf:Description> + <rdf:Description rdf:about="http://dbpedia.org/ontology/sister"> + <rdfs:range rdf:resource="http://dbpedia.org/ontology/Person" /> + </rdf:Description> + <rdf:Description rdf:about="http://dbpedia.org/ontology/skinColor"> + <rdfs:domain rdf:resource="http://dbpedia.org/ontology/Person" /> + </rdf:Description> + <rdf:Description rdf:about="http://dbpedia.org/ontology/solicitorGeneral"> + <rdfs:range rdf:resource="http://dbpedia.org/ontology/Person" /> + </rdf:Description> + <rdf:Description rdf:about="http://dbpedia.org/ontology/son"> + <rdfs:range rdf:resource="http://dbpedia.org/ontology/Person" /> + </rdf:Description> + <rdf:Description rdf:about="http://dbpedia.org/ontology/specialEffects"> + <rdfs:range rdf:resource="http://dbpedia.org/ontology/Person" /> + </rdf:Description> + <rdf:Description rdf:about="http://dbpedia.org/ontology/specialTrial"> + <rdfs:domain rdf:resource="http://dbpedia.org/ontology/Person" /> + </rdf:Description> + <rdf:Description rdf:about="http://dbpedia.org/ontology/speciality"> + <rdfs:domain rdf:resource="http://dbpedia.org/ontology/Person" /> + </rdf:Description> + <rdf:Description rdf:about="http://dbpedia.org/ontology/sportDiscipline"> + <rdfs:domain rdf:resource="http://dbpedia.org/ontology/Person" /> + </rdf:Description> + <rdf:Description rdf:about="http://dbpedia.org/ontology/sportsFunction"> + <rdfs:domain rdf:resource="http://dbpedia.org/ontology/Person" /> + </rdf:Description> + <rdf:Description rdf:about="http://dbpedia.org/ontology/spouseName"> + <rdfs:domain rdf:resource="http://dbpedia.org/ontology/Person" /> + </rdf:Description> + <rdf:Description rdf:about="http://dbpedia.org/ontology/startCareer"> + <rdfs:domain rdf:resource="http://dbpedia.org/ontology/Person" /> + </rdf:Description> + <rdf:Description rdf:about="http://dbpedia.org/ontology/startReign"> + <rdfs:domain rdf:resource="http://dbpedia.org/ontology/Person" /> + </rdf:Description> + <rdf:Description rdf:about="http://dbpedia.org/ontology/startWct"> + <rdfs:domain rdf:resource="http://dbpedia.org/ontology/Person" /> + </rdf:Description> + <rdf:Description rdf:about="http://dbpedia.org/ontology/startWqs"> + <rdfs:domain rdf:resource="http://dbpedia.org/ontology/Person" /> + </rdf:Description> + <rdf:Description rdf:about="http://dbpedia.org/ontology/stateDelegate"> + <rdfs:range rdf:resource="http://dbpedia.org/ontology/Person" /> + </rdf:Description> + <rdf:Description rdf:about="http://dbpedia.org/ontology/statusManager"> + <rdfs:domain rdf:resource="http://dbpedia.org/ontology/Person" /> + </rdf:Description> + <rdf:Description rdf:about="http://dbpedia.org/ontology/storyEditor"> + <rdfs:range rdf:resource="http://dbpedia.org/ontology/Person" /> + </rdf:Description> + <rdf:Description rdf:about="http://dbpedia.org/ontology/student"> + <rdfs:domain rdf:resource="http://dbpedia.org/ontology/Person" /> + <rdfs:range rdf:resource="http://dbpedia.org/ontology/Person" /> + </rdf:Description> + <rdf:Description rdf:about="http://dbpedia.org/ontology/tattoo"> + <rdfs:domain rdf:resource="http://dbpedia.org/ontology/Person" /> + </rdf:Description> + <rdf:Description rdf:about="http://dbpedia.org/ontology/teamManager"> + <rdfs:domain rdf:resource="http://dbpedia.org/ontology/Person" /> + </rdf:Description> + <rdf:Description rdf:about="http://dbpedia.org/ontology/temple"> + <rdfs:domain rdf:resource="http://dbpedia.org/ontology/Person" /> + </rdf:Description> + <rdf:Description rdf:about="http://dbpedia.org/ontology/templeYear"> + <rdfs:domain rdf:resource="http://dbpedia.org/ontology/Person" /> + </rdf:Description> + <rdf:Description rdf:about="http://dbpedia.org/ontology/tessitura"> + <rdfs:domain rdf:resource="http://dbpedia.org/ontology/Person" /> + </rdf:Description> + <rdf:Description rdf:about="http://dbpedia.org/ontology/third"> + <rdfs:domain rdf:resource="http://dbpedia.org/ontology/Person" /> + </rdf:Description> + <rdf:Description rdf:about="http://dbpedia.org/ontology/titleDate"> + <rdfs:domain rdf:resource="http://dbpedia.org/ontology/Person" /> + </rdf:Description> + <rdf:Description rdf:about="http://dbpedia.org/ontology/torchBearer"> + <rdfs:range rdf:resource="http://dbpedia.org/ontology/Person" /> + </rdf:Description> + <rdf:Description rdf:about="http://dbpedia.org/ontology/tvShow"> + <rdfs:domain rdf:resource="http://dbpedia.org/ontology/Person" /> + </rdf:Description> + <rdf:Description rdf:about="http://dbpedia.org/ontology/uncle"> + <rdfs:range rdf:resource="http://dbpedia.org/ontology/Person" /> + </rdf:Description> + <rdf:Description rdf:about="http://dbpedia.org/ontology/usopenWins"> + <rdfs:domain rdf:resource="http://dbpedia.org/ontology/Person" /> + </rdf:Description> + <rdf:Description rdf:about="http://dbpedia.org/ontology/usurper"> + <rdfs:domain rdf:resource="http://dbpedia.org/ontology/Person" /> + <rdfs:range rdf:resource="http://dbpedia.org/ontology/Person" /> + </rdf:Description> + <rdf:Description rdf:about="http://dbpedia.org/ontology/vicePrincipal"> + <rdfs:range rdf:resource="http://dbpedia.org/ontology/Person" /> + </rdf:Description> + <rdf:Description rdf:about="http://dbpedia.org/ontology/victory"> + <rdfs:domain rdf:resource="http://dbpedia.org/ontology/Person" /> + </rdf:Description> + <rdf:Description rdf:about="http://dbpedia.org/ontology/victoryAsMgr"> + <rdfs:domain rdf:resource="http://dbpedia.org/ontology/Person" /> + </rdf:Description> + <rdf:Description rdf:about="http://dbpedia.org/ontology/victoryPercentageAsMgr"> + <rdfs:domain rdf:resource="http://dbpedia.org/ontology/Person" /> + </rdf:Description> + <rdf:Description rdf:about="http://dbpedia.org/ontology/waistSize"> + <rdfs:domain rdf:resource="http://dbpedia.org/ontology/Person" /> + </rdf:Description> + <rdf:Description rdf:about="http://dbpedia.org/ontology/weddingParentsDate"> + <rdfs:domain rdf:resource="http://dbpedia.org/ontology/Person" /> + </rdf:Description> + <rdf:Description rdf:about="http://dbpedia.org/ontology/world"> + <rdfs:domain rdf:resource="http://dbpedia.org/ontology/Person" /> + </rdf:Description> + <rdf:Description rdf:about="http://dbpedia.org/ontology/worldTournament"> + <rdfs:domain rdf:resource="http://dbpedia.org/ontology/Person" /> + </rdf:Description> + <rdf:Description rdf:about="http://dbpedia.org/ontology/worldTournamentBronze"> + <rdfs:domain rdf:resource="http://dbpedia.org/ontology/Person" /> + </rdf:Description> + <rdf:Description rdf:about="http://dbpedia.org/ontology/worldTournamentGold"> + <rdfs:domain rdf:resource="http://dbpedia.org/ontology/Person" /> + </rdf:Description> + <rdf:Description rdf:about="http://dbpedia.org/ontology/worldTournamentSilver"> + <rdfs:domain rdf:resource="http://dbpedia.org/ontology/Person" /> + </rdf:Description> + <rdf:Description rdf:about="http://dbpedia.org/ontology/Øرکت_پذیر_پیدل_چلنے_کا_راستÛ"> + <owl:disjointWith rdf:resource="http://dbpedia.org/ontology/Person" /> + </rdf:Description> + <rdf:Description rdf:about="http://dbpedia.org/ontology/Ù¾Ûاڑ"> + <owl:disjointWith rdf:resource="http://dbpedia.org/ontology/Person" /> + </rdf:Description> + <rdf:Description rdf:about="http://dbpedia.org/ontology/restingPlace"> + <rdfs:domain rdf:resource="http://dbpedia.org/ontology/Person" /> + </rdf:Description> + <rdf:Description rdf:about="http://dbpedia.org/ontology/stateOfOrigin"> + <rdfs:domain rdf:resource="http://dbpedia.org/ontology/Person" /> + </rdf:Description> + <rdf:Description rdf:about="http://dbpedia.org/ontology/runningMate"> + <rdfs:range rdf:resource="http://dbpedia.org/ontology/Person" /> + </rdf:Description> + <rdf:Description rdf:about="http://dbpedia.org/ontology/birthName"> + <rdfs:domain rdf:resource="http://dbpedia.org/ontology/Person" /> + </rdf:Description> + <rdf:Description rdf:about="http://dbpedia.org/ontology/birthYear"> + <rdfs:domain rdf:resource="http://dbpedia.org/ontology/Person" /> + </rdf:Description> + <rdf:Description rdf:about="http://dbpedia.org/ontology/deathYear"> + <rdfs:domain rdf:resource="http://dbpedia.org/ontology/Person" /> + </rdf:Description> + <rdf:Description rdf:about="http://dbpedia.org/ontology/eyeColor"> + <rdfs:domain rdf:resource="http://dbpedia.org/ontology/Person" /> + </rdf:Description> + <rdf:Description rdf:about="http://dbpedia.org/ontology/hairColor"> + <rdfs:domain rdf:resource="http://dbpedia.org/ontology/Person" /> + </rdf:Description> + <rdf:Description rdf:about="http://dbpedia.org/ontology/pseudonym"> + <rdfs:domain rdf:resource="http://dbpedia.org/ontology/Person" /> + </rdf:Description> + <rdf:Description rdf:about="http://dbpedia.org/ontology/sex"> + <rdfs:domain rdf:resource="http://dbpedia.org/ontology/Person" /> + </rdf:Description> + <rdf:Description rdf:about="http://dbpedia.org/ontology/signature"> + <rdfs:domain rdf:resource="http://dbpedia.org/ontology/Person" /> + </rdf:Description> + <rdf:Description rdf:about="http://dbpedia.org/ontology/incumbent"> + <rdfs:range rdf:resource="http://dbpedia.org/ontology/Person" /> + </rdf:Description> + <rdf:Description rdf:about="http://dbpedia.org/ontology/nominee"> + <rdfs:range rdf:resource="http://dbpedia.org/ontology/Person" /> + </rdf:Description> + <rdf:Description rdf:about="http://dbpedia.org/ontology/president"> + <rdfs:range rdf:resource="http://dbpedia.org/ontology/Person" /> + </rdf:Description> + <rdf:Description rdf:about="http://dbpedia.org/ontology/generalManager"> + <rdfs:range rdf:resource="http://dbpedia.org/ontology/Person" /> + </rdf:Description> + <rdf:Description rdf:about="http://dbpedia.org/ontology/trustee"> + <rdfs:range rdf:resource="http://dbpedia.org/ontology/Person" /> + </rdf:Description> + <rdf:Description rdf:about="http://dbpedia.org/ontology/associateEditor"> + <rdfs:range rdf:resource="http://dbpedia.org/ontology/Person" /> + </rdf:Description> + <rdf:Description rdf:about="http://dbpedia.org/ontology/deathCause"> + <rdfs:domain rdf:resource="http://dbpedia.org/ontology/Person" /> + </rdf:Description> + <rdf:Description rdf:about="http://dbpedia.org/ontology/employer"> + <rdfs:domain rdf:resource="http://dbpedia.org/ontology/Person" /> + </rdf:Description> + <rdf:Description rdf:about="http://dbpedia.org/ontology/almaMater"> + <rdfs:domain rdf:resource="http://dbpedia.org/ontology/Person" /> + </rdf:Description> + <rdf:Description rdf:about="http://dbpedia.org/ontology/author"> + <rdfs:range rdf:resource="http://dbpedia.org/ontology/Person" /> + </rdf:Description> + <rdf:Description rdf:about="http://dbpedia.org/ontology/bandMember"> + <rdfs:range rdf:resource="http://dbpedia.org/ontology/Person" /> + </rdf:Description> + <rdf:Description rdf:about="http://dbpedia.org/ontology/chairman"> + <rdfs:range rdf:resource="http://dbpedia.org/ontology/Person" /> + </rdf:Description> + <rdf:Description rdf:about="http://dbpedia.org/ontology/child"> + <rdfs:domain rdf:resource="http://dbpedia.org/ontology/Person" /> + <rdfs:range rdf:resource="http://dbpedia.org/ontology/Person" /> + </rdf:Description> + <rdf:Description rdf:about="http://dbpedia.org/ontology/cinematography"> + <rdfs:range rdf:resource="http://dbpedia.org/ontology/Person" /> + </rdf:Description> + <rdf:Description rdf:about="http://dbpedia.org/ontology/coach"> + <rdfs:range rdf:resource="http://dbpedia.org/ontology/Person" /> + </rdf:Description> + <rdf:Description rdf:about="http://dbpedia.org/ontology/commander"> + <rdfs:range rdf:resource="http://dbpedia.org/ontology/Person" /> + </rdf:Description> + <rdf:Description rdf:about="http://dbpedia.org/ontology/composer"> + <rdfs:range rdf:resource="http://dbpedia.org/ontology/Person" /> + </rdf:Description> + <rdf:Description rdf:about="http://dbpedia.org/ontology/coverArtist"> + <rdfs:range rdf:resource="http://dbpedia.org/ontology/Person" /> + </rdf:Description> + <rdf:Description rdf:about="http://dbpedia.org/ontology/creativeDirector"> + <rdfs:range rdf:resource="http://dbpedia.org/ontology/Person" /> + </rdf:Description> + <rdf:Description rdf:about="http://dbpedia.org/ontology/currentMember"> + <rdfs:range rdf:resource="http://dbpedia.org/ontology/Person" /> + </rdf:Description> + <rdf:Description rdf:about="http://dbpedia.org/ontology/deputy"> + <rdfs:range rdf:resource="http://dbpedia.org/ontology/Person" /> + </rdf:Description> + <rdf:Description rdf:about="http://dbpedia.org/ontology/designer"> + <rdfs:range rdf:resource="http://dbpedia.org/ontology/Person" /> + </rdf:Description> + <rdf:Description rdf:about="http://dbpedia.org/ontology/director"> + <rdfs:range rdf:resource="http://dbpedia.org/ontology/Person" /> + </rdf:Description> + <rdf:Description rdf:about="http://dbpedia.org/ontology/discoverer"> + <rdfs:range rdf:resource="http://dbpedia.org/ontology/Person" /> + </rdf:Description> + <rdf:Description rdf:about="http://dbpedia.org/ontology/editing"> + <rdfs:range rdf:resource="http://dbpedia.org/ontology/Person" /> + </rdf:Description> + <rdf:Description rdf:about="http://dbpedia.org/ontology/education"> + <rdfs:domain rdf:resource="http://dbpedia.org/ontology/Person" /> + </rdf:Description> + <rdf:Description rdf:about="http://dbpedia.org/ontology/engineer"> + <rdfs:range rdf:resource="http://dbpedia.org/ontology/Person" /> + </rdf:Description> + <rdf:Description rdf:about="http://dbpedia.org/ontology/executiveProducer"> + <rdfs:range rdf:resource="http://dbpedia.org/ontology/Person" /> + </rdf:Description> + <rdf:Description rdf:about="http://dbpedia.org/ontology/fastestDriver"> + <rdfs:range rdf:resource="http://dbpedia.org/ontology/Person" /> + </rdf:Description> + <rdf:Description rdf:about="http://dbpedia.org/ontology/firstDriver"> + <rdfs:range rdf:resource="http://dbpedia.org/ontology/Person" /> + </rdf:Description> + <rdf:Description rdf:about="http://dbpedia.org/ontology/firstLeader"> + <rdfs:range rdf:resource="http://dbpedia.org/ontology/Person" /> + </rdf:Description> + <rdf:Description rdf:about="http://dbpedia.org/ontology/firstPopularVote"> + <rdfs:range rdf:resource="http://dbpedia.org/ontology/Person" /> + </rdf:Description> + <rdf:Description rdf:about="http://dbpedia.org/ontology/formerBandMember"> + <rdfs:range rdf:resource="http://dbpedia.org/ontology/Person" /> + </rdf:Description> + <rdf:Description rdf:about="http://dbpedia.org/ontology/founder"> + <rdfs:range rdf:resource="http://dbpedia.org/ontology/Person" /> + </rdf:Description> + <rdf:Description rdf:about="http://dbpedia.org/ontology/fourthCommander"> + <rdfs:range rdf:resource="http://dbpedia.org/ontology/Person" /> + </rdf:Description> + <rdf:Description rdf:about="http://dbpedia.org/ontology/gameArtist"> + <rdfs:range rdf:resource="http://dbpedia.org/ontology/Person" /> + </rdf:Description> + <rdf:Description rdf:about="http://dbpedia.org/ontology/governor"> + <rdfs:range rdf:resource="http://dbpedia.org/ontology/Person" /> + </rdf:Description> + <rdf:Description rdf:about="http://dbpedia.org/ontology/headChef"> + <rdfs:range rdf:resource="http://dbpedia.org/ontology/Person" /> + </rdf:Description> + <rdf:Description rdf:about="http://dbpedia.org/ontology/illustrator"> + <rdfs:range rdf:resource="http://dbpedia.org/ontology/Person" /> + </rdf:Description> + <rdf:Description rdf:about="http://dbpedia.org/ontology/keyPerson"> + <rdfs:range rdf:resource="http://dbpedia.org/ontology/Person" /> + </rdf:Description> + <rdf:Description rdf:about="http://dbpedia.org/ontology/leader"> + <rdfs:range rdf:resource="http://dbpedia.org/ontology/Person" /> + </rdf:Description> + <rdf:Description rdf:about="http://dbpedia.org/ontology/lyrics"> + <rdfs:range rdf:resource="http://dbpedia.org/ontology/Person" /> + </rdf:Description> + <rdf:Description rdf:about="http://dbpedia.org/ontology/manager"> + <rdfs:range rdf:resource="http://dbpedia.org/ontology/Person" /> + </rdf:Description> + <rdf:Description rdf:about="http://dbpedia.org/ontology/musicBy"> + <rdfs:range rdf:resource="http://dbpedia.org/ontology/Person" /> + </rdf:Description> + <rdf:Description rdf:about="http://dbpedia.org/ontology/narrator"> + <rdfs:range rdf:resource="http://dbpedia.org/ontology/Person" /> + </rdf:Description> + <rdf:Description rdf:about="http://dbpedia.org/ontology/nationality"> + <rdfs:domain rdf:resource="http://dbpedia.org/ontology/Person" /> + </rdf:Description> + <rdf:Description rdf:about="http://dbpedia.org/ontology/notableCommander"> + <rdfs:range rdf:resource="http://dbpedia.org/ontology/Person" /> + </rdf:Description> + <rdf:Description rdf:about="http://dbpedia.org/ontology/parent"> + <rdfs:domain rdf:resource="http://dbpedia.org/ontology/Person" /> + <rdfs:range rdf:resource="http://dbpedia.org/ontology/Person" /> + </rdf:Description> + <rdf:Description rdf:about="http://dbpedia.org/ontology/patron"> + <rdfs:range rdf:resource="http://dbpedia.org/ontology/Person" /> + </rdf:Description> + <rdf:Description rdf:about="http://dbpedia.org/ontology/person"> + <rdfs:range rdf:resource="http://dbpedia.org/ontology/Person" /> + </rdf:Description> + <rdf:Description rdf:about="http://dbpedia.org/ontology/philosophicalSchool"> + <rdfs:domain rdf:resource="http://dbpedia.org/ontology/Person" /> + </rdf:Description> + <rdf:Description rdf:about="http://dbpedia.org/ontology/poleDriver"> + <rdfs:range rdf:resource="http://dbpedia.org/ontology/Person" /> + </rdf:Description> + <rdf:Description rdf:about="http://dbpedia.org/ontology/presenter"> + <rdfs:range rdf:resource="http://dbpedia.org/ontology/Person" /> + </rdf:Description> + <rdf:Description rdf:about="http://dbpedia.org/ontology/previousEditor"> + <rdfs:range rdf:resource="http://dbpedia.org/ontology/Person" /> + </rdf:Description> + <rdf:Description rdf:about="http://dbpedia.org/ontology/primeMinister"> + <rdfs:range rdf:resource="http://dbpedia.org/ontology/Person" /> + </rdf:Description> + <rdf:Description rdf:about="http://dbpedia.org/ontology/relative"> + <rdfs:domain rdf:resource="http://dbpedia.org/ontology/Person" /> + <rdfs:range rdf:resource="http://dbpedia.org/ontology/Person" /> + </rdf:Description> + <rdf:Description rdf:about="http://dbpedia.org/ontology/residence"> + <rdfs:domain rdf:resource="http://dbpedia.org/ontology/Person" /> + </rdf:Description> + <rdf:Description rdf:about="http://dbpedia.org/ontology/secondCommander"> + <rdfs:range rdf:resource="http://dbpedia.org/ontology/Person" /> + </rdf:Description> + <rdf:Description rdf:about="http://dbpedia.org/ontology/secondDriver"> + <rdfs:range rdf:resource="http://dbpedia.org/ontology/Person" /> + </rdf:Description> + <rdf:Description rdf:about="http://dbpedia.org/ontology/secondLeader"> + <rdfs:range rdf:resource="http://dbpedia.org/ontology/Person" /> + </rdf:Description> + <rdf:Description rdf:about="http://dbpedia.org/ontology/secondPopularVote"> + <rdfs:range rdf:resource="http://dbpedia.org/ontology/Person" /> + </rdf:Description> + <rdf:Description rdf:about="http://dbpedia.org/ontology/spouse"> + <rdfs:domain rdf:resource="http://dbpedia.org/ontology/Person" /> + <rdfs:range rdf:resource="http://dbpedia.org/ontology/Person" /> + </rdf:Description> + <rdf:Description rdf:about="http://dbpedia.org/ontology/thirdCommander"> + <rdfs:range rdf:resource="http://dbpedia.org/ontology/Person" /> + </rdf:Description> + <rdf:Description rdf:about="http://dbpedia.org/ontology/thirdDriver"> + <rdfs:range rdf:resource="http://dbpedia.org/ontology/Person" /> + </rdf:Description> + <rdf:Description rdf:about="http://dbpedia.org/ontology/translator"> + <rdfs:range rdf:resource="http://dbpedia.org/ontology/Person" /> + </rdf:Description> + <rdf:Description rdf:about="http://dbpedia.org/ontology/voice"> + <rdfs:range rdf:resource="http://dbpedia.org/ontology/Person" /> + </rdf:Description> + <rdf:Description rdf:about="http://dbpedia.org/ontology/writer"> + <rdfs:range rdf:resource="http://dbpedia.org/ontology/Person" /> + </rdf:Description> + <rdf:Description rdf:about="http://dbpedia.org/ontology/data/definitions.ttl"> + <ov:describes rdf:resource="http://dbpedia.org/ontology/Person" /> + </rdf:Description> +</rdf:RDF> \ No newline at end of file diff --git a/test/data/nok_shacl.ttl b/test/data/nok_shacl.ttl new file mode 100644 index 0000000000000000000000000000000000000000..3ae53fdbd185a62b2c68ad24fb676e3c62922ed2_dGVzdC9kYXRhL25va19zaGFjbC50dGw= --- /dev/null +++ b/test/data/nok_shacl.ttl @@ -0,0 +1,16 @@ +@prefix dash: <http://datashapes.org/dash#> . +@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> . +@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> . +@prefix foaf: <http://xmlns.com/foaf/0.1/> . +@prefix dbo: <http://dbpedia.org/ontology/> . +@prefix sh: <http://www.w3.org/ns/shacl#> . +@prefix xsd: <http://www.w3.org/2001/XMLSchema#> . + +dbo:PersonShape + a sh:NodeShape ; + sh:targetClass dbo:Person ; + sh:property [ + sh:path foaf:poulet ; + sh:name "poulet" ; + sh:minCount 1 ; + ] . diff --git a/test/data/ok_shacl.ttl b/test/data/ok_shacl.ttl new file mode 100644 index 0000000000000000000000000000000000000000..3ae53fdbd185a62b2c68ad24fb676e3c62922ed2_dGVzdC9kYXRhL29rX3NoYWNsLnR0bA== --- /dev/null +++ b/test/data/ok_shacl.ttl @@ -0,0 +1,21 @@ +@prefix dash: <http://datashapes.org/dash#> . +@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> . +@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> . +@prefix foaf: <http://xmlns.com/foaf/0.1/> . +@prefix dbo: <http://dbpedia.org/ontology/> . +@prefix sh: <http://www.w3.org/ns/shacl#> . +@prefix xsd: <http://www.w3.org/2001/XMLSchema#> . + +dbo:PersonShape + a sh:NodeShape ; + sh:targetClass dbo:Person ; + sh:property [ + sh:path foaf:name ; + sh:name "foaf name" ; + sh:minCount 1 ; + ] ; + sh:property [ + sh:path dbo:birthYear ; + sh:lessThan dbo:deathYear ; + sh:maxCount 1 ; + ] . diff --git a/test/test_rodolf.py b/test/test_rodolf.py index 489eedda29b25afa54280fe6416ca4257c6cda39_dGVzdC90ZXN0X3JvZG9sZi5weQ==..3ae53fdbd185a62b2c68ad24fb676e3c62922ed2_dGVzdC90ZXN0X3JvZG9sZi5weQ== 100644 --- a/test/test_rodolf.py +++ b/test/test_rodolf.py @@ -14,4 +14,7 @@ # You should have received a copy of the GNU Lesser General Public License # along with this program. If not, see <https://www.gnu.org/licenses/>. +import fakeredis +import rq +import logging @@ -17,3 +20,4 @@ +from cubicweb import Binary from cubicweb.devtools import testlib @@ -18,3 +22,9 @@ from cubicweb.devtools import testlib +from cubicweb_rq.rq import work + +from cubicweb_rodolf.import_data import launch_import_procedure + +LOGGER = logging.getLogger("testing.rodolf.importdata") + @@ -20,5 +30,9 @@ -class DefaultTC(testlib.CubicWebTC): - def test_something(self): - self.skipTest("this cube has no test") +class ImportDataTC(testlib.CubicWebTC): + def work(self, cnx): + """Start task. + + :param Connection cnx: CubicWeb database connection + """ + return work(cnx, burst=True, worker_class=rq.worker.SimpleWorker) @@ -24,2 +38,34 @@ + def setUp(self): + super(ImportDataTC, self).setUp() + self.fakeredis = fakeredis.FakeStrictRedis() + with self.admin_access.cnx() as cnx: + dataservice = cnx.create_entity( + "DataService", + data_url="https://dbpedia.org/resource/Leonardo_da_Vinci", + name="DBpedia Leo", + ) + recipe = cnx.create_entity( + "ImportRecipe", + name="Ma recette", + dataservice=[dataservice], + ) + with open(self.datapath("dboPerson.rdf"), "rb") as fp: + file = cnx.create_entity( + "File", + **{ + "title": "dboPerson.rdf", + "data": Binary(fp.read()), + "data_format": "application/rdf+xml", + "data_name": "dbo:person ontology", + }, + ) + importprocedure = cnx.create_entity( + "ImportProcedure", + sparql_endpoint="https://sparql.poulet", + import_recipes=[recipe], + ontology_file=file, + ) + self.import_procedure_eid = importprocedure.eid + cnx.commit() @@ -25,4 +71,42 @@ -if __name__ == "__main__": - from unittest import main + def test_shacl_ok(self): + with self.admin_access.cnx() as cnx, rq.Connection(self.fakeredis): + import_procedure = cnx.entity_from_eid(self.import_procedure_eid) + with open(self.datapath("ok_shacl.ttl"), "rb") as fp: + ok_shacl = cnx.create_entity( + "SHACLFile", + file=cnx.create_entity( + "File", + **{ + "title": "ok_shacl.ttl", + "data": Binary(fp.read()), + "data_format": "text/turtle", + "data_name": "shacl ok", + }, + ), + ) + import_procedure.cw_set( + shacl_files=[ + ok_shacl, + ] + ) + cnx.commit() + started_processes = launch_import_procedure(cnx, import_procedure, LOGGER) + assert started_processes == 1 + task = cnx.execute("Any X WHERE X is RqTask, X name 'import_process'").one() + job = task.cw_adapt_to("IRqJob") + self.assertEqual(job.status, "queued") + self.work(cnx) + job.refresh() + self.assertEqual(job.status, "finished") + log = job.log + for expected in ( + "Starting import process", + "Data was successfully downloaded", + "Data was successfully validated", + ): + self.assertIn(expected, log) + import_process = task.reverse_rq_task[0] + wf = import_process.cw_adapt_to("IWorkflowable") + self.assertEqual(wf.state, "successful") @@ -28,2 +112,43 @@ - main() + def test_shacl_nok(self): + with self.admin_access.cnx() as cnx, rq.Connection(self.fakeredis): + import_procedure = cnx.entity_from_eid(self.import_procedure_eid) + with open(self.datapath("nok_shacl.ttl"), "rb") as fp: + nok_shacl = cnx.create_entity( + "SHACLFile", + file=cnx.create_entity( + "File", + **{ + "title": "nok_shacl.ttl", + "data": Binary(fp.read()), + "data_format": "text/turtle", + "data_name": "shacl nok", + }, + ), + ) + import_procedure.cw_set( + shacl_files=[ + nok_shacl, + ] + ) + cnx.commit() + started_processes = launch_import_procedure(cnx, import_procedure, LOGGER) + assert started_processes == 1 + task = cnx.execute("Any X WHERE X is RqTask, X name 'import_process'").one() + job = task.cw_adapt_to("IRqJob") + self.assertEqual(job.status, "queued") + self.work(cnx) + job.refresh() + self.assertEqual(job.status, "finished") + log = job.log + for expected in ( + "Starting import process", + "Data was successfully downloaded", + "Data from DBpedia Leo does not comply with SHACL file nok_shacl.ttl", + "Less than 1 values on <http://dbpedia.org/resource/Leonardo_da_Vinci>", + ): + self.assertIn(expected, log) + + import_process = task.reverse_rq_task[0] + wf = import_process.cw_adapt_to("IWorkflowable") + self.assertEqual(wf.state, "error") diff --git a/tox.ini b/tox.ini index 489eedda29b25afa54280fe6416ca4257c6cda39_dG94LmluaQ==..3ae53fdbd185a62b2c68ad24fb676e3c62922ed2_dG94LmluaQ== 100644 --- a/tox.ini +++ b/tox.ini @@ -4,6 +4,7 @@ [testenv] deps = pytest + -e .[dev] commands = {envpython} -m pytest {posargs:test}