PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
PREFIX vocab: <https://w3id.org/semapv/vocab/>
PREFIX xsd: <http://www.w3.org/2001/XMLSchema#>

vocab:ThresholdFiltering a rdfs:Class ;
  rdfs:label "threshold filtering" ;
  rdfs:subClassOf vocab:MatchingPostProcessing .

vocab:Matching a rdfs:Class ;
  rdfs:label "matching process" ;
  rdfs:comment "An process that results in a mapping between a subject and an object entity." ;
  rdfs:subClassOf vocab:MappingActivity .

vocab:LogicalConsistencyFiltering a rdfs:Class ;
  rdfs:label "logical consistency filtering" ;
  rdfs:subClassOf vocab:MatchingPostProcessing .

vocab:BlankNormalisation a rdfs:Class ;
  rdfs:label "blank normalisation" ;
  rdfs:comment "A normalization technique replacing all blank characters, such as space, tabulation, carriage return (or sequences of these) into a single blank character." ;
  rdfs:subClassOf vocab:Normalization .

vocab:StopWordRemoval a rdfs:Class ;
  rdfs:label "stop-word removal" ;
  rdfs:comment "A preprocessing method transforming a string by removing a list of stop words." ;
  rdfs:subClassOf vocab:Normalization .

vocab:GraphRepresentationLearningBasedMatching a rdfs:Class ;
  rdfs:label "graph representation learning-based matching process" ;
  rdfs:comment "An embedding-based matching process in which matches are identified by comparing learned vector representations that encode the structural and semantic features of entities and their surrounding graph context." ;
  rdfs:subClassOf vocab:EmbeddingBasedMatching .

vocab:MachineLearningBasedMatching a rdfs:Class ;
  rdfs:label "machine learning-based matching process" ;
  rdfs:comment "A matching process in which matches between entities are predicted by machine learning models trained on labelled data or learned representations." ;
  rdfs:subClassOf vocab:Matching .

vocab:MappingActivity a rdfs:Class ;
  rdfs:label "mapping activity" ;
  rdfs:comment "A process that relates to the creation, confirmation, rejection or curation of a mapping." .

vocab:ManualMappingCuration a rdfs:Class ;
  rdfs:label "manual mapping curation" ;
  rdfs:comment "A matching process that is performed by a human agent and is based on human judgement and domain knowledge." ;
  rdfs:subClassOf vocab:Matching .

vocab:LanguageBasedSimilarityMeasure a rdfs:Class ;
  rdfs:label "language-based similarity measure" ;
  rdfs:subClassOf vocab:SimilarityMeasure .

vocab:SubstringSimilarity a rdfs:Class ;
  rdfs:label "substring similarity" ;
  rdfs:subClassOf vocab:StringBasedSimilarityMeasure .

vocab:LLMBasedMatching a rdfs:Class ;
  rdfs:label "LLM-based matching process" ;
  rdfs:comment "A machine learning-based matching process in which a large language model determines matches between entities, typically through single-step or few-shot prompting, or through fine-tuning the model to judge mapping candidates or generate mappings directly." ;
  rdfs:subClassOf vocab:MachineLearningBasedMatching .

vocab:AgentBasedMatching a rdfs:Class ;
  rdfs:label "agent-based matching process" ;
  rdfs:comment "A matching process in which an autonomous agent plans and executes a multi-step workflow — typically involving tool use, retrieval, intermediate reasoning, and self-evaluation — to determine matches between entities. The agent decides at runtime what information to gather, which techniques to apply, and when to stop." ;
  rdfs:subClassOf vocab:Matching .

vocab:CardinalityFiltering a rdfs:Class ;
  rdfs:label "cardinality filtering" ;
  rdfs:subClassOf vocab:MatchingPostProcessing .

vocab:DiacriticsSuppression a rdfs:Class ;
  rdfs:label "diacritics suppression" ;
  rdfs:comment "A normalization technique replacing diactritic signs (e.g. accents, hats) with their most frequent replacements." ;
  rdfs:subClassOf vocab:Normalization .

vocab:MappingChaining a rdfs:Class ;
  rdfs:label "mapping chaining-based matching process" ;
  rdfs:comment "A matching process based on the traversing of multiple mappings." ;
  rdfs:subClassOf vocab:Matching .

vocab:LevenshteinEditDistance a rdfs:Class ;
  rdfs:label "levenshtein distance" ;
  rdfs:subClassOf vocab:EditDistance .

vocab:EmbeddingBasedMatching a rdfs:Class ;
  rdfs:label "embedding-based matching process" ;
  rdfs:comment "A machine learning-based matching process in which matches are identified by comparing learned vector representations (embeddings) of entities under a vector similarity measure." ;
  rdfs:subClassOf vocab:MachineLearningBasedMatching .

vocab:SimilarityMeasure a rdfs:Class ;
  rdfs:label "similarity measure" ;
  rdfs:comment "A technique for determining a score that characterises the similarity between two entities." .

vocab:RegexReplacement a rdfs:Class ;
  rdfs:label "regex replacement" ;
  rdfs:comment "A preprocessing method transforming a string by matching a regular expression and then replacing that match with a specified substitution string." ;
  rdfs:subClassOf vocab:Normalization .

vocab:EmbeddingBasedBlocking a rdfs:Class ;
  rdfs:label "embedding-based blocking" ;
  rdfs:comment "A blocking process in which entities are encoded independently as vector embeddings and candidate pairs are produced by nearest-neighbour search or similarity-threshold filtering in the embedding space." ;
  rdfs:subClassOf vocab:Blocking .

<http://purl.obolibrary.org/obo/NCBITaxon_9606> a rdfs:Class ;
  rdfs:label "human" .

vocab:UnspecifiedMatching a rdfs:Class ;
  rdfs:label "unspecified matching process" ;
  rdfs:comment "A matching process based on an unspecified comparison." ;
  rdfs:subClassOf vocab:Matching .

vocab:MappingInversion a rdfs:Class ;
  rdfs:label "mapping inversion-based matching process" ;
  rdfs:comment "A matching process based on the inverting or flipping of the subject with the object of a mapping in accordance with the semantics of the mapping predicate." ;
  rdfs:subClassOf vocab:Matching .

vocab:Stemming a rdfs:Class ;
  rdfs:label "stemming" ;
  rdfs:comment "The process of reducing a word to its word stem." ;
  rdfs:subClassOf vocab:Normalization .

vocab:CaseNormalization a rdfs:Class ;
  rdfs:label "case normalization" ;
  rdfs:comment "A normalization technique converting each alphabetic character in a string to their lower case counterpart." ;
  rdfs:subClassOf vocab:Normalization .

vocab:Mapping a rdfs:Class ;
  rdfs:label "mapping" ;
  rdfs:comment "A triple <s,p,o> comprising a subject entity s, an object entity o and a mapping predicate p." .

vocab:Lemmatization a rdfs:Class ;
  rdfs:label "lemmatization" ;
  rdfs:comment "The process of reducing the different forms of a word to one single form." ;
  rdfs:subClassOf vocab:Normalization .

vocab:BoundedPathMatching a rdfs:Class ;
  rdfs:label "bounded path matching" ;
  rdfs:comment "A structural matching process based on the comparison of the matched super- and subclass paths (up to a bounded depth) of two candidate entities." ;
  rdfs:subClassOf vocab:StructuralMatching .

vocab:PunctuationElemination a rdfs:Class ;
  rdfs:label "punctuation elimination" ;
  rdfs:comment "A normalization technique removing all punctation characters from a string." ;
  rdfs:subClassOf vocab:Normalization .

vocab:MatchingPreprocessing a rdfs:Class ;
  rdfs:label "matching process pre-processing" ;
  rdfs:comment "A preliminary processing of inputs prior to performing matching." ;
  rdfs:subClassOf vocab:MappingActivity .

vocab:TermExtraction a rdfs:Class ;
  rdfs:label "term extraction" ;
  rdfs:subClassOf vocab:Normalization .

vocab:EditDistance a rdfs:Class ;
  rdfs:label "edit distance" ;
  rdfs:subClassOf vocab:StringBasedSimilarityMeasure .

vocab:BackgroundKnowledgeBasedMatching a rdfs:Class ;
  rdfs:label "background knowledge-based matching process" ;
  rdfs:comment "A matching process that exploits background knowledge from external resources, commonly referred to as background knowledge resources. This approach is also known as indirect matching, BK-based matching or context-based matching." ;
  rdfs:subClassOf vocab:Matching .

vocab:MappingReview a rdfs:Class ;
  rdfs:label "mapping review" ;
  rdfs:comment "A process that is concerned with determining if a mapping “candidate” (otherwise determined) is reasonable/correct." ;
  rdfs:subClassOf vocab:MappingActivity .

vocab:StableMarriageFiltering a rdfs:Class ;
  rdfs:label "stable marriage filtering" ;
  rdfs:subClassOf vocab:MatchingPostProcessing .

vocab:StringEquality a rdfs:Class ;
  rdfs:label "string equality" ;
  rdfs:comment "A string-based similarity measure which involves determining if two strings associated with mapping entities are equal." ;
  rdfs:subClassOf vocab:StringBasedSimilarityMeasure .

vocab:Normalization a rdfs:Class ;
  rdfs:label "normalization" ;
  rdfs:comment "A family of preprocessing techniques for reducing strings to be compared to a common format." ;
  rdfs:subClassOf vocab:MatchingPreprocessing .

vocab:LogicalReasoning a rdfs:Class ;
  rdfs:label "logical reasoning matching process" ;
  rdfs:comment "A matching process based on the inferences made by a logical reasoner." ;
  rdfs:subClassOf vocab:Matching .

vocab:RegexRemoval a rdfs:Class ;
  rdfs:label "regex removal" ;
  rdfs:comment "A preprocessing method transforming a string by matching a regular expression and then removing that match." ;
  rdfs:subClassOf vocab:Normalization .

vocab:HammingDistance a rdfs:Class ;
  rdfs:label "hamming distance" ;
  rdfs:subClassOf vocab:StringBasedSimilarityMeasure .

vocab:LexicalMatching a rdfs:Class ;
  rdfs:label "lexical matching process" ;
  rdfs:comment "A matching process based on a lexical comparison between one or more syntactic features of the subject with one or more syntactic features of the object." ;
  rdfs:subClassOf vocab:Matching .

vocab:Blocking a rdfs:Class ;
  rdfs:label "blocking" ;
  rdfs:comment "A mapping activity that, given two sets of input entities, produces a reduced set of candidate entity pairs likely to match — favouring recall over precision — to be passed on to a downstream matching process." ;
  rdfs:subClassOf vocab:MappingActivity .

vocab:DigitSuppression a rdfs:Class ;
  rdfs:label "digit suppression" ;
  rdfs:comment "A normalization technique removing all numbers in a string." ;
  rdfs:subClassOf vocab:Normalization .

vocab:nGramSimilarity a rdfs:Class ;
  rdfs:label "ngram similarity" ;
  rdfs:subClassOf vocab:StringBasedSimilarityMeasure .

vocab:CompositeMatching a rdfs:Class ;
  rdfs:label "composite matching process" ;
  rdfs:comment "A matching process based on multiple, possibly intertwined, matching approaches." ;
  rdfs:subClassOf vocab:Matching .

vocab:LinkStripping a rdfs:Class ;
  rdfs:label "link stripping" ;
  rdfs:comment "A normalization technique replacing specific links between words, such as apostrophes, dashes, underscore, etc into dashes or blanks." ;
  rdfs:subClassOf vocab:Normalization .

vocab:TokenBasedDistance a rdfs:Class ;
  rdfs:label "token-based distance" ;
  rdfs:subClassOf vocab:StringBasedSimilarityMeasure .

vocab:StringBasedSimilarityMeasure a rdfs:Class ;
  rdfs:label "string-based similarity measure" ;
  rdfs:comment "A similarity measure based on the comparison of strings." ;
  rdfs:subClassOf vocab:SimilarityMeasure .

vocab:MatchingPostProcessing a rdfs:Class ;
  rdfs:label "matching process post-processing" ;
  rdfs:comment "A process applied to a set of mappings, usually with the intention of changing it." ;
  rdfs:subClassOf vocab:MappingActivity .

vocab:SubstringTest a rdfs:Class ;
  rdfs:label "substring test" ;
  rdfs:subClassOf vocab:StringBasedSimilarityMeasure .

vocab:InstanceBasedMatching a rdfs:Class ;
  rdfs:label "instance-based matching process" ;
  rdfs:comment "A matching process based on individual representations (or instances)." ;
  rdfs:subClassOf vocab:Matching .

vocab:Tokenization a rdfs:Class ;
  rdfs:label "tokenization" ;
  rdfs:subClassOf vocab:Normalization .

vocab:LexicalSimilarityThresholdMatching a rdfs:Class ;
  rdfs:label "lexical similarity threshold-based matching process" ;
  rdfs:comment "A lexical matching process based on a minimum threshold of a score from a comparison based on a lexical similarity algorithm." ;
  rdfs:subClassOf vocab:Matching .

vocab:StructuralMatching a rdfs:Class ;
  rdfs:label "structural matching process" ;
  rdfs:comment "Structural matching does not involve looking at \"values\" of properties." ;
  rdfs:subClassOf vocab:Matching .

vocab:SemanticSimilarityThresholdMatching a rdfs:Class ;
  rdfs:label "semantic similarity threshold-based matching process" ;
  rdfs:comment "A matching process based on a minimum threshold of a score from a comparison based on a semantic similarity algorithm." ;
  rdfs:subClassOf vocab:Matching .

vocab:TransformerBasedMatching a rdfs:Class ;
  rdfs:label "transformer-based matching process" ;
  rdfs:comment "An embedding-based matching process that uses transformer models to produce contextual vector representations of entity features for similarity comparison." ;
  rdfs:subClassOf vocab:EmbeddingBasedMatching .

<http://purl.obolibrary.org/obo/IAO_0000700> a rdf:Property ;
  rdfs:label "has ontology root term" ;
  rdfs:range xsd:string .

vocab:crossSpeciesBroadMatch a rdf:Property ;
  rdfs:label "cross-species broad match" ;
  rdfs:comment "A match where the subject is considered analogous to the subject in a different taxonomic grouping, but the object refers to a broader concept." ;
  rdfs:range xsd:string .

vocab:crossSpeciesCloseMatch a rdf:Property ;
  rdfs:label "cross-species close match" ;
  rdfs:comment "A match where the subject and the object belong in different taxonomic groupings, but refer to concepts similar enough that they can be used interchangeably." ;
  rdfs:range xsd:string ;
  rdfs:subPropertyOf vocab:nonIsomorphicMatch .

vocab:crossSpeciesExactMatch a rdf:Property ;
  rdfs:label "cross-species exact match" ;
  rdfs:comment "A match where the subject is considered analogous to the object in a different taxonomic grouping." ;
  rdfs:range xsd:string ;
  rdfs:subPropertyOf vocab:isomorphicMatch .

vocab:crossSpeciesNarrowMatch a rdf:Property ;
  rdfs:label "cross-species narrow match" ;
  rdfs:comment "A match where the subject is considered analogous to the subject in a different taxonomic grouping, but the object refers to a narrower concept." ;
  rdfs:range xsd:string .

vocab:isomorphicMatch a rdf:Property ;
  rdfs:label "isomorphic match" ;
  rdfs:comment "A match where the subject is isomorphic to the object, i.e. considered of identical or similar form, shape, or structure." ;
  rdfs:range xsd:string .

vocab:nonIsomorphicMatch a rdf:Property ;
  rdfs:label "non-isomorphic match" ;
  rdfs:comment "A match where the subject cannot be considered isomorphic to the object, i.e. considered of identical or similar form, shape, or structure. The object corresponds to exactly one subject in the subject_source." ;
  rdfs:range xsd:string .
