@prefix cc: <http://creativecommons.org/ns#> .
@prefix dc: <http://purl.org/dc/terms/> .
@prefix dcat: <http://www.w3.org/ns/dcat#> .
@prefix foaf: <http://xmlns.com/foaf/0.1/> .
@prefix ns0: <http://www.w3.org/2003/06/sw-vocab-status/ns#> .
@prefix ns1: <http://purl.org/vocab/vann/> .
@prefix ns2: <https://schema.org/> .
@prefix cids: <https://ontology.commonapproach.org/cids#> .
@prefix owl: <http://www.w3.org/2002/07/owl#> .
@prefix prov: <http://www.w3.org/ns/prov#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sff: <https://ontology.commonapproach.org/sff#> .
@prefix skos: <http://www.w3.org/2004/02/skos/core#> .
@prefix void: <http://rdfs.org/ns/void#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .
@prefix schema: <https://schema.org/> .
@prefix org: <http://ontology.eil.utoronto.ca/tove/organization#> .
@prefix voaf: <http://purl.org/vocommons/voaf#> .
@prefix time: <http://www.w3.org/2006/time#> .



sff:
  a owl:Ontology, voaf:Vocabulary ;
  owl:versionIRI <https://ontology.commonapproach.org/sff/1.3.0> ;
  owl:imports <http://ontology.eil.utoronto.ca/ISO21972/iso21972.owl>, <http://ontology.eil.utoronto.ca/tove/activity.owl>, <http://ontology.eil.utoronto.ca/tove/icontact.owl>, <http://ontology.eil.utoronto.ca/tove/organization.owl>, <http://www.w3.org/2006/time.rdf> ;
  cc:license "Social Finance Fund Companion Module v1.3.0 © 2025 by Common Approach to Impact Measurement is licensed under CC BY-SA 4.0. To view a copy of this license, visit http://creativecommons.org/licenses/by-sa/4.0/"@en, <https://creativecommons.org/licenses/by-sa/4.0/> ;
  ns0:term_status "Stable"@en, "Stable"@fr ;
  void:inDataset sff:datasetdefinition ;
  dc:rights "Social Finance Fund Companion Module © 2023 by Common Approach to Impact Measurement is licensed under CC BY-SA 4.0. To view a copy of this license, visit http://creativecommons.org/licenses/by-sa/4.0/"@en, <https://creativecommons.org/licenses/by-sa/4.0/> ;
  dc:creator cids:ac ;
  dc:description "An Ontology for Representing Social Finance Fund Reporting Requirements"@en ;
  dc:title "Social Finance Fund Companion Module"@en ;
  foaf:name "Social Finance Fund Companion Module"@en ;
  ns1:preferredNamespacePrefix "sff" ;
  ns1:preferredNamespaceUri "https://ontology.commonapproach.org/sff#" ;
  dc:date "11-10-2024" ;
  owl:priorVersion <https://ontology.commonapproach.org/sff/1.0> ;
  owl:versionInfo "1.3.0"@en .

sff:datasetdefinition
  a void:Dataset, schema:Dataset, dcat:Dataset ;
  dc:rights <https://creativecommons.org/licenses/by-sa/4.0/> ;
  dc:creator cids:ac ;
  dc:description "An Ontology for Representing Social Finance Fund Reporting Requirements"@en ;
  dc:title "Social Finance Fund Companion Module"@en ;
  foaf:name "Social Finance Fund Companion Module"@en ;
  ns2:license <https://creativecommons.org/licenses/by-sa/4.0/>, "Social Finance Fund Companion Module © 2023 by Common Approach to Impact Measurement is licensed under CC BY-SA 4.0. To view a copy of this license, visit http://creativecommons.org/licenses/by-sa/4.0/"@en ;
  ns2:creator cids:ac ;
  rdfs:isDefinedBy sff: .

sff:OrganizationProfile
  a owl:Class ;
  rdfs:label "Organization Profile"@en ;
  cids:hasName "Organization Profile" ;
  rdfs:comment "Contains additional profile data relevant to SFF that is applicable to both social purpose organizations (SPOs) and SFIs."@en ;
  rdfs:subClassOf sff:forceHasOrganization,[
    a owl:Restriction ;
    owl:onProperty sff:hasPrimaryContact ;
    owl:allValuesFrom cids:Person ;
    owl:maxQualifiedCardinality "1"^^xsd:nonNegativeInteger
  ], [
    a owl:Restriction ;
    owl:onProperty sff:hasManagementTeamProfile ;
    owl:allValuesFrom sff:TeamProfile
  ], [
    a owl:Restriction ;
    owl:onProperty sff:hasBoardProfile ;
    owl:allValuesFrom sff:TeamProfile
  ], [
    a owl:Restriction ;
    owl:onProperty sff:sectorServed ;
    owl:allValuesFrom cids:Sector
  ], [
    a owl:Restriction ;
    owl:onProperty sff:localityServed ;
    owl:allValuesFrom cids:Locality
  ], [
    a owl:Restriction ;
    owl:onProperty sff:provinceTerritoryServed ;
    owl:allValuesFrom cids:ProvinceTerritory
  ], [
    a owl:Restriction ;
    owl:onProperty sff:primaryPopulationServed ;
    owl:allValuesFrom cids:PopulationServed
  ], [
    a owl:Restriction ;
    owl:onProperty sff:organizationType ;
    owl:allValuesFrom cids:OrganizationType
  ], [
    a owl:Restriction ;
    owl:onProperty sff:servesEDG ;
    owl:allValuesFrom sff:EquityDeservingGroup
  ], [
    a owl:Restriction ;
    owl:onProperty sff:hasFundingStatus ;
    owl:allValuesFrom sff:FundingStatus
  ], [
    a owl:Restriction ;
    owl:onProperty sff:reportedDate ;
    owl:qualifiedCardinality "1"^^xsd:nonNegativeInteger ;
    owl:onDataRange xsd:dateTime
  ] ;
  void:inDataset sff:datasetdefinition ;
  rdfs:isDefinedBy sff: ;
  cids:belongsToTier cids:SFFTier .

sff:hasOrganizationProfile
  a owl:ObjectProperty ;
  rdfs:domain cids:Organization ;
  rdfs:range sff:OrganizationProfile ;
  rdfs:label "hasOrganizationProfile"@en ;
  cids:hasName "hasOrganizationProfile" ;
  rdfs:comment "Links an Organization to its Social Finance Fund (SFF) profile."@en ;
  void:inDataset sff:datasetdefinition ;
  rdfs:isDefinedBy sff: ;
  cids:belongsToTier cids:SFFTier .

sff:Sector
  a owl:Class ;
  rdfs:label "Sector"@en ;
  cids:hasName "Sector" ;
  rdfs:comment "Sectors provide a high-level view of an organization's core focus and the general type of activities it conducts, helping to standardize its profile within the broader landscape of similar entities."@en ;
  void:inDataset sff:datasetdefinition ;
  rdfs:isDefinedBy sff: ;
  cids:belongsToTier cids:SFFTier .

sff:ReportInfo
  a owl:Class ;
  rdfs:label "Report Info"@en ;
  cids:hasName "Report Info" ;
  rdfs:comment "Provides definitive information on the time interval that a report covers, and can provide some contextual information about the report contents via the report name."@en ;
  rdfs:subClassOf [
    a owl:Restriction ;
    owl:onProperty cids:forOrganization ;
    owl:allValuesFrom cids:Organization ;
    owl:qualifiedCardinality "1"^^xsd:nonNegativeInteger
  ], [
    a owl:Restriction ;
    owl:onProperty prov:startedAtTime ;
    owl:qualifiedCardinality "1"^^xsd:nonNegativeInteger ;
    owl:onDataRange xsd:dateTime
  ], [
    a owl:Restriction ;
    owl:onProperty prov:endedAtTime ;
    owl:qualifiedCardinality "1"^^xsd:nonNegativeInteger ;
    owl:onDataRange xsd:dateTime
  ], [
    a owl:Restriction ;
    owl:onProperty org:hasName ;
    owl:qualifiedCardinality "1"^^xsd:nonNegativeInteger ;
    owl:onDataRange xsd:string
  ] ;
  rdfs:isDefinedBy sff: ;
  cids:belongsToTier cids:SFFTier .

sff:FundingStatus
  a owl:Class ;
  rdfs:label "Funding Status"@en ;
  cids:hasName "Funding Status" ;
  rdfs:comment "Provides information on the status of an organization’s application to a funder or investor."@en ;
  rdfs:subClassOf sff:forceHasDescription, sff:forceHasOrganization, [
    a owl:Restriction ;
    owl:onProperty sff:reportedDate ;
    owl:maxQualifiedCardinality "1"^^xsd:nonNegativeInteger ;
    owl:onDataRange xsd:dateTime
  ], [
    a owl:Restriction ;
    owl:onProperty sff:forFunder ;
    owl:qualifiedCardinality "1"^^xsd:nonNegativeInteger ;
    owl:onDataRange xsd:string
  ], [
    a owl:Restriction ;
    owl:onProperty sff:hasFundingState ;
    owl:qualifiedCardinality "1"^^xsd:nonNegativeInteger ;
    owl:onClass sff:FundingState
  ] ;
  void:inDataset sff:datasetdefinition ;
  rdfs:isDefinedBy sff: ;
  cids:belongsToTier cids:SFFTier .

sff:TeamProfile
  a owl:Class ;
  rdfs:label "Team Profile"@en ;
  cids:hasName "Team Profile" ;
  rdfs:comment "A profile of a board or management team for a specified interval of time."@en ;
  rdfs:subClassOf [
    a owl:Restriction ;
    owl:onProperty sff:reportedDate ;
    owl:qualifiedCardinality "1"^^xsd:nonNegativeInteger ;
    owl:onDataRange xsd:dateTime
  ], [
    a owl:Restriction ;
    owl:onProperty sff:hasTeamSize ;
    owl:maxQualifiedCardinality "1"^^xsd:nonNegativeInteger ;
    owl:onDataRange xsd:nonNegativeInteger
  ], [
    a owl:Restriction ;
    owl:onProperty sff:hasEDGSize ;
    owl:maxQualifiedCardinality "1"^^xsd:nonNegativeInteger ;
    owl:onDataRange xsd:nonNegativeInteger
  ], [
    a owl:Restriction ;
    owl:onProperty sff:hasEDGProfile ;
    owl:onClass sff:EDGProfile
  ], [
    a owl:Restriction ;
    owl:onProperty cids:hasComment ;
    owl:maxQualifiedCardinality "1"^^xsd:nonNegativeInteger ;
    owl:onDataRange xsd:string
  ] ;
  void:inDataset sff:datasetdefinition ;
  rdfs:isDefinedBy sff: ;
  cids:belongsToTier cids:SFFTier .

sff:FundingState
  a owl:Class, skos:ConceptScheme ;
  rdfs:subClassOf cids:Code ;
  rdfs:label "Funding State"@en ;
  cids:hasName "Funding State" ;
  rdfs:comment "A value that reflect funding and approval process. The list items should distinguish concepts of ‘applied’, ‘rejected’, and ‘funded’."@en ;
  void:inDataset sff:datasetdefinition ;
  rdfs:isDefinedBy sff: ;
  cids:belongsToTier cids:SFFTier .

sff:applied
  a sff:FundingState, skos:Concept ;
  skos:inScheme sff:FundingState ;
  skos:prefLabel "Applied"@en, "Appliqué"@fr ;
  org:hasName "Applied" ;
  cids:hasDescription "Funding proposal has been submitted."@en, "La proposition de financement a été soumise."@fr ;
  void:inDataset sff:datasetdefinition ;
  rdfs:isDefinedBy sff: .

sff:rejected
  a sff:FundingState, skos:Concept ;
  skos:inScheme sff:FundingState ;
  skos:prefLabel "Rejected"@en, "Rejetée"@fr ;
  org:hasName "Rejected" ;
  cids:hasDescription "The funding proposal has been rejected."@en, "La proposition de financement a été rejetée."@fr ;
  void:inDataset sff:datasetdefinition ;
  rdfs:isDefinedBy sff: .

sff:funded
  a sff:FundingState, skos:Concept ;
  skos:inScheme sff:FundingState ;
  skos:prefLabel "Funded"@en, "Alloué"@fr ;
  org:hasName "Funded" ;
  cids:hasDescription "The funding proposal has been accepted and funding has been allocated."@en, "La proposition de financement a été acceptée et le financement a été alloué."@fr ;
  void:inDataset sff:datasetdefinition ;
  rdfs:isDefinedBy sff: .

sff:inReview
  a sff:FundingState, skos:Concept ;
  skos:inScheme sff:FundingState ;
  skos:prefLabel "In Review"@en, "Sous-évaluation"@fr ;
  org:hasName "In Review" ;
  cids:hasDescription "The funding proposal is being processed by the evaluating organization and is under review."@en, "La proposition de financement est en cours de traitement par l’organisme évaluateur et est en cours d’examen."@fr ;
  void:inDataset sff:datasetdefinition ;
  rdfs:isDefinedBy sff: .

sff:EDGProfile
  a owl:Class ;
  rdfs:label "EDG Profile"@en ;
  cids:hasName "EDG Profile" ;
  rdfs:comment "Information about the number of members belonging to a specific equity deserving group, as part of a board or management team, for a designated time interval."@en ;
  rdfs:subClassOf [
    a owl:Restriction ;
    owl:onProperty sff:reportedDate ;
    owl:maxQualifiedCardinality "1"^^xsd:nonNegativeInteger ;
    owl:onDataRange xsd:dateTime
  ], [
    a owl:Restriction ;
    owl:onProperty sff:hasSize ;
    owl:maxQualifiedCardinality "1"^^xsd:nonNegativeInteger ;
    owl:onDataRange xsd:nonNegativeInteger
  ], [
    a owl:Restriction ;
    owl:onProperty sff:forEDG ;
    owl:allValuesFrom sff:EquityDeservingGroup ;
    owl:maxQualifiedCardinality "1"^^xsd:nonNegativeInteger
  ] ;
  rdfs:isDefinedBy sff: ;
  cids:belongsToTier cids:SFFTier .

sff:EquityDeservingGroup
  a owl:Class ;
  rdfs:label "Equity Deserving Group"@en ;
  cids:hasName "Equity Deserving Group" ;
  rdfs:comment "Defines each of the equity deserving groups relevant to the management and board members of an organization."@en ;
  rdfs:subClassOf sff:forceHasDescription, [
    a owl:Restriction ;
    owl:onProperty cids:hasCharacteristic ;
    owl:onClass cids:Characteristic
  ], [
    a owl:Restriction ;
    owl:onProperty sff:isDefined ;
    owl:maxQualifiedCardinality "1"^^xsd:nonNegativeInteger ;
    owl:onDataRange xsd:boolean
  ] ;
  void:inDataset sff:datasetdefinition ;
  rdfs:isDefinedBy sff: ;
  cids:belongsToTier cids:SFFTier .

sff:hasTeamSize
  a owl:DatatypeProperty ;
  rdfs:label "Team Size"@en ;
  cids:hasName "Team Size" ;
  rdfs:comment "Number of people on the team."@en ;
  void:inDataset sff:datasetdefinition ;
  rdfs:isDefinedBy sff: ;
  cids:belongsToTier cids:SFFTier .

sff:isDefined
  a owl:DatatypeProperty ;
  rdfs:label "isDefined"@en ;
  cids:hasName "isDefined" ;
  rdfs:comment "Specifies whether the equity deserving group is defined with reference to an external code. Its value is a single xsd:Boolean."@en ;
  void:inDataset sff:datasetdefinition ;
  rdfs:isDefinedBy sff: ;
  cids:belongsToTier cids:SFFTier .

sff:hasEDGSize
  a owl:DatatypeProperty ;
  rdfs:label "EDG Size"@en ;
  cids:hasName "EDG Size" ;
  rdfs:comment "Number of people on the team who are members of an equity deserving group."@en ;
  void:inDataset sff:datasetdefinition ;
  rdfs:isDefinedBy sff: ;
  cids:belongsToTier cids:SFFTier .

sff:reportedDate
  a owl:DatatypeProperty ;
  rdfs:label "Reported Date"@en ;
  cids:hasName "Reported Date" ;
  rdfs:comment "Specifies the date to which the reported information applies."@en ;
  void:inDataset sff:datasetdefinition ;
  rdfs:isDefinedBy sff: ;
  cids:belongsToTier cids:SFFTier . 

sff:hasEDGProfile
  a owl:ObjectProperty ;
  rdfs:label "EDG Profile"@en ;
  cids:hasName "EDG Profile" ;
  rdfs:comment "Profiles each of the EDG groups that are present on the management team. Links to one or more instances of EDGProfile."@en ;
  void:inDataset sff:datasetdefinition ;
  rdfs:isDefinedBy sff: ;
  cids:belongsToTier cids:SFFTier .

sff:forceHasDescription
  a owl:Restriction ;
  owl:onProperty cids:hasDescription;
  owl:minQualifiedCardinality "1"^^xsd:nonNegativeInteger ;
  owl:onDataRange xsd:string .

sff:forceHasOrganization
  a owl:Restriction ;
  owl:onProperty cids:forOrganization ;
  owl:qualifiedCardinality "1"^^xsd:nonNegativeInteger ;
  owl:onClass cids:Organization .
