@prefix searchplex: <https://id.searchplex.net/vocab#> .
@prefix skos: <http://www.w3.org/2004/02/skos/core#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix owl: <http://www.w3.org/2002/07/owl#> .
@prefix dcterms: <http://purl.org/dc/terms/> .

<https://id.searchplex.net/vocab/> a owl:Ontology ;
  rdfs:label "Searchplex local vocabulary"@en ;
  rdfs:comment "A small local vocabulary for Searchplex ID terms that extend SKOS for retrieval-terminology resolution."@en .

searchplex:GeneralConcept a owl:Class ;
  rdfs:label "General concept"@en ;
  rdfs:comment "Searchplex editorial class for broad retrieval concepts that are not specifically tasks, methods, representations, metrics, artifacts, or phenomena."@en
  ; rdfs:subClassOf skos:Concept
  .

searchplex:Task a owl:Class ;
  rdfs:label "Task"@en ;
  rdfs:comment "Searchplex editorial class for retrieval, search, ranking, evaluation, or information-access tasks."@en
  ; rdfs:subClassOf skos:Concept
  .

searchplex:Method a owl:Class ;
  rdfs:label "Method"@en ;
  rdfs:comment "Searchplex editorial class for methods, algorithms, techniques, or method families."@en
  ; rdfs:subClassOf skos:Concept
  .

searchplex:Representation a owl:Class ;
  rdfs:label "Representation"@en ;
  rdfs:comment "Searchplex editorial class for data, query, document, vector, sparse, dense, or other retrieval representations."@en
  ; rdfs:subClassOf skos:Concept
  .

searchplex:Metric a owl:Class ;
  rdfs:label "Metric"@en ;
  rdfs:comment "Searchplex editorial class for evaluation metrics."@en
  ; rdfs:subClassOf skos:Concept
  .

searchplex:Artifact a owl:Class ;
  rdfs:label "Artifact"@en ;
  rdfs:comment "Searchplex editorial class for datasets, benchmark suites, models, software, standards, and other named reusable objects."@en
  ; rdfs:subClassOf skos:Concept
  .

searchplex:EvaluationProgram a owl:Class ;
  rdfs:label "Evaluation program"@en ;
  rdfs:comment "Searchplex editorial class for shared evaluation campaigns, forums, and programs that organize tracks, tasks, test collections, runs, and evaluation resources."@en
  ; rdfs:subClassOf skos:Concept
  .

searchplex:Phenomenon a owl:Class ;
  rdfs:label "Phenomenon"@en ;
  rdfs:comment "Searchplex editorial class for retrieval phenomena, effects, biases, and failure modes."@en
  ; rdfs:subClassOf skos:Concept
  .

searchplex:UsageTerm a owl:Class ;
  rdfs:label "Usage term"@en ;
  rdfs:comment "A structured observed terminology item attached to a Searchplex concept, such as community or vendor usage that should not automatically be treated as an exact alias."@en
  .

searchplex:partOf a owl:ObjectProperty ;
  rdfs:label "part of"@en ;
  rdfs:comment "Relates a Searchplex concept to a larger concept or pattern of which it is a component, stage, or constituent."@en
  ; rdfs:domain skos:Concept
  ; rdfs:range skos:Concept
  ; owl:inverseOf searchplex:hasPart
  ; rdfs:subPropertyOf dcterms:isPartOf
  .

searchplex:hasPart a owl:ObjectProperty ;
  rdfs:label "has part"@en ;
  rdfs:comment "Inverse of searchplex:partOf; relates a Searchplex concept to a component, stage, or constituent concept."@en
  ; rdfs:domain skos:Concept
  ; rdfs:range skos:Concept
  ; owl:inverseOf searchplex:partOf
  ; rdfs:subPropertyOf dcterms:hasPart
  .

searchplex:notEquivalentTo a owl:ObjectProperty, owl:SymmetricProperty ;
  rdfs:label "not equivalent to"@en ;
  rdfs:comment "Indicates that two Searchplex concepts should not be treated as the same identity, especially where terminology is commonly conflated."@en
  ; rdfs:domain skos:Concept
  ; rdfs:range skos:Concept
  .

searchplex:usedFor a owl:ObjectProperty ;
  rdfs:label "used for"@en ;
  rdfs:comment "Relates a method, artifact, representation, or other concept to a task or purpose it is used to perform."@en
  ; rdfs:domain skos:Concept
  ; rdfs:range skos:Concept
  ; owl:inverseOf searchplex:uses
  .

searchplex:uses a owl:ObjectProperty ;
  rdfs:label "uses"@en ;
  rdfs:comment "Inverse of searchplex:usedFor; relates a task, pattern, or concept to a method, artifact, representation, or other concept it uses."@en
  ; rdfs:domain skos:Concept
  ; rdfs:range skos:Concept
  ; owl:inverseOf searchplex:usedFor
  .

searchplex:realizes a owl:ObjectProperty ;
  rdfs:label "realizes"@en ;
  rdfs:comment "Relates a concrete artifact, model, software system, or technique to a broader method, representation, or conceptual pattern it implements or instantiates."@en
  ; rdfs:domain skos:Concept
  ; rdfs:range skos:Concept
  ; owl:inverseOf searchplex:realizedBy
  .

searchplex:realizedBy a owl:ObjectProperty ;
  rdfs:label "realized by"@en ;
  rdfs:comment "Inverse of searchplex:realizes; relates a broader method, representation, or conceptual pattern to a concrete artifact, model, software system, or technique that implements or instantiates it."@en
  ; rdfs:domain skos:Concept
  ; rdfs:range skos:Concept
  ; owl:inverseOf searchplex:realizes
  .

searchplex:evaluates a owl:ObjectProperty ;
  rdfs:label "evaluates"@en ;
  rdfs:comment "Relates a metric, benchmark, dataset, or evaluation artifact to the task, method, or concept it is used to evaluate."@en
  ; rdfs:domain skos:Concept
  ; rdfs:range skos:Concept
  ; owl:inverseOf searchplex:evaluatedBy
  .

searchplex:evaluatedBy a owl:ObjectProperty ;
  rdfs:label "evaluated by"@en ;
  rdfs:comment "Inverse of searchplex:evaluates; relates a task, method, or concept to a metric, benchmark, dataset, or evaluation artifact used to evaluate it."@en
  ; rdfs:domain skos:Concept
  ; rdfs:range skos:Concept
  ; owl:inverseOf searchplex:evaluates
  .

searchplex:usageTerm a owl:ObjectProperty ;
  rdfs:label "usage term"@en ;
  rdfs:comment "Relates a Searchplex concept to an observed terminology item with usage and community metadata."@en
  ; rdfs:domain skos:Concept
  ; rdfs:range searchplex:UsageTerm
  .

searchplex:termUsage a owl:DatatypeProperty ;
  rdfs:label "term usage"@en ;
  rdfs:comment "Classifies how an observed term is used, such as abbreviation, near-synonym, informal wording, historical wording, community-preferred wording, or vendor usage."@en
  ; rdfs:domain searchplex:UsageTerm
  ; rdfs:range rdfs:Literal
  .

searchplex:community a owl:DatatypeProperty ;
  rdfs:label "community"@en ;
  rdfs:comment "Identifies the vocabulary community or usage environment associated with an observed terminology item."@en
  ; rdfs:domain searchplex:UsageTerm
  ; rdfs:range rdfs:Literal
  .

searchplex:kind a owl:DatatypeProperty ;
  rdfs:label "kind"@en ;
  rdfs:comment "Records the Searchplex editorial facet for a concept, such as Task, Method, Representation, Metric, Artifact, EvaluationProgram, Phenomenon, or GeneralConcept."@en
  ; rdfs:domain skos:Concept
  ; rdfs:range rdfs:Literal
  .

searchplex:replacedBy a owl:ObjectProperty ;
  rdfs:label "replaced by"@en ;
  rdfs:comment "Relates a deprecated Searchplex concept to the concept that supersedes it."@en
  ; rdfs:domain skos:Concept
  ; rdfs:range skos:Concept
  ; owl:inverseOf searchplex:replaces
  ; rdfs:subPropertyOf dcterms:isReplacedBy
  .

searchplex:replaces a owl:ObjectProperty ;
  rdfs:label "replaces"@en ;
  rdfs:comment "Inverse of searchplex:replacedBy; relates a Searchplex concept to a deprecated concept it supersedes."@en
  ; rdfs:domain skos:Concept
  ; rdfs:range skos:Concept
  ; owl:inverseOf searchplex:replacedBy
  ; rdfs:subPropertyOf dcterms:replaces
  .
