@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_typelib_id a skos:Concept ;
    skos:inScheme <https://registry.apicrafter.io/> ;
    skos:notation "dotnet_typelib_id" ;
    skos:prefLabel ".NET TypeLib ID (assembly GUID)"@en ;
    skos:definition "GUID in the GuidAttribute of a .NET assembly, written by Visual Studio into Properties/AssemblyInfo.cs when a project is created ([assembly: Guid(\"...\")]). It becomes the ID of the type library if the assembly is exposed to COM. Because it stays the same across all builds of a project, threat hunters use it to link malware and offensive tools to their source project; VirusTotal reports it as dot_net_guids.typelib_id. The text form is a standard UUID, usually in lowercase."@en ;
    skos:broader dt:uuid ;
    skos:example "aec32155-d589-4150-8fe7-2900df4554c8" ;
    skos:example "658c8b7f-3664-4a95-9572-a3e5871dfc06" ;
    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.runtime.interopservices.guidattribute> ;
    rdfs:seeAlso <https://virustotal.readme.io/reference/file-object-dot-net-guids> ;
    rdfs:seeAlso <https://github.com/GhostPack/Seatbelt/blob/master/Seatbelt/Properties/AssemblyInfo.cs> .
