From e8ede392f2a70839e32cbc465dae4641fa649e61 Mon Sep 17 00:00:00 2001 From: Lincoln Puzey Date: Fri, 29 Nov 2024 11:48:32 +0800 Subject: [PATCH 1/2] Remove unused add_terminal_feature_of_interest method --- .../survey_occurrence_data_v2/mapping.py | 24 ------------------- 1 file changed, 24 deletions(-) diff --git a/abis_mapping/templates/survey_occurrence_data_v2/mapping.py b/abis_mapping/templates/survey_occurrence_data_v2/mapping.py index 4d618021..b1693f24 100644 --- a/abis_mapping/templates/survey_occurrence_data_v2/mapping.py +++ b/abis_mapping/templates/survey_occurrence_data_v2/mapping.py @@ -1370,30 +1370,6 @@ def apply_mapping_row( # Return return graph - def add_terminal_feature_of_interest( - self, - uri: rdflib.URIRef, - dataset: rdflib.URIRef, - graph: rdflib.Graph, - ) -> None: - """Adds the Terminal Feature of Interest to the Graph - - Args: - uri (rdflib.URIRef): URI to use for this node. - dataset (rdflib.URIRef): Dataset this belongs to - graph (rdflib.Graph): Graph to add to - """ - # Add Terminal Feature of Interest to Graph - graph.add((uri, a, utils.namespaces.TERN.FeatureOfInterest)) - graph.add((uri, rdflib.VOID.inDataset, dataset)) - graph.add((uri, utils.namespaces.TERN.featureType, CONCEPT_SITE)) - - # Add Geometry - geometry = rdflib.BNode() - graph.add((uri, utils.namespaces.GEO.hasGeometry, geometry)) - graph.add((geometry, a, utils.namespaces.GEO.Geometry)) - graph.add((geometry, utils.namespaces.GEO.sfWithin, CONCEPT_AUSTRALIA)) - def add_provider_identified( self, uri: rdflib.URIRef, From 64a1e046f0bfd7c3735142b9fe288d824385fe4b Mon Sep 17 00:00:00 2001 From: Lincoln Puzey Date: Fri, 29 Nov 2024 13:11:24 +0800 Subject: [PATCH 2/2] BDRSPS-1084 Swap all void:inDataset predicates to schema:isPartOf --- .../margaret_river_flora.ttl | 349 ++++++++-------- .../incidental_occurrence_data_v3/mapping.py | 74 ++-- .../validators/validator.ttl | 13 +- .../survey_metadata_v2/examples/minimal.ttl | 21 +- .../templates/survey_metadata_v2/mapping.py | 16 +- .../margaret_river_flora.ttl | 385 +++++++++--------- .../examples/organism_qty.ttl | 19 +- .../survey_occurrence_data_v2/mapping.py | 80 ++-- .../validators/validator.ttl | 46 ++- .../survey_site_data_v2/examples/minimal.ttl | 19 +- .../templates/survey_site_data_v2/mapping.py | 10 +- .../examples/minimal.ttl | 51 ++- .../survey_site_visit_data_v2/mapping.py | 16 +- 13 files changed, 545 insertions(+), 554 deletions(-) diff --git a/abis_mapping/templates/incidental_occurrence_data_v3/examples/margaret_river_flora/margaret_river_flora.ttl b/abis_mapping/templates/incidental_occurrence_data_v3/examples/margaret_river_flora/margaret_river_flora.ttl index 790e956a..7c54adf5 100644 --- a/abis_mapping/templates/incidental_occurrence_data_v3/examples/margaret_river_flora/margaret_river_flora.ttl +++ b/abis_mapping/templates/incidental_occurrence_data_v3/examples/margaret_river_flora/margaret_river_flora.ttl @@ -9,130 +9,129 @@ @prefix sosa: . @prefix tern: . @prefix time: . -@prefix void: . @prefix xsd: . a schema:Collection ; - void:inDataset ; schema:identifier "Occurrence Collection - Basis Of Record - HumanObservation" ; + schema:isPartOf ; schema:member ; tern:hasAttribute . a schema:Collection ; - void:inDataset ; schema:identifier "Occurrence Collection - Basis Of Record - PreservedSpecimen" ; + schema:isPartOf ; schema:member , ; tern:hasAttribute . a schema:Collection ; - void:inDataset ; schema:identifier "Occurrence Collection - Basis Of Record - new basis of record" ; + schema:isPartOf ; schema:member ; tern:hasAttribute . a schema:Collection ; - void:inDataset ; schema:identifier "Occurrence Collection - Conservation Authority - WA" ; + schema:isPartOf ; schema:member , ; tern:hasAttribute . a schema:Collection ; - void:inDataset ; schema:identifier "Occurrence Collection - Data Generalizations - Coordinates generalised" ; + schema:isPartOf ; schema:member ; tern:hasAttribute . a schema:Collection ; - void:inDataset ; schema:identifier "Occurrence Collection - Data Generalizations - Coordinates rounded to the nearest 10 km for conservation concern" ; + schema:isPartOf ; schema:member , ; tern:hasAttribute . a schema:Collection ; - void:inDataset ; schema:identifier "Occurrence Collection - Habitat - Closed forest of Melaleuca lanceolata. White, grey or brown sand, sandy loam." ; + schema:isPartOf ; schema:member ; tern:hasAttribute . a schema:Collection ; - void:inDataset ; schema:identifier "Occurrence Collection - Habitat - new habitat" ; + schema:isPartOf ; schema:member ; tern:hasAttribute . a schema:Collection ; - void:inDataset ; schema:identifier "Occurrence Collection - Identification Qualifier - ?" ; + schema:isPartOf ; schema:member , ; tern:hasAttribute . a schema:Collection ; - void:inDataset ; schema:identifier "Occurrence Collection - Identification Qualifier - new identification qualifier" ; + schema:isPartOf ; schema:member ; tern:hasAttribute . a schema:Collection ; - void:inDataset ; schema:identifier "Occurrence Collection - Identification Qualifier - species incerta" ; + schema:isPartOf ; schema:member ; tern:hasAttribute . a schema:Collection ; - void:inDataset ; schema:identifier "Occurrence Collection - Identification Remarks - Could not confirm the ID due to damaged flower" ; + schema:isPartOf ; schema:member ; tern:hasAttribute . a schema:Collection ; - void:inDataset ; schema:identifier "Occurrence Collection - Identification Remarks - One unopened flower when recorded and one leaf only. ID not confirmed" ; + schema:isPartOf ; schema:member ; tern:hasAttribute . a schema:Collection ; - void:inDataset ; schema:identifier "Occurrence Collection - Identification Remarks - new remarks" ; + schema:isPartOf ; schema:member ; tern:hasAttribute . a schema:Collection ; - void:inDataset ; schema:identifier "Occurrence Collection - Identification Remarks - no flowers present" ; + schema:isPartOf ; schema:member ; tern:hasAttribute . a schema:Collection ; - void:inDataset ; schema:identifier "Occurrence Collection - Preparations - Wet (in ethanol or some other preservative)" ; + schema:isPartOf ; schema:member ; tern:hasAttribute . a schema:Collection ; - void:inDataset ; schema:identifier "Occurrence Collection - Preparations - new preparations" ; + schema:isPartOf ; schema:member ; tern:hasAttribute . a schema:Collection ; - void:inDataset ; schema:identifier "Occurrence Collection - Sensitivity Category - Category 1" ; + schema:isPartOf ; schema:member ; tern:hasAttribute . a schema:Collection ; - void:inDataset ; schema:identifier "Occurrence Collection - Taxon Rank - new taxon rank" ; + schema:isPartOf ; schema:member ; tern:hasAttribute . a schema:Collection ; - void:inDataset ; schema:identifier "Occurrence Collection - Taxon Rank - species" ; + schema:isPartOf ; schema:member ; tern:hasAttribute . @@ -217,7 +216,6 @@ prov:wasAttributedTo . a tern:Observation ; - void:inDataset ; rdfs:comment "acceptedNameUsage-observation" ; time:hasTime [ a time:Instant ; rdfs:comment "Date unknown, template dateIdentified used as proxy" ; @@ -226,10 +224,10 @@ sosa:hasResult ; sosa:hasSimpleResult "Caladenia excelsa Hopper & A.P.Br." ; sosa:observedProperty ; - sosa:usedProcedure . + sosa:usedProcedure ; + schema:isPartOf . a tern:Observation ; - void:inDataset ; rdfs:comment "acceptedNameUsage-observation" ; time:hasTime [ a time:Instant ; rdfs:comment "Date unknown, template dateIdentified used as proxy" ; @@ -238,10 +236,10 @@ sosa:hasResult ; sosa:hasSimpleResult "Caladenia excelsa Hopper & A.P.Br." ; sosa:observedProperty ; - sosa:usedProcedure . + sosa:usedProcedure ; + schema:isPartOf . a tern:Observation ; - void:inDataset ; rdfs:comment "Observation method unknown, 'human observation' used as proxy", "establishmentMeans-observation" ; time:hasTime [ a time:Instant ; @@ -251,10 +249,10 @@ sosa:hasResult ; sosa:hasSimpleResult "native" ; sosa:observedProperty ; - sosa:usedProcedure . + sosa:usedProcedure ; + schema:isPartOf . a tern:Observation ; - void:inDataset ; rdfs:comment "Observation method unknown, 'human observation' used as proxy", "establishmentMeans-observation" ; time:hasTime [ a time:Instant ; @@ -264,10 +262,10 @@ sosa:hasResult ; sosa:hasSimpleResult "new establishment means" ; sosa:observedProperty ; - sosa:usedProcedure . + sosa:usedProcedure ; + schema:isPartOf . a tern:Observation ; - void:inDataset ; rdfs:comment "Observation method unknown, 'human observation' used as proxy", "individualCount-observation" ; time:hasTime [ a time:Instant ; @@ -277,10 +275,10 @@ sosa:hasResult ; sosa:hasSimpleResult 2 ; sosa:observedProperty ; - sosa:usedProcedure . + sosa:usedProcedure ; + schema:isPartOf . a tern:Observation ; - void:inDataset ; rdfs:comment "Observation method unknown, 'human observation' used as proxy", "individualCount-observation" ; time:hasTime [ a time:Instant ; @@ -290,10 +288,10 @@ sosa:hasResult ; sosa:hasSimpleResult 6 ; sosa:observedProperty ; - sosa:usedProcedure . + sosa:usedProcedure ; + schema:isPartOf . a tern:Observation ; - void:inDataset ; rdfs:comment "Observation method unknown, 'human observation' used as proxy", "occurrenceStatus-observation" ; time:hasTime [ a time:Instant ; @@ -302,10 +300,10 @@ sosa:hasResult ; sosa:hasSimpleResult "present" ; sosa:observedProperty ; - sosa:usedProcedure . + sosa:usedProcedure ; + schema:isPartOf . a tern:Observation ; - void:inDataset ; rdfs:comment "Observation method unknown, 'human observation' used as proxy", "occurrenceStatus-observation" ; time:hasTime [ a time:Instant ; @@ -314,10 +312,10 @@ sosa:hasResult ; sosa:hasSimpleResult "new occurrence status" ; sosa:observedProperty ; - sosa:usedProcedure . + sosa:usedProcedure ; + schema:isPartOf . a tern:Observation ; - void:inDataset ; rdfs:comment "Observation method unknown, 'human observation' used as proxy", "organismQuantity-observation" ; time:hasTime [ a time:Instant ; @@ -327,10 +325,10 @@ sosa:hasResult ; sosa:hasSimpleResult "5 individuals" ; sosa:observedProperty ; - sosa:usedProcedure . + sosa:usedProcedure ; + schema:isPartOf . a tern:Observation ; - void:inDataset ; rdfs:comment "Observation method unknown, 'human observation' used as proxy", "organismRemarks-observation" ; time:hasTime [ a time:Instant ; @@ -340,10 +338,10 @@ sosa:hasResult ; sosa:hasSimpleResult "Dried out leaf tips" ; sosa:observedProperty ; - sosa:usedProcedure . + sosa:usedProcedure ; + schema:isPartOf . a tern:Observation ; - void:inDataset ; rdfs:comment "Observation method unknown, 'human observation' used as proxy", "organismRemarks-observation" ; time:hasTime [ a time:Instant ; @@ -353,10 +351,10 @@ sosa:hasResult ; sosa:hasSimpleResult "Leaves brown" ; sosa:observedProperty ; - sosa:usedProcedure . + sosa:usedProcedure ; + schema:isPartOf . a tern:Observation ; - void:inDataset ; rdfs:comment "scientificName-observation" ; time:hasTime [ a time:Instant ; rdfs:comment "Date unknown, template eventDateStart used as proxy" ; @@ -366,10 +364,10 @@ sosa:hasResult ; sosa:hasSimpleResult "Calothamnus lateralis var. crassus" ; sosa:observedProperty ; - sosa:usedProcedure . + sosa:usedProcedure ; + schema:isPartOf . a tern:Observation ; - void:inDataset ; rdfs:comment "scientificName-observation" ; time:hasTime [ a time:Instant ; rdfs:comment "Date unknown, template eventDateStart used as proxy" ; @@ -379,10 +377,10 @@ sosa:hasResult ; sosa:hasSimpleResult "Caladenia excelsa" ; sosa:observedProperty ; - sosa:usedProcedure . + sosa:usedProcedure ; + schema:isPartOf . a tern:Observation ; - void:inDataset ; rdfs:comment "scientificName-observation" ; time:hasTime [ a time:Instant ; rdfs:comment "Date unknown, template eventDateStart used as proxy" ; @@ -391,10 +389,10 @@ sosa:hasResult ; sosa:hasSimpleResult "Caladenia excelsa" ; sosa:observedProperty ; - sosa:usedProcedure . + sosa:usedProcedure ; + schema:isPartOf . a tern:Observation ; - void:inDataset ; rdfs:comment "scientificName-observation" ; time:hasTime [ a time:Instant ; rdfs:comment "Date unknown, template eventDateStart used as proxy" ; @@ -404,10 +402,10 @@ sosa:hasResult ; sosa:hasSimpleResult "Caladenia excelsa" ; sosa:observedProperty ; - sosa:usedProcedure . + sosa:usedProcedure ; + schema:isPartOf . a tern:Observation ; - void:inDataset ; rdfs:comment "scientificName-observation" ; time:hasTime [ a time:Instant ; rdfs:comment "Date unknown, template eventDateStart used as proxy" ; @@ -417,10 +415,10 @@ sosa:hasResult ; sosa:hasSimpleResult "Boronia anceps" ; sosa:observedProperty ; - sosa:usedProcedure . + sosa:usedProcedure ; + schema:isPartOf . a tern:Observation ; - void:inDataset ; rdfs:comment "scientificName-observation" ; time:hasTime [ a time:Instant ; rdfs:comment "Date unknown, template eventDateStart used as proxy" ; @@ -430,10 +428,10 @@ sosa:hasResult ; sosa:hasSimpleResult "Boronia anceps" ; sosa:observedProperty ; - sosa:usedProcedure . + sosa:usedProcedure ; + schema:isPartOf . a tern:Observation ; - void:inDataset ; rdfs:comment "scientificName-observation" ; time:hasTime [ a time:Instant ; rdfs:comment "Date unknown, template eventDateStart used as proxy" ; @@ -443,10 +441,10 @@ sosa:hasResult ; sosa:hasSimpleResult "Boronia anceps" ; sosa:observedProperty ; - sosa:usedProcedure . + sosa:usedProcedure ; + schema:isPartOf . a tern:Observation ; - void:inDataset ; rdfs:comment "scientificName-observation" ; time:hasTime [ a time:Instant ; rdfs:comment "Date unknown, template eventDateStart used as proxy" ; @@ -456,10 +454,10 @@ sosa:hasResult ; sosa:hasSimpleResult "Banksia sessilis var. cordata" ; sosa:observedProperty ; - sosa:usedProcedure . + sosa:usedProcedure ; + schema:isPartOf . a tern:Observation ; - void:inDataset ; rdfs:comment "scientificName-observation" ; time:hasTime [ a time:Instant ; rdfs:comment "Date unknown, template eventDateStart used as proxy" ; @@ -469,10 +467,10 @@ sosa:hasResult ; sosa:hasSimpleResult "Banksia sessilis var. cordata" ; sosa:observedProperty ; - sosa:usedProcedure . + sosa:usedProcedure ; + schema:isPartOf . a tern:Observation ; - void:inDataset ; rdfs:comment "scientificName-observation" ; time:hasTime [ a time:Instant ; rdfs:comment "Date unknown, template eventDateStart used as proxy" ; @@ -482,10 +480,10 @@ sosa:hasResult ; sosa:hasSimpleResult "Banksia sessilis var. cordata" ; sosa:observedProperty ; - sosa:usedProcedure . + sosa:usedProcedure ; + schema:isPartOf . a tern:Observation ; - void:inDataset ; rdfs:comment "scientificName-observation" ; time:hasTime [ a time:Instant ; rdfs:comment "Date unknown, template eventDateStart used as proxy" ; @@ -495,10 +493,10 @@ sosa:hasResult ; sosa:hasSimpleResult "Banksia sessilis var. cordata" ; sosa:observedProperty ; - sosa:usedProcedure . + sosa:usedProcedure ; + schema:isPartOf . a tern:Observation ; - void:inDataset ; rdfs:comment "scientificName-observation" ; time:hasTime [ a time:Instant ; rdfs:comment "Date unknown, template eventDateStart used as proxy" ; @@ -508,10 +506,10 @@ sosa:hasResult ; sosa:hasSimpleResult "Caladenia excelsa" ; sosa:observedProperty ; - sosa:usedProcedure . + sosa:usedProcedure ; + schema:isPartOf . a tern:Observation ; - void:inDataset ; rdfs:comment "Observation method unknown, 'human observation' used as proxy", "lifeStage-observation" ; time:hasTime [ a time:Instant ; @@ -521,10 +519,10 @@ sosa:hasResult ; sosa:hasSimpleResult "adult" ; sosa:observedProperty ; - sosa:usedProcedure . + sosa:usedProcedure ; + schema:isPartOf . a tern:Observation ; - void:inDataset ; rdfs:comment "Observation method unknown, 'human observation' used as proxy", "lifeStage-observation" ; time:hasTime [ a time:Instant ; @@ -534,10 +532,10 @@ sosa:hasResult ; sosa:hasSimpleResult "new life stage" ; sosa:observedProperty ; - sosa:usedProcedure . + sosa:usedProcedure ; + schema:isPartOf . a tern:Observation ; - void:inDataset ; rdfs:comment "Observation method unknown, 'human observation' used as proxy", "reproductiveCondition-observation" ; time:hasTime [ a time:Instant ; @@ -547,10 +545,10 @@ sosa:hasResult ; sosa:hasSimpleResult "No breeding evident" ; sosa:observedProperty ; - sosa:usedProcedure . + sosa:usedProcedure ; + schema:isPartOf . a tern:Observation ; - void:inDataset ; rdfs:comment "Observation method unknown, 'human observation' used as proxy", "reproductiveCondition-observation" ; time:hasTime [ a time:Instant ; @@ -560,10 +558,10 @@ sosa:hasResult ; sosa:hasSimpleResult "new reproductiveCondition" ; sosa:observedProperty ; - sosa:usedProcedure . + sosa:usedProcedure ; + schema:isPartOf . a tern:Observation ; - void:inDataset ; rdfs:comment "Observation method unknown, 'human observation' used as proxy", "sex-observation" ; time:hasTime [ a time:Instant ; @@ -573,10 +571,10 @@ sosa:hasResult ; sosa:hasSimpleResult "male" ; sosa:observedProperty ; - sosa:usedProcedure . + sosa:usedProcedure ; + schema:isPartOf . a tern:Observation ; - void:inDataset ; rdfs:comment "Observation method unknown, 'human observation' used as proxy", "sex-observation" ; time:hasTime [ a time:Instant ; @@ -586,10 +584,10 @@ sosa:hasResult ; sosa:hasSimpleResult "new sex" ; sosa:observedProperty ; - sosa:usedProcedure . + sosa:usedProcedure ; + schema:isPartOf . a tern:Observation ; - void:inDataset ; rdfs:comment "verbatimID-observation" ; time:hasTime [ a time:Instant ; time:inXSDDateTimeStamp "2019-09-27T12:34:00+08:00"^^xsd:dateTimeStamp ] ; @@ -598,10 +596,10 @@ sosa:hasResult ; sosa:hasSimpleResult "Caladenia ?excelsa" ; sosa:observedProperty ; - sosa:usedProcedure . + sosa:usedProcedure ; + schema:isPartOf . a tern:Observation ; - void:inDataset ; rdfs:comment "verbatimID-observation" ; time:hasTime [ a time:Instant ; time:inXSDDateTimeStamp "2019-09-27T12:34:00+08:00"^^xsd:dateTimeStamp ] ; @@ -610,10 +608,10 @@ sosa:hasResult ; sosa:hasSimpleResult "Caladenia ?excelsa" ; sosa:observedProperty ; - sosa:usedProcedure . + sosa:usedProcedure ; + schema:isPartOf . a tern:Observation ; - void:inDataset ; rdfs:comment "verbatimID-observation" ; time:hasTime [ a time:Instant ; rdfs:comment "Date unknown, template eventDateStart used as proxy" ; @@ -623,10 +621,10 @@ sosa:hasResult ; sosa:hasSimpleResult "Calothamnus lateralis var. crassus" ; sosa:observedProperty ; - sosa:usedProcedure . + sosa:usedProcedure ; + schema:isPartOf . a tern:Observation ; - void:inDataset ; rdfs:comment "verbatimID-observation" ; time:hasTime [ a time:Instant ; rdfs:comment "Date unknown, template eventDateStart used as proxy" ; @@ -636,10 +634,10 @@ sosa:hasResult ; sosa:hasSimpleResult "Caladenia excelsa" ; sosa:observedProperty ; - sosa:usedProcedure . + sosa:usedProcedure ; + schema:isPartOf . a tern:Observation ; - void:inDataset ; rdfs:comment "verbatimID-observation" ; time:hasTime [ a time:Instant ; rdfs:comment "Date unknown, template eventDateStart used as proxy" ; @@ -649,10 +647,10 @@ sosa:hasResult ; sosa:hasSimpleResult "Caladenia ?excelsa" ; sosa:observedProperty ; - sosa:usedProcedure . + sosa:usedProcedure ; + schema:isPartOf . a tern:Observation ; - void:inDataset ; rdfs:comment "verbatimID-observation" ; time:hasTime [ a time:Instant ; rdfs:comment "Date unknown, template eventDateStart used as proxy" ; @@ -662,10 +660,10 @@ sosa:hasResult ; sosa:hasSimpleResult "Caladenia ?excelsa" ; sosa:observedProperty ; - sosa:usedProcedure . + sosa:usedProcedure ; + schema:isPartOf . a tern:Observation ; - void:inDataset ; rdfs:comment "verbatimID-observation" ; time:hasTime [ a time:Instant ; rdfs:comment "Date unknown, template eventDateStart used as proxy" ; @@ -675,10 +673,10 @@ sosa:hasResult ; sosa:hasSimpleResult "Boronia anceps" ; sosa:observedProperty ; - sosa:usedProcedure . + sosa:usedProcedure ; + schema:isPartOf . a tern:Observation ; - void:inDataset ; rdfs:comment "verbatimID-observation" ; time:hasTime [ a time:Instant ; rdfs:comment "Date unknown, template eventDateStart used as proxy" ; @@ -688,10 +686,10 @@ sosa:hasResult ; sosa:hasSimpleResult "Boronia anceps" ; sosa:observedProperty ; - sosa:usedProcedure . + sosa:usedProcedure ; + schema:isPartOf . a tern:Observation ; - void:inDataset ; rdfs:comment "verbatimID-observation" ; time:hasTime [ a time:Instant ; rdfs:comment "Date unknown, template eventDateStart used as proxy" ; @@ -701,10 +699,10 @@ sosa:hasResult ; sosa:hasSimpleResult "Boronia anceps" ; sosa:observedProperty ; - sosa:usedProcedure . + sosa:usedProcedure ; + schema:isPartOf . a tern:Observation ; - void:inDataset ; rdfs:comment "verbatimID-observation" ; time:hasTime [ a time:Instant ; rdfs:comment "Date unknown, template eventDateStart used as proxy" ; @@ -714,10 +712,10 @@ sosa:hasResult ; sosa:hasSimpleResult "Banksia sessilis var. cordata" ; sosa:observedProperty ; - sosa:usedProcedure . + sosa:usedProcedure ; + schema:isPartOf . a tern:Observation ; - void:inDataset ; rdfs:comment "verbatimID-observation" ; time:hasTime [ a time:Instant ; rdfs:comment "Date unknown, template eventDateStart used as proxy" ; @@ -727,10 +725,10 @@ sosa:hasResult ; sosa:hasSimpleResult "Banksia sessilis var. cordata" ; sosa:observedProperty ; - sosa:usedProcedure . + sosa:usedProcedure ; + schema:isPartOf . a tern:Observation ; - void:inDataset ; rdfs:comment "verbatimID-observation" ; time:hasTime [ a time:Instant ; rdfs:comment "Date unknown, template eventDateStart used as proxy" ; @@ -740,10 +738,10 @@ sosa:hasResult ; sosa:hasSimpleResult "Banksia sessilis var. cordata" ; sosa:observedProperty ; - sosa:usedProcedure . + sosa:usedProcedure ; + schema:isPartOf . a tern:Observation ; - void:inDataset ; rdfs:comment "verbatimID-observation" ; time:hasTime [ a time:Instant ; rdfs:comment "Date unknown, template eventDateStart used as proxy" ; @@ -753,10 +751,10 @@ sosa:hasResult ; sosa:hasSimpleResult "Banksia sessilis var. cordata" ; sosa:observedProperty ; - sosa:usedProcedure . + sosa:usedProcedure ; + schema:isPartOf . a tern:Observation ; - void:inDataset ; rdfs:comment "verbatimID-observation" ; time:hasTime [ a time:Instant ; rdfs:comment "Date unknown, template eventDateStart used as proxy" ; @@ -766,7 +764,8 @@ sosa:hasResult ; sosa:hasSimpleResult "Caladenia excelsa" ; sosa:observedProperty ; - sosa:usedProcedure . + sosa:usedProcedure ; + schema:isPartOf . a rdfs:Datatype ; skos:definition "A catalog number for the sample" ; @@ -794,121 +793,121 @@ prov:wasAttributedTo . a tern:Attribute ; - void:inDataset ; + schema:isPartOf ; tern:attribute ; tern:hasSimpleValue "HumanObservation" ; tern:hasValue . a tern:Attribute ; - void:inDataset ; + schema:isPartOf ; tern:attribute ; tern:hasSimpleValue "PreservedSpecimen" ; tern:hasValue . a tern:Attribute ; - void:inDataset ; + schema:isPartOf ; tern:attribute ; tern:hasSimpleValue "new basis of record" ; tern:hasValue . a tern:Attribute ; - void:inDataset ; + schema:isPartOf ; tern:attribute ; tern:hasSimpleValue "WA" ; tern:hasValue . a tern:Attribute ; - void:inDataset ; + schema:isPartOf ; tern:attribute ; tern:hasSimpleValue "Coordinates generalised" ; tern:hasValue . a tern:Attribute ; - void:inDataset ; + schema:isPartOf ; tern:attribute ; tern:hasSimpleValue "Coordinates rounded to the nearest 10 km for conservation concern" ; tern:hasValue . a tern:Attribute ; - void:inDataset ; + schema:isPartOf ; tern:attribute ; tern:hasSimpleValue "Closed forest of Melaleuca lanceolata. White, grey or brown sand, sandy loam." ; tern:hasValue . a tern:Attribute ; - void:inDataset ; + schema:isPartOf ; tern:attribute ; tern:hasSimpleValue "new habitat" ; tern:hasValue . a tern:Attribute ; - void:inDataset ; + schema:isPartOf ; tern:attribute ; tern:hasSimpleValue "?" ; tern:hasValue . a tern:Attribute ; - void:inDataset ; + schema:isPartOf ; tern:attribute ; tern:hasSimpleValue "new identification qualifier" ; tern:hasValue . a tern:Attribute ; - void:inDataset ; + schema:isPartOf ; tern:attribute ; tern:hasSimpleValue "species incerta" ; tern:hasValue . a tern:Attribute ; - void:inDataset ; + schema:isPartOf ; tern:attribute ; tern:hasSimpleValue "Could not confirm the ID due to damaged flower" ; tern:hasValue . a tern:Attribute ; - void:inDataset ; + schema:isPartOf ; tern:attribute ; tern:hasSimpleValue "One unopened flower when recorded and one leaf only. ID not confirmed" ; tern:hasValue . a tern:Attribute ; - void:inDataset ; + schema:isPartOf ; tern:attribute ; tern:hasSimpleValue "new remarks" ; tern:hasValue . a tern:Attribute ; - void:inDataset ; + schema:isPartOf ; tern:attribute ; tern:hasSimpleValue "no flowers present" ; tern:hasValue . a tern:Attribute ; - void:inDataset ; + schema:isPartOf ; tern:attribute ; tern:hasSimpleValue "Wet (in ethanol or some other preservative)" ; tern:hasValue . a tern:Attribute ; - void:inDataset ; + schema:isPartOf ; tern:attribute ; tern:hasSimpleValue "new preparations" ; tern:hasValue . a tern:Attribute ; - void:inDataset ; + schema:isPartOf ; tern:attribute ; tern:hasSimpleValue "Category 1 - The Department of Biodiversity and Conservation" ; tern:hasValue . a tern:Attribute ; - void:inDataset ; + schema:isPartOf ; tern:attribute ; tern:hasSimpleValue "new taxon rank" ; tern:hasValue . a tern:Attribute ; - void:inDataset ; + schema:isPartOf ; tern:attribute ; tern:hasSimpleValue "species" ; tern:hasValue . @@ -1085,7 +1084,6 @@ schema:isPartOf . a tern:Observation ; - void:inDataset ; rdfs:comment "threatStatus-observation" ; time:hasTime [ a time:Instant ; rdfs:comment "Date unknown, template dateIdentified used as proxy" ; @@ -1095,10 +1093,10 @@ sosa:hasResult ; sosa:hasSimpleResult "VU" ; sosa:observedProperty ; - sosa:usedProcedure . + sosa:usedProcedure ; + schema:isPartOf . a tern:Observation ; - void:inDataset ; rdfs:comment "threatStatus-observation" ; time:hasTime [ a time:Instant ; rdfs:comment "Date unknown, template dateIdentified used as proxy" ; @@ -1107,7 +1105,8 @@ sosa:hasResult ; sosa:hasSimpleResult "new threat status" ; sosa:observedProperty ; - sosa:usedProcedure . + sosa:usedProcedure ; + schema:isPartOf . a tern:IRI, tern:Value ; @@ -1159,8 +1158,8 @@ tern:Text, tern:Value ; rdfs:label "scientificName" ; - void:inDataset ; rdf:value "Calothamnus lateralis var. crassus" ; + schema:isPartOf ; tern:featureType . a tern:IRI, @@ -1209,22 +1208,22 @@ a tern:FeatureOfInterest, tern:Sample ; - void:inDataset ; rdfs:comment "sequence-sample" ; sosa:isResultOf ; sosa:isSampleOf ; schema:identifier "https://www.ncbi.nlm.nih.gov/nuccore/MH040616.1", "https://www.ncbi.nlm.nih.gov/nuccore/MH040669.1" ; + schema:isPartOf ; tern:featureType . a tern:FeatureOfInterest, tern:Sample ; - void:inDataset ; rdfs:comment "sequence-sample" ; sosa:isResultOf ; sosa:isSampleOf ; schema:identifier "https://www.ncbi.nlm.nih.gov/nuccore/MH040616.1", "https://www.ncbi.nlm.nih.gov/nuccore/MH040669.1" ; + schema:isPartOf ; tern:featureType . a tern:IRI, @@ -1342,7 +1341,6 @@ schema:citation "http://createme.org/dataset/Example-Incidental-Occurrence-Dataset"^^xsd:anyURI . a tern:Observation ; - void:inDataset ; rdfs:comment "scientificName-observation" ; time:hasTime [ a time:Instant ; rdfs:comment "Date unknown, template eventDateStart used as proxy" ; @@ -1352,10 +1350,10 @@ sosa:hasResult ; sosa:hasSimpleResult "Caladenia excelsa" ; sosa:observedProperty ; - sosa:usedProcedure . + sosa:usedProcedure ; + schema:isPartOf . a tern:Observation ; - void:inDataset ; rdfs:comment "scientificName-observation" ; time:hasTime [ a time:Instant ; rdfs:comment "Date unknown, template eventDateStart used as proxy" ; @@ -1365,14 +1363,15 @@ sosa:hasResult ; sosa:hasSimpleResult "Caladenia excelsa" ; sosa:observedProperty ; - sosa:usedProcedure . + sosa:usedProcedure ; + schema:isPartOf . a tern:FeatureOfInterest, tern:Text, tern:Value ; rdfs:label "acceptedNameUsage-value" ; - void:inDataset ; rdf:value "Caladenia excelsa Hopper & A.P.Br." ; + schema:isPartOf ; tern:featureType . a tern:Text, @@ -1381,14 +1380,13 @@ a tern:FeatureOfInterest, tern:Sample ; - void:inDataset ; rdfs:comment "specimen-sample" ; sosa:isResultOf ; sosa:isSampleOf ; + schema:isPartOf ; tern:featureType . a tern:Sampling ; - void:inDataset ; geo:hasGeometry _:N3bb12ed5a66f4695174d6bd600000001 ; geo:hasMetricSpatialAccuracy 5e+01 ; rdfs:comment "sequencing-sampling" ; @@ -1397,10 +1395,10 @@ time:inXSDDate "2019-09-26"^^xsd:date ] ; sosa:hasFeatureOfInterest ; sosa:hasResult ; - sosa:usedProcedure . + sosa:usedProcedure ; + schema:isPartOf . a tern:Sampling ; - void:inDataset ; geo:hasGeometry _:N3bb12ed5a66f4695174d6bd600000003 ; geo:hasMetricSpatialAccuracy 3e+01 ; rdfs:comment "sequencing-sampling" ; @@ -1409,10 +1407,10 @@ time:inXSDDate "2019-09-26"^^xsd:date ] ; sosa:hasFeatureOfInterest ; sosa:hasResult ; - sosa:usedProcedure . + sosa:usedProcedure ; + schema:isPartOf . a tern:Sampling ; - void:inDataset ; geo:hasGeometry _:Nfc9ba55a50d500211c02e20000000001 ; rdfs:comment "specimen-sampling" ; time:hasTime [ a time:Instant ; @@ -1420,10 +1418,10 @@ time:inXSDDate "2019-09-26"^^xsd:date ] ; sosa:hasFeatureOfInterest ; sosa:hasResult ; - sosa:usedProcedure . + sosa:usedProcedure ; + schema:isPartOf . a tern:Sampling ; - void:inDataset ; geo:hasGeometry _:Nfc9ba55a50d500211c02e20000000003 ; geo:hasMetricSpatialAccuracy 5e+01 ; rdfs:comment "specimen-sampling" ; @@ -1431,10 +1429,10 @@ time:inXSDDate "2019-09-26"^^xsd:date ] ; sosa:hasFeatureOfInterest ; sosa:hasResult ; - sosa:usedProcedure . + sosa:usedProcedure ; + schema:isPartOf . a tern:Sampling ; - void:inDataset ; geo:hasGeometry _:Nfc9ba55a50d500211c02e20000000005 ; geo:hasMetricSpatialAccuracy 3e+01 ; rdfs:comment "specimen-sampling" ; @@ -1442,13 +1440,13 @@ time:inXSDDate "2019-09-27"^^xsd:date ] ; sosa:hasFeatureOfInterest ; sosa:hasResult ; - sosa:usedProcedure . + sosa:usedProcedure ; + schema:isPartOf . a prov:Agent ; schema:name "WAM" . a tern:Observation ; - void:inDataset ; rdfs:comment "scientificName-observation" ; time:hasTime [ a time:Instant ; time:inXSDDateTimeStamp "2019-09-27T12:34:00+08:00"^^xsd:dateTimeStamp ] ; @@ -1457,10 +1455,10 @@ sosa:hasResult ; sosa:hasSimpleResult "Caladenia excelsa" ; sosa:observedProperty ; - sosa:usedProcedure . + sosa:usedProcedure ; + schema:isPartOf . a tern:Observation ; - void:inDataset ; rdfs:comment "scientificName-observation" ; time:hasTime [ a time:Instant ; time:inXSDDateTimeStamp "2019-09-27T12:34:00+08:00"^^xsd:dateTimeStamp ] ; @@ -1469,12 +1467,13 @@ sosa:hasResult ; sosa:hasSimpleResult "Caladenia excelsa" ; sosa:observedProperty ; - sosa:usedProcedure . + sosa:usedProcedure ; + schema:isPartOf . a dwc:Occurrence, tern:FeatureOfInterest ; - void:inDataset ; sosa:usedProcedure ; + schema:isPartOf ; schema:spatial _:N489292b7f1191795326ddd2200000021 ; schema:temporal [ a time:TemporalEntity ; time:hasBeginning [ a time:Instant ; @@ -1485,8 +1484,8 @@ tern:Text, tern:Value ; rdfs:label "scientificName" ; - void:inDataset ; rdf:value "Boronia anceps" ; + schema:isPartOf ; tern:featureType . a tern:Text, @@ -1495,9 +1494,9 @@ a dwc:Occurrence, tern:FeatureOfInterest ; - void:inDataset ; prov:wasAssociatedWith ; sosa:usedProcedure ; + schema:isPartOf ; schema:spatial _:N489292b7f1191795326ddd2200000000 ; schema:temporal [ a time:TemporalEntity ; time:hasBeginning [ a time:Instant ; @@ -1507,9 +1506,9 @@ a dwc:Occurrence, tern:FeatureOfInterest ; - void:inDataset ; prov:wasAssociatedWith ; sosa:usedProcedure ; + schema:isPartOf ; schema:spatial _:N489292b7f1191795326ddd220000001b ; schema:temporal [ a time:TemporalEntity ; time:hasBeginning [ a time:Instant ; @@ -1519,9 +1518,9 @@ a dwc:Occurrence, tern:FeatureOfInterest ; - void:inDataset ; prov:wasAssociatedWith ; sosa:usedProcedure ; + schema:isPartOf ; schema:spatial _:N489292b7f1191795326ddd220000001e ; schema:temporal [ a time:TemporalEntity ; time:hasBeginning [ a time:Instant ; @@ -1531,9 +1530,9 @@ a dwc:Occurrence, tern:FeatureOfInterest ; - void:inDataset ; prov:wasAssociatedWith ; sosa:usedProcedure ; + schema:isPartOf ; schema:spatial _:N489292b7f1191795326ddd2200000003 ; schema:temporal [ a time:TemporalEntity ; time:hasBeginning [ a time:Instant ; @@ -1543,9 +1542,9 @@ a dwc:Occurrence, tern:FeatureOfInterest ; - void:inDataset ; prov:wasAssociatedWith ; sosa:usedProcedure ; + schema:isPartOf ; schema:spatial _:N489292b7f1191795326ddd2200000006 ; schema:temporal [ a time:TemporalEntity ; time:hasBeginning [ a time:Instant ; @@ -1555,9 +1554,9 @@ a dwc:Occurrence, tern:FeatureOfInterest ; - void:inDataset ; prov:wasAssociatedWith ; sosa:usedProcedure ; + schema:isPartOf ; schema:spatial _:N489292b7f1191795326ddd2200000009 ; schema:temporal [ a time:TemporalEntity ; time:hasBeginning [ a time:Instant ; @@ -1567,9 +1566,9 @@ a dwc:Occurrence, tern:FeatureOfInterest ; - void:inDataset ; prov:wasAssociatedWith ; sosa:usedProcedure ; + schema:isPartOf ; schema:spatial _:N489292b7f1191795326ddd220000000c ; schema:temporal [ a time:TemporalEntity ; time:hasBeginning [ a time:Instant ; @@ -1579,9 +1578,9 @@ a dwc:Occurrence, tern:FeatureOfInterest ; - void:inDataset ; prov:wasAssociatedWith ; sosa:usedProcedure ; + schema:isPartOf ; schema:spatial _:N489292b7f1191795326ddd220000000f ; schema:temporal [ a time:TemporalEntity ; time:hasBeginning [ a time:Instant ; @@ -1591,9 +1590,9 @@ a dwc:Occurrence, tern:FeatureOfInterest ; - void:inDataset ; prov:wasAssociatedWith ; sosa:usedProcedure ; + schema:isPartOf ; schema:spatial _:N489292b7f1191795326ddd2200000012 ; schema:temporal [ a time:TemporalEntity ; time:hasBeginning [ a time:Instant ; @@ -1603,9 +1602,9 @@ a dwc:Occurrence, tern:FeatureOfInterest ; - void:inDataset ; prov:wasAssociatedWith ; sosa:usedProcedure ; + schema:isPartOf ; schema:spatial _:N489292b7f1191795326ddd2200000015 ; schema:temporal [ a time:TemporalEntity ; time:hasBeginning [ a time:Instant ; @@ -1615,9 +1614,9 @@ a dwc:Occurrence, tern:FeatureOfInterest ; - void:inDataset ; prov:wasAssociatedWith ; sosa:usedProcedure ; + schema:isPartOf ; schema:spatial _:N489292b7f1191795326ddd2200000018 ; schema:temporal [ a time:TemporalEntity ; time:hasBeginning [ a time:Instant ; @@ -1629,8 +1628,8 @@ tern:Text, tern:Value ; rdfs:label "scientificName" ; - void:inDataset ; rdf:value "Banksia sessilis var. cordata" ; + schema:isPartOf ; tern:featureType . a tern:Text, @@ -1644,11 +1643,11 @@ a dwc:Occurrence, tern:FeatureOfInterest ; - void:inDataset ; dwc:catalogNumber "CC123"^^ ; dwc:collectionCode "C01" ; prov:wasAssociatedWith ; sosa:usedProcedure ; + schema:isPartOf ; schema:spatial _:N489292b7f1191795326ddd2200000024 ; schema:temporal [ a time:TemporalEntity ; time:hasBeginning [ a time:Instant ; @@ -1658,11 +1657,11 @@ a dwc:Occurrence, tern:FeatureOfInterest ; - void:inDataset ; dwc:catalogNumber "CC456"^^ ; dwc:collectionCode "C01" ; prov:wasAssociatedWith ; sosa:usedProcedure ; + schema:isPartOf ; schema:spatial _:N489292b7f1191795326ddd2200000027 ; schema:temporal [ a time:TemporalEntity ; time:hasBeginning [ a time:Instant ; @@ -1672,31 +1671,30 @@ a tern:FeatureOfInterest, tern:Sample ; - void:inDataset ; rdfs:comment "specimen-sample" ; sosa:isResultOf ; sosa:isSampleOf ; + schema:isPartOf ; tern:featureType . a tern:FeatureOfInterest, tern:Sample ; - void:inDataset ; rdfs:comment "specimen-sample" ; sosa:isResultOf ; sosa:isSampleOf ; + schema:isPartOf ; tern:featureType . a tern:FeatureOfInterest, tern:Text, tern:Value ; rdfs:label "scientificName" ; - void:inDataset ; rdf:value "Caladenia excelsa" ; + schema:isPartOf ; tern:featureType . a dwc:Occurrence, tern:FeatureOfInterest ; - void:inDataset ; dwc:catalogNumber "ARACH"^^ ; dwc:collectionCode "32237" ; prov:wasAssociatedWith ; @@ -1705,6 +1703,7 @@ "M12378"^^, "MR-456"^^, "PE:12:8832"^^ ; + schema:isPartOf ; schema:spatial _:N489292b7f1191795326ddd220000002a ; schema:temporal [ a time:TemporalEntity ; time:hasBeginning [ a time:Instant ; @@ -1714,7 +1713,6 @@ a dwc:Occurrence, tern:FeatureOfInterest ; - void:inDataset ; dwc:catalogNumber "ARACH"^^ ; dwc:collectionCode "32238" ; prov:wasAssociatedWith ; @@ -1723,6 +1721,7 @@ "M12379"^^, "MR-457"^^, "PE:12:8833"^^ ; + schema:isPartOf ; schema:spatial _:N489292b7f1191795326ddd220000002d ; schema:temporal [ a time:TemporalEntity ; time:hasBeginning [ a time:Instant ; diff --git a/abis_mapping/templates/incidental_occurrence_data_v3/mapping.py b/abis_mapping/templates/incidental_occurrence_data_v3/mapping.py index 4012bb9d..88a6c7f0 100644 --- a/abis_mapping/templates/incidental_occurrence_data_v3/mapping.py +++ b/abis_mapping/templates/incidental_occurrence_data_v3/mapping.py @@ -1226,7 +1226,7 @@ def add_observation_scientific_name( # Add to Graph graph.add((uri, a, utils.namespaces.TERN.Observation)) - graph.add((uri, rdflib.VOID.inDataset, dataset)) + graph.add((uri, rdflib.SDO.isPartOf, dataset)) graph.add((uri, rdflib.RDFS.comment, rdflib.Literal("scientificName-observation"))) graph.add((uri, rdflib.SOSA.hasFeatureOfInterest, provider_record_id_occurrence)) graph.add((uri, rdflib.SOSA.hasResult, scientific_name)) @@ -1295,7 +1295,7 @@ def add_observation_verbatim_id( # Add to Graph graph.add((uri, a, utils.namespaces.TERN.Observation)) - graph.add((uri, rdflib.VOID.inDataset, dataset)) + graph.add((uri, rdflib.SDO.isPartOf, dataset)) graph.add((uri, rdflib.RDFS.comment, rdflib.Literal("verbatimID-observation"))) graph.add((uri, rdflib.SOSA.hasFeatureOfInterest, foi)) graph.add((uri, rdflib.SOSA.hasResult, verbatim_id)) @@ -1466,7 +1466,7 @@ def add_id_qualifier_attribute( # Identification Qualifier Attribute graph.add((uri, a, utils.namespaces.TERN.Attribute)) - graph.add((uri, rdflib.VOID.inDataset, dataset)) + graph.add((uri, rdflib.SDO.isPartOf, dataset)) graph.add((uri, utils.namespaces.TERN.attribute, CONCEPT_ID_UNCERTAINTY)) if id_qualifier: graph.add((uri, utils.namespaces.TERN.hasSimpleValue, rdflib.Literal(id_qualifier))) @@ -1544,7 +1544,7 @@ def add_id_qualifier_collection( ) ) # Add link to dataset - graph.add((uri, rdflib.VOID.inDataset, dataset)) + graph.add((uri, rdflib.SDO.isPartOf, dataset)) # add link to the scientific name observation node graph.add((uri, rdflib.SDO.member, observation_scientific_name)) # Add link to attribute @@ -1575,7 +1575,7 @@ def add_id_remarks_attribute( # Identification Remarks Attribute graph.add((uri, a, utils.namespaces.TERN.Attribute)) - graph.add((uri, rdflib.VOID.inDataset, dataset)) + graph.add((uri, rdflib.SDO.isPartOf, dataset)) graph.add((uri, utils.namespaces.TERN.attribute, CONCEPT_ID_REMARKS)) if id_remarks: graph.add((uri, utils.namespaces.TERN.hasSimpleValue, rdflib.Literal(id_remarks))) @@ -1640,7 +1640,7 @@ def add_id_remarks_collection( ) ) # Add link to dataset - graph.add((uri, rdflib.VOID.inDataset, dataset)) + graph.add((uri, rdflib.SDO.isPartOf, dataset)) # add link to the scientific name observation node graph.add((uri, rdflib.SDO.member, observation_scientific_name)) # Add link to attribute @@ -1667,7 +1667,7 @@ def add_text_scientific_name( graph.add((uri, a, utils.namespaces.TERN.Value)) graph.add((uri, a, utils.namespaces.TERN.FeatureOfInterest)) graph.add((uri, rdflib.RDFS.label, rdflib.Literal("scientificName"))) - graph.add((uri, rdflib.VOID.inDataset, dataset)) + graph.add((uri, rdflib.SDO.isPartOf, dataset)) graph.add((uri, rdflib.RDF.value, rdflib.Literal(row["scientificName"]))) graph.add((uri, utils.namespaces.TERN.featureType, CONCEPT_SCIENTIFIC_NAME)) @@ -1786,7 +1786,7 @@ def add_sampling_specimen( # Add to Graph graph.add((uri, a, utils.namespaces.TERN.Sampling)) - graph.add((uri, rdflib.VOID.inDataset, dataset)) + graph.add((uri, rdflib.SDO.isPartOf, dataset)) graph.add((uri, rdflib.RDFS.comment, rdflib.Literal("specimen-sampling"))) graph.add((uri, rdflib.SOSA.hasFeatureOfInterest, provider_record_id_occurrence)) graph.add((uri, rdflib.SOSA.hasResult, sample_specimen)) @@ -1926,7 +1926,7 @@ def add_sample_specimen( # Add to Graph graph.add((uri, a, utils.namespaces.TERN.FeatureOfInterest)) graph.add((uri, a, utils.namespaces.TERN.Sample)) - graph.add((uri, rdflib.VOID.inDataset, dataset)) + graph.add((uri, rdflib.SDO.isPartOf, dataset)) graph.add((uri, rdflib.RDFS.comment, rdflib.Literal("specimen-sample"))) graph.add((uri, rdflib.SOSA.isResultOf, sampling_specimen)) graph.add((uri, rdflib.SOSA.isSampleOf, provider_record_id_occurrence)) @@ -1955,7 +1955,7 @@ def add_data_generalizations_attribute( # Data Generalizations Attribute graph.add((uri, a, utils.namespaces.TERN.Attribute)) - graph.add((uri, rdflib.VOID.inDataset, dataset)) + graph.add((uri, rdflib.SDO.isPartOf, dataset)) graph.add((uri, utils.namespaces.TERN.attribute, CONCEPT_DATA_GENERALIZATIONS)) if data_generalizations: graph.add((uri, utils.namespaces.TERN.hasSimpleValue, rdflib.Literal(data_generalizations))) @@ -2021,7 +2021,7 @@ def add_data_generalizations_collection( ) ) # Add link to dataset - graph.add((uri, rdflib.VOID.inDataset, dataset)) + graph.add((uri, rdflib.SDO.isPartOf, dataset)) # add link to the sample field graph.add((uri, rdflib.SDO.member, provider_record_id_occurrence)) # Add link to attribute @@ -2052,7 +2052,7 @@ def add_taxon_rank_attribute( # Taxon Rank Attribute graph.add((uri, a, utils.namespaces.TERN.Attribute)) - graph.add((uri, rdflib.VOID.inDataset, dataset)) + graph.add((uri, rdflib.SDO.isPartOf, dataset)) graph.add((uri, utils.namespaces.TERN.attribute, CONCEPT_TAXON_RANK)) if taxon_rank: graph.add((uri, utils.namespaces.TERN.hasSimpleValue, rdflib.Literal(taxon_rank))) @@ -2130,7 +2130,7 @@ def add_taxon_rank_collection( ) ) # Add link to dataset - graph.add((uri, rdflib.VOID.inDataset, dataset)) + graph.add((uri, rdflib.SDO.isPartOf, dataset)) # add link to the scientific name observation node graph.add((uri, rdflib.SDO.member, observation_scientific_name)) # Add link to attribute @@ -2170,7 +2170,7 @@ def add_individual_count_observation( # Individual Count Observation graph.add((uri, a, utils.namespaces.TERN.Observation)) - graph.add((uri, rdflib.VOID.inDataset, dataset)) + graph.add((uri, rdflib.SDO.isPartOf, dataset)) graph.add((uri, rdflib.RDFS.comment, rdflib.Literal("individualCount-observation"))) graph.add((uri, rdflib.SOSA.hasFeatureOfInterest, provider_record_id_occurrence)) graph.add((uri, rdflib.SOSA.hasResult, individual_count_value)) @@ -2246,7 +2246,7 @@ def add_organism_remarks_observation( # Organism Remarks Observation graph.add((uri, a, utils.namespaces.TERN.Observation)) - graph.add((uri, rdflib.VOID.inDataset, dataset)) + graph.add((uri, rdflib.SDO.isPartOf, dataset)) graph.add((uri, rdflib.RDFS.comment, rdflib.Literal("organismRemarks-observation"))) graph.add((uri, rdflib.SOSA.hasFeatureOfInterest, provider_record_id_occurrence)) graph.add((uri, rdflib.SOSA.hasResult, organism_remarks_value)) @@ -2317,7 +2317,7 @@ def add_organism_quantity_observation( # Attach node to sample field and dataset graph.add((uri, rdflib.SOSA.hasFeatureOfInterest, provider_record_id_occurrence)) - graph.add((uri, rdflib.VOID.inDataset, dataset)) + graph.add((uri, rdflib.SDO.isPartOf, dataset)) # Add type graph.add((uri, a, utils.namespaces.TERN.Observation)) @@ -2417,7 +2417,7 @@ def add_habitat_attribute( # Habitat Attribute graph.add((uri, a, utils.namespaces.TERN.Attribute)) - graph.add((uri, rdflib.VOID.inDataset, dataset)) + graph.add((uri, rdflib.SDO.isPartOf, dataset)) graph.add((uri, utils.namespaces.TERN.attribute, CONCEPT_HABITAT)) if habitat: graph.add((uri, utils.namespaces.TERN.hasSimpleValue, rdflib.Literal(habitat))) @@ -2488,7 +2488,7 @@ def add_habitat_collection( if habitat: graph.add((uri, rdflib.SDO.identifier, rdflib.Literal(f"Occurrence Collection - Habitat - {habitat}"))) # Add link to dataset - graph.add((uri, rdflib.VOID.inDataset, dataset)) + graph.add((uri, rdflib.SDO.isPartOf, dataset)) # add link to the sample field graph.add((uri, rdflib.SDO.member, provider_record_id_occurrence)) # Add link to attribute @@ -2518,7 +2518,7 @@ def add_basis_attribute( # Basis of Record Attribute graph.add((uri, a, utils.namespaces.TERN.Attribute)) - graph.add((uri, rdflib.VOID.inDataset, dataset)) + graph.add((uri, rdflib.SDO.isPartOf, dataset)) graph.add((uri, utils.namespaces.TERN.attribute, CONCEPT_BASIS_OF_RECORD)) if basis_of_record: graph.add((uri, utils.namespaces.TERN.hasSimpleValue, rdflib.Literal(basis_of_record))) @@ -2602,7 +2602,7 @@ def add_basis_collection( ) ) # Add link to dataset - graph.add((uri, rdflib.VOID.inDataset, dataset)) + graph.add((uri, rdflib.SDO.isPartOf, dataset)) # add link to the appropriate sample node if has_specimen(row): graph.add((uri, rdflib.SDO.member, sample_specimen)) @@ -2667,7 +2667,7 @@ def add_occurrence_status_observation( # Occurrence Status Observation graph.add((uri, a, utils.namespaces.TERN.Observation)) - graph.add((uri, rdflib.VOID.inDataset, dataset)) + graph.add((uri, rdflib.SDO.isPartOf, dataset)) graph.add((uri, rdflib.RDFS.comment, rdflib.Literal("occurrenceStatus-observation"))) graph.add((uri, rdflib.SOSA.hasFeatureOfInterest, provider_record_id_occurrence)) graph.add((uri, rdflib.SOSA.hasResult, occurrence_status_value)) @@ -2739,7 +2739,7 @@ def add_preparations_attribute( # Preparations Attribute graph.add((uri, a, utils.namespaces.TERN.Attribute)) - graph.add((uri, rdflib.VOID.inDataset, dataset)) + graph.add((uri, rdflib.SDO.isPartOf, dataset)) graph.add((uri, utils.namespaces.TERN.attribute, CONCEPT_PREPARATIONS)) if preparations: graph.add((uri, utils.namespaces.TERN.hasSimpleValue, rdflib.Literal(preparations))) @@ -2815,7 +2815,7 @@ def add_preparations_collection( ) ) # Add link to dataset - graph.add((uri, rdflib.VOID.inDataset, dataset)) + graph.add((uri, rdflib.SDO.isPartOf, dataset)) # add link to the sample_specimen node graph.add((uri, rdflib.SDO.member, sample_specimen)) # Add link to attribute @@ -2855,7 +2855,7 @@ def add_establishment_means_observation( # Establishment Means Observation graph.add((uri, a, utils.namespaces.TERN.Observation)) - graph.add((uri, rdflib.VOID.inDataset, dataset)) + graph.add((uri, rdflib.SDO.isPartOf, dataset)) graph.add((uri, rdflib.RDFS.comment, rdflib.Literal("establishmentMeans-observation"))) graph.add((uri, rdflib.SOSA.hasFeatureOfInterest, provider_record_id_occurrence)) graph.add((uri, rdflib.SOSA.hasResult, establishment_means_value)) @@ -2949,7 +2949,7 @@ def add_life_stage_observation( # Life Stage Observation graph.add((uri, a, utils.namespaces.TERN.Observation)) - graph.add((uri, rdflib.VOID.inDataset, dataset)) + graph.add((uri, rdflib.SDO.isPartOf, dataset)) graph.add((uri, rdflib.RDFS.comment, rdflib.Literal("lifeStage-observation"))) graph.add((uri, rdflib.SOSA.hasFeatureOfInterest, foi)) graph.add((uri, rdflib.SOSA.hasResult, life_stage_value)) @@ -3042,7 +3042,7 @@ def add_sex_observation( # Sex Observation graph.add((uri, a, utils.namespaces.TERN.Observation)) - graph.add((uri, rdflib.VOID.inDataset, dataset)) + graph.add((uri, rdflib.SDO.isPartOf, dataset)) graph.add((uri, rdflib.RDFS.comment, rdflib.Literal("sex-observation"))) graph.add((uri, rdflib.SOSA.hasFeatureOfInterest, foi)) graph.add((uri, rdflib.SOSA.hasResult, sex_value)) @@ -3136,7 +3136,7 @@ def add_reproductive_condition_observation( # Reproductive Condition Observation graph.add((uri, a, utils.namespaces.TERN.Observation)) - graph.add((uri, rdflib.VOID.inDataset, dataset)) + graph.add((uri, rdflib.SDO.isPartOf, dataset)) graph.add((uri, rdflib.RDFS.comment, rdflib.Literal("reproductiveCondition-observation"))) graph.add((uri, rdflib.SOSA.hasFeatureOfInterest, foi)) graph.add((uri, rdflib.SOSA.hasResult, reproductive_condition_value)) @@ -3219,7 +3219,7 @@ def add_accepted_name_usage_observation( # Accepted Name Usage Observation graph.add((uri, a, utils.namespaces.TERN.Observation)) - graph.add((uri, rdflib.VOID.inDataset, dataset)) + graph.add((uri, rdflib.SDO.isPartOf, dataset)) graph.add((uri, rdflib.RDFS.comment, rdflib.Literal("acceptedNameUsage-observation"))) graph.add((uri, rdflib.SOSA.hasFeatureOfInterest, scientific_name)) graph.add((uri, rdflib.SOSA.hasResult, accepted_name_usage_value)) @@ -3261,7 +3261,7 @@ def add_accepted_name_usage_value( graph.add((uri, a, utils.namespaces.TERN.Value)) graph.add((uri, a, utils.namespaces.TERN.FeatureOfInterest)) graph.add((uri, rdflib.RDFS.label, rdflib.Literal("acceptedNameUsage-value"))) - graph.add((uri, rdflib.VOID.inDataset, dataset)) + graph.add((uri, rdflib.SDO.isPartOf, dataset)) graph.add((uri, rdflib.RDF.value, rdflib.Literal(row["acceptedNameUsage"]))) graph.add((uri, utils.namespaces.TERN.featureType, CONCEPT_ACCEPTED_NAME_USAGE)) @@ -3309,7 +3309,7 @@ def add_sampling_sequencing( # Add to Graph graph.add((uri, a, utils.namespaces.TERN.Sampling)) - graph.add((uri, rdflib.VOID.inDataset, dataset)) + graph.add((uri, rdflib.SDO.isPartOf, dataset)) graph.add((uri, rdflib.RDFS.comment, rdflib.Literal("sequencing-sampling"))) graph.add((uri, rdflib.SOSA.hasFeatureOfInterest, feature_of_interest)) graph.add((uri, rdflib.SOSA.hasResult, sample_sequence)) @@ -3376,7 +3376,7 @@ def add_sample_sequence( # Add to Graph graph.add((uri, a, utils.namespaces.TERN.FeatureOfInterest)) graph.add((uri, a, utils.namespaces.TERN.Sample)) - graph.add((uri, rdflib.VOID.inDataset, dataset)) + graph.add((uri, rdflib.SDO.isPartOf, dataset)) graph.add((uri, rdflib.RDFS.comment, rdflib.Literal("sequence-sample"))) graph.add((uri, rdflib.SOSA.isResultOf, sampling_sequencing)) graph.add((uri, rdflib.SOSA.isSampleOf, feature_of_interest)) @@ -3451,7 +3451,7 @@ def add_threat_status_observation( # Threat Status Observation graph.add((uri, a, utils.namespaces.TERN.Observation)) - graph.add((uri, rdflib.VOID.inDataset, dataset)) + graph.add((uri, rdflib.SDO.isPartOf, dataset)) graph.add((uri, rdflib.RDFS.comment, rdflib.Literal("threatStatus-observation"))) graph.add((uri, rdflib.SOSA.hasFeatureOfInterest, provider_record_id_occurrence)) graph.add((uri, rdflib.SOSA.hasResult, threat_status_value)) @@ -3543,7 +3543,7 @@ def add_conservation_authority_attribute( # Conservation Authority Attribute graph.add((uri, a, utils.namespaces.TERN.Attribute)) - graph.add((uri, rdflib.VOID.inDataset, dataset)) + graph.add((uri, rdflib.SDO.isPartOf, dataset)) graph.add((uri, utils.namespaces.TERN.attribute, CONCEPT_CONSERVATION_AUTHORITY)) if conservation_authority: graph.add((uri, utils.namespaces.TERN.hasSimpleValue, rdflib.Literal(conservation_authority))) @@ -3619,7 +3619,7 @@ def add_conservation_authority_collection( ) ) # Add link to dataset - graph.add((uri, rdflib.VOID.inDataset, dataset)) + graph.add((uri, rdflib.SDO.isPartOf, dataset)) # add link to the threat status observation node graph.add((uri, rdflib.SDO.member, threat_status_observation)) # Add link to attribute @@ -3651,7 +3651,7 @@ def add_sensitivity_category_attribute( # Sensitivity Category Attribute graph.add((uri, a, utils.namespaces.TERN.Attribute)) - graph.add((uri, rdflib.VOID.inDataset, dataset)) + graph.add((uri, rdflib.SDO.isPartOf, dataset)) graph.add((uri, utils.namespaces.TERN.attribute, CONCEPT_SENSITIVITY_CATEGORY)) graph.add((uri, utils.namespaces.TERN.hasSimpleValue, rdflib.Literal(simple_value))) if sensitivity_category_value: @@ -3737,7 +3737,7 @@ def add_sensitivity_category_collection( ) ) # Add link to dataset - graph.add((uri, rdflib.VOID.inDataset, dataset)) + graph.add((uri, rdflib.SDO.isPartOf, dataset)) # Add link to attribute if sensitivity_category_attribute: graph.add((uri, utils.namespaces.TERN.hasAttribute, sensitivity_category_attribute)) @@ -3808,7 +3808,7 @@ def add_occurrence( graph.add((uri, a, utils.namespaces.TERN.FeatureOfInterest)) # Add to dataset - graph.add((uri, rdflib.VOID.inDataset, dataset)) + graph.add((uri, rdflib.SDO.isPartOf, dataset)) # Add identifiers if record_number := row["recordNumber"]: diff --git a/abis_mapping/templates/incidental_occurrence_data_v3/validators/validator.ttl b/abis_mapping/templates/incidental_occurrence_data_v3/validators/validator.ttl index 6ef1eaf6..aa54cf36 100644 --- a/abis_mapping/templates/incidental_occurrence_data_v3/validators/validator.ttl +++ b/abis_mapping/templates/incidental_occurrence_data_v3/validators/validator.ttl @@ -10,7 +10,6 @@ @prefix sosa: . @prefix tern: . @prefix time: . -@prefix void: . @prefix xsd: . bdrsh:DatatypeShape @@ -137,7 +136,7 @@ bdrsh:GeneralCollectionShape a sh:NodeShape ; sh:class schema:Collection ; sh:property [ - sh:path void:inDataset ; + sh:path schema:isPartOf ; sh:minCount 1 ; sh:maxCount 1 ; sh:nodeKind sh:IRI ; @@ -163,7 +162,7 @@ bdrsh:SensitivityCategoryCollectionShape a sh:NodeShape ; sh:class schema:Collection ; sh:property [ - sh:path void:inDataset ; + sh:path schema:isPartOf ; sh:minCount 1 ; sh:maxCount 1 ; sh:nodeKind sh:IRI ; @@ -196,7 +195,7 @@ bdrsh:IncidentalOccurrenceShape sh:class tern:FeatureOfInterest, dwc:Occurrence ; sh:property [ - sh:path void:inDataset ; + sh:path schema:isPartOf ; sh:minCount 1 ; sh:maxCount 1 ; sh:nodeKind sh:IRI ; @@ -244,12 +243,8 @@ bdrsh:IncidentalOccurrenceShape sh:maxCount 1 ; sh:class prov:Agent ; ] ; - # The next three properties are defined to protect against + # The next two properties are defined to protect against # potential copy paste issues with survey occurrence templates - sh:property [ - sh:path schema:isPartOf ; - sh:maxCount 0 ; - ] ; sh:property [ sh:path tern:hasSite ; sh:maxCount 0 ; diff --git a/abis_mapping/templates/survey_metadata_v2/examples/minimal.ttl b/abis_mapping/templates/survey_metadata_v2/examples/minimal.ttl index 2ee4efab..19bc0327 100644 --- a/abis_mapping/templates/survey_metadata_v2/examples/minimal.ttl +++ b/abis_mapping/templates/survey_metadata_v2/examples/minimal.ttl @@ -8,30 +8,29 @@ @prefix skos: . @prefix tern: . @prefix time: . -@prefix void: . @prefix xsd: . a schema:Collection ; - void:inDataset ; schema:identifier "Survey Collection - Survey Type - Wet pitfall trapping" ; + schema:isPartOf ; schema:member ; tern:hasAttribute . a schema:Collection ; - void:inDataset ; schema:identifier "Survey Collection - Target Habitat Scope - Woodland" ; + schema:isPartOf ; schema:member ; tern:hasAttribute . a schema:Collection ; - void:inDataset ; schema:identifier "Survey Collection - Target Taxonomic Scope - Coleoptera" ; + schema:isPartOf ; schema:member ; tern:hasAttribute . a schema:Collection ; - void:inDataset ; schema:identifier "Survey Collection - Target Taxonomic Scope - Insecta" ; + schema:isPartOf ; schema:member ; tern:hasAttribute . @@ -41,9 +40,9 @@ prov:wasAttributedTo . a abis:Project ; - void:inDataset ; schema:hasPart ; schema:identifier "COL1" ; + schema:isPartOf ; schema:name "Disentangling the effects of farmland use, habitat edges, and vegetation structure on ground beetle morphological traits - Summer" . a rdfs:Datatype ; @@ -59,25 +58,25 @@ prov:hadRole ] . a tern:Attribute ; - void:inDataset ; + schema:isPartOf ; tern:attribute ; tern:hasSimpleValue "Wet pitfall trapping" ; tern:hasValue . a tern:Attribute ; - void:inDataset ; + schema:isPartOf ; tern:attribute ; tern:hasSimpleValue "Woodland" ; tern:hasValue . a tern:Attribute ; - void:inDataset ; + schema:isPartOf ; tern:attribute ; tern:hasSimpleValue "Coleoptera" ; tern:hasValue . a tern:Attribute ; - void:inDataset ; + schema:isPartOf ; tern:attribute ; tern:hasSimpleValue "Insecta" ; tern:hasValue . @@ -146,9 +145,9 @@ schema:name "Disentangling the effects of farmland use, habitat edges, and vegetation structure on ground beetle morphological traits - Summer" . a prov:Plan ; - void:inDataset ; schema:citation "Ng, K., Barton, P.S., Blanchard, W. et al. Disentangling the effects of farmland use, habitat edges, and vegetation structure on ground beetle morphological traits. Oecologia 188, 645–657 (2018). https://doi.org/10.1007/s00442-018-4180-9\"" ; schema:description "Our experimental design consisted of four 400 m transects running from inside each woodland patch out into four adjoining farmland uses (crop, rested, woody debris application, revegetation plantings). To quantify potential edge efects on beetle species traits, we sampled beetles at five locations along each transect: 200 and 20 m inside woodlands, 200 and 20 m inside farmlands, and at the woodland–farmland edge (0 m). Each sampling location comprised a pair of wet invertebrate pitfall traps. separated by a drift fence (60 cm long x 10 cm high) to help direct arthropods into traps. We opened a total of 220 pairs of traps for 14 days during spring (Oct–Nov 2014), and repeated sampling during summer (January–February 2015). Beetle samples from each pitfall trap pair, and across the two time periods, were pooled to provide one sample per sampling location." ; + schema:isPartOf ; schema:url "https://biocollect.ala.org.au/document/download/2022-01/202201%20CBR%20Flora%20and%20Vegetation%20report_draftv1.pdf"^^xsd:anyURI, "https://doi.org/10.1002/9781118945568.ch11"^^xsd:anyURI . diff --git a/abis_mapping/templates/survey_metadata_v2/mapping.py b/abis_mapping/templates/survey_metadata_v2/mapping.py index 32dd1f52..6ca6f2a6 100644 --- a/abis_mapping/templates/survey_metadata_v2/mapping.py +++ b/abis_mapping/templates/survey_metadata_v2/mapping.py @@ -439,7 +439,7 @@ def add_project( # Add type and attach to dataset graph.add((uri, a, utils.namespaces.ABIS.Project)) - graph.add((uri, rdflib.VOID.inDataset, dataset)) + graph.add((uri, rdflib.SDO.isPartOf, dataset)) # Add (required) project name, id (not required) and purpose (not required). graph.add((uri, rdflib.SDO.name, rdflib.Literal(project_name))) @@ -642,7 +642,7 @@ def add_plan( graph.add((uri, a, rdflib.PROV.Plan)) # add link to dataset - graph.add((uri, rdflib.VOID.inDataset, dataset)) + graph.add((uri, rdflib.SDO.isPartOf, dataset)) # Add citation(s) if citations := row["surveyMethodCitation"]: @@ -683,7 +683,7 @@ def add_survey_type_attribute( graph.add((uri, a, utils.namespaces.TERN.Attribute)) # Add dataset - graph.add((uri, rdflib.VOID.inDataset, dataset)) + graph.add((uri, rdflib.SDO.isPartOf, dataset)) # Add attribute graph.add((uri, utils.namespaces.TERN.attribute, CONCEPT_SURVEY_TYPE)) @@ -766,7 +766,7 @@ def add_survey_type_collection( ) ) # Add link to dataset - graph.add((uri, rdflib.VOID.inDataset, dataset)) + graph.add((uri, rdflib.SDO.isPartOf, dataset)) # Add link to attribute if survey_type_attribute: graph.add((uri, utils.namespaces.TERN.hasAttribute, survey_type_attribute)) @@ -794,7 +794,7 @@ def add_target_habitat_attribute( graph.add((uri, a, utils.namespaces.TERN.Attribute)) # Add dataset - graph.add((uri, rdflib.VOID.inDataset, dataset)) + graph.add((uri, rdflib.SDO.isPartOf, dataset)) # Add attribute concept graph.add((uri, utils.namespaces.TERN.attribute, CONCEPT_TARGET_HABITAT_SCOPE)) @@ -865,7 +865,7 @@ def add_target_habitat_collection( ) ) # Add link to dataset - graph.add((uri, rdflib.VOID.inDataset, dataset)) + graph.add((uri, rdflib.SDO.isPartOf, dataset)) # Add link to attribute graph.add((uri, utils.namespaces.TERN.hasAttribute, target_habitat_attribute)) # add link to the Survey Plan node @@ -893,7 +893,7 @@ def add_target_taxonomic_attribute( graph.add((uri, a, utils.namespaces.TERN.Attribute)) # Add dataset - graph.add((uri, rdflib.VOID.inDataset, dataset)) + graph.add((uri, rdflib.SDO.isPartOf, dataset)) # Add attribute concept graph.add((uri, utils.namespaces.TERN.attribute, CONCEPT_TARGET_TAXONOMIC_SCOPE)) @@ -964,7 +964,7 @@ def add_target_taxonomic_scope_collection( ) ) # Add link to dataset - graph.add((uri, rdflib.VOID.inDataset, dataset)) + graph.add((uri, rdflib.SDO.isPartOf, dataset)) # Add link to attribute graph.add((uri, utils.namespaces.TERN.hasAttribute, target_taxon_attribute)) # add link to the Survey Plan node diff --git a/abis_mapping/templates/survey_occurrence_data_v2/examples/margaret_river_flora/margaret_river_flora.ttl b/abis_mapping/templates/survey_occurrence_data_v2/examples/margaret_river_flora/margaret_river_flora.ttl index c6f41d31..3f3315f9 100644 --- a/abis_mapping/templates/survey_occurrence_data_v2/examples/margaret_river_flora/margaret_river_flora.ttl +++ b/abis_mapping/templates/survey_occurrence_data_v2/examples/margaret_river_flora/margaret_river_flora.ttl @@ -9,131 +9,130 @@ @prefix sosa: . @prefix tern: . @prefix time: . -@prefix void: . @prefix xsd: . a schema:Collection ; - void:inDataset ; schema:identifier "Occurrence Collection - Basis Of Record - HumanObservation" ; + schema:isPartOf ; schema:member ; tern:hasAttribute . a schema:Collection ; - void:inDataset ; schema:identifier "Occurrence Collection - Basis Of Record - PreservedSpecimen" ; + schema:isPartOf ; schema:member , ; tern:hasAttribute . a schema:Collection ; - void:inDataset ; schema:identifier "Occurrence Collection - Basis Of Record - new basis of record" ; + schema:isPartOf ; schema:member ; tern:hasAttribute . a schema:Collection ; - void:inDataset ; schema:identifier "Occurrence Collection - Conservation Authority - WA" ; + schema:isPartOf ; schema:member , ; tern:hasAttribute . a schema:Collection ; - void:inDataset ; schema:identifier "Occurrence Collection - Data Generalizations - Coordinates generalised" ; + schema:isPartOf ; schema:member ; tern:hasAttribute . a schema:Collection ; - void:inDataset ; schema:identifier "Occurrence Collection - Data Generalizations - Coordinates rounded to the nearest 10 km for conservation concern" ; + schema:isPartOf ; schema:member , ; tern:hasAttribute . a schema:Collection ; - void:inDataset ; schema:identifier "Occurrence Collection - Habitat - Closed forest of Melaleuca lanceolata. White, grey or brown sand, sandy loam." ; + schema:isPartOf ; schema:member ; tern:hasAttribute . a schema:Collection ; - void:inDataset ; schema:identifier "Occurrence Collection - Habitat - new habitat" ; + schema:isPartOf ; schema:member ; tern:hasAttribute . a schema:Collection ; - void:inDataset ; schema:identifier "Occurrence Collection - Identification Qualifier - ?" ; + schema:isPartOf ; schema:member , ; tern:hasAttribute . a schema:Collection ; - void:inDataset ; schema:identifier "Occurrence Collection - Identification Qualifier - new identification qualifier" ; + schema:isPartOf ; schema:member ; tern:hasAttribute . a schema:Collection ; - void:inDataset ; schema:identifier "Occurrence Collection - Identification Qualifier - species incerta" ; + schema:isPartOf ; schema:member ; tern:hasAttribute . a schema:Collection ; - void:inDataset ; schema:identifier "Occurrence Collection - Identification Remarks - Could not confirm the ID due to damaged flower" ; + schema:isPartOf ; schema:member ; tern:hasAttribute . a schema:Collection ; - void:inDataset ; schema:identifier "Occurrence Collection - Identification Remarks - One unopened flower when recorded and one leaf only. ID not confirmed" ; + schema:isPartOf ; schema:member ; tern:hasAttribute . a schema:Collection ; - void:inDataset ; schema:identifier "Occurrence Collection - Identification Remarks - new remarks" ; + schema:isPartOf ; schema:member ; tern:hasAttribute . a schema:Collection ; - void:inDataset ; schema:identifier "Occurrence Collection - Identification Remarks - no flowers present" ; + schema:isPartOf ; schema:member ; tern:hasAttribute . a schema:Collection ; - void:inDataset ; schema:identifier "Occurrence Collection - Preparations - Wet (in ethanol or some other preservative)" ; + schema:isPartOf ; schema:member ; tern:hasAttribute . a schema:Collection ; - void:inDataset ; schema:identifier "Occurrence Collection - Preparations - new preparations" ; + schema:isPartOf ; schema:member ; tern:hasAttribute . a schema:Collection ; - void:inDataset ; schema:identifier "Occurrence Collection - Sensitivity Category - Category 1" ; + schema:isPartOf ; schema:member , ; tern:hasAttribute . a schema:Collection ; - void:inDataset ; schema:identifier "Occurrence Collection - Taxon Rank - new taxon rank" ; + schema:isPartOf ; schema:member ; tern:hasAttribute . a schema:Collection ; - void:inDataset ; schema:identifier "Occurrence Collection - Taxon Rank - species" ; + schema:isPartOf ; schema:member ; tern:hasAttribute . @@ -213,7 +212,6 @@ prov:wasAttributedTo . a tern:Observation ; - void:inDataset ; rdfs:comment "acceptedNameUsage-observation" ; time:hasTime [ a time:Instant ; rdfs:comment "Date unknown, template dateIdentified used as proxy" ; @@ -222,10 +220,10 @@ sosa:hasResult ; sosa:hasSimpleResult "Caladenia excelsa Hopper & A.P.Br." ; sosa:observedProperty ; - sosa:usedProcedure . + sosa:usedProcedure ; + schema:isPartOf . a tern:Observation ; - void:inDataset ; rdfs:comment "acceptedNameUsage-observation" ; time:hasTime [ a time:Instant ; rdfs:comment "Date unknown, template dateIdentified used as proxy" ; @@ -234,10 +232,10 @@ sosa:hasResult ; sosa:hasSimpleResult "Caladenia excelsa Hopper & A.P.Br." ; sosa:observedProperty ; - sosa:usedProcedure . + sosa:usedProcedure ; + schema:isPartOf . a tern:Observation ; - void:inDataset ; rdfs:comment "Observation method unknown, 'human observation' used as proxy", "establishmentMeans-observation" ; time:hasTime [ a time:Instant ; @@ -247,10 +245,10 @@ sosa:hasResult ; sosa:hasSimpleResult "native" ; sosa:observedProperty ; - sosa:usedProcedure . + sosa:usedProcedure ; + schema:isPartOf . a tern:Observation ; - void:inDataset ; rdfs:comment "Observation method unknown, 'human observation' used as proxy", "establishmentMeans-observation" ; time:hasTime [ a time:Instant ; @@ -260,10 +258,10 @@ sosa:hasResult ; sosa:hasSimpleResult "new establishment means" ; sosa:observedProperty ; - sosa:usedProcedure . + sosa:usedProcedure ; + schema:isPartOf . a tern:Observation ; - void:inDataset ; rdfs:comment "Observation method unknown, 'human observation' used as proxy", "individualCount-observation" ; time:hasTime [ a time:Instant ; @@ -273,10 +271,10 @@ sosa:hasResult ; sosa:hasSimpleResult 2 ; sosa:observedProperty ; - sosa:usedProcedure . + sosa:usedProcedure ; + schema:isPartOf . a tern:Observation ; - void:inDataset ; rdfs:comment "Observation method unknown, 'human observation' used as proxy", "individualCount-observation" ; time:hasTime [ a time:Instant ; @@ -286,10 +284,10 @@ sosa:hasResult ; sosa:hasSimpleResult 6 ; sosa:observedProperty ; - sosa:usedProcedure . + sosa:usedProcedure ; + schema:isPartOf . a tern:Observation ; - void:inDataset ; rdfs:comment "Observation method unknown, 'human observation' used as proxy", "occurrenceStatus-observation" ; time:hasTime [ a time:Instant ; @@ -298,10 +296,10 @@ sosa:hasResult ; sosa:hasSimpleResult "present" ; sosa:observedProperty ; - sosa:usedProcedure . + sosa:usedProcedure ; + schema:isPartOf . a tern:Observation ; - void:inDataset ; rdfs:comment "Observation method unknown, 'human observation' used as proxy", "occurrenceStatus-observation" ; time:hasTime [ a time:Instant ; @@ -310,10 +308,10 @@ sosa:hasResult ; sosa:hasSimpleResult "new occurrence status" ; sosa:observedProperty ; - sosa:usedProcedure . + sosa:usedProcedure ; + schema:isPartOf . a tern:Observation ; - void:inDataset ; rdfs:comment "Observation method unknown, 'human observation' used as proxy", "organismRemarks-observation" ; time:hasTime [ a time:Instant ; @@ -323,10 +321,10 @@ sosa:hasResult ; sosa:hasSimpleResult "Dried out leaf tips" ; sosa:observedProperty ; - sosa:usedProcedure . + sosa:usedProcedure ; + schema:isPartOf . a tern:Observation ; - void:inDataset ; rdfs:comment "Observation method unknown, 'human observation' used as proxy", "organismRemarks-observation" ; time:hasTime [ a time:Instant ; @@ -336,10 +334,10 @@ sosa:hasResult ; sosa:hasSimpleResult "Leaves brown" ; sosa:observedProperty ; - sosa:usedProcedure . + sosa:usedProcedure ; + schema:isPartOf . a tern:Observation ; - void:inDataset ; rdfs:comment "scientificName-observation" ; time:hasTime [ a time:Instant ; rdfs:comment "Date unknown, template eventDateStart used as proxy" ; @@ -349,10 +347,10 @@ sosa:hasResult ; sosa:hasSimpleResult "Calothamnus lateralis var. crassus" ; sosa:observedProperty ; - sosa:usedProcedure . + sosa:usedProcedure ; + schema:isPartOf . a tern:Observation ; - void:inDataset ; rdfs:comment "scientificName-observation" ; time:hasTime [ a time:Instant ; rdfs:comment "Date unknown, template eventDateStart used as proxy" ; @@ -362,10 +360,10 @@ sosa:hasResult ; sosa:hasSimpleResult "Caladenia excelsa" ; sosa:observedProperty ; - sosa:usedProcedure . + sosa:usedProcedure ; + schema:isPartOf . a tern:Observation ; - void:inDataset ; rdfs:comment "scientificName-observation" ; time:hasTime [ a time:Instant ; rdfs:comment "Date unknown, template eventDateStart used as proxy" ; @@ -374,10 +372,10 @@ sosa:hasResult ; sosa:hasSimpleResult "Caladenia excelsa" ; sosa:observedProperty ; - sosa:usedProcedure . + sosa:usedProcedure ; + schema:isPartOf . a tern:Observation ; - void:inDataset ; rdfs:comment "scientificName-observation" ; time:hasTime [ a time:Instant ; rdfs:comment "Date unknown, template eventDateStart used as proxy" ; @@ -387,10 +385,10 @@ sosa:hasResult ; sosa:hasSimpleResult "Caladenia excelsa" ; sosa:observedProperty ; - sosa:usedProcedure . + sosa:usedProcedure ; + schema:isPartOf . a tern:Observation ; - void:inDataset ; rdfs:comment "scientificName-observation" ; time:hasTime [ a time:Instant ; rdfs:comment "Date unknown, template eventDateStart used as proxy" ; @@ -400,10 +398,10 @@ sosa:hasResult ; sosa:hasSimpleResult "Boronia anceps" ; sosa:observedProperty ; - sosa:usedProcedure . + sosa:usedProcedure ; + schema:isPartOf . a tern:Observation ; - void:inDataset ; rdfs:comment "scientificName-observation" ; time:hasTime [ a time:Instant ; rdfs:comment "Date unknown, template eventDateStart used as proxy" ; @@ -413,10 +411,10 @@ sosa:hasResult ; sosa:hasSimpleResult "Boronia anceps" ; sosa:observedProperty ; - sosa:usedProcedure . + sosa:usedProcedure ; + schema:isPartOf . a tern:Observation ; - void:inDataset ; rdfs:comment "scientificName-observation" ; time:hasTime [ a time:Instant ; rdfs:comment "Date unknown, template eventDateStart used as proxy" ; @@ -426,10 +424,10 @@ sosa:hasResult ; sosa:hasSimpleResult "Boronia anceps" ; sosa:observedProperty ; - sosa:usedProcedure . + sosa:usedProcedure ; + schema:isPartOf . a tern:Observation ; - void:inDataset ; rdfs:comment "scientificName-observation" ; time:hasTime [ a time:Instant ; rdfs:comment "Date unknown, template eventDateStart used as proxy" ; @@ -439,10 +437,10 @@ sosa:hasResult ; sosa:hasSimpleResult "Banksia sessilis var. cordata" ; sosa:observedProperty ; - sosa:usedProcedure . + sosa:usedProcedure ; + schema:isPartOf . a tern:Observation ; - void:inDataset ; rdfs:comment "scientificName-observation" ; time:hasTime [ a time:Instant ; rdfs:comment "Date unknown, template eventDateStart used as proxy" ; @@ -452,10 +450,10 @@ sosa:hasResult ; sosa:hasSimpleResult "Banksia sessilis var. cordata" ; sosa:observedProperty ; - sosa:usedProcedure . + sosa:usedProcedure ; + schema:isPartOf . a tern:Observation ; - void:inDataset ; rdfs:comment "scientificName-observation" ; time:hasTime [ a time:Instant ; rdfs:comment "Date unknown, template eventDateStart used as proxy" ; @@ -465,10 +463,10 @@ sosa:hasResult ; sosa:hasSimpleResult "Banksia sessilis var. cordata" ; sosa:observedProperty ; - sosa:usedProcedure . + sosa:usedProcedure ; + schema:isPartOf . a tern:Observation ; - void:inDataset ; rdfs:comment "scientificName-observation" ; time:hasTime [ a time:Instant ; rdfs:comment "Date unknown, template eventDateStart used as proxy" ; @@ -478,10 +476,10 @@ sosa:hasResult ; sosa:hasSimpleResult "Banksia sessilis var. cordata" ; sosa:observedProperty ; - sosa:usedProcedure . + sosa:usedProcedure ; + schema:isPartOf . a tern:Observation ; - void:inDataset ; rdfs:comment "scientificName-observation" ; time:hasTime [ a time:Instant ; rdfs:comment "Date unknown, template eventDateStart used as proxy" ; @@ -491,10 +489,10 @@ sosa:hasResult ; sosa:hasSimpleResult "Caladenia excelsa" ; sosa:observedProperty ; - sosa:usedProcedure . + sosa:usedProcedure ; + schema:isPartOf . a tern:Observation ; - void:inDataset ; rdfs:comment "Observation method unknown, 'human observation' used as proxy", "lifeStage-observation" ; time:hasTime [ a time:Instant ; @@ -504,10 +502,10 @@ sosa:hasResult ; sosa:hasSimpleResult "adult" ; sosa:observedProperty ; - sosa:usedProcedure . + sosa:usedProcedure ; + schema:isPartOf . a tern:Observation ; - void:inDataset ; rdfs:comment "Observation method unknown, 'human observation' used as proxy", "lifeStage-observation" ; time:hasTime [ a time:Instant ; @@ -517,10 +515,10 @@ sosa:hasResult ; sosa:hasSimpleResult "new life stage" ; sosa:observedProperty ; - sosa:usedProcedure . + sosa:usedProcedure ; + schema:isPartOf . a tern:Observation ; - void:inDataset ; rdfs:comment "Observation method unknown, 'human observation' used as proxy", "reproductiveCondition-observation" ; time:hasTime [ a time:Instant ; @@ -530,10 +528,10 @@ sosa:hasResult ; sosa:hasSimpleResult "No breeding evident" ; sosa:observedProperty ; - sosa:usedProcedure . + sosa:usedProcedure ; + schema:isPartOf . a tern:Observation ; - void:inDataset ; rdfs:comment "Observation method unknown, 'human observation' used as proxy", "reproductiveCondition-observation" ; time:hasTime [ a time:Instant ; @@ -543,10 +541,10 @@ sosa:hasResult ; sosa:hasSimpleResult "new reproductiveCondition" ; sosa:observedProperty ; - sosa:usedProcedure . + sosa:usedProcedure ; + schema:isPartOf . a tern:Observation ; - void:inDataset ; rdfs:comment "Observation method unknown, 'human observation' used as proxy", "sex-observation" ; time:hasTime [ a time:Instant ; @@ -556,10 +554,10 @@ sosa:hasResult ; sosa:hasSimpleResult "male" ; sosa:observedProperty ; - sosa:usedProcedure . + sosa:usedProcedure ; + schema:isPartOf . a tern:Observation ; - void:inDataset ; rdfs:comment "Observation method unknown, 'human observation' used as proxy", "sex-observation" ; time:hasTime [ a time:Instant ; @@ -569,10 +567,10 @@ sosa:hasResult ; sosa:hasSimpleResult "new sex" ; sosa:observedProperty ; - sosa:usedProcedure . + sosa:usedProcedure ; + schema:isPartOf . a tern:Observation ; - void:inDataset ; rdfs:comment "verbatimID-observation" ; time:hasTime [ a time:Instant ; time:inXSDDateTimeStamp "2019-09-27T12:34:00+08:00"^^xsd:dateTimeStamp ] ; @@ -581,10 +579,10 @@ sosa:hasResult ; sosa:hasSimpleResult "Caladenia ?excelsa" ; sosa:observedProperty ; - sosa:usedProcedure . + sosa:usedProcedure ; + schema:isPartOf . a tern:Observation ; - void:inDataset ; rdfs:comment "verbatimID-observation" ; time:hasTime [ a time:Instant ; time:inXSDDateTimeStamp "2019-09-27T12:34:00+08:00"^^xsd:dateTimeStamp ] ; @@ -593,10 +591,10 @@ sosa:hasResult ; sosa:hasSimpleResult "Caladenia ?excelsa" ; sosa:observedProperty ; - sosa:usedProcedure . + sosa:usedProcedure ; + schema:isPartOf . a tern:Observation ; - void:inDataset ; rdfs:comment "verbatimID-observation" ; time:hasTime [ a time:Instant ; rdfs:comment "Date unknown, template eventDateStart used as proxy" ; @@ -606,10 +604,10 @@ sosa:hasResult ; sosa:hasSimpleResult "Calothamnus lateralis var. crassus" ; sosa:observedProperty ; - sosa:usedProcedure . + sosa:usedProcedure ; + schema:isPartOf . a tern:Observation ; - void:inDataset ; rdfs:comment "verbatimID-observation" ; time:hasTime [ a time:Instant ; rdfs:comment "Date unknown, template eventDateStart used as proxy" ; @@ -619,10 +617,10 @@ sosa:hasResult ; sosa:hasSimpleResult "Caladenia excelsa" ; sosa:observedProperty ; - sosa:usedProcedure . + sosa:usedProcedure ; + schema:isPartOf . a tern:Observation ; - void:inDataset ; rdfs:comment "verbatimID-observation" ; time:hasTime [ a time:Instant ; rdfs:comment "Date unknown, template eventDateStart used as proxy" ; @@ -632,10 +630,10 @@ sosa:hasResult ; sosa:hasSimpleResult "Caladenia ?excelsa" ; sosa:observedProperty ; - sosa:usedProcedure . + sosa:usedProcedure ; + schema:isPartOf . a tern:Observation ; - void:inDataset ; rdfs:comment "verbatimID-observation" ; time:hasTime [ a time:Instant ; rdfs:comment "Date unknown, template eventDateStart used as proxy" ; @@ -645,10 +643,10 @@ sosa:hasResult ; sosa:hasSimpleResult "Caladenia ?excelsa" ; sosa:observedProperty ; - sosa:usedProcedure . + sosa:usedProcedure ; + schema:isPartOf . a tern:Observation ; - void:inDataset ; rdfs:comment "verbatimID-observation" ; time:hasTime [ a time:Instant ; rdfs:comment "Date unknown, template eventDateStart used as proxy" ; @@ -658,10 +656,10 @@ sosa:hasResult ; sosa:hasSimpleResult "Boronia anceps" ; sosa:observedProperty ; - sosa:usedProcedure . + sosa:usedProcedure ; + schema:isPartOf . a tern:Observation ; - void:inDataset ; rdfs:comment "verbatimID-observation" ; time:hasTime [ a time:Instant ; rdfs:comment "Date unknown, template eventDateStart used as proxy" ; @@ -671,10 +669,10 @@ sosa:hasResult ; sosa:hasSimpleResult "Boronia anceps" ; sosa:observedProperty ; - sosa:usedProcedure . + sosa:usedProcedure ; + schema:isPartOf . a tern:Observation ; - void:inDataset ; rdfs:comment "verbatimID-observation" ; time:hasTime [ a time:Instant ; rdfs:comment "Date unknown, template eventDateStart used as proxy" ; @@ -684,10 +682,10 @@ sosa:hasResult ; sosa:hasSimpleResult "Boronia anceps" ; sosa:observedProperty ; - sosa:usedProcedure . + sosa:usedProcedure ; + schema:isPartOf . a tern:Observation ; - void:inDataset ; rdfs:comment "verbatimID-observation" ; time:hasTime [ a time:Instant ; rdfs:comment "Date unknown, template eventDateStart used as proxy" ; @@ -697,10 +695,10 @@ sosa:hasResult ; sosa:hasSimpleResult "Banksia sessilis var. cordata" ; sosa:observedProperty ; - sosa:usedProcedure . + sosa:usedProcedure ; + schema:isPartOf . a tern:Observation ; - void:inDataset ; rdfs:comment "verbatimID-observation" ; time:hasTime [ a time:Instant ; rdfs:comment "Date unknown, template eventDateStart used as proxy" ; @@ -710,10 +708,10 @@ sosa:hasResult ; sosa:hasSimpleResult "Banksia sessilis var. cordata" ; sosa:observedProperty ; - sosa:usedProcedure . + sosa:usedProcedure ; + schema:isPartOf . a tern:Observation ; - void:inDataset ; rdfs:comment "verbatimID-observation" ; time:hasTime [ a time:Instant ; rdfs:comment "Date unknown, template eventDateStart used as proxy" ; @@ -723,10 +721,10 @@ sosa:hasResult ; sosa:hasSimpleResult "Banksia sessilis var. cordata" ; sosa:observedProperty ; - sosa:usedProcedure . + sosa:usedProcedure ; + schema:isPartOf . a tern:Observation ; - void:inDataset ; rdfs:comment "verbatimID-observation" ; time:hasTime [ a time:Instant ; rdfs:comment "Date unknown, template eventDateStart used as proxy" ; @@ -736,10 +734,10 @@ sosa:hasResult ; sosa:hasSimpleResult "Banksia sessilis var. cordata" ; sosa:observedProperty ; - sosa:usedProcedure . + sosa:usedProcedure ; + schema:isPartOf . a tern:Observation ; - void:inDataset ; rdfs:comment "verbatimID-observation" ; time:hasTime [ a time:Instant ; rdfs:comment "Date unknown, template eventDateStart used as proxy" ; @@ -749,7 +747,8 @@ sosa:hasResult ; sosa:hasSimpleResult "Caladenia excelsa" ; sosa:observedProperty ; - sosa:usedProcedure . + sosa:usedProcedure ; + schema:isPartOf . a rdfs:Datatype ; skos:definition "A catalog number for the sample" ; @@ -777,124 +776,124 @@ prov:wasAttributedTo . a tern:SiteVisit ; - void:inDataset . + schema:isPartOf . a tern:Attribute ; - void:inDataset ; + schema:isPartOf ; tern:attribute ; tern:hasSimpleValue "HumanObservation" ; tern:hasValue . a tern:Attribute ; - void:inDataset ; + schema:isPartOf ; tern:attribute ; tern:hasSimpleValue "PreservedSpecimen" ; tern:hasValue . a tern:Attribute ; - void:inDataset ; + schema:isPartOf ; tern:attribute ; tern:hasSimpleValue "new basis of record" ; tern:hasValue . a tern:Attribute ; - void:inDataset ; + schema:isPartOf ; tern:attribute ; tern:hasSimpleValue "WA" ; tern:hasValue . a tern:Attribute ; - void:inDataset ; + schema:isPartOf ; tern:attribute ; tern:hasSimpleValue "Coordinates generalised" ; tern:hasValue . a tern:Attribute ; - void:inDataset ; + schema:isPartOf ; tern:attribute ; tern:hasSimpleValue "Coordinates rounded to the nearest 10 km for conservation concern" ; tern:hasValue . a tern:Attribute ; - void:inDataset ; + schema:isPartOf ; tern:attribute ; tern:hasSimpleValue "Closed forest of Melaleuca lanceolata. White, grey or brown sand, sandy loam." ; tern:hasValue . a tern:Attribute ; - void:inDataset ; + schema:isPartOf ; tern:attribute ; tern:hasSimpleValue "new habitat" ; tern:hasValue . a tern:Attribute ; - void:inDataset ; + schema:isPartOf ; tern:attribute ; tern:hasSimpleValue "?" ; tern:hasValue . a tern:Attribute ; - void:inDataset ; + schema:isPartOf ; tern:attribute ; tern:hasSimpleValue "new identification qualifier" ; tern:hasValue . a tern:Attribute ; - void:inDataset ; + schema:isPartOf ; tern:attribute ; tern:hasSimpleValue "species incerta" ; tern:hasValue . a tern:Attribute ; - void:inDataset ; + schema:isPartOf ; tern:attribute ; tern:hasSimpleValue "Could not confirm the ID due to damaged flower" ; tern:hasValue . a tern:Attribute ; - void:inDataset ; + schema:isPartOf ; tern:attribute ; tern:hasSimpleValue "One unopened flower when recorded and one leaf only. ID not confirmed" ; tern:hasValue . a tern:Attribute ; - void:inDataset ; + schema:isPartOf ; tern:attribute ; tern:hasSimpleValue "new remarks" ; tern:hasValue . a tern:Attribute ; - void:inDataset ; + schema:isPartOf ; tern:attribute ; tern:hasSimpleValue "no flowers present" ; tern:hasValue . a tern:Attribute ; - void:inDataset ; + schema:isPartOf ; tern:attribute ; tern:hasSimpleValue "Wet (in ethanol or some other preservative)" ; tern:hasValue . a tern:Attribute ; - void:inDataset ; + schema:isPartOf ; tern:attribute ; tern:hasSimpleValue "new preparations" ; tern:hasValue . a tern:Attribute ; - void:inDataset ; + schema:isPartOf ; tern:attribute ; tern:hasSimpleValue "Category 1 - Department of Biodiversity and Conservation" ; tern:hasValue . a tern:Attribute ; - void:inDataset ; + schema:isPartOf ; tern:attribute ; tern:hasSimpleValue "new taxon rank" ; tern:hasValue . a tern:Attribute ; - void:inDataset ; + schema:isPartOf ; tern:attribute ; tern:hasSimpleValue "species" ; tern:hasValue . @@ -1076,7 +1075,6 @@ schema:isPartOf . a tern:Observation ; - void:inDataset ; rdfs:comment "threatStatus-observation" ; time:hasTime [ a time:Instant ; rdfs:comment "Date unknown, template dateIdentified used as proxy" ; @@ -1086,10 +1084,10 @@ sosa:hasResult ; sosa:hasSimpleResult "VU" ; sosa:observedProperty ; - sosa:usedProcedure . + sosa:usedProcedure ; + schema:isPartOf . a tern:Observation ; - void:inDataset ; rdfs:comment "threatStatus-observation" ; time:hasTime [ a time:Instant ; rdfs:comment "Date unknown, template dateIdentified used as proxy" ; @@ -1098,7 +1096,8 @@ sosa:hasResult ; sosa:hasSimpleResult "new threat status" ; sosa:observedProperty ; - sosa:usedProcedure . + sosa:usedProcedure ; + schema:isPartOf . a tern:IRI, tern:Value ; @@ -1144,8 +1143,8 @@ tern:Text, tern:Value ; rdfs:label "scientificName" ; - void:inDataset ; rdf:value "Calothamnus lateralis var. crassus" ; + schema:isPartOf ; tern:featureType . a tern:IRI, @@ -1194,22 +1193,22 @@ a tern:FeatureOfInterest, tern:Sample ; - void:inDataset ; rdfs:comment "sequence-sample" ; sosa:isResultOf ; sosa:isSampleOf ; schema:identifier "https://www.ncbi.nlm.nih.gov/nuccore/MH040616.1", "https://www.ncbi.nlm.nih.gov/nuccore/MH040669.1" ; + schema:isPartOf ; tern:featureType . a tern:FeatureOfInterest, tern:Sample ; - void:inDataset ; rdfs:comment "sequence-sample" ; sosa:isResultOf ; sosa:isSampleOf ; schema:identifier "https://www.ncbi.nlm.nih.gov/nuccore/MH040616.1", "https://www.ncbi.nlm.nih.gov/nuccore/MH040669.1" ; + schema:isPartOf ; tern:featureType . a tern:IRI, @@ -1314,11 +1313,11 @@ a tern:FeatureOfInterest, tern:Site ; - void:inDataset ; + schema:isPartOf ; tern:featureType . a tern:Survey ; - void:inDataset . + schema:isPartOf . a skos:Concept ; skos:broader ; @@ -1335,7 +1334,6 @@ schema:citation "http://createme.org/dataset/Example-Systematic-Survey-Occurrence-Dataset"^^xsd:anyURI . a tern:Observation ; - void:inDataset ; rdfs:comment "scientificName-observation" ; time:hasTime [ a time:Instant ; rdfs:comment "Date unknown, template eventDateStart used as proxy" ; @@ -1345,10 +1343,10 @@ sosa:hasResult ; sosa:hasSimpleResult "Caladenia excelsa" ; sosa:observedProperty ; - sosa:usedProcedure . + sosa:usedProcedure ; + schema:isPartOf . a tern:Observation ; - void:inDataset ; rdfs:comment "scientificName-observation" ; time:hasTime [ a time:Instant ; rdfs:comment "Date unknown, template eventDateStart used as proxy" ; @@ -1358,14 +1356,15 @@ sosa:hasResult ; sosa:hasSimpleResult "Caladenia excelsa" ; sosa:observedProperty ; - sosa:usedProcedure . + sosa:usedProcedure ; + schema:isPartOf . a tern:FeatureOfInterest, tern:Text, tern:Value ; rdfs:label "acceptedNameUsage-value" ; - void:inDataset ; rdf:value "Caladenia excelsa Hopper & A.P.Br." ; + schema:isPartOf ; tern:featureType . a tern:Text, @@ -1374,14 +1373,13 @@ a tern:FeatureOfInterest, tern:Sample ; - void:inDataset ; rdfs:comment "specimen-sample" ; sosa:isResultOf ; sosa:isSampleOf ; + schema:isPartOf ; tern:featureType . a tern:Sampling ; - void:inDataset ; geo:hasGeometry _:N97499f6e93a23881f212924400000001 ; geo:hasMetricSpatialAccuracy 5e+01 ; rdfs:comment "sequencing-sampling" ; @@ -1390,10 +1388,10 @@ time:inXSDDate "2019-09-26"^^xsd:date ] ; sosa:hasFeatureOfInterest ; sosa:hasResult ; - sosa:usedProcedure . + sosa:usedProcedure ; + schema:isPartOf . a tern:Sampling ; - void:inDataset ; geo:hasGeometry _:N97499f6e93a23881f212924400000003 ; geo:hasMetricSpatialAccuracy 3e+01 ; rdfs:comment "sequencing-sampling" ; @@ -1402,10 +1400,10 @@ time:inXSDDate "2019-09-26"^^xsd:date ] ; sosa:hasFeatureOfInterest ; sosa:hasResult ; - sosa:usedProcedure . + sosa:usedProcedure ; + schema:isPartOf . a tern:Sampling ; - void:inDataset ; geo:hasGeometry _:N2021abae78e1a33ea09b88e700000001 ; rdfs:comment "specimen-sampling" ; time:hasTime [ a time:Instant ; @@ -1413,10 +1411,10 @@ time:inXSDDate "2019-09-26"^^xsd:date ] ; sosa:hasFeatureOfInterest ; sosa:hasResult ; - sosa:usedProcedure . + sosa:usedProcedure ; + schema:isPartOf . a tern:Sampling ; - void:inDataset ; geo:hasGeometry _:N2021abae78e1a33ea09b88e700000003 ; geo:hasMetricSpatialAccuracy 5e+01 ; rdfs:comment "specimen-sampling" ; @@ -1424,10 +1422,10 @@ time:inXSDDate "2019-09-26"^^xsd:date ] ; sosa:hasFeatureOfInterest ; sosa:hasResult ; - sosa:usedProcedure . + sosa:usedProcedure ; + schema:isPartOf . a tern:Sampling ; - void:inDataset ; geo:hasGeometry _:N2021abae78e1a33ea09b88e700000005 ; geo:hasMetricSpatialAccuracy 3e+01 ; rdfs:comment "specimen-sampling" ; @@ -1435,13 +1433,13 @@ time:inXSDDate "2019-09-27"^^xsd:date ] ; sosa:hasFeatureOfInterest ; sosa:hasResult ; - sosa:usedProcedure . + sosa:usedProcedure ; + schema:isPartOf . a prov:Agent ; schema:name "WAM" . a tern:Observation ; - void:inDataset ; rdfs:comment "scientificName-observation" ; time:hasTime [ a time:Instant ; time:inXSDDateTimeStamp "2019-09-27T12:34:00+08:00"^^xsd:dateTimeStamp ] ; @@ -1450,10 +1448,10 @@ sosa:hasResult ; sosa:hasSimpleResult "Caladenia excelsa" ; sosa:observedProperty ; - sosa:usedProcedure . + sosa:usedProcedure ; + schema:isPartOf . a tern:Observation ; - void:inDataset ; rdfs:comment "scientificName-observation" ; time:hasTime [ a time:Instant ; time:inXSDDateTimeStamp "2019-09-27T12:34:00+08:00"^^xsd:dateTimeStamp ] ; @@ -1462,13 +1460,14 @@ sosa:hasResult ; sosa:hasSimpleResult "Caladenia excelsa" ; sosa:observedProperty ; - sosa:usedProcedure . + sosa:usedProcedure ; + schema:isPartOf . a dwc:Occurrence, tern:FeatureOfInterest ; - void:inDataset ; sosa:usedProcedure ; - schema:isPartOf ; + schema:isPartOf , + ; schema:spatial _:N1dddcc66c58fa593aae7f72f00000021 ; schema:temporal [ a time:TemporalEntity ; time:hasBeginning [ a time:Instant ; @@ -1479,8 +1478,8 @@ tern:Text, tern:Value ; rdfs:label "scientificName" ; - void:inDataset ; rdf:value "Boronia anceps" ; + schema:isPartOf ; tern:featureType . a tern:Text, @@ -1489,10 +1488,10 @@ a dwc:Occurrence, tern:FeatureOfInterest ; - void:inDataset ; prov:wasAssociatedWith ; sosa:usedProcedure ; - schema:isPartOf ; + schema:isPartOf , + ; schema:spatial _:N1dddcc66c58fa593aae7f72f00000000 ; schema:temporal [ a time:TemporalEntity ; time:hasBeginning [ a time:Instant ; @@ -1502,10 +1501,10 @@ a dwc:Occurrence, tern:FeatureOfInterest ; - void:inDataset ; prov:wasAssociatedWith ; sosa:usedProcedure ; - schema:isPartOf ; + schema:isPartOf , + ; schema:spatial _:N1dddcc66c58fa593aae7f72f0000001b ; schema:temporal [ a time:TemporalEntity ; time:hasBeginning [ a time:Instant ; @@ -1515,10 +1514,10 @@ a dwc:Occurrence, tern:FeatureOfInterest ; - void:inDataset ; prov:wasAssociatedWith ; sosa:usedProcedure ; - schema:isPartOf ; + schema:isPartOf , + ; schema:spatial _:N1dddcc66c58fa593aae7f72f0000001e ; schema:temporal [ a time:TemporalEntity ; time:hasBeginning [ a time:Instant ; @@ -1528,10 +1527,10 @@ a dwc:Occurrence, tern:FeatureOfInterest ; - void:inDataset ; prov:wasAssociatedWith ; sosa:usedProcedure ; - schema:isPartOf ; + schema:isPartOf , + ; schema:spatial _:N1dddcc66c58fa593aae7f72f00000003 ; schema:temporal [ a time:TemporalEntity ; time:hasBeginning [ a time:Instant ; @@ -1541,10 +1540,10 @@ a dwc:Occurrence, tern:FeatureOfInterest ; - void:inDataset ; prov:wasAssociatedWith ; sosa:usedProcedure ; - schema:isPartOf ; + schema:isPartOf , + ; schema:spatial _:N1dddcc66c58fa593aae7f72f00000006 ; schema:temporal [ a time:TemporalEntity ; time:hasBeginning [ a time:Instant ; @@ -1554,10 +1553,10 @@ a dwc:Occurrence, tern:FeatureOfInterest ; - void:inDataset ; prov:wasAssociatedWith ; sosa:usedProcedure ; - schema:isPartOf ; + schema:isPartOf , + ; schema:spatial _:N1dddcc66c58fa593aae7f72f00000009 ; schema:temporal [ a time:TemporalEntity ; time:hasBeginning [ a time:Instant ; @@ -1567,10 +1566,10 @@ a dwc:Occurrence, tern:FeatureOfInterest ; - void:inDataset ; prov:wasAssociatedWith ; sosa:usedProcedure ; - schema:isPartOf ; + schema:isPartOf , + ; schema:spatial _:N1dddcc66c58fa593aae7f72f0000000c ; schema:temporal [ a time:TemporalEntity ; time:hasBeginning [ a time:Instant ; @@ -1580,10 +1579,10 @@ a dwc:Occurrence, tern:FeatureOfInterest ; - void:inDataset ; prov:wasAssociatedWith ; sosa:usedProcedure ; - schema:isPartOf ; + schema:isPartOf , + ; schema:spatial _:N1dddcc66c58fa593aae7f72f0000000f ; schema:temporal [ a time:TemporalEntity ; time:hasBeginning [ a time:Instant ; @@ -1593,10 +1592,10 @@ a dwc:Occurrence, tern:FeatureOfInterest ; - void:inDataset ; prov:wasAssociatedWith ; sosa:usedProcedure ; - schema:isPartOf ; + schema:isPartOf , + ; schema:spatial _:N1dddcc66c58fa593aae7f72f00000012 ; schema:temporal [ a time:TemporalEntity ; time:hasBeginning [ a time:Instant ; @@ -1606,10 +1605,10 @@ a dwc:Occurrence, tern:FeatureOfInterest ; - void:inDataset ; prov:wasAssociatedWith ; sosa:usedProcedure ; - schema:isPartOf ; + schema:isPartOf , + ; schema:spatial _:N1dddcc66c58fa593aae7f72f00000015 ; schema:temporal [ a time:TemporalEntity ; time:hasBeginning [ a time:Instant ; @@ -1619,10 +1618,10 @@ a dwc:Occurrence, tern:FeatureOfInterest ; - void:inDataset ; prov:wasAssociatedWith ; sosa:usedProcedure ; - schema:isPartOf ; + schema:isPartOf , + ; schema:spatial _:N1dddcc66c58fa593aae7f72f00000018 ; schema:temporal [ a time:TemporalEntity ; time:hasBeginning [ a time:Instant ; @@ -1634,8 +1633,8 @@ tern:Text, tern:Value ; rdfs:label "scientificName" ; - void:inDataset ; rdf:value "Banksia sessilis var. cordata" ; + schema:isPartOf ; tern:featureType . a tern:Text, @@ -1649,12 +1648,12 @@ a dwc:Occurrence, tern:FeatureOfInterest ; - void:inDataset ; dwc:catalogNumber "CC123"^^ ; dwc:collectionCode "C01" ; prov:wasAssociatedWith ; sosa:usedProcedure ; - schema:isPartOf ; + schema:isPartOf , + ; schema:spatial _:N1dddcc66c58fa593aae7f72f00000024 ; schema:temporal [ a time:TemporalEntity ; time:hasBeginning [ a time:Instant ; @@ -1664,12 +1663,12 @@ a dwc:Occurrence, tern:FeatureOfInterest ; - void:inDataset ; dwc:catalogNumber "CC456"^^ ; dwc:collectionCode "C01" ; prov:wasAssociatedWith ; sosa:usedProcedure ; - schema:isPartOf ; + schema:isPartOf , + ; schema:spatial _:N1dddcc66c58fa593aae7f72f00000027 ; schema:temporal [ a time:TemporalEntity ; time:hasBeginning [ a time:Instant ; @@ -1679,31 +1678,30 @@ a tern:FeatureOfInterest, tern:Sample ; - void:inDataset ; rdfs:comment "specimen-sample" ; sosa:isResultOf ; sosa:isSampleOf ; + schema:isPartOf ; tern:featureType . a tern:FeatureOfInterest, tern:Sample ; - void:inDataset ; rdfs:comment "specimen-sample" ; sosa:isResultOf ; sosa:isSampleOf ; + schema:isPartOf ; tern:featureType . a tern:FeatureOfInterest, tern:Text, tern:Value ; rdfs:label "scientificName" ; - void:inDataset ; rdf:value "Caladenia excelsa" ; + schema:isPartOf ; tern:featureType . a dwc:Occurrence, tern:FeatureOfInterest ; - void:inDataset ; dwc:catalogNumber "ARACH"^^ ; dwc:collectionCode "32237" ; prov:wasAssociatedWith ; @@ -1713,7 +1711,8 @@ "M12378"^^, "MR-456"^^, "PE:12:8832"^^ ; - schema:isPartOf ; + schema:isPartOf , + ; schema:spatial _:N1dddcc66c58fa593aae7f72f0000002a ; schema:temporal [ a time:TemporalEntity ; time:hasBeginning [ a time:Instant ; @@ -1724,7 +1723,6 @@ a dwc:Occurrence, tern:FeatureOfInterest ; - void:inDataset ; dwc:catalogNumber "ARACH"^^ ; dwc:collectionCode "32238" ; prov:wasAssociatedWith ; @@ -1734,7 +1732,8 @@ "M12379"^^, "MR-457"^^, "PE:12:8833"^^ ; - schema:isPartOf ; + schema:isPartOf , + ; schema:spatial _:N1dddcc66c58fa593aae7f72f0000002d ; schema:temporal [ a time:TemporalEntity ; time:hasBeginning [ a time:Instant ; @@ -1743,7 +1742,7 @@ tern:locationDescription "Cowaramup Bay Road" . a tern:Survey ; - void:inDataset . + schema:isPartOf . a prov:Agent ; schema:name "Stream Environment and Water Pty Ltd" . diff --git a/abis_mapping/templates/survey_occurrence_data_v2/examples/organism_qty.ttl b/abis_mapping/templates/survey_occurrence_data_v2/examples/organism_qty.ttl index 1bf788fb..36846d5a 100644 --- a/abis_mapping/templates/survey_occurrence_data_v2/examples/organism_qty.ttl +++ b/abis_mapping/templates/survey_occurrence_data_v2/examples/organism_qty.ttl @@ -9,7 +9,6 @@ @prefix sosa: . @prefix tern: . @prefix time: . -@prefix void: . @prefix xsd: . a abis:BiodiversityRecord ; @@ -23,7 +22,6 @@ prov:wasAttributedTo . a tern:Observation ; - void:inDataset ; rdfs:comment "Observation method unknown, 'human observation' used as proxy", "organismQuantity-observation" ; time:hasTime [ a time:Instant ; @@ -33,10 +31,10 @@ sosa:hasResult ; sosa:hasSimpleResult "0.05 percentageCoverage" ; sosa:observedProperty ; - sosa:usedProcedure . + sosa:usedProcedure ; + schema:isPartOf . a tern:Observation ; - void:inDataset ; rdfs:comment "scientificName-observation" ; time:hasTime [ a time:Instant ; rdfs:comment "Date unknown, template eventDateStart used as proxy" ; @@ -45,7 +43,8 @@ sosa:hasResult ; sosa:hasSimpleResult "Calothamnus lateralis var. crassus" ; sosa:observedProperty ; - sosa:usedProcedure . + sosa:usedProcedure ; + schema:isPartOf . a rdfs:Datatype ; skos:definition "An identifier for the record" ; @@ -54,11 +53,11 @@ a tern:FeatureOfInterest, tern:Site ; - void:inDataset ; + schema:isPartOf ; tern:featureType . a tern:Survey ; - void:inDataset . + schema:isPartOf . a prov:Attribution ; prov:agent ; @@ -74,8 +73,8 @@ tern:Text, tern:Value ; rdfs:label "scientificName" ; - void:inDataset ; rdf:value "Calothamnus lateralis var. crassus" ; + schema:isPartOf ; tern:featureType . a prov:Agent ; @@ -83,10 +82,10 @@ a dwc:Occurrence, tern:FeatureOfInterest ; - void:inDataset ; sosa:isSampleOf ; sosa:usedProcedure ; - schema:isPartOf ; + schema:isPartOf , + ; schema:spatial _:Nbf8d3720a20d4c0a80c10b6800000000 ; schema:temporal [ a time:TemporalEntity ; time:hasBeginning [ a time:Instant ; diff --git a/abis_mapping/templates/survey_occurrence_data_v2/mapping.py b/abis_mapping/templates/survey_occurrence_data_v2/mapping.py index b1693f24..9d16e8cb 100644 --- a/abis_mapping/templates/survey_occurrence_data_v2/mapping.py +++ b/abis_mapping/templates/survey_occurrence_data_v2/mapping.py @@ -1496,7 +1496,7 @@ def add_observation_scientific_name( # Add to Graph graph.add((uri, a, utils.namespaces.TERN.Observation)) - graph.add((uri, rdflib.VOID.inDataset, dataset)) + graph.add((uri, rdflib.SDO.isPartOf, dataset)) graph.add((uri, rdflib.RDFS.comment, rdflib.Literal("scientificName-observation"))) graph.add((uri, rdflib.SOSA.hasFeatureOfInterest, provider_record_id_occurrence)) graph.add((uri, rdflib.SOSA.hasResult, scientific_name)) @@ -1584,7 +1584,7 @@ def add_observation_verbatim_id( # Add to Graph graph.add((uri, a, utils.namespaces.TERN.Observation)) - graph.add((uri, rdflib.VOID.inDataset, dataset)) + graph.add((uri, rdflib.SDO.isPartOf, dataset)) graph.add((uri, rdflib.RDFS.comment, rdflib.Literal("verbatimID-observation"))) graph.add((uri, rdflib.SOSA.hasFeatureOfInterest, foi)) graph.add((uri, rdflib.SOSA.hasResult, verbatim_id)) @@ -1766,7 +1766,7 @@ def add_id_qualifier_attribute( # Identification Qualifier Attribute graph.add((uri, a, utils.namespaces.TERN.Attribute)) - graph.add((uri, rdflib.VOID.inDataset, dataset)) + graph.add((uri, rdflib.SDO.isPartOf, dataset)) graph.add((uri, utils.namespaces.TERN.attribute, CONCEPT_ID_UNCERTAINTY)) if id_qualifier: graph.add((uri, utils.namespaces.TERN.hasSimpleValue, rdflib.Literal(id_qualifier))) @@ -1844,7 +1844,7 @@ def add_id_qualifier_collection( ) ) # Add link to dataset - graph.add((uri, rdflib.VOID.inDataset, dataset)) + graph.add((uri, rdflib.SDO.isPartOf, dataset)) # add link to the scientific name observation node graph.add((uri, rdflib.SDO.member, observation_scientific_name)) # Add link to attribute @@ -1875,7 +1875,7 @@ def add_id_remarks_attribute( # Identification Remarks Attribute graph.add((uri, a, utils.namespaces.TERN.Attribute)) - graph.add((uri, rdflib.VOID.inDataset, dataset)) + graph.add((uri, rdflib.SDO.isPartOf, dataset)) graph.add((uri, utils.namespaces.TERN.attribute, CONCEPT_ID_REMARKS)) if id_remarks: graph.add((uri, utils.namespaces.TERN.hasSimpleValue, rdflib.Literal(id_remarks))) @@ -1940,7 +1940,7 @@ def add_id_remarks_collection( ) ) # Add link to dataset - graph.add((uri, rdflib.VOID.inDataset, dataset)) + graph.add((uri, rdflib.SDO.isPartOf, dataset)) # add link to the scientific name observation node graph.add((uri, rdflib.SDO.member, observation_scientific_name)) # Add link to attribute @@ -1967,7 +1967,7 @@ def add_text_scientific_name( graph.add((uri, a, utils.namespaces.TERN.Value)) graph.add((uri, a, utils.namespaces.TERN.FeatureOfInterest)) graph.add((uri, rdflib.RDFS.label, rdflib.Literal("scientificName"))) - graph.add((uri, rdflib.VOID.inDataset, dataset)) + graph.add((uri, rdflib.SDO.isPartOf, dataset)) graph.add((uri, rdflib.RDF.value, rdflib.Literal(row["scientificName"]))) graph.add((uri, utils.namespaces.TERN.featureType, CONCEPT_SCIENTIFIC_NAME)) @@ -2107,7 +2107,7 @@ def add_sampling_specimen( # Add to Graph graph.add((uri, a, utils.namespaces.TERN.Sampling)) - graph.add((uri, rdflib.VOID.inDataset, dataset)) + graph.add((uri, rdflib.SDO.isPartOf, dataset)) graph.add((uri, rdflib.RDFS.comment, rdflib.Literal("specimen-sampling"))) graph.add((uri, rdflib.SOSA.hasFeatureOfInterest, provider_record_id_occurrence)) graph.add((uri, rdflib.SOSA.hasResult, sample_specimen)) @@ -2263,7 +2263,7 @@ def add_sample_specimen( # Add to Graph graph.add((uri, a, utils.namespaces.TERN.FeatureOfInterest)) graph.add((uri, a, utils.namespaces.TERN.Sample)) - graph.add((uri, rdflib.VOID.inDataset, dataset)) + graph.add((uri, rdflib.SDO.isPartOf, dataset)) graph.add((uri, rdflib.RDFS.comment, rdflib.Literal("specimen-sample"))) graph.add((uri, rdflib.SOSA.isResultOf, sampling_specimen)) graph.add((uri, rdflib.SOSA.isSampleOf, provider_record_id_occurrence)) @@ -2292,7 +2292,7 @@ def add_data_generalizations_attribute( # Data Generalizations Attribute graph.add((uri, a, utils.namespaces.TERN.Attribute)) - graph.add((uri, rdflib.VOID.inDataset, dataset)) + graph.add((uri, rdflib.SDO.isPartOf, dataset)) graph.add((uri, utils.namespaces.TERN.attribute, CONCEPT_DATA_GENERALIZATIONS)) if data_generalizations: graph.add((uri, utils.namespaces.TERN.hasSimpleValue, rdflib.Literal(data_generalizations))) @@ -2358,7 +2358,7 @@ def add_data_generalizations_collection( ) ) # Add link to dataset - graph.add((uri, rdflib.VOID.inDataset, dataset)) + graph.add((uri, rdflib.SDO.isPartOf, dataset)) # add link to the sample field graph.add((uri, rdflib.SDO.member, provider_record_id_occurrence)) # Add link to attribute @@ -2389,7 +2389,7 @@ def add_taxon_rank_attribute( # Taxon Rank Attribute graph.add((uri, a, utils.namespaces.TERN.Attribute)) - graph.add((uri, rdflib.VOID.inDataset, dataset)) + graph.add((uri, rdflib.SDO.isPartOf, dataset)) graph.add((uri, utils.namespaces.TERN.attribute, CONCEPT_TAXON_RANK)) if taxon_rank: graph.add((uri, utils.namespaces.TERN.hasSimpleValue, rdflib.Literal(taxon_rank))) @@ -2467,7 +2467,7 @@ def add_taxon_rank_collection( ) ) # Add link to dataset - graph.add((uri, rdflib.VOID.inDataset, dataset)) + graph.add((uri, rdflib.SDO.isPartOf, dataset)) # add link to the scientific name observation node graph.add((uri, rdflib.SDO.member, observation_scientific_name)) # Add link to attribute @@ -2510,7 +2510,7 @@ def add_individual_count_observation( # Individual Count Observation graph.add((uri, a, utils.namespaces.TERN.Observation)) - graph.add((uri, rdflib.VOID.inDataset, dataset)) + graph.add((uri, rdflib.SDO.isPartOf, dataset)) graph.add((uri, rdflib.RDFS.comment, rdflib.Literal("individualCount-observation"))) graph.add((uri, rdflib.SOSA.hasFeatureOfInterest, provider_record_id_occurrence)) graph.add((uri, rdflib.SOSA.hasResult, individual_count_value)) @@ -2606,7 +2606,7 @@ def add_organism_remarks_observation( # Organism Remarks Observation graph.add((uri, a, utils.namespaces.TERN.Observation)) - graph.add((uri, rdflib.VOID.inDataset, dataset)) + graph.add((uri, rdflib.SDO.isPartOf, dataset)) graph.add((uri, rdflib.RDFS.comment, rdflib.Literal("organismRemarks-observation"))) graph.add((uri, rdflib.SOSA.hasFeatureOfInterest, provider_record_id_occurrence)) graph.add((uri, rdflib.SOSA.hasResult, organism_remarks_value)) @@ -2688,7 +2688,7 @@ def add_habitat_attribute( # Habitat Attribute graph.add((uri, a, utils.namespaces.TERN.Attribute)) - graph.add((uri, rdflib.VOID.inDataset, dataset)) + graph.add((uri, rdflib.SDO.isPartOf, dataset)) graph.add((uri, utils.namespaces.TERN.attribute, CONCEPT_HABITAT)) if habitat: graph.add((uri, utils.namespaces.TERN.hasSimpleValue, rdflib.Literal(habitat))) @@ -2759,7 +2759,7 @@ def add_habitat_collection( if habitat: graph.add((uri, rdflib.SDO.identifier, rdflib.Literal(f"Occurrence Collection - Habitat - {habitat}"))) # Add link to dataset - graph.add((uri, rdflib.VOID.inDataset, dataset)) + graph.add((uri, rdflib.SDO.isPartOf, dataset)) # add link to the sample field graph.add((uri, rdflib.SDO.member, provider_record_id_occurrence)) # Add link to attribute @@ -2789,7 +2789,7 @@ def add_basis_attribute( # Basis of Record Attribute graph.add((uri, a, utils.namespaces.TERN.Attribute)) - graph.add((uri, rdflib.VOID.inDataset, dataset)) + graph.add((uri, rdflib.SDO.isPartOf, dataset)) graph.add((uri, utils.namespaces.TERN.attribute, CONCEPT_BASIS_OF_RECORD)) if basis_of_record: graph.add((uri, utils.namespaces.TERN.hasSimpleValue, rdflib.Literal(basis_of_record))) @@ -2873,7 +2873,7 @@ def add_basis_collection( ) ) # Add link to dataset - graph.add((uri, rdflib.VOID.inDataset, dataset)) + graph.add((uri, rdflib.SDO.isPartOf, dataset)) # add link to the appropriate sample node if has_specimen(row): graph.add((uri, rdflib.SDO.member, sample_specimen)) @@ -2941,7 +2941,7 @@ def add_occurrence_status_observation( # Occurrence Status Observation graph.add((uri, a, utils.namespaces.TERN.Observation)) - graph.add((uri, rdflib.VOID.inDataset, dataset)) + graph.add((uri, rdflib.SDO.isPartOf, dataset)) graph.add((uri, rdflib.RDFS.comment, rdflib.Literal("occurrenceStatus-observation"))) graph.add((uri, rdflib.SOSA.hasFeatureOfInterest, provider_record_id_occurrence)) graph.add((uri, rdflib.SOSA.hasResult, occurrence_status_value)) @@ -3030,7 +3030,7 @@ def add_preparations_attribute( # Preparations Attribute graph.add((uri, a, utils.namespaces.TERN.Attribute)) - graph.add((uri, rdflib.VOID.inDataset, dataset)) + graph.add((uri, rdflib.SDO.isPartOf, dataset)) graph.add((uri, utils.namespaces.TERN.attribute, CONCEPT_PREPARATIONS)) if preparations: graph.add((uri, utils.namespaces.TERN.hasSimpleValue, rdflib.Literal(preparations))) @@ -3106,7 +3106,7 @@ def add_preparations_collection( ) ) # Add link to dataset - graph.add((uri, rdflib.VOID.inDataset, dataset)) + graph.add((uri, rdflib.SDO.isPartOf, dataset)) # add link to the sample_specimen node graph.add((uri, rdflib.SDO.member, sample_specimen)) # Add link to attribute @@ -3149,7 +3149,7 @@ def add_establishment_means_observation( # Establishment Means Observation graph.add((uri, a, utils.namespaces.TERN.Observation)) - graph.add((uri, rdflib.VOID.inDataset, dataset)) + graph.add((uri, rdflib.SDO.isPartOf, dataset)) graph.add((uri, rdflib.RDFS.comment, rdflib.Literal("establishmentMeans-observation"))) graph.add((uri, rdflib.SOSA.hasFeatureOfInterest, provider_record_id_occurrence)) graph.add((uri, rdflib.SOSA.hasResult, establishment_means_value)) @@ -3262,7 +3262,7 @@ def add_life_stage_observation( # Life Stage Observation graph.add((uri, a, utils.namespaces.TERN.Observation)) - graph.add((uri, rdflib.VOID.inDataset, dataset)) + graph.add((uri, rdflib.SDO.isPartOf, dataset)) graph.add((uri, rdflib.RDFS.comment, rdflib.Literal("lifeStage-observation"))) graph.add((uri, rdflib.SOSA.hasFeatureOfInterest, foi)) graph.add((uri, rdflib.SOSA.hasResult, life_stage_value)) @@ -3375,7 +3375,7 @@ def add_sex_observation( # Sex Observation graph.add((uri, a, utils.namespaces.TERN.Observation)) - graph.add((uri, rdflib.VOID.inDataset, dataset)) + graph.add((uri, rdflib.SDO.isPartOf, dataset)) graph.add((uri, rdflib.RDFS.comment, rdflib.Literal("sex-observation"))) graph.add((uri, rdflib.SOSA.hasFeatureOfInterest, foi)) graph.add((uri, rdflib.SOSA.hasResult, sex_value)) @@ -3488,7 +3488,7 @@ def add_reproductive_condition_observation( # Reproductive Condition Observation graph.add((uri, a, utils.namespaces.TERN.Observation)) - graph.add((uri, rdflib.VOID.inDataset, dataset)) + graph.add((uri, rdflib.SDO.isPartOf, dataset)) graph.add((uri, rdflib.RDFS.comment, rdflib.Literal("reproductiveCondition-observation"))) graph.add((uri, rdflib.SOSA.hasFeatureOfInterest, foi)) graph.add((uri, rdflib.SOSA.hasResult, reproductive_condition_value)) @@ -3590,7 +3590,7 @@ def add_accepted_name_usage_observation( # Accepted Name Usage Observation graph.add((uri, a, utils.namespaces.TERN.Observation)) - graph.add((uri, rdflib.VOID.inDataset, dataset)) + graph.add((uri, rdflib.SDO.isPartOf, dataset)) graph.add((uri, rdflib.RDFS.comment, rdflib.Literal("acceptedNameUsage-observation"))) graph.add((uri, rdflib.SOSA.hasFeatureOfInterest, scientific_name)) graph.add((uri, rdflib.SOSA.hasResult, accepted_name_usage_value)) @@ -3649,7 +3649,7 @@ def add_accepted_name_usage_value( graph.add((uri, a, utils.namespaces.TERN.Value)) graph.add((uri, a, utils.namespaces.TERN.FeatureOfInterest)) graph.add((uri, rdflib.RDFS.label, rdflib.Literal("acceptedNameUsage-value"))) - graph.add((uri, rdflib.VOID.inDataset, dataset)) + graph.add((uri, rdflib.SDO.isPartOf, dataset)) graph.add((uri, rdflib.RDF.value, rdflib.Literal(row["acceptedNameUsage"]))) graph.add((uri, utils.namespaces.TERN.featureType, CONCEPT_ACCEPTED_NAME_USAGE)) @@ -3717,7 +3717,7 @@ def add_sampling_sequencing( # Add to Graph graph.add((uri, a, utils.namespaces.TERN.Sampling)) - graph.add((uri, rdflib.VOID.inDataset, dataset)) + graph.add((uri, rdflib.SDO.isPartOf, dataset)) graph.add((uri, rdflib.RDFS.comment, rdflib.Literal("sequencing-sampling"))) graph.add((uri, rdflib.SOSA.hasFeatureOfInterest, feature_of_interest)) graph.add((uri, rdflib.SOSA.hasResult, sample_sequence)) @@ -3799,7 +3799,7 @@ def add_sample_sequence( # Add to Graph graph.add((uri, a, utils.namespaces.TERN.FeatureOfInterest)) graph.add((uri, a, utils.namespaces.TERN.Sample)) - graph.add((uri, rdflib.VOID.inDataset, dataset)) + graph.add((uri, rdflib.SDO.isPartOf, dataset)) graph.add((uri, rdflib.RDFS.comment, rdflib.Literal("sequence-sample"))) graph.add((uri, rdflib.SOSA.isResultOf, sampling_sequencing)) graph.add((uri, rdflib.SOSA.isSampleOf, feature_of_interest)) @@ -3878,7 +3878,7 @@ def add_threat_status_observation( # Threat Status Observation graph.add((uri, a, utils.namespaces.TERN.Observation)) - graph.add((uri, rdflib.VOID.inDataset, dataset)) + graph.add((uri, rdflib.SDO.isPartOf, dataset)) graph.add((uri, rdflib.RDFS.comment, rdflib.Literal("threatStatus-observation"))) graph.add((uri, rdflib.SOSA.hasFeatureOfInterest, provider_record_id_occurrence)) graph.add((uri, rdflib.SOSA.hasResult, threat_status_value)) @@ -3984,7 +3984,7 @@ def add_conservation_authority_attribute( # Conservation Authority Attribute graph.add((uri, a, utils.namespaces.TERN.Attribute)) - graph.add((uri, rdflib.VOID.inDataset, dataset)) + graph.add((uri, rdflib.SDO.isPartOf, dataset)) graph.add((uri, utils.namespaces.TERN.attribute, CONCEPT_CONSERVATION_AUTHORITY)) if conservation_authority: graph.add((uri, utils.namespaces.TERN.hasSimpleValue, rdflib.Literal(conservation_authority))) @@ -4060,7 +4060,7 @@ def add_conservation_authority_collection( ) ) # Add link to dataset - graph.add((uri, rdflib.VOID.inDataset, dataset)) + graph.add((uri, rdflib.SDO.isPartOf, dataset)) # add link to the threat status observation node graph.add((uri, rdflib.SDO.member, threat_status_observation)) # Add link to attribute @@ -4099,7 +4099,7 @@ def add_organism_quantity_observation( # Attach node to sample field and dataset graph.add((uri, rdflib.SOSA.hasFeatureOfInterest, provider_record_id_occurrence)) - graph.add((uri, rdflib.VOID.inDataset, dataset)) + graph.add((uri, rdflib.SDO.isPartOf, dataset)) # Add type graph.add((uri, a, utils.namespaces.TERN.Observation)) @@ -4212,7 +4212,7 @@ def add_site( # Add site information to graph graph.add((uri, a, utils.namespaces.TERN.Site)) graph.add((uri, a, utils.namespaces.TERN.FeatureOfInterest)) - graph.add((uri, rdflib.VOID.inDataset, dataset)) + graph.add((uri, rdflib.SDO.isPartOf, dataset)) graph.add((uri, utils.namespaces.TERN.featureType, vocabs.site_type.SITE.iri)) def add_sensitivity_category_attribute( @@ -4240,7 +4240,7 @@ def add_sensitivity_category_attribute( # Sensitivity Category Attribute graph.add((uri, a, utils.namespaces.TERN.Attribute)) - graph.add((uri, rdflib.VOID.inDataset, dataset)) + graph.add((uri, rdflib.SDO.isPartOf, dataset)) graph.add((uri, utils.namespaces.TERN.attribute, CONCEPT_SENSITIVITY_CATEGORY)) graph.add((uri, utils.namespaces.TERN.hasSimpleValue, rdflib.Literal(simple_value))) if sensitivity_category_value: @@ -4326,7 +4326,7 @@ def add_sensitivity_category_collection( ) ) # Add link to dataset - graph.add((uri, rdflib.VOID.inDataset, dataset)) + graph.add((uri, rdflib.SDO.isPartOf, dataset)) # Add link to attribute if sensitivity_category_attribute: graph.add((uri, utils.namespaces.TERN.hasAttribute, sensitivity_category_attribute)) @@ -4351,7 +4351,7 @@ def add_survey( # Add type graph.add((uri, a, utils.namespaces.TERN.Survey)) # Add dataset link - graph.add((uri, rdflib.VOID.inDataset, dataset)) + graph.add((uri, rdflib.SDO.isPartOf, dataset)) def add_biodiversity_record( self, @@ -4450,7 +4450,7 @@ def add_occurrence( graph.add((uri, a, utils.namespaces.TERN.FeatureOfInterest)) # Add to dataset - graph.add((uri, rdflib.VOID.inDataset, dataset)) + graph.add((uri, rdflib.SDO.isPartOf, dataset)) # Add identifiers if record_number := row["recordNumber"]: @@ -4582,7 +4582,7 @@ def add_site_visit( # Add type graph.add((uri, a, utils.namespaces.TERN.SiteVisit)) # Add dataset link - graph.add((uri, rdflib.VOID.inDataset, dataset)) + graph.add((uri, rdflib.SDO.isPartOf, dataset)) # Helper Functions diff --git a/abis_mapping/templates/survey_occurrence_data_v2/validators/validator.ttl b/abis_mapping/templates/survey_occurrence_data_v2/validators/validator.ttl index 8d18cdc4..f88072e7 100644 --- a/abis_mapping/templates/survey_occurrence_data_v2/validators/validator.ttl +++ b/abis_mapping/templates/survey_occurrence_data_v2/validators/validator.ttl @@ -10,7 +10,6 @@ @prefix sosa: . @prefix tern: . @prefix time: . -@prefix void: . @prefix xsd: . bdrsh:DatatypeShape @@ -137,7 +136,7 @@ bdrsh:GeneralCollectionShape a sh:NodeShape ; sh:class schema:Collection ; sh:property [ - sh:path void:inDataset ; + sh:path schema:isPartOf ; sh:minCount 1 ; sh:maxCount 1 ; sh:nodeKind sh:IRI ; @@ -163,7 +162,7 @@ bdrsh:SensitivityCategoryCollectionShape a sh:NodeShape ; sh:class schema:Collection ; sh:property [ - sh:path void:inDataset ; + sh:path schema:isPartOf ; sh:minCount 1 ; sh:maxCount 1 ; sh:nodeKind sh:IRI ; @@ -195,13 +194,6 @@ bdrsh:SurveyOccurrenceShape sh:targetClass dwc:Occurrence ; sh:class tern:FeatureOfInterest, dwc:Occurrence ; - sh:property [ - sh:path void:inDataset ; - sh:minCount 1 ; - sh:maxCount 1 ; - sh:nodeKind sh:IRI ; - sh:class tern:Dataset ; - ] ; sh:property [ sh:path schema:identifier ; sh:nodeKind sh:Literal ; @@ -244,16 +236,30 @@ bdrsh:SurveyOccurrenceShape sh:maxCount 1 ; sh:class prov:Agent ; ] ; + # dwc:Occurrence has 2 schema:isPartOf triples, one for the tern:Survey and one for the tern:Dataset: sh:property [ sh:path schema:isPartOf ; sh:nodeKind sh:IRI ; - sh:minCount 1 ; - sh:maxCount 1 ; - # This node is defined on the survey metadata template - # which means the class path cannot be traversed unless - # the separate graphs are merged. Uncomment this if that - # happens. - #sh:class tern:Survey ; + sh:minCount 2 ; + sh:maxCount 2 ; + ] ; + sh:property [ + sh:path schema:isPartOf ; + sh:qualifiedValueShape [ + sh:nodeKind sh:IRI ; + sh:class tern:Survey ; + ] ; + sh:qualifiedMinCount 1 ; + sh:qualifiedMaxCount 1 ; + ] ; + sh:property [ + sh:path schema:isPartOf ; + sh:qualifiedValueShape [ + sh:nodeKind sh:IRI ; + sh:class tern:Dataset ; + ] ; + sh:qualifiedMinCount 1 ; + sh:qualifiedMaxCount 1 ; ] ; sh:property [ sh:path tern:hasSite ; @@ -265,9 +271,5 @@ bdrsh:SurveyOccurrenceShape sh:path tern:hasSiteVisit ; sh:nodeKind sh:IRI ; sh:maxCount 1 ; - # This node is defined on the survey site visit template - # which means the class path cannot be traversed unless - # the separate graphs are merged. Uncomment this if that - # happens. - #sh:class tern:SiteVisit ; + sh:class tern:SiteVisit ; ] . diff --git a/abis_mapping/templates/survey_site_data_v2/examples/minimal.ttl b/abis_mapping/templates/survey_site_data_v2/examples/minimal.ttl index a194ef2f..c86ddc00 100644 --- a/abis_mapping/templates/survey_site_data_v2/examples/minimal.ttl +++ b/abis_mapping/templates/survey_site_data_v2/examples/minimal.ttl @@ -5,20 +5,19 @@ @prefix schema: . @prefix skos: . @prefix tern: . -@prefix void: . @prefix xsd: . a schema:Collection ; - void:inDataset ; schema:identifier "Site Collection - Data Generalizations - Coordinates rounded to the nearest 10 km for conservation concern" ; + schema:isPartOf ; schema:member , , ; tern:hasAttribute . a schema:Collection ; - void:inDataset ; schema:identifier "Site Collection - Habitat - Closed forest" ; + schema:isPartOf ; schema:member , , , @@ -36,13 +35,13 @@ prov:qualifiedAttribution . a tern:Attribute ; - void:inDataset ; + schema:isPartOf ; tern:attribute ; tern:hasSimpleValue "Coordinates rounded to the nearest 10 km for conservation concern" ; tern:hasValue . a tern:Attribute ; - void:inDataset ; + schema:isPartOf ; tern:attribute ; tern:hasSimpleValue "Closed forest" ; tern:hasValue . @@ -64,46 +63,46 @@ schema:name "WAM" . a tern:Site ; - void:inDataset ; geo:hasGeometry _:N53dd57c04e35e4aa3188c0b800000000 ; schema:additionalType ; schema:description "Footprint of study area" ; schema:identifier "P0"^^ ; + schema:isPartOf ; schema:name "ParentSite" ; tern:featureType ; tern:locationDescription "Cowaramup Bay Road" . a tern:Site ; - void:inDataset ; geo:hasGeometry _:N2d5e0873e8e72e68e4a9793300000000, _:N53dd57c04e35e4aa3188c0b800000001 ; schema:additionalType ; schema:description "Fine woody debris." ; schema:identifier "P1"^^ ; - schema:isPartOf ; + schema:isPartOf , + ; schema:name "Plot 1" ; tern:featureType ; tern:locationDescription "Cowaramup Bay Road" . a tern:Site ; - void:inDataset ; geo:hasGeometry _:N2d5e0873e8e72e68e4a9793300000001, _:N53dd57c04e35e4aa3188c0b800000002 ; schema:additionalType ; schema:description "Fine woody debris." ; schema:identifier "P2"^^ ; + schema:isPartOf ; schema:name "Plot 2" ; schema:sameAs "S0" ; tern:featureType ; tern:locationDescription "Cowaramup Bay Road" . a tern:Site ; - void:inDataset ; geo:hasGeometry _:N2d5e0873e8e72e68e4a9793300000002, _:N53dd57c04e35e4aa3188c0b800000003 ; schema:additionalType ; schema:description "Fine woody debris." ; schema:identifier "P3"^^ ; + schema:isPartOf ; schema:name "Plot 3" ; schema:sameAs "http://example.com/site/S0"^^xsd:anyURI ; tern:featureType ; diff --git a/abis_mapping/templates/survey_site_data_v2/mapping.py b/abis_mapping/templates/survey_site_data_v2/mapping.py index 066858c3..249e7ddc 100644 --- a/abis_mapping/templates/survey_site_data_v2/mapping.py +++ b/abis_mapping/templates/survey_site_data_v2/mapping.py @@ -515,7 +515,7 @@ def add_site( graph.add((uri, a, utils.namespaces.TERN.Site)) # Add dataset - graph.add((uri, rdflib.VOID.inDataset, dataset)) + graph.add((uri, rdflib.SDO.isPartOf, dataset)) # Add siteID dt = site_id_datatype if site_id_datatype is not None else rdflib.XSD.string @@ -659,7 +659,7 @@ def add_habitat_attribute( graph.add((uri, a, utils.namespaces.TERN.Attribute)) # Add dataset - graph.add((uri, rdflib.VOID.inDataset, dataset)) + graph.add((uri, rdflib.SDO.isPartOf, dataset)) # Add tern values graph.add((uri, utils.namespaces.TERN.attribute, HABITAT)) @@ -721,7 +721,7 @@ def add_habitat_collection( # Add identifier graph.add((uri, rdflib.SDO.identifier, rdflib.Literal(f"Site Collection - Habitat - {raw_habitat_value}"))) # Add link to dataset - graph.add((uri, rdflib.VOID.inDataset, dataset)) + graph.add((uri, rdflib.SDO.isPartOf, dataset)) # add link to this site graph.add((uri, rdflib.SDO.member, site)) # Add link to attribute @@ -752,7 +752,7 @@ def add_data_generalizations_attribute( graph.add((uri, a, utils.namespaces.TERN.Attribute)) # Add dataset - graph.add((uri, rdflib.VOID.inDataset, dataset)) + graph.add((uri, rdflib.SDO.isPartOf, dataset)) # Add tern values graph.add((uri, utils.namespaces.TERN.attribute, CONCEPT_DATA_GENERALIZATIONS)) @@ -818,7 +818,7 @@ def add_data_generalizations_collection( ) ) # Add link to dataset - graph.add((uri, rdflib.VOID.inDataset, dataset)) + graph.add((uri, rdflib.SDO.isPartOf, dataset)) # add link to this site graph.add((uri, rdflib.SDO.member, site)) # Add link to attribute diff --git a/abis_mapping/templates/survey_site_visit_data_v2/examples/minimal.ttl b/abis_mapping/templates/survey_site_visit_data_v2/examples/minimal.ttl index c11cda41..a5a09adc 100644 --- a/abis_mapping/templates/survey_site_visit_data_v2/examples/minimal.ttl +++ b/abis_mapping/templates/survey_site_visit_data_v2/examples/minimal.ttl @@ -6,36 +6,35 @@ @prefix sosa: . @prefix tern: . @prefix time: . -@prefix void: . @prefix xsd: . a schema:Collection ; - void:inDataset ; schema:identifier "Site Visit Collection - Sampling Effort - 10 sifts" ; + schema:isPartOf ; schema:member ; tern:hasAttribute . a schema:Collection ; - void:inDataset ; schema:identifier "Site Visit Collection - Sampling Effort - 240 trap nights" ; + schema:isPartOf ; schema:member ; tern:hasAttribute . a schema:Collection ; - void:inDataset ; schema:identifier "Site Visit Collection - Target Taxonomic Scope - bird" ; + schema:isPartOf ; schema:member ; tern:hasAttribute . a schema:Collection ; - void:inDataset ; schema:identifier "Site Visit Collection - Target Taxonomic Scope - invertebrate" ; + schema:isPartOf ; schema:member ; tern:hasAttribute . a schema:Collection ; - void:inDataset ; schema:identifier "Site Visit Collection - Target Taxonomic Scope - new_taxon" ; + schema:isPartOf ; schema:member ; tern:hasAttribute . @@ -50,7 +49,6 @@ prov:qualifiedAttribution . a tern:SiteVisit ; - void:inDataset ; time:hasTime [ a time:TemporalEntity ; time:hasBeginning [ a time:Instant ; time:inXSDDate "2024-03-12"^^xsd:date ] ] ; @@ -58,35 +56,36 @@ prov:wasAssociatedWith , ; schema:identifier "TIS-24-03-P1-03" ; - schema:isPartOf ; + schema:isPartOf , + ; tern:hasSite . a tern:Attribute ; - void:inDataset ; + schema:isPartOf ; tern:attribute ; tern:hasSimpleValue "10 sifts" ; tern:hasValue . a tern:Attribute ; - void:inDataset ; + schema:isPartOf ; tern:attribute ; tern:hasSimpleValue "240 trap nights" ; tern:hasValue . a tern:Attribute ; - void:inDataset ; + schema:isPartOf ; tern:attribute ; tern:hasSimpleValue "bird" ; tern:hasValue . a tern:Attribute ; - void:inDataset ; + schema:isPartOf ; tern:attribute ; tern:hasSimpleValue "invertebrate" ; tern:hasValue . a tern:Attribute ; - void:inDataset ; + schema:isPartOf ; tern:attribute ; tern:hasSimpleValue "new_taxon" ; tern:hasValue . @@ -138,18 +137,18 @@ rdf:value . a prov:Plan ; - void:inDataset ; sosa:usedProcedure ; - schema:description "10 x square buckets of size 20 x 20 x 15 cm. Propylene glycol." . + schema:description "10 x square buckets of size 20 x 20 x 15 cm. Propylene glycol." ; + schema:isPartOf . a prov:Plan ; - void:inDataset ; sosa:usedProcedure ; - schema:description "50 cm diameter sifter with 5 mm mesh. Litter samles taken ~1 metre from each pitfall trap" . + schema:description "50 cm diameter sifter with 5 mm mesh. Litter samles taken ~1 metre from each pitfall trap" ; + schema:isPartOf . a prov:Plan ; - void:inDataset ; - sosa:usedProcedure . + sosa:usedProcedure ; + schema:isPartOf . a prov:Agent, prov:Organization ; @@ -164,7 +163,6 @@ schema:name "ORCID00003" . a tern:SiteVisit ; - void:inDataset ; time:hasTime [ a time:TemporalEntity ; time:hasBeginning [ a time:Instant ; time:inXSDDate "2024-03-12"^^xsd:date ] ; @@ -176,12 +174,12 @@ , ; schema:identifier "TIS-24-03-P1-01" ; - schema:isPartOf ; + schema:isPartOf , + ; tern:hasSite ; tern:siteDescription "dry" . a tern:SiteVisit ; - void:inDataset ; time:hasTime [ a time:TemporalEntity ; time:hasBeginning [ a time:Instant ; time:inXSDDate "2024-03-12"^^xsd:date ] ; @@ -191,7 +189,8 @@ prov:wasAssociatedWith , ; schema:identifier "TIS-24-03-P1-02" ; - schema:isPartOf ; + schema:isPartOf , + ; tern:hasSite ; tern:siteDescription "moist leaf litter after recent rain" . @@ -200,11 +199,11 @@ schema:name "ORCID00001" . a tern:Site ; - void:inDataset ; - schema:identifier "P1"^^ . + schema:identifier "P1"^^ ; + schema:isPartOf . a tern:Survey ; - void:inDataset . + schema:isPartOf . a prov:Agent, prov:Organization ; diff --git a/abis_mapping/templates/survey_site_visit_data_v2/mapping.py b/abis_mapping/templates/survey_site_visit_data_v2/mapping.py index 7beee2d6..4d4d1845 100644 --- a/abis_mapping/templates/survey_site_visit_data_v2/mapping.py +++ b/abis_mapping/templates/survey_site_visit_data_v2/mapping.py @@ -567,7 +567,7 @@ def add_site_visit_activity( # Add type graph.add((uri, a, utils.namespaces.TERN.SiteVisit)) # Add dataset link - graph.add((uri, rdflib.VOID.inDataset, dataset)) + graph.add((uri, rdflib.SDO.isPartOf, dataset)) # Add survey link graph.add((uri, rdflib.SDO.isPartOf, uri_survey)) # Add site link @@ -626,7 +626,7 @@ def add_survey( # Add type graph.add((uri, a, utils.namespaces.TERN.Survey)) # Add dataset link - graph.add((uri, rdflib.VOID.inDataset, dataset)) + graph.add((uri, rdflib.SDO.isPartOf, dataset)) def add_site( self, @@ -654,7 +654,7 @@ def add_site( graph.add((uri, rdflib.SDO.identifier, rdflib.Literal(row["siteID"], datatype=dt))) # Add to dataset - graph.add((uri, rdflib.VOID.inDataset, dataset)) + graph.add((uri, rdflib.SDO.isPartOf, dataset)) def add_site_id_datatype( self, @@ -796,7 +796,7 @@ def add_site_visit_plan( graph.add((uri, a, rdflib.PROV.Plan)) # add link to dataset - graph.add((uri, rdflib.VOID.inDataset, dataset)) + graph.add((uri, rdflib.SDO.isPartOf, dataset)) # Add description row_protocol_description: str | None = row["protocolDescription"] @@ -839,7 +839,7 @@ def add_target_taxonomic_scope_attribute( graph.add((uri, a, utils.namespaces.TERN.Attribute)) # Add dataset - graph.add((uri, rdflib.VOID.inDataset, dataset)) + graph.add((uri, rdflib.SDO.isPartOf, dataset)) # Add attribute concept graph.add((uri, utils.namespaces.TERN.attribute, CONCEPT_TARGET_TAXONOMIC_SCOPE)) @@ -919,7 +919,7 @@ def add_target_taxonomic_scope_collection( ) ) # Add link to dataset - graph.add((uri, rdflib.VOID.inDataset, dataset)) + graph.add((uri, rdflib.SDO.isPartOf, dataset)) # add link to the SiteVisit node graph.add((uri, rdflib.SDO.member, uri_site_visit_activity)) # Add link to attribute @@ -952,7 +952,7 @@ def add_sampling_effort_attribute( graph.add((uri, a, utils.namespaces.TERN.Attribute)) # Add dataset - graph.add((uri, rdflib.VOID.inDataset, dataset)) + graph.add((uri, rdflib.SDO.isPartOf, dataset)) # Add concept graph.add((uri, utils.namespaces.TERN.attribute, CONCEPT_SAMPLING_EFFORT)) @@ -1037,7 +1037,7 @@ def add_sampling_effort_collection( ) ) # Add link to dataset - graph.add((uri, rdflib.VOID.inDataset, dataset)) + graph.add((uri, rdflib.SDO.isPartOf, dataset)) # add link to the SiteVisit node graph.add((uri, rdflib.SDO.member, uri_site_visit_activity)) # Add link to attribute