diff --git a/resources/semantic-maps/schema-to-prov.sssom b/resources/semantic-maps/schema-to-prov.sssom new file mode 100644 index 000000000..c1aceed45 --- /dev/null +++ b/resources/semantic-maps/schema-to-prov.sssom @@ -0,0 +1,62 @@ +#comment: "This mapping was created following and expanding upon the SSSOM guidance: https://mapping-commons.github.io/sssom/spec/" +#license: "https://creativecommons.org/publicdomain/zero/1.0/" +#mapping_set_version: "0.1" +#subject_source: https://github.com/schemaorg/schemaorg/releases/tag/v27.02-release +#object_source: https://www.w3.org/ns/prov +#subject_source_version: V27.02 +#object_source_version: v20130430 +#mapping_date: 2024-07-12 +#creator_id: +# - orcid:0000-0002-4366-3088 +#creator_label: +# - Pier Luigi Buttigieg +#curie_map: +# rdfs: "http://www.w3.org/2000/01/rdf-schema#" +# schema: "https://schema.org/" +# prov: "http://www.w3.org/ns/prov#" +# orcid: "https://orcid.org/" +# skos: "http://www.w3.org/2004/02/skos/core#" +# semapv: "https://w3id.org/semapv/vocab/" +subject_id subject_label object_id object_label predicate_id comment mapping_justification author_id +schema:Thing Thing prov:Entity Entity skos:closeMatch These terms are usually interchangeable. semapv:ManualMappingCuration https://orcid.org/0000-0002-4366-3088 +schema:Action Action prov:Activity Activity skos:closeMatch While not exact semantic matches, these classes are interchangeable in many applications. semapv:ManualMappingCuration https://orcid.org/0000-0002-4366-3088 +schema:Person Person prov:Agent Agent skos:narrowMatch One can specify that a Person is an agent by using it as the value of the schema:agent property. semapv:ManualMappingCuration https://orcid.org/0000-0002-4366-3088 +schema:Organization Organization prov:Agent Agent skos:narrowMatch One can specify that an Organization is an agent by using it as the value of the schema:agent property. semapv:ManualMappingCuration https://orcid.org/0000-0002-4366-3088 +schema:Thing Thing prov:Agent Agent skos:relatedMatch Other things, aside from schema:Person or schema:Organization instances, can be prov:Agents (such as machines, AIs, etc). The semantic relation is weaker here, as schema:Things also include processual entities, which cannot be agents. semapv:ManualMappingCuration https://orcid.org/0000-0002-4366-3088 +schema:agent agent prov:wasAssociatedWith wasAssociatedWith skos:closeMatch In PROV, an Activity is associated with an agent, which matches the identification of a schema:agent in an Action type. semapv:ManualMappingCuration https://orcid.org/0000-0002-4366-3088 +schema:participant participant prov:wasAssociatedWith wasAssociatedWith skos:broadMatch schema:participant can be used to identify secondary agents in an Action semapv:ManualMappingCuration https://orcid.org/0000-0002-4366-3088 +schema:isBasedOn isBasedOn prov:wasDerivedFrom wasDerivedFrom skos:broadMatch schema:isBasedOn is used for CreativeWorks, so its domain and range are narrower than prov:Entities. semapv:ManualMappingCuration https://orcid.org/0000-0002-4366-3088 +schema:object object prov:wasDerivedFrom wasDerivedFrom skos:relatedMatch schema.org does not have a property on schema:Thing that can directly indicate it was derived from some other instance of Thing, thus there's no 1:1 mapping to prov:wasDerivedFrom. However, by expressing what schema:Action intervened to convert one thing to another, one can use the schema:object and schema:result properties for the Action Type to express what thing (the value of object) was converted to another (the value of result). semapv:ManualMappingCuration https://orcid.org/0000-0002-4366-3088 +schema:result result prov:wasDerivedFrom wasDerivedFrom skos:relatedMatch schema.org does not have a property on schema:Thing that can directly indicate it was derived from some other instance of Thing, thus there's no 1:1 mapping to prov:wasDerivedFrom. However, by expressing what schema:Action intervened to convert one thing to another, one can use the schema:object and schema:result properties for the Action Type to express what thing (the value of object) was converted to another (the value of result). semapv:ManualMappingCuration https://orcid.org/0000-0002-4366-3088 +schema:object object prov:used used skos:relatedMatch schema:Action has a property 'object' which indicated what Things and Action is carried out upon. This is a fuzzy match to prov:used semapv:ManualMappingCuration https://orcid.org/0000-0002-4366-3088 +schema:result result prov:generated generated skos:closeMatch schema doesn't have an inverse property for schema:result, so there's no match to wasGeneratedBy, but PROVO does provide an inverse to wasGeneratedBy, generated, which can be mapped to schema:result. semapv:ManualMappingCuration https://orcid.org/0000-0002-4366-3088 +schema:instrument instrument prov:used used skos:closeMatch schema:instrument can be used to describe any non-consumed Thing used in an Action, which is very similar to the PROV Activity uses Entity pattern. semapv:ManualMappingCuration https://orcid.org/0000-0002-4366-3088 +schema:endTime endTime prov:endedAtTime endedAtTime skos:closeMatch One has to ensure that this property is used on a schema:Action or prov:Activity. semapv:ManualMappingCuration https://orcid.org/0000-0002-4366-3088 +schema:startTime startTime prov:startedAtTime startedAtTime skos:closeMatch One has to ensure that this property is used on a schema:Action or prov:Activity. semapv:ManualMappingCuration https://orcid.org/0000-0002-4366-3088 +schema:provider provider prov:actedOnBehalfOf actedOnBehalfOf skos:relatedMatch Note that the domains of the properties in this match are different. schema:provider is a property of schema:Action, while prov:actedOnBehalfOf is a property of prov:Agent. Both can express that another agent performed an Action/Activity on behalf of another. semapv:ManualMappingCuration https://orcid.org/0000-0002-4366-3088 +schema:Person Person prov:Person Person skos:closeMatch These terms are usually interchangeable. semapv:ManualMappingCuration https://orcid.org/0000-0002-4366-3088 +schema:Organization Organization prov:Organization Organization skos:closeMatch These terms are usually interchangeable. semapv:ManualMappingCuration https://orcid.org/0000-0002-4366-3088 +schema:SoftwareApplication SoftwareApplication prov:SoftwareAgent SoftwareAgent skos:closeMatch These terms are usually interchangeable., however, the PROV class confounds function with being (software becomes an agent, and isn't always so). This is unlikely to cause issues in most applications, unless fine-grained semantic discrimination is needed. semapv:ManualMappingCuration https://orcid.org/0000-0002-4366-3088 +schema:dateCreated dateCreated prov:generatedAtTime generatedAtTime skos:broadMatch These terms are usually interchangeable., however, schema.org limited the domain of this property to schema:CreativeWorks, while PROV allows any prov:Entity to be a value. Surprisingly, this means that schema:Thing doesn't have a native property to describe when it came into being, although one could always add an schema:additionalProperty to express this. For representation of datasets and other creative works, these properties would be interchangeable. semapv:ManualMappingCuration https://orcid.org/0000-0002-4366-3088 +schema:dateDeleted dateDeleted prov:wasInvalidatedBy wasInvalidatedBy skos:broadMatch The prov:wasInvalidatedBy can apply to any Entity, while the schema:dateDeleted only applies to elements in a schema:DataFeed semapv:ManualMappingCuration https://orcid.org/0000-0002-4366-3088 +schema:DeleteAction DeleteAction prov:wasInvalidatedBy wasInvalidatedBy skos:relatedMatch The schema:Type, schema:DeleteAction, can be used on any schema:Thing to express its removal, which is closer to the semantics of prov:wasInvalidatedBy, with the added value that more metadata can be provided on the deletion event itself. semapv:ManualMappingCuration https://orcid.org/0000-0002-4366-3088 +schema:startTime startTime prov:invalidatdAtTime invalidatedAtTime skos:narrowMatch When used on a schema:DeleteAction, time properties can serve to express the time of its deletion. semapv:ManualMappingCuration https://orcid.org/0000-0002-4366-3088 +schema:endTime endTime prov:invalidatdAtTime invalidatedAtTime skos:narrowMatch When used on a schema:DeleteAction, time properties can serve to express the time of its deletion. semapv:ManualMappingCuration https://orcid.org/0000-0002-4366-3088 +schema:Place Place prov:Location Location skos:closeMatch These terms are usually interchangeable. semapv:ManualMappingCuration https://orcid.org/0000-0002-4366-3088 +schema:location location prov:atLocation atLocation skos:closeMatch These terms are usually interchangeable. semapv:ManualMappingCuration https://orcid.org/0000-0002-4366-3088 +schema:Collection Collection prov:Collection Collection skos:broadMatch These terms are usually interchangeable., however, the prov:Collection is an prov:Entity, while a schema:Collection is a schema:CreativeWork, rendering the latter semantically narrower semapv:ManualMappingCuration https://orcid.org/0000-0002-4366-3088 +schema:partOf partOf prov:hadMember hadMember skos:broadMatch These terms are usually interchangeable. for datasets and other schema:CreativeWorks. Note however, that the prov:Collection is an prov:Entity, while a schema:Collection is a schema:CreativeWork, rendering the latter semantically narrower. semapv:ManualMappingCuration https://orcid.org/0000-0002-4366-3088 +schema:isBasedOn isBasedOn prov:hadPrimarySource hadPrimarySource skos:narrowMatch When one traverses a series of schema:CreativeWork nodes through their schema:isBasedOn properties, the primary source can be discovered. This assumes that the path is complete and intact. The PROV property is a useful shortcut and a clear assertion. semapv:ManualMappingCuration https://orcid.org/0000-0002-4366-3088 +schema:potentialAction potentialAction prov:wasInfluencedBy wasInfluencedBy skos:relatedMatch 'Influence' is a very fluffy thing, semantically. While PROV provides a relation to express influence, in schema.org, one would have to use the schema:potentialAction property to identify one or more schema:Actions which the schema:Thing (or sub-Type thereof) was a schema:object in. Naturally, if the Thing played an object role in an Action, it was influenced by that Action and its participants. Metadata in the schema:Action type and any participant schema:Things in it can specify the nature of this influence. semapv:ManualMappingCuration https://orcid.org/0000-0002-4366-3088 +schema:isBasedOn isBasedOn prov:wasQuotedFrom wasQuotedFrom skos:narrowMatch When schema:isBasedOn is a property of schema:Quotation, it is semantically close to prov:wasQuotedFrom semapv:ManualMappingCuration https://orcid.org/0000-0002-4366-3088 +schema:Quotation Quotation prov:Quotation Quotation skos:closeMatch These terms are usually interchangeable. semapv:ManualMappingCuration https://orcid.org/0000-0002-4366-3088 +schema:mentions mentions prov:mentionOf mentionOf skos:broadMatch These terms are usually interchangeable, although the domain of schema:mentions is likely narrower, being limited to schema:CreativeWork rather than prov:Entity semapv:ManualMappingCuration https://orcid.org/0000-0002-4366-3088 +schema:UpdateAction UpdateAction prov:wasRevisionOf wasRevisionOf skos:relatedMatch The schema:Type, schema:UpdateAction (or its sub-Types), can be used on any schema:Thing (via schema:potentialAction) to express that it has been changed, including changes that constitute revisions. This is semantically close to prov:wasRevisionOf, with the added value that more metadata can be provided on the revision event itself. semapv:ManualMappingCuration https://orcid.org/0000-0002-4366-3088 +schema:isBasedOn isBasedOn prov:wasRevisionOf wasRevisionOf skos:narrowMatch While less semantically expressive than using schema:UpdateAction, schema:isBasedOn can be used to more broadly suggest change in a downstream schema:CreativeWork semapv:ManualMappingCuration https://orcid.org/0000-0002-4366-3088 +schema:correction correction prov:wasRevisionOf wasRevisionOf skos:relatedMatch As some revisions can be understood as corrections, schema:correction may be a valid counterpart for prov:wasRevisionOf, with a narrower range of schema:CorrectionComment. However, as the schema:correction range is limited to schema:Comment, this is not a close mapping to a schema:CreativeWork that is a revision of another in its totality, rather a corrective note referencing it. semapv:ManualMappingCuration https://orcid.org/0000-0002-4366-3088 +schema:Dataset Dataset prov:Bundle Bundle skos:narrowMatch A prov:Bundle is a set of provenance statements. No close schema:Type exists, however, schema:Dataset can express the set-like nature of a systematic collection of representations, which can be representations of provenance. semapv:ManualMappingCuration https://orcid.org/0000-0002-4366-3088 +schema:sameAs sameAs prov:alternateOf alternateOf skos:broadMatch prov:alternateOf includes references to the same entity. semapv:ManualMappingCuration https://orcid.org/0000-0002-4366-3088 +schema:citation citation prov:alternateOf alternateOf skos:relatedMatch prov:alternateOf includes references to different entities that represent aspects of the same prov:Entity. schema:citation allows one schema:Creative work to reference one or many others. It's likely, although not certain, that creative works in the range of schema:citation will contain information about alternate aspects of whatever the schema:CreativeWork is about. One can scan for identical values of schema:about to increase the chances that this is the case. semapv:ManualMappingCuration https://orcid.org/0000-0002-4366-3088 +rdfs:subClassOf subClassOf prov:specializationOf specializationOf skos:broadMatch in RDF compatible serialisations of schema.org, RDF properties are used to express specialisation. It's unclear why PROV needs to create a new property to do this very standard task. semapv:ManualMappingCuration https://orcid.org/0000-0002-4366-3088 +rdfs:subPropertyOf subPropertyOf prov:specializationOf specializationOf skos:broadMatch in RDF compatible serialisations of schema.org, RDF properties are used to express specialisation. It's unclear why PROV needs to create a new property to do this very standard task. semapv:ManualMappingCuration https://orcid.org/0000-0002-4366-3088 +schema:HowTo HowTo prov:Plan Plan skos:closeMatch These terms are usually interchangeable. semapv:ManualMappingCuration https://orcid.org/0000-0002-4366-3088