@prefix skos: <http://www.w3.org/2004/02/skos/core#> .
@prefix dcterms: <http://purl.org/dc/terms/> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix owl: <http://www.w3.org/2002/07/owl#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .
@prefix foaf: <http://xmlns.com/foaf/0.1/> .
@prefix mcr: <https://registry.apicrafter.io/vocab#> .
@prefix dt: <https://registry.apicrafter.io/datatype/> .
@prefix cat: <https://registry.apicrafter.io/category/> .
@prefix country: <https://registry.apicrafter.io/country/> .
@prefix tool: <https://registry.apicrafter.io/tool/> .

dt:dotnet_mvid a skos:Concept ;
    skos:inScheme <https://registry.apicrafter.io/> ;
    skos:notation "dotnet_mvid" ;
    skos:prefLabel ".NET module version ID (MVID)"@en ;
    skos:definition "GUID that the compiler writes into the metadata of every .NET module (the Module table, stored in the GUID heap) so that two versions of the same module can be told apart. The compiler generates a new MVID for each build, and System.Reflection.Module.ModuleVersionId returns it. Malware analysts use it, with the TypeLib ID, to link samples that come from the same build; VirusTotal reports it as dot_net_guids.mvid. The text form is a standard UUID."@en ;
    skos:broader dt:uuid ;
    skos:example "c7c0f129-4c73-461f-a638-94f3901fae90" ;
    mcr:status "draft" ;
    mcr:isPII false ;
    mcr:classification "identifier" ;
    mcr:regexp "^[0-9A-Fa-f]{8}-[0-9A-Fa-f]{4}-[0-9A-Fa-f]{4}-[0-9A-Fa-f]{4}-[0-9A-Fa-f]{12}$" ;
    rdfs:seeAlso <https://learn.microsoft.com/en-us/dotnet/api/system.reflection.module.moduleversionid> ;
    rdfs:seeAlso <https://virustotal.readme.io/reference/file-object-dot-net-guids> .
