@prefix : <https://ontology.inferal.com/profiles/relay-data-classification/hyros/> .
@prefix conf: <https://ontology.inferal.com/modules/confidence/> .
@prefix dcat: <http://www.w3.org/ns/dcat#> .
@prefix dcls: <https://ontology.inferal.com/modules/data-classification/> .
@prefix dcterms: <http://purl.org/dc/terms/> .
@prefix dpv: <https://w3id.org/dpv#> .
@prefix inferal-catalog: <https://ontology.inferal.com/catalog/> .
@prefix mod: <https://w3id.org/mod#> .
@prefix owl: <http://www.w3.org/2002/07/owl#> .
@prefix pd: <https://w3id.org/dpv/pd#> .
@prefix prof: <http://www.w3.org/ns/dx/prof/> .
@prefix prov: <http://www.w3.org/ns/prov#> .
@prefix pubacc: <https://ontology.inferal.com/modules/publication-access/> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix hyros: <https://relay.inferal.com/ontology/hyros/> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .
@prefix vann: <http://purl.org/vocab/vann/> .
@prefix voaf: <http://purl.org/vocommons/voaf#> .

:
    a owl:Ontology, prof:Profile, mod:SemanticArtefact, voaf:Vocabulary, pubacc:PublicationManagedOntology ;
    dcterms:accessRights pubacc:PublicAccess ;
    owl:versionInfo "0.1.0" ;
    owl:imports conf: ;
    owl:imports dcls: ;
    owl:imports <https://w3id.org/dpv> ;
    owl:imports <https://w3id.org/dpv/pd> ;
    owl:imports <http://www.w3.org/ns/prov> ;
    owl:imports hyros: ;
    dcterms:title "Hyros Relay Data Classification Profile" ;
    dcterms:description "Data classification annotations for the current Hyros Inferal Relay RDF ontology, focused on personal-data and PII-like fields without modifying generated Relay source RDF." ;
    dcterms:created "2026-06-09"^^xsd:date ;
    dcterms:license <https://creativecommons.org/publicdomain/zero/1.0/> ;
    dcterms:subject "PII", "personal data", "Relay", "DPV", "data classification", "Hyros" ;
    vann:preferredNamespacePrefix "rdcp-hyros" ;
    vann:preferredNamespaceUri "https://ontology.inferal.com/profiles/relay-data-classification/hyros/" ;
    prof:isProfileOf dcls: ;
    prof:isProfileOf hyros: ;
    voaf:reliesOn dcls: ;
    voaf:reliesOn conf: ;
    voaf:reliesOn <https://w3id.org/dpv> ;
    voaf:reliesOn <https://w3id.org/dpv/pd> ;
    voaf:reliesOn hyros: ;
    dcat:distribution [
        a dcat:Distribution ;
        dcat:accessURL : ;
        dcat:downloadURL <https://ontology.inferal.com/profiles/relay-data-classification/hyros/ontology.ttl> ;
        inferal-catalog:sourcePath "src/profiles/relay-data-classification/hyros/ontology.ttl" ;
        dcat:mediaType "text/turtle" ;
    ] ;
    rdfs:comment "This profile treats Hyros Relay API schema fields as data elements and annotates predicate-level terms with candidate DPV-PD categories, confidence values, sensitivity, review flags, and detection provenance. Candidate annotations identify fields requiring human or source-system review before asserting personal-data semantics." .

:relay-api-schema-context
    a dcls:ClassificationContext ;
    rdfs:label "Relay API schema context" ;
    rdfs:comment "Classification context for predicate-level fields in the current merged Inferal Relay RDF ontologies. These annotations describe schema terms, not observed payload values." .

:relay-pii-rule-set-v1
    a dcls:ClassificationRuleSet ;
    rdfs:label "Relay PII rule set v1" ;
    rdfs:comment "Deterministic field-name and upstream-comment rules used to draft the Relay data-classification profile." ;
    dcterms:description "The rule set reads RDF property IRIs, labels, and comments from generated Relay RDF. It excludes obvious constants, aggregate metrics, monetary amounts, product, business, vendor, configuration, audience-breakdown, and product-catalog demographic fields. It proposes candidate personal-data categories for explicit person-name, email, telephone, IP address, user-agent, birth, gender, address, postal-code, city, country, GPS-coordinate, payment-card, official-identifier, nationality, age, enhanced-match, URL, device, credential-adjacent, profile-media, identifier-like, contact-object, locale, freeform-note, document, and tax-registration fields. Confidence and sensitivity values are heuristic defaults for governance triage, not legal determinations, manual-review evidence, or assertions that observed payload values contain personal data." ;
    dcls:hasClassificationRule :constant-name-exclusion-rule ;
    dcls:hasClassificationRule :automatic-enhanced-match-exclusion-rule ;
    dcls:hasClassificationRule :non-personal-enabled-flag-exclusion-rule ;
    dcls:hasClassificationRule :aggregate-metric-exclusion-rule ;
    dcls:hasClassificationRule :monetary-metric-exclusion-rule ;
    dcls:hasClassificationRule :business-product-name-exclusion-rule ;
    dcls:hasClassificationRule :username-rule ;
    dcls:hasClassificationRule :direct-person-name-rule ;
    dcls:hasClassificationRule :email-address-rule ;
    dcls:hasClassificationRule :email-derived-flag-rule ;
    dcls:hasClassificationRule :telephone-number-rule ;
    dcls:hasClassificationRule :country-calling-code-rule ;
    dcls:hasClassificationRule :ip-address-rule ;
    dcls:hasClassificationRule :user-agent-rule ;
    dcls:hasClassificationRule :birth-date-rule ;
    dcls:hasClassificationRule :birth-place-rule ;
    dcls:hasClassificationRule :gender-rule ;
    dcls:hasClassificationRule :payment-card-number-rule ;
    dcls:hasClassificationRule :payment-card-rule ;
    dcls:hasClassificationRule :bank-account-rule ;
    dcls:hasClassificationRule :financial-account-number-rule ;
    dcls:hasClassificationRule :official-id-rule ;
    dcls:hasClassificationRule :nationality-rule ;
    dcls:hasClassificationRule :age-rule ;
    dcls:hasClassificationRule :physical-address-rule ;
    dcls:hasClassificationRule :street-address-rule ;
    dcls:hasClassificationRule :postal-code-rule ;
    dcls:hasClassificationRule :city-rule ;
    dcls:hasClassificationRule :country-rule ;
    dcls:hasClassificationRule :location-code-rule ;
    dcls:hasClassificationRule :gps-coordinate-rule ;
    dcls:hasClassificationRule :browsing-referral-rule ;
    dcls:hasClassificationRule :device-based-rule ;
    dcls:hasClassificationRule :password-rule ;
    dcls:hasClassificationRule :authenticating-data-rule ;
    dcls:hasClassificationRule :credential-transport-rule ;
    dcls:hasClassificationRule :profile-media-rule ;
    dcls:hasClassificationRule :account-identifier-rule ;
    dcls:hasClassificationRule :identifier-like-rule ;
    dcls:hasClassificationRule :contact-object-rule ;
    dcls:hasClassificationRule :locale-language-rule ;
    dcls:hasClassificationRule :freeform-note-rule ;
    dcls:hasClassificationRule :payment-details-rule ;
    dcls:hasClassificationRule :documents-container-rule ;
    dcls:hasClassificationRule :tax-registration-rule .

:constant-name-exclusion-rule
    a dcls:ClassificationRule ;
    rdfs:label "Constant name exclusion rule" ;
    dcls:matchesFieldPart dcls:LocalNamePart ;
    dcls:excludesPattern "^[A-Z0-9_]+$ with underscore" ;
    dcls:ruleOrder 1 ;
    dcls:ruleRationale "Suppresses constant-style schema terms because Relay constants usually name enum values or generated symbols rather than data-bearing personal fields." .

:automatic-enhanced-match-exclusion-rule
    a dcls:ClassificationRule ;
    rdfs:label "Automatic enhanced match exclusion rule" ;
    dcls:matchesFieldPart dcls:LocalNamePart ;
    dcls:excludesPattern "^(aem|automaticEnhancedMatch)" ;
    dcls:ruleOrder 2 ;
    dcls:ruleRationale "Suppresses container or configuration fields for automatic enhanced matching; individual enhanced-match fields are handled separately when the provider exposes them." .

:non-personal-enabled-flag-exclusion-rule
    a dcls:ClassificationRule ;
    rdfs:label "Non-personal enabled flag exclusion rule" ;
    dcls:matchesFieldPart dcls:LocalNamePart ;
    dcls:excludesPattern "enabled$ unless the field also mentions email, phone, gender, birth, or name" ;
    dcls:ruleOrder 3 ;
    dcls:ruleRationale "Suppresses generic enabled/configuration flags that do not carry personal-data values." .

:aggregate-metric-exclusion-rule
    a dcls:ClassificationRule ;
    rdfs:label "Aggregate metric exclusion rule" ;
    dcls:matchesFieldPart dcls:LocalNamePart ;
    dcls:excludesPattern "^(total|average|avg|num|number|count|rate|pct|percentage)" ;
    dcls:ruleOrder 4 ;
    dcls:ruleRationale "Suppresses aggregate metrics because they normally describe counts, totals, or rates rather than addressable personal-data values." .

:monetary-metric-exclusion-rule
    a dcls:ClassificationRule ;
    rdfs:label "Monetary metric exclusion rule" ;
    dcls:matchesFieldPart dcls:LocalNamePart ;
    dcls:excludesPattern "(amount|price|cost|currency|tax|revenue|sales|spend|budget|refund) unless the same field also mentions id, email, phone, address, zip, postal, country, city, or state" ;
    dcls:ruleOrder 5 ;
    dcls:ruleRationale "Suppresses ordinary monetary metrics while preserving fields whose names also contain personal-data cues." .

:business-product-name-exclusion-rule
    a dcls:ClassificationRule ;
    rdfs:label "Business and product name exclusion rule" ;
    dcls:matchesFieldPart dcls:LocalNamePart ;
    dcls:excludesPattern "(businessName|companyName|shopName|productName|categoryName|subCategoryName|vendor|merchantDomain|appName|brandName|methodName|topicName|integrationName)" ;
    dcls:ruleOrder 6 ;
    dcls:ruleRationale "Suppresses organization, product, brand, method, topic, and integration names that are not treated as personal-data fields by this profile." .

:username-rule
    a dcls:ClassificationRule ;
    rdfs:label "Username rule" ;
    dcls:matchesFieldPart dcls:LocalNamePart ;
    dcls:matchesPattern "userName|username|authorUsername|assigneeUserName" ;
    dcls:assignsPersonalDataCategory pd:Username ;
    dcls:assignsClassificationStatus dcls:Candidate ;
    dcls:assignsSensitivityLevel dcls:HighSensitivity ;
    dcls:assignsConfidence 0.88 ;
    dcls:assignsReviewRequirement true ;
    dcls:ruleOrder 99 ;
    dcls:ruleRationale "Marks username fields as candidates requiring review of whether the value is a real username, handle, display alias, or non-person account label." .

:direct-person-name-rule
    a dcls:ClassificationRule ;
    rdfs:label "Direct person name rule" ;
    dcls:matchesFieldPart dcls:LocalNamePart ;
    dcls:matchesFieldPart dcls:LabelPart ;
    dcls:matchesFieldPart dcls:CommentPart ;
    dcls:matchesPattern "firstName|lastName|middleName|fullName|secondLastName|addresseeName|billingContactFirstname|billingContactLastname|reviewer|authorName|senderName|receiverName|reviewerDisplayName|displayName|shopOwnerName|accountOwner|accountName|holderName" ;
    dcls:matchesPattern "first name|last name|middle name|display name|reviewer name|author name|sender name|receiver name|customer name|shop owner name|account owner|account name|cardholder name" ;
    dcls:assignsPersonalDataCategory pd:Name ;
    dcls:assignsClassificationStatus dcls:Candidate ;
    dcls:assignsSensitivityLevel dcls:HighSensitivity ;
    dcls:assignsConfidence 0.96 ;
    dcls:assignsReviewRequirement true ;
    dcls:ruleOrder 100 ;
    dcls:ruleRationale "Marks explicit person-name fields and source descriptions that state a person-name meaning." .

:email-address-rule
    a dcls:ClassificationRule ;
    rdfs:label "Email address rule" ;
    dcls:matchesFieldPart dcls:LocalNamePart ;
    dcls:matchesPattern "email" ;
    dcls:excludesPattern "(valid|verified|enabled)$" ;
    dcls:assignsPersonalDataCategory pd:EmailAddress ;
    dcls:assignsClassificationStatus dcls:Candidate ;
    dcls:assignsSensitivityLevel dcls:HighSensitivity ;
    dcls:assignsConfidence 0.98 ;
    dcls:assignsReviewRequirement true ;
    dcls:ruleOrder 110 ;
    dcls:ruleRationale "Marks fields whose local name contains email, except status/configuration fields handled by the candidate email-derived flag rule." .

:email-derived-flag-rule
    a dcls:ClassificationRule ;
    rdfs:label "Email-derived flag rule" ;
    dcls:matchesFieldPart dcls:LocalNamePart ;
    dcls:matchesPattern "(valid|verified|enabled).*email|email.*(valid|verified|enabled)$" ;
    dcls:assignsPersonalDataCategory pd:EmailAddress ;
    dcls:assignsClassificationStatus dcls:Candidate ;
    dcls:assignsSensitivityLevel dcls:ModerateSensitivity ;
    dcls:assignsConfidence 0.72 ;
    dcls:assignsReviewRequirement true ;
    dcls:ruleOrder 111 ;
    dcls:ruleRationale "Marks email-derived status or configuration fields for review because they may contain only booleans or policy state rather than email addresses." .

:telephone-number-rule
    a dcls:ClassificationRule ;
    rdfs:label "Telephone number rule" ;
    dcls:matchesFieldPart dcls:LocalNamePart ;
    dcls:matchesPattern "phone|telephone" ;
    dcls:assignsPersonalDataCategory pd:TelephoneNumber ;
    dcls:assignsClassificationStatus dcls:Candidate ;
    dcls:assignsSensitivityLevel dcls:HighSensitivity ;
    dcls:assignsConfidence 0.97 ;
    dcls:assignsReviewRequirement true ;
    dcls:ruleOrder 120 ;
    dcls:ruleRationale "Marks fields whose local name directly names phone or telephone values." .

:country-calling-code-rule
    a dcls:ClassificationRule ;
    rdfs:label "Country calling code rule" ;
    dcls:matchesFieldPart dcls:LocalNamePart ;
    dcls:matchesPattern "countryCallingCode" ;
    dcls:assignsPersonalDataCategory pd:TelephoneNumber ;
    dcls:assignsClassificationStatus dcls:Candidate ;
    dcls:assignsSensitivityLevel dcls:HighSensitivity ;
    dcls:assignsConfidence 0.78 ;
    dcls:assignsReviewRequirement true ;
    dcls:ruleOrder 121 ;
    dcls:ruleRationale "Marks country calling code as telephone-number-related but with lower confidence because it may be a general country dial prefix." .

:ip-address-rule
    a dcls:ClassificationRule ;
    rdfs:label "IP address rule" ;
    dcls:matchesFieldPart dcls:LocalNamePart ;
    dcls:matchesFieldPart dcls:CommentPart ;
    dcls:matchesPattern "ipAddress|clientIp|customerIp|^ip$|^ips$|ip address" ;
    dcls:assignsPersonalDataCategory pd:IPAddress ;
    dcls:assignsClassificationStatus dcls:Candidate ;
    dcls:assignsSensitivityLevel dcls:HighSensitivity ;
    dcls:assignsConfidence 0.98 ;
    dcls:assignsReviewRequirement true ;
    dcls:ruleOrder 130 ;
    dcls:ruleRationale "Marks fields and comments that explicitly name IP addresses." .

:user-agent-rule
    a dcls:ClassificationRule ;
    rdfs:label "User agent rule" ;
    dcls:matchesFieldPart dcls:LocalNamePart ;
    dcls:matchesFieldPart dcls:CommentPart ;
    dcls:matchesPattern "userAgent|clientUserAgent|customerUserAgent|user agent" ;
    dcls:assignsPersonalDataCategory pd:UserAgent ;
    dcls:assignsClassificationStatus dcls:Candidate ;
    dcls:assignsSensitivityLevel dcls:HighSensitivity ;
    dcls:assignsConfidence 0.97 ;
    dcls:assignsReviewRequirement true ;
    dcls:ruleOrder 140 ;
    dcls:ruleRationale "Marks fields and comments that explicitly name user-agent values." .

:birth-date-rule
    a dcls:ClassificationRule ;
    rdfs:label "Birth date rule" ;
    dcls:matchesFieldPart dcls:LocalNamePart ;
    dcls:matchesPattern "dateOfBirth|birthDate|^dob$|^db$" ;
    dcls:assignsPersonalDataCategory pd:BirthDate ;
    dcls:assignsClassificationStatus dcls:Candidate ;
    dcls:assignsSensitivityLevel dcls:HighSensitivity ;
    dcls:assignsConfidence 0.98 ;
    dcls:assignsReviewRequirement true ;
    dcls:ruleOrder 150 ;
    dcls:ruleRationale "Marks fields whose local name directly denotes a birth date." .

:birth-place-rule
    a dcls:ClassificationRule ;
    rdfs:label "Birth place rule" ;
    dcls:matchesFieldPart dcls:LocalNamePart ;
    dcls:matchesPattern "birthPlace" ;
    dcls:assignsPersonalDataCategory pd:BirthPlace ;
    dcls:assignsClassificationStatus dcls:Candidate ;
    dcls:assignsSensitivityLevel dcls:HighSensitivity ;
    dcls:assignsConfidence 0.98 ;
    dcls:assignsReviewRequirement true ;
    dcls:ruleOrder 151 ;
    dcls:ruleRationale "Marks fields whose local name directly denotes a birth place." .

:gender-rule
    a dcls:ClassificationRule ;
    rdfs:label "Gender rule" ;
    dcls:matchesFieldPart dcls:LocalNamePart ;
    dcls:matchesFieldPart dcls:CommentPart ;
    dcls:matchesPattern "^(gender|ge)$|gender" ;
    dcls:assignsPersonalDataCategory pd:Gender ;
    dcls:assignsClassificationStatus dcls:Candidate ;
    dcls:assignsSensitivityLevel dcls:HighSensitivity ;
    dcls:assignsConfidence 0.94 ;
    dcls:assignsReviewRequirement true ;
    dcls:ruleOrder 160 ;
    dcls:ruleRationale "Marks fields whose name or source description explicitly denotes gender." .

:payment-card-number-rule
    a dcls:ClassificationRule ;
    rdfs:label "Payment card number rule" ;
    dcls:matchesFieldPart dcls:LocalNamePart ;
    dcls:matchesPattern "cardNumber" ;
    dcls:assignsPersonalDataCategory pd:PaymentCardNumber ;
    dcls:assignsClassificationStatus dcls:Candidate ;
    dcls:assignsSensitivityLevel dcls:HighSensitivity ;
    dcls:assignsConfidence 0.95 ;
    dcls:assignsReviewRequirement true ;
    dcls:ruleOrder 165 ;
    dcls:ruleRationale "Marks payment-card-number fields as candidates requiring review of whether the schema value carries a full payment card number, token, or masked value." .

:payment-card-rule
    a dcls:ClassificationRule ;
    rdfs:label "Payment card rule" ;
    dcls:matchesFieldPart dcls:LocalNamePart ;
    dcls:matchesPattern "creditCard|creditCards|paymentCard" ;
    dcls:excludesPattern "paymentCardRequired" ;
    dcls:assignsPersonalDataCategory pd:PaymentCard ;
    dcls:assignsClassificationStatus dcls:Candidate ;
    dcls:assignsSensitivityLevel dcls:HighSensitivity ;
    dcls:assignsConfidence 0.86 ;
    dcls:assignsReviewRequirement true ;
    dcls:ruleOrder 166 ;
    dcls:ruleRationale "Marks payment-card object fields as candidates requiring review of whether nested payloads carry card numbers, expiry data, tokens, or masked card references." .

:bank-account-rule
    a dcls:ClassificationRule ;
    rdfs:label "Bank account rule" ;
    dcls:matchesFieldPart dcls:LocalNamePart ;
    dcls:matchesPattern "bankAccount" ;
    dcls:assignsPersonalDataCategory pd:BankAccount ;
    dcls:assignsClassificationStatus dcls:Candidate ;
    dcls:assignsSensitivityLevel dcls:HighSensitivity ;
    dcls:assignsConfidence 0.88 ;
    dcls:assignsReviewRequirement true ;
    dcls:ruleOrder 167 ;
    dcls:ruleRationale "Marks bank-account fields as candidates requiring review of whether the value carries account details, tokens, or operational references." .

:financial-account-number-rule
    a dcls:ClassificationRule ;
    rdfs:label "Financial account number rule" ;
    dcls:matchesFieldPart dcls:LocalNamePart ;
    dcls:matchesPattern "accountNumber" ;
    dcls:assignsPersonalDataCategory pd:FinancialAccountNumber ;
    dcls:assignsClassificationStatus dcls:Candidate ;
    dcls:assignsSensitivityLevel dcls:HighSensitivity ;
    dcls:assignsConfidence 0.86 ;
    dcls:assignsReviewRequirement true ;
    dcls:ruleOrder 168 ;
    dcls:ruleRationale "Marks account-number fields as financial-account-number candidates requiring review of whether the number identifies a personal financial account." .

:official-id-rule
    a dcls:ClassificationRule ;
    rdfs:label "Official ID rule" ;
    dcls:matchesFieldPart dcls:LocalNamePart ;
    dcls:matchesPattern "documentNumber|passportNumber|passport" ;
    dcls:assignsPersonalDataCategory pd:OfficialID ;
    dcls:assignsClassificationStatus dcls:Candidate ;
    dcls:assignsSensitivityLevel dcls:HighSensitivity ;
    dcls:assignsConfidence 0.88 ;
    dcls:assignsReviewRequirement true ;
    dcls:ruleOrder 169 ;
    dcls:ruleRationale "Marks travel-document and official-identifier fields as candidates requiring source-system review." .

:nationality-rule
    a dcls:ClassificationRule ;
    rdfs:label "Nationality rule" ;
    dcls:matchesFieldPart dcls:LocalNamePart ;
    dcls:matchesPattern "nationality" ;
    dcls:assignsPersonalDataCategory pd:Nationality ;
    dcls:assignsClassificationStatus dcls:Candidate ;
    dcls:assignsSensitivityLevel dcls:ModerateSensitivity ;
    dcls:assignsConfidence 0.90 ;
    dcls:assignsReviewRequirement true ;
    dcls:ruleOrder 170 ;
    dcls:ruleRationale "Marks nationality fields as candidates requiring review of whether the value describes a person or only a market/document attribute." .

:age-rule
    a dcls:ClassificationRule ;
    rdfs:label "Age rule" ;
    dcls:matchesFieldPart dcls:LocalNamePart ;
    dcls:matchesFieldPart dcls:CommentPart ;
    dcls:matchesPattern "^age$|child age|traveler age|passenger age" ;
    dcls:assignsPersonalDataCategory pd:Age ;
    dcls:assignsClassificationStatus dcls:Candidate ;
    dcls:assignsSensitivityLevel dcls:ModerateSensitivity ;
    dcls:assignsConfidence 0.86 ;
    dcls:assignsReviewRequirement true ;
    dcls:ruleOrder 171 ;
    dcls:ruleRationale "Marks explicit age fields as candidates requiring review of whether the value describes a person or an aggregate bucket." .

:physical-address-rule
    a dcls:ClassificationRule ;
    rdfs:label "Physical address rule" ;
    dcls:matchesFieldPart dcls:LocalNamePart ;
    dcls:matchesFieldPart dcls:CommentPart ;
    dcls:matchesPattern "address|addr1|addr2|street|physical address|billing address|shipping address|street address" ;
    dcls:excludesPattern "addressId|id$|matches|shippingTax|shippingTotal|shippingPrice|freeShipping|shippingRequired|shippingClass|shippingProvider|shippingPlatform|shippingDate|shippingStatus|shippingHeight|shippingWeight|shippingWidth|shippingLine|shippingLines|shippingEntitlements|billingPeriod|billingOn|billingType" ;
    dcls:assignsPersonalDataCategory pd:PhysicalAddress ;
    dcls:assignsClassificationStatus dcls:Candidate ;
    dcls:assignsSensitivityLevel dcls:HighSensitivity ;
    dcls:assignsConfidence 0.95 ;
    dcls:assignsReviewRequirement true ;
    dcls:ruleOrder 172 ;
    dcls:ruleRationale "Marks address-bearing fields while excluding logistics, shipping, billing-cycle, and address identifier fields that are likely operational metadata." .

:street-address-rule
    a dcls:ClassificationRule ;
    rdfs:label "Street address rule" ;
    dcls:matchesFieldPart dcls:LocalNamePart ;
    dcls:matchesFieldPart dcls:CommentPart ;
    dcls:matchesPattern "street|address1|address2|addr1|addr2|addressPrimary|addressSecondary|^(line|lines)$" ;
    dcls:assignsPersonalDataCategory pd:Street ;
    dcls:assignsClassificationStatus dcls:Candidate ;
    dcls:assignsSensitivityLevel dcls:HighSensitivity ;
    dcls:assignsConfidence 0.95 ;
    dcls:assignsReviewRequirement true ;
    dcls:ruleOrder 173 ;
    dcls:ruleRationale "Marks street-address components and address-line fields." .

:postal-code-rule
    a dcls:ClassificationRule ;
    rdfs:label "Postal code rule" ;
    dcls:matchesFieldPart dcls:LocalNamePart ;
    dcls:matchesPattern "postal|postcode|zip|shippingZip|billingZip" ;
    dcls:assignsPersonalDataCategory pd:PostalCode ;
    dcls:assignsClassificationStatus dcls:Candidate ;
    dcls:assignsSensitivityLevel dcls:ModerateSensitivity ;
    dcls:assignsConfidence 0.96 ;
    dcls:assignsReviewRequirement true ;
    dcls:ruleOrder 180 ;
    dcls:ruleRationale "Marks fields whose local name denotes a postal or ZIP code." .

:city-rule
    a dcls:ClassificationRule ;
    rdfs:label "City rule" ;
    dcls:matchesFieldPart dcls:LocalNamePart ;
    dcls:matchesPattern "city|sessionCity|shippingCity|billingCity|toCity|fromCity" ;
    dcls:excludesPattern "cityCode|locationCode, and a qualified automation state such as <qualifier>State" ;
    dcls:assignsPersonalDataCategory pd:City ;
    dcls:assignsClassificationStatus dcls:Candidate ;
    dcls:assignsSensitivityLevel dcls:ModerateSensitivity ;
    dcls:assignsConfidence 0.92 ;
    dcls:assignsReviewRequirement true ;
    dcls:ruleOrder 190 ;
    dcls:ruleRationale "Marks city fields while excluding code-like location identifiers." .

:country-rule
    a dcls:ClassificationRule ;
    rdfs:label "Country rule" ;
    dcls:matchesFieldPart dcls:LocalNamePart ;
    dcls:matchesPattern "country|sessionCountry|shippingCountry|billingCountry|toCountry|fromCountry|validityCountry|issuanceCountry" ;
    dcls:excludesPattern "countryCallingCode|currency|countryCode$" ;
    dcls:assignsPersonalDataCategory pd:Country ;
    dcls:assignsClassificationStatus dcls:Candidate ;
    dcls:assignsSensitivityLevel dcls:ModerateSensitivity ;
    dcls:assignsConfidence 0.90 ;
    dcls:assignsReviewRequirement true ;
    dcls:ruleOrder 200 ;
    dcls:ruleRationale "Marks country fields while excluding currency, dial-prefix, and code-like country fields." .

:location-code-rule
    a dcls:ClassificationRule ;
    rdfs:label "Location code rule" ;
    dcls:matchesFieldPart dcls:LocalNamePart ;
    dcls:matchesPattern "countryCode|cityCode|state|stateCode|region|province" ;
    dcls:excludesPattern "status|description" ;
    dcls:assignsPersonalDataCategory pd:Location ;
    dcls:assignsClassificationStatus dcls:Candidate ;
    dcls:assignsSensitivityLevel dcls:ModerateSensitivity ;
    dcls:assignsConfidence 0.64 ;
    dcls:assignsReviewRequirement true ;
    dcls:ruleOrder 210 ;
    dcls:ruleRationale "Marks location codes and region fields as candidates because they may represent personal address data, market geography, or operational routing." .

:gps-coordinate-rule
    a dcls:ClassificationRule ;
    rdfs:label "GPS coordinate rule" ;
    dcls:matchesFieldPart dcls:LocalNamePart ;
    dcls:matchesPattern "^(latitude|longitude|lat|lng|lon)$" ;
    dcls:assignsPersonalDataCategory pd:GPSCoordinate ;
    dcls:assignsClassificationStatus dcls:Candidate ;
    dcls:assignsSensitivityLevel dcls:HighSensitivity ;
    dcls:assignsConfidence 0.94 ;
    dcls:assignsReviewRequirement true ;
    dcls:ruleOrder 220 ;
    dcls:ruleRationale "Marks explicit coordinate fields." .

:browsing-referral-rule
    a dcls:ClassificationRule ;
    rdfs:label "Browsing referral rule" ;
    dcls:matchesFieldPart dcls:LocalNamePart ;
    dcls:matchesPattern "referrerUrl|refererUrl|urlQueryParams|queryParams|landingPage|pageUrl|currentUrl|sourceUrl" ;
    dcls:assignsPersonalDataCategory pd:BrowsingReferral ;
    dcls:assignsClassificationStatus dcls:Candidate ;
    dcls:assignsSensitivityLevel dcls:HighSensitivity ;
    dcls:assignsConfidence 0.78 ;
    dcls:assignsReviewRequirement true ;
    dcls:ruleOrder 230 ;
    dcls:ruleRationale "Marks URL and query-parameter fields as candidates because payloads may carry identifiers, campaign parameters, or personal data depending on source policy." .

:device-based-rule
    a dcls:ClassificationRule ;
    rdfs:label "Device-based rule" ;
    dcls:matchesFieldPart dcls:LocalNamePart ;
    dcls:matchesFieldPart dcls:CommentPart ;
    dcls:matchesPattern "cookie|browserFingerprint|deviceId|appPackageName|appStore|^device$|deviceModel|^carrier$" ;
    dcls:assignsPersonalDataCategory pd:DeviceBased ;
    dcls:assignsClassificationStatus dcls:Candidate ;
    dcls:assignsSensitivityLevel dcls:HighSensitivity ;
    dcls:assignsConfidence 0.74 ;
    dcls:assignsReviewRequirement true ;
    dcls:ruleOrder 240 ;
    dcls:ruleRationale "Marks device, cookie, app, and carrier fields as candidates for device-based personal data." .

:password-rule
    a dcls:ClassificationRule ;
    rdfs:label "Password rule" ;
    dcls:matchesFieldPart dcls:LocalNamePart ;
    dcls:matchesPattern "password" ;
    dcls:assignsPersonalDataCategory pd:Password ;
    dcls:assignsClassificationStatus dcls:Candidate ;
    dcls:assignsSensitivityLevel dcls:HighSensitivity ;
    dcls:assignsConfidence 0.84 ;
    dcls:assignsReviewRequirement true ;
    dcls:ruleOrder 248 ;
    dcls:ruleRationale "Marks password fields as candidates requiring review of whether the value contains a password, password policy flag, or opaque credential reference." .

:authenticating-data-rule
    a dcls:ClassificationRule ;
    rdfs:label "Authenticating data rule" ;
    dcls:matchesFieldPart dcls:LocalNamePart ;
    dcls:matchesPattern "authorization|token|secret|credential" ;
    dcls:assignsPersonalDataCategory pd:Authenticating ;
    dcls:assignsClassificationStatus dcls:Candidate ;
    dcls:assignsSensitivityLevel dcls:HighSensitivity ;
    dcls:assignsConfidence 0.66 ;
    dcls:assignsReviewRequirement true ;
    dcls:ruleOrder 249 ;
    dcls:ruleRationale "Marks authentication-adjacent fields as candidates requiring review of whether the value authenticates, identifies, or is only operational metadata." .

:credential-transport-rule
    a dcls:ClassificationRule ;
    rdfs:label "Credential or transport rule" ;
    dcls:matchesFieldPart dcls:LocalNamePart ;
    dcls:matchesPattern "headers" ;
    dcls:assignsPersonalDataCategory pd:Identifier ;
    dcls:assignsClassificationStatus dcls:Candidate ;
    dcls:assignsSensitivityLevel dcls:HighSensitivity ;
    dcls:assignsConfidence 0.58 ;
    dcls:assignsReviewRequirement true ;
    dcls:ruleOrder 250 ;
    dcls:ruleRationale "Marks unstructured transport and credential-adjacent fields as candidates because they may contain personal identifiers, authentication data, or no personal data depending on payload policy." .

:profile-media-rule
    a dcls:ClassificationRule ;
    rdfs:label "Profile media rule" ;
    dcls:matchesFieldPart dcls:LocalNamePart ;
    dcls:matchesPattern "avatar|avatarUrl|profileUrl|profileImage|photoUrl" ;
    dcls:assignsPersonalDataCategory pd:Profile ;
    dcls:assignsClassificationStatus dcls:Candidate ;
    dcls:assignsSensitivityLevel dcls:ModerateSensitivity ;
    dcls:assignsConfidence 0.68 ;
    dcls:assignsReviewRequirement true ;
    dcls:ruleOrder 260 ;
    dcls:ruleRationale "Marks profile-media URL fields as candidates because they may point to profile or image data about a person." .

:account-identifier-rule
    a dcls:ClassificationRule ;
    rdfs:label "Account identifier rule" ;
    dcls:matchesFieldPart dcls:LocalNamePart ;
    dcls:matchesPattern "user(Name)?|account" ;
    dcls:assignsPersonalDataCategory pd:AccountIdentifier ;
    dcls:assignsClassificationStatus dcls:Candidate ;
    dcls:assignsSensitivityLevel dcls:HighSensitivity ;
    dcls:assignsConfidence 0.70 ;
    dcls:assignsReviewRequirement true ;
    dcls:ruleOrder 270 ;
    dcls:ruleRationale "Marks account- or user-like identifier fields as candidates requiring linkability review." .

:identifier-like-rule
    a dcls:ClassificationRule ;
    rdfs:label "Identifier-like rule" ;
    dcls:matchesFieldPart dcls:LocalNamePart ;
    dcls:matchesPattern "customerId|customerListId|connectedUserId|createdByUserId|externalId|clickId|sessionId|tripleId|tripleIds|subscriptionId|leadId|orderId|paymentId|userId|ownerId|addressId|accountId|ticketId|reviewerId|usedBy|refundedBy|travelerId|frequentTraveler|multipassIdentifier|reference|pnr|(^|[A-Z])(id|identifier)$" ;
    dcls:excludesPattern "<artifact>Id where the artifact is a form, template, spec, preset, placement, rule, catalog, or feed" ;
    dcls:assignsPersonalDataCategory pd:Identifier ;
    dcls:assignsClassificationStatus dcls:Candidate ;
    dcls:assignsSensitivityLevel dcls:HighSensitivity ;
    dcls:assignsConfidence 0.70 ;
    dcls:assignsReviewRequirement true ;
    dcls:ruleOrder 271 ;
    dcls:ruleRationale "Marks identifier-like fields as candidates requiring review of whether the identifier is personal, account-level, device-level, or operational only." .

:contact-object-rule
    a dcls:ClassificationRule ;
    rdfs:label "Contact or actor object rule" ;
    dcls:matchesFieldPart dcls:LocalNamePart ;
    dcls:matchesPattern "^(customer|customers|contact|contacts|user|owner|boardOwner|createdByUser)$" ;
    dcls:assignsPersonalDataCategory pd:Contact ;
    dcls:assignsClassificationStatus dcls:Candidate ;
    dcls:assignsSensitivityLevel dcls:HighSensitivity ;
    dcls:assignsConfidence 0.68 ;
    dcls:assignsReviewRequirement true ;
    dcls:ruleOrder 272 ;
    dcls:ruleRationale "Marks broad contact, customer, user, owner, and actor object fields as candidates because nested payloads may carry contact or account data." .

:locale-language-rule
    a dcls:ClassificationRule ;
    rdfs:label "Locale and language rule" ;
    dcls:matchesFieldPart dcls:LocalNamePart ;
    dcls:matchesPattern "locale|language" ;
    dcls:assignsPersonalDataCategory pd:Language ;
    dcls:assignsClassificationStatus dcls:Candidate ;
    dcls:assignsSensitivityLevel dcls:ModerateSensitivity ;
    dcls:assignsConfidence 0.62 ;
    dcls:assignsReviewRequirement true ;
    dcls:ruleOrder 273 ;
    dcls:ruleRationale "Marks locale and language fields as candidates because they may describe a person's language preference or only a market setting." .

:freeform-note-rule
    a dcls:ClassificationRule ;
    rdfs:label "Freeform note rule" ;
    dcls:matchesFieldPart dcls:LocalNamePart ;
    dcls:matchesPattern "(^note$|customerNote)" ;
    dcls:assignsPersonalDataCategory pd:Communication ;
    dcls:assignsClassificationStatus dcls:Candidate ;
    dcls:assignsSensitivityLevel dcls:HighSensitivity ;
    dcls:assignsConfidence 0.58 ;
    dcls:assignsReviewRequirement true ;
    dcls:ruleOrder 274 ;
    dcls:ruleRationale "Marks freeform note fields as candidates because they may contain customer communications or arbitrary personal data." .

:payment-details-rule
    a dcls:ClassificationRule ;
    rdfs:label "Payment details rule" ;
    dcls:matchesFieldPart dcls:LocalNamePart ;
    dcls:matchesPattern "paymentDetails" ;
    dcls:assignsPersonalDataCategory pd:PaymentCard ;
    dcls:assignsClassificationStatus dcls:Candidate ;
    dcls:assignsSensitivityLevel dcls:HighSensitivity ;
    dcls:assignsConfidence 0.64 ;
    dcls:assignsReviewRequirement true ;
    dcls:ruleOrder 275 ;
    dcls:ruleRationale "Marks payment-details fields as candidates requiring review of whether nested values contain card, token, billing, or transaction identifiers." .

:documents-container-rule
    a dcls:ClassificationRule ;
    rdfs:label "Documents container rule" ;
    dcls:matchesFieldPart dcls:LocalNamePart ;
    dcls:matchesPattern "documents" ;
    dcls:assignsPersonalDataCategory pd:PersonalDocuments ;
    dcls:assignsClassificationStatus dcls:Candidate ;
    dcls:assignsSensitivityLevel dcls:HighSensitivity ;
    dcls:assignsConfidence 0.70 ;
    dcls:assignsReviewRequirement true ;
    dcls:ruleOrder 276 ;
    dcls:ruleRationale "Marks document container fields as candidates because nested travel or identity documents may carry official identifiers." .

:tax-registration-rule
    a dcls:ClassificationRule ;
    rdfs:label "Tax registration rule" ;
    dcls:matchesFieldPart dcls:LocalNamePart ;
    dcls:matchesPattern "vatRegistration" ;
    dcls:assignsPersonalDataCategory pd:Tax ;
    dcls:assignsClassificationStatus dcls:Candidate ;
    dcls:assignsSensitivityLevel dcls:ModerateSensitivity ;
    dcls:assignsConfidence 0.66 ;
    dcls:assignsReviewRequirement true ;
    dcls:ruleOrder 277 ;
    dcls:ruleRationale "Marks VAT and tax-registration fields as candidates because they can identify a person or business tax registration depending on source context." .

:relay-data-classification-generator
    a prov:SoftwareAgent ;
    rdfs:label "Relay data classification generator" ;
    rdfs:comment "Generator script that produced this candidate-only Relay data-classification profile from Relay RDF schema terms." .

:relay-schema-name-detection
    a dcls:DetectionActivity ;
    rdfs:label "Relay schema name detection" ;
    dcls:hasDetectionMethod dcls:SchemaNameDetection ;
    prov:used :relay-pii-rule-set-v1 ;
    prov:wasAssociatedWith :relay-data-classification-generator ;
    dcterms:created "2026-06-09"^^xsd:date ;
    rdfs:comment "Rule-based detection activity over Relay predicate names, labels, and comments. It produces candidate classifications only and is not evidence of manual review or observed personal data." .

:hyros-property-hyros-ad-inventory-ad-account-id-element
    a dcls:DataElement ;
    rdfs:label "Hyros Ad Account Id field" ;
    rdfs:comment "Relay schema field from Hyros. Upstream comment: Ad account id flattened from `adSource.adAccountId`." ;
    dcls:sourceAsset hyros: ;
    dcls:path "adAccountId" ;
    dcls:dataPredicate <https://relay.inferal.com/ontology/hyros/property/Hyros.AdInventory/adAccountId> .

:hyros-property-hyros-ad-inventory-ad-account-id-classification
    a dcls:DataClassification ;
    rdfs:label "Hyros Ad Account Id classification" ;
    rdfs:comment "Upstream comment: Ad account id flattened from `adSource.adAccountId`. Identifier-like field; review linkability and whether the identifier is personal, account-level, device-level, or operational only." ;
    dcls:classifiesElement :hyros-property-hyros-ad-inventory-ad-account-id-element ;
    dcls:classifiedByRule :account-identifier-rule ;
    dcls:candidatePersonalDataCategory pd:AccountIdentifier ;
    dcls:hasSensitivityLevel dcls:HighSensitivity ;
    dcls:hasClassificationStatus dcls:Candidate ;
    dcls:hasClassificationContext :relay-api-schema-context ;
    dcls:confidenceAssessment :hyros-property-hyros-ad-inventory-ad-account-id-confidence ;
    dcls:requiresReview true ;
    dcls:requiresMeasure dpv:AccessControlMethod ;
    dcls:requiresMeasure dpv:Encryption ;
    dcls:detectedBy :relay-schema-name-detection .

:hyros-property-hyros-ad-inventory-ad-account-id-confidence
    a conf:ConfidenceAssessment ;
    rdfs:label "Hyros Ad Account Id confidence assessment" ;
    rdfs:comment "Structured probability-scale confidence assessment generated from the Relay data-classification rule confidence projection." ;
    conf:assessmentTarget :hyros-property-hyros-ad-inventory-ad-account-id-classification ;
    conf:confidenceValue :hyros-property-hyros-ad-inventory-ad-account-id-confidence-value ;
    prov:wasGeneratedBy :relay-schema-name-detection .

:hyros-property-hyros-ad-inventory-ad-account-id-confidence-value
    a conf:ProbabilityValue ;
    conf:scale conf:ProbabilityScale ;
    conf:score 0.70 .

:hyros-property-hyros-ad-inventory-name-element
    a dcls:DataElement ;
    rdfs:label "Hyros Name field" ;
    rdfs:comment "Relay schema field from Hyros. Upstream comment: Ad or campaign display name derived from `/api/v1.0/ads`." ;
    dcls:sourceAsset hyros: ;
    dcls:path "name" ;
    dcls:dataPredicate <https://relay.inferal.com/ontology/hyros/property/Hyros.AdInventory/name> .

:hyros-property-hyros-ad-inventory-name-classification
    a dcls:DataClassification ;
    rdfs:label "Hyros Name classification" ;
    rdfs:comment "Upstream comment: Ad or campaign display name derived from `/api/v1.0/ads`." ;
    dcls:classifiesElement :hyros-property-hyros-ad-inventory-name-element ;
    dcls:classifiedByRule :direct-person-name-rule ;
    dcls:candidatePersonalDataCategory pd:Name ;
    dcls:hasSensitivityLevel dcls:HighSensitivity ;
    dcls:hasClassificationStatus dcls:Candidate ;
    dcls:hasClassificationContext :relay-api-schema-context ;
    dcls:confidenceAssessment :hyros-property-hyros-ad-inventory-name-confidence ;
    dcls:requiresReview true ;
    dcls:requiresMeasure dpv:AccessControlMethod ;
    dcls:requiresMeasure dpv:Encryption ;
    dcls:detectedBy :relay-schema-name-detection .

:hyros-property-hyros-ad-inventory-name-confidence
    a conf:ConfidenceAssessment ;
    rdfs:label "Hyros Name confidence assessment" ;
    rdfs:comment "Structured probability-scale confidence assessment generated from the Relay data-classification rule confidence projection." ;
    conf:assessmentTarget :hyros-property-hyros-ad-inventory-name-classification ;
    conf:confidenceValue :hyros-property-hyros-ad-inventory-name-confidence-value ;
    prov:wasGeneratedBy :relay-schema-name-detection .

:hyros-property-hyros-ad-inventory-name-confidence-value
    a conf:ProbabilityValue ;
    conf:scale conf:ProbabilityScale ;
    conf:score 0.96 .

:hyros-property-hyros-ad-list-item-response-name-element
    a dcls:DataElement ;
    rdfs:label "Hyros Name field" ;
    rdfs:comment "Relay schema field from Hyros. Upstream comment: Ad or campaign display name returned by `/api/v1.0/ads`." ;
    dcls:sourceAsset hyros: ;
    dcls:path "name" ;
    dcls:dataPredicate <https://relay.inferal.com/ontology/hyros/property/Hyros.AdListItemResponse/name> .

:hyros-property-hyros-ad-list-item-response-name-classification
    a dcls:DataClassification ;
    rdfs:label "Hyros Name classification" ;
    rdfs:comment "Upstream comment: Ad or campaign display name returned by `/api/v1.0/ads`." ;
    dcls:classifiesElement :hyros-property-hyros-ad-list-item-response-name-element ;
    dcls:classifiedByRule :direct-person-name-rule ;
    dcls:candidatePersonalDataCategory pd:Name ;
    dcls:hasSensitivityLevel dcls:HighSensitivity ;
    dcls:hasClassificationStatus dcls:Candidate ;
    dcls:hasClassificationContext :relay-api-schema-context ;
    dcls:confidenceAssessment :hyros-property-hyros-ad-list-item-response-name-confidence ;
    dcls:requiresReview true ;
    dcls:requiresMeasure dpv:AccessControlMethod ;
    dcls:requiresMeasure dpv:Encryption ;
    dcls:detectedBy :relay-schema-name-detection .

:hyros-property-hyros-ad-list-item-response-name-confidence
    a conf:ConfidenceAssessment ;
    rdfs:label "Hyros Name confidence assessment" ;
    rdfs:comment "Structured probability-scale confidence assessment generated from the Relay data-classification rule confidence projection." ;
    conf:assessmentTarget :hyros-property-hyros-ad-list-item-response-name-classification ;
    conf:confidenceValue :hyros-property-hyros-ad-list-item-response-name-confidence-value ;
    prov:wasGeneratedBy :relay-schema-name-detection .

:hyros-property-hyros-ad-list-item-response-name-confidence-value
    a conf:ProbabilityValue ;
    conf:scale conf:ProbabilityScale ;
    conf:score 0.96 .

:hyros-property-hyros-ad-source-ad-account-id-element
    a dcls:DataElement ;
    rdfs:label "Hyros Ad Account Id field" ;
    rdfs:comment "Relay schema field from Hyros with predicate <https://relay.inferal.com/ontology/hyros/property/Hyros.AdSource/adAccountId> and path adAccountId." ;
    dcls:sourceAsset hyros: ;
    dcls:path "adAccountId" ;
    dcls:dataPredicate <https://relay.inferal.com/ontology/hyros/property/Hyros.AdSource/adAccountId> .

:hyros-property-hyros-ad-source-ad-account-id-classification
    a dcls:DataClassification ;
    rdfs:label "Hyros Ad Account Id classification" ;
    rdfs:comment "Identifier-like field; review linkability and whether the identifier is personal, account-level, device-level, or operational only." ;
    dcls:classifiesElement :hyros-property-hyros-ad-source-ad-account-id-element ;
    dcls:classifiedByRule :account-identifier-rule ;
    dcls:candidatePersonalDataCategory pd:AccountIdentifier ;
    dcls:hasSensitivityLevel dcls:HighSensitivity ;
    dcls:hasClassificationStatus dcls:Candidate ;
    dcls:hasClassificationContext :relay-api-schema-context ;
    dcls:confidenceAssessment :hyros-property-hyros-ad-source-ad-account-id-confidence ;
    dcls:requiresReview true ;
    dcls:requiresMeasure dpv:AccessControlMethod ;
    dcls:requiresMeasure dpv:Encryption ;
    dcls:detectedBy :relay-schema-name-detection .

:hyros-property-hyros-ad-source-ad-account-id-confidence
    a conf:ConfidenceAssessment ;
    rdfs:label "Hyros Ad Account Id confidence assessment" ;
    rdfs:comment "Structured probability-scale confidence assessment generated from the Relay data-classification rule confidence projection." ;
    conf:assessmentTarget :hyros-property-hyros-ad-source-ad-account-id-classification ;
    conf:confidenceValue :hyros-property-hyros-ad-source-ad-account-id-confidence-value ;
    prov:wasGeneratedBy :relay-schema-name-detection .

:hyros-property-hyros-ad-source-ad-account-id-confidence-value
    a conf:ProbabilityValue ;
    conf:scale conf:ProbabilityScale ;
    conf:score 0.70 .

:hyros-property-hyros-attribution-click-id-element
    a dcls:DataElement ;
    rdfs:label "Hyros Click Id field" ;
    rdfs:comment "Relay schema field from Hyros with predicate <https://relay.inferal.com/ontology/hyros/property/Hyros.Attribution/clickId> and path clickId." ;
    dcls:sourceAsset hyros: ;
    dcls:path "clickId" ;
    dcls:dataPredicate <https://relay.inferal.com/ontology/hyros/property/Hyros.Attribution/clickId> .

:hyros-property-hyros-attribution-click-id-classification
    a dcls:DataClassification ;
    rdfs:label "Hyros Click Id classification" ;
    rdfs:comment "Identifier-like field; review linkability and whether the identifier is personal, account-level, device-level, or operational only." ;
    dcls:classifiesElement :hyros-property-hyros-attribution-click-id-element ;
    dcls:classifiedByRule :identifier-like-rule ;
    dcls:candidatePersonalDataCategory pd:Identifier ;
    dcls:hasSensitivityLevel dcls:HighSensitivity ;
    dcls:hasClassificationStatus dcls:Candidate ;
    dcls:hasClassificationContext :relay-api-schema-context ;
    dcls:confidenceAssessment :hyros-property-hyros-attribution-click-id-confidence ;
    dcls:requiresReview true ;
    dcls:requiresMeasure dpv:AccessControlMethod ;
    dcls:requiresMeasure dpv:Encryption ;
    dcls:detectedBy :relay-schema-name-detection .

:hyros-property-hyros-attribution-click-id-confidence
    a conf:ConfidenceAssessment ;
    rdfs:label "Hyros Click Id confidence assessment" ;
    rdfs:comment "Structured probability-scale confidence assessment generated from the Relay data-classification rule confidence projection." ;
    conf:assessmentTarget :hyros-property-hyros-attribution-click-id-classification ;
    conf:confidenceValue :hyros-property-hyros-attribution-click-id-confidence-value ;
    prov:wasGeneratedBy :relay-schema-name-detection .

:hyros-property-hyros-attribution-click-id-confidence-value
    a conf:ProbabilityValue ;
    conf:scale conf:ProbabilityScale ;
    conf:score 0.70 .

:hyros-property-hyros-call-external-id-element
    a dcls:DataElement ;
    rdfs:label "Hyros External Id field" ;
    rdfs:comment "Relay schema field from Hyros. Upstream comment: Client-supplied stable identifier from the upstream calling system\n(e.g. Calendly event ID). Acts as a dedup key on `POST /calls`:\nresubmitting the same `externalId` updates the existing call rather\nthan creating a duplicate. Use this as the at-least-once retry handle\nwhen ingesting from a source system that issues stable IDs." ;
    dcls:sourceAsset hyros: ;
    dcls:path "externalId" ;
    dcls:dataPredicate <https://relay.inferal.com/ontology/hyros/property/Hyros.Call/externalId> .

:hyros-property-hyros-call-external-id-classification
    a dcls:DataClassification ;
    rdfs:label "Hyros External Id classification" ;
    rdfs:comment "Upstream comment: Client-supplied stable identifier from the upstream calling system\n(e.g. Calendly event ID). Acts as a dedup key on `POST /calls`:\nresubmitting the same `externalId` updates the existing call rather\nthan creating a duplicate. Use this as the at-least-once retry handle\nwhen ingesting from a source system that issues stable IDs. Identifier-like field; review linkability and whether the identifier is personal, account-level, device-level, or operational only." ;
    dcls:classifiesElement :hyros-property-hyros-call-external-id-element ;
    dcls:classifiedByRule :identifier-like-rule ;
    dcls:candidatePersonalDataCategory pd:Identifier ;
    dcls:hasSensitivityLevel dcls:HighSensitivity ;
    dcls:hasClassificationStatus dcls:Candidate ;
    dcls:hasClassificationContext :relay-api-schema-context ;
    dcls:confidenceAssessment :hyros-property-hyros-call-external-id-confidence ;
    dcls:requiresReview true ;
    dcls:requiresMeasure dpv:AccessControlMethod ;
    dcls:requiresMeasure dpv:Encryption ;
    dcls:detectedBy :relay-schema-name-detection .

:hyros-property-hyros-call-external-id-confidence
    a conf:ConfidenceAssessment ;
    rdfs:label "Hyros External Id confidence assessment" ;
    rdfs:comment "Structured probability-scale confidence assessment generated from the Relay data-classification rule confidence projection." ;
    conf:assessmentTarget :hyros-property-hyros-call-external-id-classification ;
    conf:confidenceValue :hyros-property-hyros-call-external-id-confidence-value ;
    prov:wasGeneratedBy :relay-schema-name-detection .

:hyros-property-hyros-call-external-id-confidence-value
    a conf:ProbabilityValue ;
    conf:scale conf:ProbabilityScale ;
    conf:score 0.70 .

:hyros-property-hyros-call-state-element
    a dcls:DataElement ;
    rdfs:label "Hyros State field" ;
    rdfs:comment "Relay schema field from Hyros with predicate <https://relay.inferal.com/ontology/hyros/property/Hyros.Call/state> and path state." ;
    dcls:sourceAsset hyros: ;
    dcls:path "state" ;
    dcls:dataPredicate <https://relay.inferal.com/ontology/hyros/property/Hyros.Call/state> .

:hyros-property-hyros-call-state-classification
    a dcls:DataClassification ;
    rdfs:label "Hyros State classification" ;
    rdfs:comment "Location code or region field; review whether it identifies a person, billing/shipping address, or only a market/geography." ;
    dcls:classifiesElement :hyros-property-hyros-call-state-element ;
    dcls:classifiedByRule :location-code-rule ;
    dcls:candidatePersonalDataCategory pd:Location ;
    dcls:hasSensitivityLevel dcls:ModerateSensitivity ;
    dcls:hasClassificationStatus dcls:Candidate ;
    dcls:hasClassificationContext :relay-api-schema-context ;
    dcls:confidenceAssessment :hyros-property-hyros-call-state-confidence ;
    dcls:requiresReview true ;
    dcls:requiresMeasure dpv:AccessControlMethod ;
    dcls:requiresMeasure dpv:Encryption ;
    dcls:detectedBy :relay-schema-name-detection .

:hyros-property-hyros-call-state-confidence
    a conf:ConfidenceAssessment ;
    rdfs:label "Hyros State confidence assessment" ;
    rdfs:comment "Structured probability-scale confidence assessment generated from the Relay data-classification rule confidence projection." ;
    conf:assessmentTarget :hyros-property-hyros-call-state-classification ;
    conf:confidenceValue :hyros-property-hyros-call-state-confidence-value ;
    prov:wasGeneratedBy :relay-schema-name-detection .

:hyros-property-hyros-call-state-confidence-value
    a conf:ProbabilityValue ;
    conf:scale conf:ProbabilityScale ;
    conf:score 0.64 .

:hyros-property-hyros-cart-item-external-id-element
    a dcls:DataElement ;
    rdfs:label "Hyros External Id field" ;
    rdfs:comment "Relay schema field from Hyros with predicate <https://relay.inferal.com/ontology/hyros/property/Hyros.CartItem/externalId> and path externalId." ;
    dcls:sourceAsset hyros: ;
    dcls:path "externalId" ;
    dcls:dataPredicate <https://relay.inferal.com/ontology/hyros/property/Hyros.CartItem/externalId> .

:hyros-property-hyros-cart-item-external-id-classification
    a dcls:DataClassification ;
    rdfs:label "Hyros External Id classification" ;
    rdfs:comment "Identifier-like field; review linkability and whether the identifier is personal, account-level, device-level, or operational only." ;
    dcls:classifiesElement :hyros-property-hyros-cart-item-external-id-element ;
    dcls:classifiedByRule :identifier-like-rule ;
    dcls:candidatePersonalDataCategory pd:Identifier ;
    dcls:hasSensitivityLevel dcls:HighSensitivity ;
    dcls:hasClassificationStatus dcls:Candidate ;
    dcls:hasClassificationContext :relay-api-schema-context ;
    dcls:confidenceAssessment :hyros-property-hyros-cart-item-external-id-confidence ;
    dcls:requiresReview true ;
    dcls:requiresMeasure dpv:AccessControlMethod ;
    dcls:requiresMeasure dpv:Encryption ;
    dcls:detectedBy :relay-schema-name-detection .

:hyros-property-hyros-cart-item-external-id-confidence
    a conf:ConfidenceAssessment ;
    rdfs:label "Hyros External Id confidence assessment" ;
    rdfs:comment "Structured probability-scale confidence assessment generated from the Relay data-classification rule confidence projection." ;
    conf:assessmentTarget :hyros-property-hyros-cart-item-external-id-classification ;
    conf:confidenceValue :hyros-property-hyros-cart-item-external-id-confidence-value ;
    prov:wasGeneratedBy :relay-schema-name-detection .

:hyros-property-hyros-cart-item-external-id-confidence-value
    a conf:ProbabilityValue ;
    conf:scale conf:ProbabilityScale ;
    conf:score 0.70 .

:hyros-property-hyros-item-external-id-element
    a dcls:DataElement ;
    rdfs:label "Hyros External Id field" ;
    rdfs:comment "Relay schema field from Hyros. Upstream comment: Unique identifier from the external integration." ;
    dcls:sourceAsset hyros: ;
    dcls:path "externalId" ;
    dcls:dataPredicate <https://relay.inferal.com/ontology/hyros/property/Hyros.Item/externalId> .

:hyros-property-hyros-item-external-id-classification
    a dcls:DataClassification ;
    rdfs:label "Hyros External Id classification" ;
    rdfs:comment "Upstream comment: Unique identifier from the external integration. Identifier-like field; review linkability and whether the identifier is personal, account-level, device-level, or operational only." ;
    dcls:classifiesElement :hyros-property-hyros-item-external-id-element ;
    dcls:classifiedByRule :identifier-like-rule ;
    dcls:candidatePersonalDataCategory pd:Identifier ;
    dcls:hasSensitivityLevel dcls:HighSensitivity ;
    dcls:hasClassificationStatus dcls:Candidate ;
    dcls:hasClassificationContext :relay-api-schema-context ;
    dcls:confidenceAssessment :hyros-property-hyros-item-external-id-confidence ;
    dcls:requiresReview true ;
    dcls:requiresMeasure dpv:AccessControlMethod ;
    dcls:requiresMeasure dpv:Encryption ;
    dcls:detectedBy :relay-schema-name-detection .

:hyros-property-hyros-item-external-id-confidence
    a conf:ConfidenceAssessment ;
    rdfs:label "Hyros External Id confidence assessment" ;
    rdfs:comment "Structured probability-scale confidence assessment generated from the Relay data-classification rule confidence projection." ;
    conf:assessmentTarget :hyros-property-hyros-item-external-id-classification ;
    conf:confidenceValue :hyros-property-hyros-item-external-id-confidence-value ;
    prov:wasGeneratedBy :relay-schema-name-detection .

:hyros-property-hyros-item-external-id-confidence-value
    a conf:ProbabilityValue ;
    conf:scale conf:ProbabilityScale ;
    conf:score 0.70 .

:hyros-property-hyros-lead-email-element
    a dcls:DataElement ;
    rdfs:label "Hyros Email field" ;
    rdfs:comment "Relay schema field from Hyros with predicate <https://relay.inferal.com/ontology/hyros/property/Hyros.Lead/email> and path email." ;
    dcls:sourceAsset hyros: ;
    dcls:path "email" ;
    dcls:dataPredicate <https://relay.inferal.com/ontology/hyros/property/Hyros.Lead/email> .

:hyros-property-hyros-lead-email-classification
    a dcls:DataClassification ;
    rdfs:label "Hyros Email classification" ;
    dcls:classifiesElement :hyros-property-hyros-lead-email-element ;
    dcls:classifiedByRule :email-address-rule ;
    dcls:candidatePersonalDataCategory pd:EmailAddress ;
    dcls:hasSensitivityLevel dcls:HighSensitivity ;
    dcls:hasClassificationStatus dcls:Candidate ;
    dcls:hasClassificationContext :relay-api-schema-context ;
    dcls:confidenceAssessment :hyros-property-hyros-lead-email-confidence ;
    dcls:requiresReview true ;
    dcls:requiresMeasure dpv:AccessControlMethod ;
    dcls:requiresMeasure dpv:Encryption ;
    dcls:detectedBy :relay-schema-name-detection .

:hyros-property-hyros-lead-email-confidence
    a conf:ConfidenceAssessment ;
    rdfs:label "Hyros Email confidence assessment" ;
    rdfs:comment "Structured probability-scale confidence assessment generated from the Relay data-classification rule confidence projection." ;
    conf:assessmentTarget :hyros-property-hyros-lead-email-classification ;
    conf:confidenceValue :hyros-property-hyros-lead-email-confidence-value ;
    prov:wasGeneratedBy :relay-schema-name-detection .

:hyros-property-hyros-lead-email-confidence-value
    a conf:ProbabilityValue ;
    conf:scale conf:ProbabilityScale ;
    conf:score 0.98 .

:hyros-property-hyros-lead-first-name-element
    a dcls:DataElement ;
    rdfs:label "Hyros First Name field" ;
    rdfs:comment "Relay schema field from Hyros with predicate <https://relay.inferal.com/ontology/hyros/property/Hyros.Lead/firstName> and path firstName." ;
    dcls:sourceAsset hyros: ;
    dcls:path "firstName" ;
    dcls:dataPredicate <https://relay.inferal.com/ontology/hyros/property/Hyros.Lead/firstName> .

:hyros-property-hyros-lead-first-name-classification
    a dcls:DataClassification ;
    rdfs:label "Hyros First Name classification" ;
    dcls:classifiesElement :hyros-property-hyros-lead-first-name-element ;
    dcls:classifiedByRule :direct-person-name-rule ;
    dcls:candidatePersonalDataCategory pd:Name ;
    dcls:hasSensitivityLevel dcls:HighSensitivity ;
    dcls:hasClassificationStatus dcls:Candidate ;
    dcls:hasClassificationContext :relay-api-schema-context ;
    dcls:confidenceAssessment :hyros-property-hyros-lead-first-name-confidence ;
    dcls:requiresReview true ;
    dcls:requiresMeasure dpv:AccessControlMethod ;
    dcls:requiresMeasure dpv:Encryption ;
    dcls:detectedBy :relay-schema-name-detection .

:hyros-property-hyros-lead-first-name-confidence
    a conf:ConfidenceAssessment ;
    rdfs:label "Hyros First Name confidence assessment" ;
    rdfs:comment "Structured probability-scale confidence assessment generated from the Relay data-classification rule confidence projection." ;
    conf:assessmentTarget :hyros-property-hyros-lead-first-name-classification ;
    conf:confidenceValue :hyros-property-hyros-lead-first-name-confidence-value ;
    prov:wasGeneratedBy :relay-schema-name-detection .

:hyros-property-hyros-lead-first-name-confidence-value
    a conf:ProbabilityValue ;
    conf:scale conf:ProbabilityScale ;
    conf:score 0.96 .

:hyros-property-hyros-lead-ips-element
    a dcls:DataElement ;
    rdfs:label "Hyros Ips field" ;
    rdfs:comment "Relay schema field from Hyros with predicate <https://relay.inferal.com/ontology/hyros/property/Hyros.Lead/ips> and path ips." ;
    dcls:sourceAsset hyros: ;
    dcls:path "ips" ;
    dcls:dataPredicate <https://relay.inferal.com/ontology/hyros/property/Hyros.Lead/ips> .

:hyros-property-hyros-lead-ips-classification
    a dcls:DataClassification ;
    rdfs:label "Hyros Ips classification" ;
    dcls:classifiesElement :hyros-property-hyros-lead-ips-element ;
    dcls:classifiedByRule :ip-address-rule ;
    dcls:candidatePersonalDataCategory pd:IPAddress ;
    dcls:hasSensitivityLevel dcls:HighSensitivity ;
    dcls:hasClassificationStatus dcls:Candidate ;
    dcls:hasClassificationContext :relay-api-schema-context ;
    dcls:confidenceAssessment :hyros-property-hyros-lead-ips-confidence ;
    dcls:requiresReview true ;
    dcls:requiresMeasure dpv:AccessControlMethod ;
    dcls:requiresMeasure dpv:Encryption ;
    dcls:detectedBy :relay-schema-name-detection .

:hyros-property-hyros-lead-ips-confidence
    a conf:ConfidenceAssessment ;
    rdfs:label "Hyros Ips confidence assessment" ;
    rdfs:comment "Structured probability-scale confidence assessment generated from the Relay data-classification rule confidence projection." ;
    conf:assessmentTarget :hyros-property-hyros-lead-ips-classification ;
    conf:confidenceValue :hyros-property-hyros-lead-ips-confidence-value ;
    prov:wasGeneratedBy :relay-schema-name-detection .

:hyros-property-hyros-lead-ips-confidence-value
    a conf:ProbabilityValue ;
    conf:scale conf:ProbabilityScale ;
    conf:score 0.98 .

:hyros-property-hyros-lead-last-name-element
    a dcls:DataElement ;
    rdfs:label "Hyros Last Name field" ;
    rdfs:comment "Relay schema field from Hyros with predicate <https://relay.inferal.com/ontology/hyros/property/Hyros.Lead/lastName> and path lastName." ;
    dcls:sourceAsset hyros: ;
    dcls:path "lastName" ;
    dcls:dataPredicate <https://relay.inferal.com/ontology/hyros/property/Hyros.Lead/lastName> .

:hyros-property-hyros-lead-last-name-classification
    a dcls:DataClassification ;
    rdfs:label "Hyros Last Name classification" ;
    dcls:classifiesElement :hyros-property-hyros-lead-last-name-element ;
    dcls:classifiedByRule :direct-person-name-rule ;
    dcls:candidatePersonalDataCategory pd:Name ;
    dcls:hasSensitivityLevel dcls:HighSensitivity ;
    dcls:hasClassificationStatus dcls:Candidate ;
    dcls:hasClassificationContext :relay-api-schema-context ;
    dcls:confidenceAssessment :hyros-property-hyros-lead-last-name-confidence ;
    dcls:requiresReview true ;
    dcls:requiresMeasure dpv:AccessControlMethod ;
    dcls:requiresMeasure dpv:Encryption ;
    dcls:detectedBy :relay-schema-name-detection .

:hyros-property-hyros-lead-last-name-confidence
    a conf:ConfidenceAssessment ;
    rdfs:label "Hyros Last Name confidence assessment" ;
    rdfs:comment "Structured probability-scale confidence assessment generated from the Relay data-classification rule confidence projection." ;
    conf:assessmentTarget :hyros-property-hyros-lead-last-name-classification ;
    conf:confidenceValue :hyros-property-hyros-lead-last-name-confidence-value ;
    prov:wasGeneratedBy :relay-schema-name-detection .

:hyros-property-hyros-lead-last-name-confidence-value
    a conf:ProbabilityValue ;
    conf:scale conf:ProbabilityScale ;
    conf:score 0.96 .

:hyros-property-hyros-lead-phone-numbers-element
    a dcls:DataElement ;
    rdfs:label "Hyros Phone Numbers field" ;
    rdfs:comment "Relay schema field from Hyros with predicate <https://relay.inferal.com/ontology/hyros/property/Hyros.Lead/phoneNumbers> and path phoneNumbers." ;
    dcls:sourceAsset hyros: ;
    dcls:path "phoneNumbers" ;
    dcls:dataPredicate <https://relay.inferal.com/ontology/hyros/property/Hyros.Lead/phoneNumbers> .

:hyros-property-hyros-lead-phone-numbers-classification
    a dcls:DataClassification ;
    rdfs:label "Hyros Phone Numbers classification" ;
    dcls:classifiesElement :hyros-property-hyros-lead-phone-numbers-element ;
    dcls:classifiedByRule :telephone-number-rule ;
    dcls:candidatePersonalDataCategory pd:TelephoneNumber ;
    dcls:hasSensitivityLevel dcls:HighSensitivity ;
    dcls:hasClassificationStatus dcls:Candidate ;
    dcls:hasClassificationContext :relay-api-schema-context ;
    dcls:confidenceAssessment :hyros-property-hyros-lead-phone-numbers-confidence ;
    dcls:requiresReview true ;
    dcls:requiresMeasure dpv:AccessControlMethod ;
    dcls:requiresMeasure dpv:Encryption ;
    dcls:detectedBy :relay-schema-name-detection .

:hyros-property-hyros-lead-phone-numbers-confidence
    a conf:ConfidenceAssessment ;
    rdfs:label "Hyros Phone Numbers confidence assessment" ;
    rdfs:comment "Structured probability-scale confidence assessment generated from the Relay data-classification rule confidence projection." ;
    conf:assessmentTarget :hyros-property-hyros-lead-phone-numbers-classification ;
    conf:confidenceValue :hyros-property-hyros-lead-phone-numbers-confidence-value ;
    prov:wasGeneratedBy :relay-schema-name-detection .

:hyros-property-hyros-lead-phone-numbers-confidence-value
    a conf:ProbabilityValue ;
    conf:scale conf:ProbabilityScale ;
    conf:score 0.97 .

:hyros-property-hyros-lead-journey-cart-item-order-id-element
    a dcls:DataElement ;
    rdfs:label "Hyros Order Id field" ;
    rdfs:comment "Relay schema field from Hyros. Upstream comment: Order ID this cart resulted in. Only present if the cart was purchased." ;
    dcls:sourceAsset hyros: ;
    dcls:path "orderId" ;
    dcls:dataPredicate <https://relay.inferal.com/ontology/hyros/property/Hyros.LeadJourneyCartItem/orderId> .

:hyros-property-hyros-lead-journey-cart-item-order-id-classification
    a dcls:DataClassification ;
    rdfs:label "Hyros Order Id classification" ;
    rdfs:comment "Upstream comment: Order ID this cart resulted in. Only present if the cart was purchased. Identifier-like field; review linkability and whether the identifier is personal, account-level, device-level, or operational only." ;
    dcls:classifiesElement :hyros-property-hyros-lead-journey-cart-item-order-id-element ;
    dcls:classifiedByRule :identifier-like-rule ;
    dcls:candidatePersonalDataCategory pd:Identifier ;
    dcls:hasSensitivityLevel dcls:HighSensitivity ;
    dcls:hasClassificationStatus dcls:Candidate ;
    dcls:hasClassificationContext :relay-api-schema-context ;
    dcls:confidenceAssessment :hyros-property-hyros-lead-journey-cart-item-order-id-confidence ;
    dcls:requiresReview true ;
    dcls:requiresMeasure dpv:AccessControlMethod ;
    dcls:requiresMeasure dpv:Encryption ;
    dcls:detectedBy :relay-schema-name-detection .

:hyros-property-hyros-lead-journey-cart-item-order-id-confidence
    a conf:ConfidenceAssessment ;
    rdfs:label "Hyros Order Id confidence assessment" ;
    rdfs:comment "Structured probability-scale confidence assessment generated from the Relay data-classification rule confidence projection." ;
    conf:assessmentTarget :hyros-property-hyros-lead-journey-cart-item-order-id-classification ;
    conf:confidenceValue :hyros-property-hyros-lead-journey-cart-item-order-id-confidence-value ;
    prov:wasGeneratedBy :relay-schema-name-detection .

:hyros-property-hyros-lead-journey-cart-item-order-id-confidence-value
    a conf:ProbabilityValue ;
    conf:scale conf:ProbabilityScale ;
    conf:score 0.70 .

:hyros-property-hyros-sale-order-id-element
    a dcls:DataElement ;
    rdfs:label "Hyros Order Id field" ;
    rdfs:comment "Relay schema field from Hyros. Upstream comment: Client-supplied stable identifier from the upstream order system\n(typically a Stripe charge ID, payment processor reference, or\ne-commerce order number). Acts as a dedup key on `POST /orders`:\nresubmitting the same `orderId` updates the existing sale rather\nthan creating a duplicate. Use this as the at-least-once retry\nhandle when ingesting from a source system that issues stable IDs." ;
    dcls:sourceAsset hyros: ;
    dcls:path "orderId" ;
    dcls:dataPredicate <https://relay.inferal.com/ontology/hyros/property/Hyros.Sale/orderId> .

:hyros-property-hyros-sale-order-id-classification
    a dcls:DataClassification ;
    rdfs:label "Hyros Order Id classification" ;
    rdfs:comment "Upstream comment: Client-supplied stable identifier from the upstream order system\n(typically a Stripe charge ID, payment processor reference, or\ne-commerce order number). Acts as a dedup key on `POST /orders`:\nresubmitting the same `orderId` updates the existing sale rather\nthan creating a duplicate. Use this as the at-least-once retry\nhandle when ingesting from a source system that issues stable IDs. Identifier-like field; review linkability and whether the identifier is personal, account-level, device-level, or operational only." ;
    dcls:classifiesElement :hyros-property-hyros-sale-order-id-element ;
    dcls:classifiedByRule :identifier-like-rule ;
    dcls:candidatePersonalDataCategory pd:Identifier ;
    dcls:hasSensitivityLevel dcls:HighSensitivity ;
    dcls:hasClassificationStatus dcls:Candidate ;
    dcls:hasClassificationContext :relay-api-schema-context ;
    dcls:confidenceAssessment :hyros-property-hyros-sale-order-id-confidence ;
    dcls:requiresReview true ;
    dcls:requiresMeasure dpv:AccessControlMethod ;
    dcls:requiresMeasure dpv:Encryption ;
    dcls:detectedBy :relay-schema-name-detection .

:hyros-property-hyros-sale-order-id-confidence
    a conf:ConfidenceAssessment ;
    rdfs:label "Hyros Order Id confidence assessment" ;
    rdfs:comment "Structured probability-scale confidence assessment generated from the Relay data-classification rule confidence projection." ;
    conf:assessmentTarget :hyros-property-hyros-sale-order-id-classification ;
    conf:confidenceValue :hyros-property-hyros-sale-order-id-confidence-value ;
    prov:wasGeneratedBy :relay-schema-name-detection .

:hyros-property-hyros-sale-order-id-confidence-value
    a conf:ProbabilityValue ;
    conf:scale conf:ProbabilityScale ;
    conf:score 0.70 .

:hyros-property-hyros-subscription-subscription-id-element
    a dcls:DataElement ;
    rdfs:label "Hyros Subscription Id field" ;
    rdfs:comment "Relay schema field from Hyros with predicate <https://relay.inferal.com/ontology/hyros/property/Hyros.Subscription/subscriptionId> and path subscriptionId." ;
    dcls:sourceAsset hyros: ;
    dcls:path "subscriptionId" ;
    dcls:dataPredicate <https://relay.inferal.com/ontology/hyros/property/Hyros.Subscription/subscriptionId> .

:hyros-property-hyros-subscription-subscription-id-classification
    a dcls:DataClassification ;
    rdfs:label "Hyros Subscription Id classification" ;
    rdfs:comment "Identifier-like field; review linkability and whether the identifier is personal, account-level, device-level, or operational only." ;
    dcls:classifiesElement :hyros-property-hyros-subscription-subscription-id-element ;
    dcls:classifiedByRule :identifier-like-rule ;
    dcls:candidatePersonalDataCategory pd:Identifier ;
    dcls:hasSensitivityLevel dcls:HighSensitivity ;
    dcls:hasClassificationStatus dcls:Candidate ;
    dcls:hasClassificationContext :relay-api-schema-context ;
    dcls:confidenceAssessment :hyros-property-hyros-subscription-subscription-id-confidence ;
    dcls:requiresReview true ;
    dcls:requiresMeasure dpv:AccessControlMethod ;
    dcls:requiresMeasure dpv:Encryption ;
    dcls:detectedBy :relay-schema-name-detection .

:hyros-property-hyros-subscription-subscription-id-confidence
    a conf:ConfidenceAssessment ;
    rdfs:label "Hyros Subscription Id confidence assessment" ;
    rdfs:comment "Structured probability-scale confidence assessment generated from the Relay data-classification rule confidence projection." ;
    conf:assessmentTarget :hyros-property-hyros-subscription-subscription-id-classification ;
    conf:confidenceValue :hyros-property-hyros-subscription-subscription-id-confidence-value ;
    prov:wasGeneratedBy :relay-schema-name-detection .

:hyros-property-hyros-subscription-subscription-id-confidence-value
    a conf:ProbabilityValue ;
    conf:scale conf:ProbabilityScale ;
    conf:score 0.70 .

:hyros-property-hyros-webhook-event-base-subscription-id-element
    a dcls:DataElement ;
    rdfs:label "Hyros Subscription Id field" ;
    rdfs:comment "Relay schema field from Hyros. Upstream comment: ID of the subscription that triggered delivery." ;
    dcls:sourceAsset hyros: ;
    dcls:path "subscriptionId" ;
    dcls:dataPredicate <https://relay.inferal.com/ontology/hyros/property/Hyros.WebhookEventBase/subscriptionId> .

:hyros-property-hyros-webhook-event-base-subscription-id-classification
    a dcls:DataClassification ;
    rdfs:label "Hyros Subscription Id classification" ;
    rdfs:comment "Upstream comment: ID of the subscription that triggered delivery. Identifier-like field; review linkability and whether the identifier is personal, account-level, device-level, or operational only." ;
    dcls:classifiesElement :hyros-property-hyros-webhook-event-base-subscription-id-element ;
    dcls:classifiedByRule :identifier-like-rule ;
    dcls:candidatePersonalDataCategory pd:Identifier ;
    dcls:hasSensitivityLevel dcls:HighSensitivity ;
    dcls:hasClassificationStatus dcls:Candidate ;
    dcls:hasClassificationContext :relay-api-schema-context ;
    dcls:confidenceAssessment :hyros-property-hyros-webhook-event-base-subscription-id-confidence ;
    dcls:requiresReview true ;
    dcls:requiresMeasure dpv:AccessControlMethod ;
    dcls:requiresMeasure dpv:Encryption ;
    dcls:detectedBy :relay-schema-name-detection .

:hyros-property-hyros-webhook-event-base-subscription-id-confidence
    a conf:ConfidenceAssessment ;
    rdfs:label "Hyros Subscription Id confidence assessment" ;
    rdfs:comment "Structured probability-scale confidence assessment generated from the Relay data-classification rule confidence projection." ;
    conf:assessmentTarget :hyros-property-hyros-webhook-event-base-subscription-id-classification ;
    conf:confidenceValue :hyros-property-hyros-webhook-event-base-subscription-id-confidence-value ;
    prov:wasGeneratedBy :relay-schema-name-detection .

:hyros-property-hyros-webhook-event-base-subscription-id-confidence-value
    a conf:ProbabilityValue ;
    conf:scale conf:ProbabilityScale ;
    conf:score 0.70 .

:hyros-property-hyros-webhook-lead-first-name-element
    a dcls:DataElement ;
    rdfs:label "Hyros First Name field" ;
    rdfs:comment "Relay schema field from Hyros with predicate <https://relay.inferal.com/ontology/hyros/property/Hyros.WebhookLead/firstName> and path firstName." ;
    dcls:sourceAsset hyros: ;
    dcls:path "firstName" ;
    dcls:dataPredicate <https://relay.inferal.com/ontology/hyros/property/Hyros.WebhookLead/firstName> .

:hyros-property-hyros-webhook-lead-first-name-classification
    a dcls:DataClassification ;
    rdfs:label "Hyros First Name classification" ;
    dcls:classifiesElement :hyros-property-hyros-webhook-lead-first-name-element ;
    dcls:classifiedByRule :direct-person-name-rule ;
    dcls:candidatePersonalDataCategory pd:Name ;
    dcls:hasSensitivityLevel dcls:HighSensitivity ;
    dcls:hasClassificationStatus dcls:Candidate ;
    dcls:hasClassificationContext :relay-api-schema-context ;
    dcls:confidenceAssessment :hyros-property-hyros-webhook-lead-first-name-confidence ;
    dcls:requiresReview true ;
    dcls:requiresMeasure dpv:AccessControlMethod ;
    dcls:requiresMeasure dpv:Encryption ;
    dcls:detectedBy :relay-schema-name-detection .

:hyros-property-hyros-webhook-lead-first-name-confidence
    a conf:ConfidenceAssessment ;
    rdfs:label "Hyros First Name confidence assessment" ;
    rdfs:comment "Structured probability-scale confidence assessment generated from the Relay data-classification rule confidence projection." ;
    conf:assessmentTarget :hyros-property-hyros-webhook-lead-first-name-classification ;
    conf:confidenceValue :hyros-property-hyros-webhook-lead-first-name-confidence-value ;
    prov:wasGeneratedBy :relay-schema-name-detection .

:hyros-property-hyros-webhook-lead-first-name-confidence-value
    a conf:ProbabilityValue ;
    conf:scale conf:ProbabilityScale ;
    conf:score 0.96 .

:hyros-property-hyros-webhook-lead-ips-element
    a dcls:DataElement ;
    rdfs:label "Hyros Ips field" ;
    rdfs:comment "Relay schema field from Hyros with predicate <https://relay.inferal.com/ontology/hyros/property/Hyros.WebhookLead/ips> and path ips." ;
    dcls:sourceAsset hyros: ;
    dcls:path "ips" ;
    dcls:dataPredicate <https://relay.inferal.com/ontology/hyros/property/Hyros.WebhookLead/ips> .

:hyros-property-hyros-webhook-lead-ips-classification
    a dcls:DataClassification ;
    rdfs:label "Hyros Ips classification" ;
    dcls:classifiesElement :hyros-property-hyros-webhook-lead-ips-element ;
    dcls:classifiedByRule :ip-address-rule ;
    dcls:candidatePersonalDataCategory pd:IPAddress ;
    dcls:hasSensitivityLevel dcls:HighSensitivity ;
    dcls:hasClassificationStatus dcls:Candidate ;
    dcls:hasClassificationContext :relay-api-schema-context ;
    dcls:confidenceAssessment :hyros-property-hyros-webhook-lead-ips-confidence ;
    dcls:requiresReview true ;
    dcls:requiresMeasure dpv:AccessControlMethod ;
    dcls:requiresMeasure dpv:Encryption ;
    dcls:detectedBy :relay-schema-name-detection .

:hyros-property-hyros-webhook-lead-ips-confidence
    a conf:ConfidenceAssessment ;
    rdfs:label "Hyros Ips confidence assessment" ;
    rdfs:comment "Structured probability-scale confidence assessment generated from the Relay data-classification rule confidence projection." ;
    conf:assessmentTarget :hyros-property-hyros-webhook-lead-ips-classification ;
    conf:confidenceValue :hyros-property-hyros-webhook-lead-ips-confidence-value ;
    prov:wasGeneratedBy :relay-schema-name-detection .

:hyros-property-hyros-webhook-lead-ips-confidence-value
    a conf:ProbabilityValue ;
    conf:scale conf:ProbabilityScale ;
    conf:score 0.98 .

:hyros-property-hyros-webhook-lead-last-name-element
    a dcls:DataElement ;
    rdfs:label "Hyros Last Name field" ;
    rdfs:comment "Relay schema field from Hyros with predicate <https://relay.inferal.com/ontology/hyros/property/Hyros.WebhookLead/lastName> and path lastName." ;
    dcls:sourceAsset hyros: ;
    dcls:path "lastName" ;
    dcls:dataPredicate <https://relay.inferal.com/ontology/hyros/property/Hyros.WebhookLead/lastName> .

:hyros-property-hyros-webhook-lead-last-name-classification
    a dcls:DataClassification ;
    rdfs:label "Hyros Last Name classification" ;
    dcls:classifiesElement :hyros-property-hyros-webhook-lead-last-name-element ;
    dcls:classifiedByRule :direct-person-name-rule ;
    dcls:candidatePersonalDataCategory pd:Name ;
    dcls:hasSensitivityLevel dcls:HighSensitivity ;
    dcls:hasClassificationStatus dcls:Candidate ;
    dcls:hasClassificationContext :relay-api-schema-context ;
    dcls:confidenceAssessment :hyros-property-hyros-webhook-lead-last-name-confidence ;
    dcls:requiresReview true ;
    dcls:requiresMeasure dpv:AccessControlMethod ;
    dcls:requiresMeasure dpv:Encryption ;
    dcls:detectedBy :relay-schema-name-detection .

:hyros-property-hyros-webhook-lead-last-name-confidence
    a conf:ConfidenceAssessment ;
    rdfs:label "Hyros Last Name confidence assessment" ;
    rdfs:comment "Structured probability-scale confidence assessment generated from the Relay data-classification rule confidence projection." ;
    conf:assessmentTarget :hyros-property-hyros-webhook-lead-last-name-classification ;
    conf:confidenceValue :hyros-property-hyros-webhook-lead-last-name-confidence-value ;
    prov:wasGeneratedBy :relay-schema-name-detection .

:hyros-property-hyros-webhook-lead-last-name-confidence-value
    a conf:ProbabilityValue ;
    conf:scale conf:ProbabilityScale ;
    conf:score 0.96 .

:hyros-property-hyros-webhook-lead-phone-numbers-element
    a dcls:DataElement ;
    rdfs:label "Hyros Phone Numbers field" ;
    rdfs:comment "Relay schema field from Hyros with predicate <https://relay.inferal.com/ontology/hyros/property/Hyros.WebhookLead/phoneNumbers> and path phoneNumbers." ;
    dcls:sourceAsset hyros: ;
    dcls:path "phoneNumbers" ;
    dcls:dataPredicate <https://relay.inferal.com/ontology/hyros/property/Hyros.WebhookLead/phoneNumbers> .

:hyros-property-hyros-webhook-lead-phone-numbers-classification
    a dcls:DataClassification ;
    rdfs:label "Hyros Phone Numbers classification" ;
    dcls:classifiesElement :hyros-property-hyros-webhook-lead-phone-numbers-element ;
    dcls:classifiedByRule :telephone-number-rule ;
    dcls:candidatePersonalDataCategory pd:TelephoneNumber ;
    dcls:hasSensitivityLevel dcls:HighSensitivity ;
    dcls:hasClassificationStatus dcls:Candidate ;
    dcls:hasClassificationContext :relay-api-schema-context ;
    dcls:confidenceAssessment :hyros-property-hyros-webhook-lead-phone-numbers-confidence ;
    dcls:requiresReview true ;
    dcls:requiresMeasure dpv:AccessControlMethod ;
    dcls:requiresMeasure dpv:Encryption ;
    dcls:detectedBy :relay-schema-name-detection .

:hyros-property-hyros-webhook-lead-phone-numbers-confidence
    a conf:ConfidenceAssessment ;
    rdfs:label "Hyros Phone Numbers confidence assessment" ;
    rdfs:comment "Structured probability-scale confidence assessment generated from the Relay data-classification rule confidence projection." ;
    conf:assessmentTarget :hyros-property-hyros-webhook-lead-phone-numbers-classification ;
    conf:confidenceValue :hyros-property-hyros-webhook-lead-phone-numbers-confidence-value ;
    prov:wasGeneratedBy :relay-schema-name-detection .

:hyros-property-hyros-webhook-lead-phone-numbers-confidence-value
    a conf:ProbabilityValue ;
    conf:scale conf:ProbabilityScale ;
    conf:score 0.97 .

:hyros-property-hyros-webhook-lead-child-email-element
    a dcls:DataElement ;
    rdfs:label "Hyros Email field" ;
    rdfs:comment "Relay schema field from Hyros with predicate <https://relay.inferal.com/ontology/hyros/property/Hyros.WebhookLeadChild/email> and path email." ;
    dcls:sourceAsset hyros: ;
    dcls:path "email" ;
    dcls:dataPredicate <https://relay.inferal.com/ontology/hyros/property/Hyros.WebhookLeadChild/email> .

:hyros-property-hyros-webhook-lead-child-email-classification
    a dcls:DataClassification ;
    rdfs:label "Hyros Email classification" ;
    dcls:classifiesElement :hyros-property-hyros-webhook-lead-child-email-element ;
    dcls:classifiedByRule :email-address-rule ;
    dcls:candidatePersonalDataCategory pd:EmailAddress ;
    dcls:hasSensitivityLevel dcls:HighSensitivity ;
    dcls:hasClassificationStatus dcls:Candidate ;
    dcls:hasClassificationContext :relay-api-schema-context ;
    dcls:confidenceAssessment :hyros-property-hyros-webhook-lead-child-email-confidence ;
    dcls:requiresReview true ;
    dcls:requiresMeasure dpv:AccessControlMethod ;
    dcls:requiresMeasure dpv:Encryption ;
    dcls:detectedBy :relay-schema-name-detection .

:hyros-property-hyros-webhook-lead-child-email-confidence
    a conf:ConfidenceAssessment ;
    rdfs:label "Hyros Email confidence assessment" ;
    rdfs:comment "Structured probability-scale confidence assessment generated from the Relay data-classification rule confidence projection." ;
    conf:assessmentTarget :hyros-property-hyros-webhook-lead-child-email-classification ;
    conf:confidenceValue :hyros-property-hyros-webhook-lead-child-email-confidence-value ;
    prov:wasGeneratedBy :relay-schema-name-detection .

:hyros-property-hyros-webhook-lead-child-email-confidence-value
    a conf:ProbabilityValue ;
    conf:scale conf:ProbabilityScale ;
    conf:score 0.98 .

:hyros-property-hyros-webhook-lead-opt-in-entity-referrer-url-element
    a dcls:DataElement ;
    rdfs:label "Hyros Referrer Url field" ;
    rdfs:comment "Relay schema field from Hyros. Upstream comment: Referrer URL from which the lead opted in." ;
    dcls:sourceAsset hyros: ;
    dcls:path "referrerUrl" ;
    dcls:dataPredicate <https://relay.inferal.com/ontology/hyros/property/Hyros.WebhookLeadOptInEntity/referrerUrl> .

:hyros-property-hyros-webhook-lead-opt-in-entity-referrer-url-classification
    a dcls:DataClassification ;
    rdfs:label "Hyros Referrer Url classification" ;
    rdfs:comment "Upstream comment: Referrer URL from which the lead opted in. URL or query-parameter field may carry identifiers, campaign parameters, or personal data in the source system." ;
    dcls:classifiesElement :hyros-property-hyros-webhook-lead-opt-in-entity-referrer-url-element ;
    dcls:classifiedByRule :browsing-referral-rule ;
    dcls:candidatePersonalDataCategory pd:BrowsingReferral ;
    dcls:hasSensitivityLevel dcls:HighSensitivity ;
    dcls:hasClassificationStatus dcls:Candidate ;
    dcls:hasClassificationContext :relay-api-schema-context ;
    dcls:confidenceAssessment :hyros-property-hyros-webhook-lead-opt-in-entity-referrer-url-confidence ;
    dcls:requiresReview true ;
    dcls:requiresMeasure dpv:AccessControlMethod ;
    dcls:requiresMeasure dpv:Encryption ;
    dcls:detectedBy :relay-schema-name-detection .

:hyros-property-hyros-webhook-lead-opt-in-entity-referrer-url-confidence
    a conf:ConfidenceAssessment ;
    rdfs:label "Hyros Referrer Url confidence assessment" ;
    rdfs:comment "Structured probability-scale confidence assessment generated from the Relay data-classification rule confidence projection." ;
    conf:assessmentTarget :hyros-property-hyros-webhook-lead-opt-in-entity-referrer-url-classification ;
    conf:confidenceValue :hyros-property-hyros-webhook-lead-opt-in-entity-referrer-url-confidence-value ;
    prov:wasGeneratedBy :relay-schema-name-detection .

:hyros-property-hyros-webhook-lead-opt-in-entity-referrer-url-confidence-value
    a conf:ProbabilityValue ;
    conf:scale conf:ProbabilityScale ;
    conf:score 0.78 .

:hyros-property-hyros-webhook-sale-entity-order-id-element
    a dcls:DataElement ;
    rdfs:label "Hyros Order Id field" ;
    rdfs:comment "Relay schema field from Hyros with predicate <https://relay.inferal.com/ontology/hyros/property/Hyros.WebhookSaleEntity/orderId> and path orderId." ;
    dcls:sourceAsset hyros: ;
    dcls:path "orderId" ;
    dcls:dataPredicate <https://relay.inferal.com/ontology/hyros/property/Hyros.WebhookSaleEntity/orderId> .

:hyros-property-hyros-webhook-sale-entity-order-id-classification
    a dcls:DataClassification ;
    rdfs:label "Hyros Order Id classification" ;
    rdfs:comment "Identifier-like field; review linkability and whether the identifier is personal, account-level, device-level, or operational only." ;
    dcls:classifiesElement :hyros-property-hyros-webhook-sale-entity-order-id-element ;
    dcls:classifiedByRule :identifier-like-rule ;
    dcls:candidatePersonalDataCategory pd:Identifier ;
    dcls:hasSensitivityLevel dcls:HighSensitivity ;
    dcls:hasClassificationStatus dcls:Candidate ;
    dcls:hasClassificationContext :relay-api-schema-context ;
    dcls:confidenceAssessment :hyros-property-hyros-webhook-sale-entity-order-id-confidence ;
    dcls:requiresReview true ;
    dcls:requiresMeasure dpv:AccessControlMethod ;
    dcls:requiresMeasure dpv:Encryption ;
    dcls:detectedBy :relay-schema-name-detection .

:hyros-property-hyros-webhook-sale-entity-order-id-confidence
    a conf:ConfidenceAssessment ;
    rdfs:label "Hyros Order Id confidence assessment" ;
    rdfs:comment "Structured probability-scale confidence assessment generated from the Relay data-classification rule confidence projection." ;
    conf:assessmentTarget :hyros-property-hyros-webhook-sale-entity-order-id-classification ;
    conf:confidenceValue :hyros-property-hyros-webhook-sale-entity-order-id-confidence-value ;
    prov:wasGeneratedBy :relay-schema-name-detection .

:hyros-property-hyros-webhook-sale-entity-order-id-confidence-value
    a conf:ProbabilityValue ;
    conf:scale conf:ProbabilityScale ;
    conf:score 0.70 .

:hyros-property-ad-account-id-element
    a dcls:DataElement ;
    rdfs:label "Hyros Ad Account Id field" ;
    rdfs:comment "Relay schema field from Hyros. Upstream comment: Query alias: 2 models declare adAccountId." ;
    dcls:sourceAsset hyros: ;
    dcls:path "adAccountId" ;
    dcls:dataPredicate <https://relay.inferal.com/ontology/hyros/property/adAccountId> .

:hyros-property-ad-account-id-classification
    a dcls:DataClassification ;
    rdfs:label "Hyros Ad Account Id classification" ;
    rdfs:comment "Upstream comment: Query alias: 2 models declare adAccountId. Identifier-like field; review linkability and whether the identifier is personal, account-level, device-level, or operational only." ;
    dcls:classifiesElement :hyros-property-ad-account-id-element ;
    dcls:classifiedByRule :account-identifier-rule ;
    dcls:candidatePersonalDataCategory pd:AccountIdentifier ;
    dcls:hasSensitivityLevel dcls:HighSensitivity ;
    dcls:hasClassificationStatus dcls:Candidate ;
    dcls:hasClassificationContext :relay-api-schema-context ;
    dcls:confidenceAssessment :hyros-property-ad-account-id-confidence ;
    dcls:requiresReview true ;
    dcls:requiresMeasure dpv:AccessControlMethod ;
    dcls:requiresMeasure dpv:Encryption ;
    dcls:detectedBy :relay-schema-name-detection .

:hyros-property-ad-account-id-confidence
    a conf:ConfidenceAssessment ;
    rdfs:label "Hyros Ad Account Id confidence assessment" ;
    rdfs:comment "Structured probability-scale confidence assessment generated from the Relay data-classification rule confidence projection." ;
    conf:assessmentTarget :hyros-property-ad-account-id-classification ;
    conf:confidenceValue :hyros-property-ad-account-id-confidence-value ;
    prov:wasGeneratedBy :relay-schema-name-detection .

:hyros-property-ad-account-id-confidence-value
    a conf:ProbabilityValue ;
    conf:scale conf:ProbabilityScale ;
    conf:score 0.70 .

:hyros-property-click-id-element
    a dcls:DataElement ;
    rdfs:label "Hyros Click Id field" ;
    rdfs:comment "Relay schema field from Hyros. Upstream comment: Query alias: 1 model declares clickId." ;
    dcls:sourceAsset hyros: ;
    dcls:path "clickId" ;
    dcls:dataPredicate <https://relay.inferal.com/ontology/hyros/property/clickId> .

:hyros-property-click-id-classification
    a dcls:DataClassification ;
    rdfs:label "Hyros Click Id classification" ;
    rdfs:comment "Upstream comment: Query alias: 1 model declares clickId. Identifier-like field; review linkability and whether the identifier is personal, account-level, device-level, or operational only." ;
    dcls:classifiesElement :hyros-property-click-id-element ;
    dcls:classifiedByRule :identifier-like-rule ;
    dcls:candidatePersonalDataCategory pd:Identifier ;
    dcls:hasSensitivityLevel dcls:HighSensitivity ;
    dcls:hasClassificationStatus dcls:Candidate ;
    dcls:hasClassificationContext :relay-api-schema-context ;
    dcls:confidenceAssessment :hyros-property-click-id-confidence ;
    dcls:requiresReview true ;
    dcls:requiresMeasure dpv:AccessControlMethod ;
    dcls:requiresMeasure dpv:Encryption ;
    dcls:detectedBy :relay-schema-name-detection .

:hyros-property-click-id-confidence
    a conf:ConfidenceAssessment ;
    rdfs:label "Hyros Click Id confidence assessment" ;
    rdfs:comment "Structured probability-scale confidence assessment generated from the Relay data-classification rule confidence projection." ;
    conf:assessmentTarget :hyros-property-click-id-classification ;
    conf:confidenceValue :hyros-property-click-id-confidence-value ;
    prov:wasGeneratedBy :relay-schema-name-detection .

:hyros-property-click-id-confidence-value
    a conf:ProbabilityValue ;
    conf:scale conf:ProbabilityScale ;
    conf:score 0.70 .

:hyros-property-email-element
    a dcls:DataElement ;
    rdfs:label "Hyros Email field" ;
    rdfs:comment "Relay schema field from Hyros. Upstream comment: Query alias: 2 models declare email." ;
    dcls:sourceAsset hyros: ;
    dcls:path "email" ;
    dcls:dataPredicate <https://relay.inferal.com/ontology/hyros/property/email> .

:hyros-property-email-classification
    a dcls:DataClassification ;
    rdfs:label "Hyros Email classification" ;
    rdfs:comment "Upstream comment: Query alias: 2 models declare email." ;
    dcls:classifiesElement :hyros-property-email-element ;
    dcls:classifiedByRule :email-address-rule ;
    dcls:candidatePersonalDataCategory pd:EmailAddress ;
    dcls:hasSensitivityLevel dcls:HighSensitivity ;
    dcls:hasClassificationStatus dcls:Candidate ;
    dcls:hasClassificationContext :relay-api-schema-context ;
    dcls:confidenceAssessment :hyros-property-email-confidence ;
    dcls:requiresReview true ;
    dcls:requiresMeasure dpv:AccessControlMethod ;
    dcls:requiresMeasure dpv:Encryption ;
    dcls:detectedBy :relay-schema-name-detection .

:hyros-property-email-confidence
    a conf:ConfidenceAssessment ;
    rdfs:label "Hyros Email confidence assessment" ;
    rdfs:comment "Structured probability-scale confidence assessment generated from the Relay data-classification rule confidence projection." ;
    conf:assessmentTarget :hyros-property-email-classification ;
    conf:confidenceValue :hyros-property-email-confidence-value ;
    prov:wasGeneratedBy :relay-schema-name-detection .

:hyros-property-email-confidence-value
    a conf:ProbabilityValue ;
    conf:scale conf:ProbabilityScale ;
    conf:score 0.98 .

:hyros-property-external-id-element
    a dcls:DataElement ;
    rdfs:label "Hyros External Id field" ;
    rdfs:comment "Relay schema field from Hyros. Upstream comment: Query alias: 3 models declare externalId." ;
    dcls:sourceAsset hyros: ;
    dcls:path "externalId" ;
    dcls:dataPredicate <https://relay.inferal.com/ontology/hyros/property/externalId> .

:hyros-property-external-id-classification
    a dcls:DataClassification ;
    rdfs:label "Hyros External Id classification" ;
    rdfs:comment "Upstream comment: Query alias: 3 models declare externalId. Identifier-like field; review linkability and whether the identifier is personal, account-level, device-level, or operational only." ;
    dcls:classifiesElement :hyros-property-external-id-element ;
    dcls:classifiedByRule :identifier-like-rule ;
    dcls:candidatePersonalDataCategory pd:Identifier ;
    dcls:hasSensitivityLevel dcls:HighSensitivity ;
    dcls:hasClassificationStatus dcls:Candidate ;
    dcls:hasClassificationContext :relay-api-schema-context ;
    dcls:confidenceAssessment :hyros-property-external-id-confidence ;
    dcls:requiresReview true ;
    dcls:requiresMeasure dpv:AccessControlMethod ;
    dcls:requiresMeasure dpv:Encryption ;
    dcls:detectedBy :relay-schema-name-detection .

:hyros-property-external-id-confidence
    a conf:ConfidenceAssessment ;
    rdfs:label "Hyros External Id confidence assessment" ;
    rdfs:comment "Structured probability-scale confidence assessment generated from the Relay data-classification rule confidence projection." ;
    conf:assessmentTarget :hyros-property-external-id-classification ;
    conf:confidenceValue :hyros-property-external-id-confidence-value ;
    prov:wasGeneratedBy :relay-schema-name-detection .

:hyros-property-external-id-confidence-value
    a conf:ProbabilityValue ;
    conf:scale conf:ProbabilityScale ;
    conf:score 0.70 .

:hyros-property-first-name-element
    a dcls:DataElement ;
    rdfs:label "Hyros First Name field" ;
    rdfs:comment "Relay schema field from Hyros. Upstream comment: Query alias: 2 models declare firstName." ;
    dcls:sourceAsset hyros: ;
    dcls:path "firstName" ;
    dcls:dataPredicate <https://relay.inferal.com/ontology/hyros/property/firstName> .

:hyros-property-first-name-classification
    a dcls:DataClassification ;
    rdfs:label "Hyros First Name classification" ;
    rdfs:comment "Upstream comment: Query alias: 2 models declare firstName." ;
    dcls:classifiesElement :hyros-property-first-name-element ;
    dcls:classifiedByRule :direct-person-name-rule ;
    dcls:candidatePersonalDataCategory pd:Name ;
    dcls:hasSensitivityLevel dcls:HighSensitivity ;
    dcls:hasClassificationStatus dcls:Candidate ;
    dcls:hasClassificationContext :relay-api-schema-context ;
    dcls:confidenceAssessment :hyros-property-first-name-confidence ;
    dcls:requiresReview true ;
    dcls:requiresMeasure dpv:AccessControlMethod ;
    dcls:requiresMeasure dpv:Encryption ;
    dcls:detectedBy :relay-schema-name-detection .

:hyros-property-first-name-confidence
    a conf:ConfidenceAssessment ;
    rdfs:label "Hyros First Name confidence assessment" ;
    rdfs:comment "Structured probability-scale confidence assessment generated from the Relay data-classification rule confidence projection." ;
    conf:assessmentTarget :hyros-property-first-name-classification ;
    conf:confidenceValue :hyros-property-first-name-confidence-value ;
    prov:wasGeneratedBy :relay-schema-name-detection .

:hyros-property-first-name-confidence-value
    a conf:ProbabilityValue ;
    conf:scale conf:ProbabilityScale ;
    conf:score 0.96 .

:hyros-property-ips-element
    a dcls:DataElement ;
    rdfs:label "Hyros Ips field" ;
    rdfs:comment "Relay schema field from Hyros. Upstream comment: Query alias: 2 models declare ips." ;
    dcls:sourceAsset hyros: ;
    dcls:path "ips" ;
    dcls:dataPredicate <https://relay.inferal.com/ontology/hyros/property/ips> .

:hyros-property-ips-classification
    a dcls:DataClassification ;
    rdfs:label "Hyros Ips classification" ;
    rdfs:comment "Upstream comment: Query alias: 2 models declare ips." ;
    dcls:classifiesElement :hyros-property-ips-element ;
    dcls:classifiedByRule :ip-address-rule ;
    dcls:candidatePersonalDataCategory pd:IPAddress ;
    dcls:hasSensitivityLevel dcls:HighSensitivity ;
    dcls:hasClassificationStatus dcls:Candidate ;
    dcls:hasClassificationContext :relay-api-schema-context ;
    dcls:confidenceAssessment :hyros-property-ips-confidence ;
    dcls:requiresReview true ;
    dcls:requiresMeasure dpv:AccessControlMethod ;
    dcls:requiresMeasure dpv:Encryption ;
    dcls:detectedBy :relay-schema-name-detection .

:hyros-property-ips-confidence
    a conf:ConfidenceAssessment ;
    rdfs:label "Hyros Ips confidence assessment" ;
    rdfs:comment "Structured probability-scale confidence assessment generated from the Relay data-classification rule confidence projection." ;
    conf:assessmentTarget :hyros-property-ips-classification ;
    conf:confidenceValue :hyros-property-ips-confidence-value ;
    prov:wasGeneratedBy :relay-schema-name-detection .

:hyros-property-ips-confidence-value
    a conf:ProbabilityValue ;
    conf:scale conf:ProbabilityScale ;
    conf:score 0.98 .

:hyros-property-last-name-element
    a dcls:DataElement ;
    rdfs:label "Hyros Last Name field" ;
    rdfs:comment "Relay schema field from Hyros. Upstream comment: Query alias: 2 models declare lastName." ;
    dcls:sourceAsset hyros: ;
    dcls:path "lastName" ;
    dcls:dataPredicate <https://relay.inferal.com/ontology/hyros/property/lastName> .

:hyros-property-last-name-classification
    a dcls:DataClassification ;
    rdfs:label "Hyros Last Name classification" ;
    rdfs:comment "Upstream comment: Query alias: 2 models declare lastName." ;
    dcls:classifiesElement :hyros-property-last-name-element ;
    dcls:classifiedByRule :direct-person-name-rule ;
    dcls:candidatePersonalDataCategory pd:Name ;
    dcls:hasSensitivityLevel dcls:HighSensitivity ;
    dcls:hasClassificationStatus dcls:Candidate ;
    dcls:hasClassificationContext :relay-api-schema-context ;
    dcls:confidenceAssessment :hyros-property-last-name-confidence ;
    dcls:requiresReview true ;
    dcls:requiresMeasure dpv:AccessControlMethod ;
    dcls:requiresMeasure dpv:Encryption ;
    dcls:detectedBy :relay-schema-name-detection .

:hyros-property-last-name-confidence
    a conf:ConfidenceAssessment ;
    rdfs:label "Hyros Last Name confidence assessment" ;
    rdfs:comment "Structured probability-scale confidence assessment generated from the Relay data-classification rule confidence projection." ;
    conf:assessmentTarget :hyros-property-last-name-classification ;
    conf:confidenceValue :hyros-property-last-name-confidence-value ;
    prov:wasGeneratedBy :relay-schema-name-detection .

:hyros-property-last-name-confidence-value
    a conf:ProbabilityValue ;
    conf:scale conf:ProbabilityScale ;
    conf:score 0.96 .

:hyros-property-order-id-element
    a dcls:DataElement ;
    rdfs:label "Hyros Order Id field" ;
    rdfs:comment "Relay schema field from Hyros. Upstream comment: Query alias: 3 models declare orderId." ;
    dcls:sourceAsset hyros: ;
    dcls:path "orderId" ;
    dcls:dataPredicate <https://relay.inferal.com/ontology/hyros/property/orderId> .

:hyros-property-order-id-classification
    a dcls:DataClassification ;
    rdfs:label "Hyros Order Id classification" ;
    rdfs:comment "Upstream comment: Query alias: 3 models declare orderId. Identifier-like field; review linkability and whether the identifier is personal, account-level, device-level, or operational only." ;
    dcls:classifiesElement :hyros-property-order-id-element ;
    dcls:classifiedByRule :identifier-like-rule ;
    dcls:candidatePersonalDataCategory pd:Identifier ;
    dcls:hasSensitivityLevel dcls:HighSensitivity ;
    dcls:hasClassificationStatus dcls:Candidate ;
    dcls:hasClassificationContext :relay-api-schema-context ;
    dcls:confidenceAssessment :hyros-property-order-id-confidence ;
    dcls:requiresReview true ;
    dcls:requiresMeasure dpv:AccessControlMethod ;
    dcls:requiresMeasure dpv:Encryption ;
    dcls:detectedBy :relay-schema-name-detection .

:hyros-property-order-id-confidence
    a conf:ConfidenceAssessment ;
    rdfs:label "Hyros Order Id confidence assessment" ;
    rdfs:comment "Structured probability-scale confidence assessment generated from the Relay data-classification rule confidence projection." ;
    conf:assessmentTarget :hyros-property-order-id-classification ;
    conf:confidenceValue :hyros-property-order-id-confidence-value ;
    prov:wasGeneratedBy :relay-schema-name-detection .

:hyros-property-order-id-confidence-value
    a conf:ProbabilityValue ;
    conf:scale conf:ProbabilityScale ;
    conf:score 0.70 .

:hyros-property-phone-numbers-element
    a dcls:DataElement ;
    rdfs:label "Hyros Phone Numbers field" ;
    rdfs:comment "Relay schema field from Hyros. Upstream comment: Query alias: 2 models declare phoneNumbers." ;
    dcls:sourceAsset hyros: ;
    dcls:path "phoneNumbers" ;
    dcls:dataPredicate <https://relay.inferal.com/ontology/hyros/property/phoneNumbers> .

:hyros-property-phone-numbers-classification
    a dcls:DataClassification ;
    rdfs:label "Hyros Phone Numbers classification" ;
    rdfs:comment "Upstream comment: Query alias: 2 models declare phoneNumbers." ;
    dcls:classifiesElement :hyros-property-phone-numbers-element ;
    dcls:classifiedByRule :telephone-number-rule ;
    dcls:candidatePersonalDataCategory pd:TelephoneNumber ;
    dcls:hasSensitivityLevel dcls:HighSensitivity ;
    dcls:hasClassificationStatus dcls:Candidate ;
    dcls:hasClassificationContext :relay-api-schema-context ;
    dcls:confidenceAssessment :hyros-property-phone-numbers-confidence ;
    dcls:requiresReview true ;
    dcls:requiresMeasure dpv:AccessControlMethod ;
    dcls:requiresMeasure dpv:Encryption ;
    dcls:detectedBy :relay-schema-name-detection .

:hyros-property-phone-numbers-confidence
    a conf:ConfidenceAssessment ;
    rdfs:label "Hyros Phone Numbers confidence assessment" ;
    rdfs:comment "Structured probability-scale confidence assessment generated from the Relay data-classification rule confidence projection." ;
    conf:assessmentTarget :hyros-property-phone-numbers-classification ;
    conf:confidenceValue :hyros-property-phone-numbers-confidence-value ;
    prov:wasGeneratedBy :relay-schema-name-detection .

:hyros-property-phone-numbers-confidence-value
    a conf:ProbabilityValue ;
    conf:scale conf:ProbabilityScale ;
    conf:score 0.97 .

:hyros-property-referrer-url-element
    a dcls:DataElement ;
    rdfs:label "Hyros Referrer Url field" ;
    rdfs:comment "Relay schema field from Hyros. Upstream comment: Query alias: 1 model declares referrerUrl." ;
    dcls:sourceAsset hyros: ;
    dcls:path "referrerUrl" ;
    dcls:dataPredicate <https://relay.inferal.com/ontology/hyros/property/referrerUrl> .

:hyros-property-referrer-url-classification
    a dcls:DataClassification ;
    rdfs:label "Hyros Referrer Url classification" ;
    rdfs:comment "Upstream comment: Query alias: 1 model declares referrerUrl. URL or query-parameter field may carry identifiers, campaign parameters, or personal data in the source system." ;
    dcls:classifiesElement :hyros-property-referrer-url-element ;
    dcls:classifiedByRule :browsing-referral-rule ;
    dcls:candidatePersonalDataCategory pd:BrowsingReferral ;
    dcls:hasSensitivityLevel dcls:HighSensitivity ;
    dcls:hasClassificationStatus dcls:Candidate ;
    dcls:hasClassificationContext :relay-api-schema-context ;
    dcls:confidenceAssessment :hyros-property-referrer-url-confidence ;
    dcls:requiresReview true ;
    dcls:requiresMeasure dpv:AccessControlMethod ;
    dcls:requiresMeasure dpv:Encryption ;
    dcls:detectedBy :relay-schema-name-detection .

:hyros-property-referrer-url-confidence
    a conf:ConfidenceAssessment ;
    rdfs:label "Hyros Referrer Url confidence assessment" ;
    rdfs:comment "Structured probability-scale confidence assessment generated from the Relay data-classification rule confidence projection." ;
    conf:assessmentTarget :hyros-property-referrer-url-classification ;
    conf:confidenceValue :hyros-property-referrer-url-confidence-value ;
    prov:wasGeneratedBy :relay-schema-name-detection .

:hyros-property-referrer-url-confidence-value
    a conf:ProbabilityValue ;
    conf:scale conf:ProbabilityScale ;
    conf:score 0.78 .

:hyros-property-state-element
    a dcls:DataElement ;
    rdfs:label "Hyros State field" ;
    rdfs:comment "Relay schema field from Hyros. Upstream comment: Query alias: 1 model declares state." ;
    dcls:sourceAsset hyros: ;
    dcls:path "state" ;
    dcls:dataPredicate <https://relay.inferal.com/ontology/hyros/property/state> .

:hyros-property-state-classification
    a dcls:DataClassification ;
    rdfs:label "Hyros State classification" ;
    rdfs:comment "Upstream comment: Query alias: 1 model declares state. Location code or region field; review whether it identifies a person, billing/shipping address, or only a market/geography." ;
    dcls:classifiesElement :hyros-property-state-element ;
    dcls:classifiedByRule :location-code-rule ;
    dcls:candidatePersonalDataCategory pd:Location ;
    dcls:hasSensitivityLevel dcls:ModerateSensitivity ;
    dcls:hasClassificationStatus dcls:Candidate ;
    dcls:hasClassificationContext :relay-api-schema-context ;
    dcls:confidenceAssessment :hyros-property-state-confidence ;
    dcls:requiresReview true ;
    dcls:requiresMeasure dpv:AccessControlMethod ;
    dcls:requiresMeasure dpv:Encryption ;
    dcls:detectedBy :relay-schema-name-detection .

:hyros-property-state-confidence
    a conf:ConfidenceAssessment ;
    rdfs:label "Hyros State confidence assessment" ;
    rdfs:comment "Structured probability-scale confidence assessment generated from the Relay data-classification rule confidence projection." ;
    conf:assessmentTarget :hyros-property-state-classification ;
    conf:confidenceValue :hyros-property-state-confidence-value ;
    prov:wasGeneratedBy :relay-schema-name-detection .

:hyros-property-state-confidence-value
    a conf:ProbabilityValue ;
    conf:scale conf:ProbabilityScale ;
    conf:score 0.64 .

:hyros-property-subscription-id-element
    a dcls:DataElement ;
    rdfs:label "Hyros Subscription Id field" ;
    rdfs:comment "Relay schema field from Hyros. Upstream comment: Query alias: 2 models declare subscriptionId." ;
    dcls:sourceAsset hyros: ;
    dcls:path "subscriptionId" ;
    dcls:dataPredicate <https://relay.inferal.com/ontology/hyros/property/subscriptionId> .

:hyros-property-subscription-id-classification
    a dcls:DataClassification ;
    rdfs:label "Hyros Subscription Id classification" ;
    rdfs:comment "Upstream comment: Query alias: 2 models declare subscriptionId. Identifier-like field; review linkability and whether the identifier is personal, account-level, device-level, or operational only." ;
    dcls:classifiesElement :hyros-property-subscription-id-element ;
    dcls:classifiedByRule :identifier-like-rule ;
    dcls:candidatePersonalDataCategory pd:Identifier ;
    dcls:hasSensitivityLevel dcls:HighSensitivity ;
    dcls:hasClassificationStatus dcls:Candidate ;
    dcls:hasClassificationContext :relay-api-schema-context ;
    dcls:confidenceAssessment :hyros-property-subscription-id-confidence ;
    dcls:requiresReview true ;
    dcls:requiresMeasure dpv:AccessControlMethod ;
    dcls:requiresMeasure dpv:Encryption ;
    dcls:detectedBy :relay-schema-name-detection .

:hyros-property-subscription-id-confidence
    a conf:ConfidenceAssessment ;
    rdfs:label "Hyros Subscription Id confidence assessment" ;
    rdfs:comment "Structured probability-scale confidence assessment generated from the Relay data-classification rule confidence projection." ;
    conf:assessmentTarget :hyros-property-subscription-id-classification ;
    conf:confidenceValue :hyros-property-subscription-id-confidence-value ;
    prov:wasGeneratedBy :relay-schema-name-detection .

:hyros-property-subscription-id-confidence-value
    a conf:ProbabilityValue ;
    conf:scale conf:ProbabilityScale ;
    conf:score 0.70 .
