@prefix cat: <https://data.centropescabrando.it/def/catalog#> .
@prefix dcterms: <http://purl.org/dc/terms/> .
@prefix owl: <http://www.w3.org/2002/07/owl#> .
@prefix prov: <http://www.w3.org/ns/prov#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix schema: <https://schema.org/> .
@prefix skos: <http://www.w3.org/2004/02/skos/core#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

<https://data.centropescabrando.it/def/catalog> a owl:Ontology ;
    dcterms:created "2026-04-08"^^xsd:date ;
    dcterms:creator "Centro Pesca Brando" ;
    dcterms:license <https://creativecommons.org/licenses/by/4.0/> ;
    dcterms:modified "2026-04-08"^^xsd:date ;
    dcterms:title "CPB Catalog Ontology"@en,
        "Ontologia catalogo CPB"@it ;
    owl:versionInfo "1.0.0" .

cat:SourceRecord a owl:Class ;
    rdfs:label "Source data record"@en,
        "Record origine dati"@it ;
    rdfs:comment "A raw record in an external data source (Master Dataset row, PrestaShop export row, Ads record). Used as PROV-O prov:wasDerivedFrom reference."@en,
        "Un record originale in una sorgente dati esterna (riga Master Dataset, riga export PrestaShop, record Ads). Usato come riferimento PROV-O prov:wasDerivedFrom."@it ;
    rdfs:subClassOf prov:Entity .

cat:closeKeywordVariant a owl:ObjectProperty ;
    rdfs:label "close keyword variant"@en,
        "variante grafica di keyword"@it ;
    rdfs:comment "Links keywords with slightly different normalization that represent the same semantic intent."@en,
        "Collega keyword con normalizzazione leggermente diversa che rappresentano lo stesso intento semantico (es. 'mares x stream' e 'mares x-stream'). Vedi anche skos:closeMatch."@it ;
    rdfs:domain cat:Keyword ;
    rdfs:range cat:Keyword ;
    rdfs:subPropertyOf skos:closeMatch .

cat:confidence a owl:ObjectProperty ;
    rdfs:label "confidence level"@en,
        "livello di confidence"@it ;
    rdfs:comment "Classifier confidence level: high/medium/low."@en,
        "Livello di confidence assegnato dal classificatore: alta/media/bassa."@it ;
    rdfs:domain cat:Keyword ;
    rdfs:range skos:Concept .

cat:decisione a owl:ObjectProperty ;
    rdfs:label "classification decision"@en,
        "decisione di classificazione"@it ;
    rdfs:comment "Classification decision: keep/exclude/review."@en,
        "Decisione della pipeline di classificazione: keep/exclude/review."@it ;
    rdfs:domain cat:Keyword ;
    rdfs:range skos:Concept .

cat:hasAmbiente a owl:ObjectProperty ;
    rdfs:label "has environment (sea/inland waters)"@en,
        "ha ambiente (mare/acque interne)"@it ;
    rdfs:domain cat:Keyword ;
    rdfs:range skos:Concept .

cat:hasAreaL1 a owl:ObjectProperty ;
    rdfs:label "has Area L1 (macro area)"@en,
        "ha Area L1 (macro area)"@it ;
    rdfs:comment "First-level taxonomic macro area."@en,
        "Macro area tassonomica di primo livello: Pesca Sportiva, Subacquea, Nautica, Elettronica Pesca, Abbigliamento Pesca, Altro."@it ;
    rdfs:domain cat:Keyword ;
    rdfs:range skos:Concept .

cat:hasAreaL2 a owl:ObjectProperty ;
    rdfs:label "has Area L2 (product family)"@en,
        "ha Area L2 (famiglia prodotto)"@it ;
    rdfs:domain cat:Keyword ;
    rdfs:range skos:Concept .

cat:hasAreaL3 a owl:ObjectProperty ;
    rdfs:label "has Area L3 (specialization)"@en,
        "ha Area L3 (specializzazione)"@it ;
    rdfs:domain cat:Keyword ;
    rdfs:range skos:Concept .

cat:hasBrand a owl:ObjectProperty ;
    rdfs:label "has associated brand"@en,
        "ha brand associato"@it ;
    rdfs:domain cat:Keyword ;
    rdfs:range cat:Brand ;
    rdfs:subPropertyOf schema:about .

cat:hasCategory a owl:ObjectProperty ;
    rdfs:label "has SKOS category"@en,
        "ha categoria SKOS"@it ;
    rdfs:domain cat:Keyword ;
    rdfs:range skos:Concept .

cat:hasFamily a owl:ObjectProperty ;
    rdfs:label "has semantic family"@en,
        "appartiene alla famiglia"@it ;
    rdfs:domain cat:Keyword ;
    rdfs:range cat:Family .

cat:hasIntent a owl:ObjectProperty ;
    rdfs:label "has search intent"@en,
        "ha intento di ricerca"@it ;
    rdfs:domain cat:Keyword ;
    rdfs:range skos:Concept .

cat:hasKeywordType a owl:ObjectProperty ;
    rdfs:label "has keyword type"@en,
        "ha tipo keyword"@it ;
    rdfs:comment "Keyword type classification."@en,
        "Tipologia della keyword: prodotto, brand, tecnica, specie, informativo, localita, generico."@it ;
    rdfs:domain cat:Keyword ;
    rdfs:range skos:Concept .

cat:hasLandingPage a owl:ObjectProperty ;
    rdfs:label "has Ads landing page"@en,
        "ha landing page Ads"@it ;
    rdfs:domain cat:Keyword ;
    rdfs:range schema:WebPage .

cat:hasPageTarget a owl:ObjectProperty ;
    rdfs:label "has page target"@en,
        "ha target di pagina"@it ;
    rdfs:domain cat:Keyword ;
    rdfs:range skos:Concept .

cat:hasPsCategory a owl:ObjectProperty ;
    rdfs:label "has PrestaShop category"@en,
        "ha categoria PrestaShop"@it ;
    rdfs:domain cat:Keyword ;
    rdfs:range skos:Concept .

cat:hasPsManufacturer a owl:ObjectProperty ;
    rdfs:label "has PrestaShop manufacturer"@en,
        "ha manufacturer PrestaShop"@it ;
    rdfs:domain cat:Keyword ;
    rdfs:range cat:Brand .

cat:hasSpecie a owl:ObjectProperty ;
    rdfs:label "has target fish species"@en,
        "ha specie ittica target"@it ;
    rdfs:domain cat:Keyword ;
    rdfs:range skos:Concept .

cat:hasTecnica a owl:ObjectProperty ;
    rdfs:label "has fishing technique"@en,
        "ha tecnica di pesca"@it ;
    rdfs:domain cat:Keyword ;
    rdfs:range skos:Concept .

cat:isOwnedBrand a owl:DatatypeProperty ;
    rdfs:label "is owned brand"@en,
        "e brand di proprieta"@it ;
    rdfs:comment "True if brand is client-owned."@en,
        "True se il brand e di proprieta del cliente (es. CentroPescaBrando, Bazar Pesca). Vedi memory/project_owned_ecommerce.md."@it ;
    rdfs:domain cat:Brand ;
    rdfs:range xsd:boolean .

cat:macroRelevance a owl:DatatypeProperty ;
    rdfs:label "macro relevance"@en,
        "rilevanza macro"@it ;
    rdfs:domain cat:Keyword ;
    rdfs:range xsd:string .

cat:modificatori a owl:DatatypeProperty ;
    rdfs:label "text modifiers"@en,
        "modificatori testuali"@it ;
    rdfs:domain cat:Keyword ;
    rdfs:range xsd:string .

cat:motivoEsclusione a owl:DatatypeProperty ;
    rdfs:label "exclusion reason"@en,
        "motivo esclusione"@it ;
    rdfs:domain cat:Keyword ;
    rdfs:range xsd:string .

cat:prodottoBase a owl:DatatypeProperty ;
    rdfs:label "base product"@en,
        "prodotto base"@it ;
    rdfs:domain cat:Keyword ;
    rdfs:range xsd:string .

cat:tagliaPeso a owl:DatatypeProperty ;
    rdfs:label "size or weight"@en,
        "taglia o peso"@it ;
    rdfs:domain cat:Keyword ;
    rdfs:range xsd:string .

cat:Family a owl:Class ;
    rdfs:label "Keyword semantic family (cluster)"@en,
        "Famiglia semantica di keyword"@it ;
    rdfs:comment "A cluster of related keywords identified by the Priority Matrix clustering algorithm. A Family represents a coherent commercial topic grouping multiple keywords with similar intent."@en,
        "Un cluster di keyword correlate identificate dall'algoritmo di clustering Priority Matrix. Una Family rappresenta un topic commerciale coerente che aggrega piu keyword con intento simile."@it .

cat:Brand a owl:Class ;
    rdfs:label "Product Brand"@en,
        "Marca prodotto"@it ;
    rdfs:comment "A brand in the fishing / nautical / diving domain, either directly sold (PrestaShop catalog) or only recognized for keyword tracking."@en,
        "Una marca di prodotti di pesca / nautica / subacquea, sia venduta direttamente (catalogo PrestaShop) sia solo riconosciuta per tracking keyword."@it ;
    owl:equivalentClass schema:Brand .

cat:Keyword a owl:Class ;
    rdfs:label "SEO Keyword"@en,
        "Parola chiave SEO"@it ;
    rdfs:comment "A search query tracked in the Master SEO Dataset of Centro Pesca Brando, with metrics for volume, ranking, semantic clustering and Google Ads performance."@en,
        "Una query di ricerca monitorata nel Master Dataset SEO di Centro Pesca Brando, con metriche di volume, posizionamento, clustering semantico e performance Google Ads."@it .

