@prefix inv: <https://github.com/DynamicalSystemsGroup/sysml-concept-reference/vocab#> .
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix owl: <http://www.w3.org/2002/07/owl#> .
@prefix dct: <http://purl.org/dc/terms/> .

inv: a owl:Ontology ;
    dct:title "Language concept inventory vocabulary" ;
    dct:description "Research vocabulary for descriptions of language constructs. Metaclass records are individuals of MetaclassRecord, not OWL classes for SysML model elements. No equivalence to OMG semantics is asserted." .

inv:Record a owl:Class ; rdfs:label "Inventory record" .
inv:MetaclassRecord a owl:Class ; rdfs:subClassOf inv:Record .
inv:PropertyRecord a owl:Class ; rdfs:subClassOf inv:Record .
inv:ExtractedPropertyRecord a owl:Class ; rdfs:subClassOf inv:PropertyRecord .
inv:ConstraintRecord a owl:Class ; rdfs:subClassOf inv:Record .
inv:EnumerationRecord a owl:Class ; rdfs:subClassOf inv:Record .
inv:AssociationRecord a owl:Class ; rdfs:subClassOf inv:Record .
inv:SourceElementRecord a owl:Class ; rdfs:subClassOf inv:Record .
inv:SourceArtifact a owl:Class .
inv:ExternalTypeReference a owl:Class .
inv:Mechanism a owl:Class .
inv:MechanismApplication a owl:Class .

inv:specializes a owl:ObjectProperty ; rdfs:label "Declared direct generalization" ;
    rdfs:comment "A relationship between metaclass records. Deliberately not rdfs:subClassOf or transitive: query its paths when needed." .
inv:declaresProperty a owl:ObjectProperty .
inv:declaresConstraint a owl:ObjectProperty .
inv:declaredOn a owl:ObjectProperty .
inv:valueType a owl:ObjectProperty .
inv:association a owl:ObjectProperty .
inv:subsets a owl:ObjectProperty .
inv:redefines a owl:ObjectProperty .
inv:sourceArtifact a owl:ObjectProperty .
inv:concept a owl:ObjectProperty .
inv:mechanism a owl:ObjectProperty .
inv:evidence a owl:ObjectProperty ; rdfs:comment "Specific source locations supporting an editorial explanation; not an execution or conformance claim." .
inv:applicability a owl:ObjectProperty .
inv:evidenceStatus a owl:ObjectProperty .
inv:coverage a owl:ObjectProperty .
inv:notationStatus a owl:ObjectProperty .
inv:executionStatus a owl:ObjectProperty .
inv:descriptionStatus a owl:ObjectProperty .

inv:qualifiedName a owl:DatatypeProperty .
inv:language a owl:DatatypeProperty .
inv:version a owl:DatatypeProperty .
inv:sha256 a owl:DatatypeProperty .
inv:sourceLocator a owl:DatatypeProperty .
inv:omgFileId a owl:DatatypeProperty .
inv:embeddedPackageURI a owl:DatatypeProperty .
inv:retrievedOn a owl:DatatypeProperty .
inv:isFocus a owl:DatatypeProperty .
inv:isDerived a owl:DatatypeProperty .
inv:isReadOnly a owl:DatatypeProperty .
inv:isOrdered a owl:DatatypeProperty .
inv:isUnique a owl:DatatypeProperty .
inv:isDerivedUnion a owl:DatatypeProperty .
inv:aggregation a owl:DatatypeProperty .
inv:xmiAttributes a owl:DatatypeProperty ; rdfs:comment "JSON object containing explicit XMI attributes; omitted UML defaults are not expanded." .
inv:lowerEncoding a owl:DatatypeProperty .
inv:upperEncoding a owl:DatatypeProperty .
inv:defaultEncoding a owl:DatatypeProperty .

inv:Extracted rdfs:label "Extracted from pinned XMI" .
inv:EditorialSummary rdfs:label "Editorial explanation with source evidence" .
inv:DeclaredPropertiesExtracted rdfs:label "Direct attributes extracted; other coverage partial" .
inv:ExtractedDeclaration rdfs:label "Extracted property declaration" .
inv:ReferenceOnly rdfs:label "Reference only; details not extracted" .
inv:NameOnly rdfs:label "Name and source only" .
inv:ExternalUnverified rdfs:label "External UML type reference; definition not acquired" .
inv:NotYetVerified rdfs:label "Not yet verified" .
inv:NotImplemented rdfs:label "Not implemented" .
inv:Applies rdfs:label "Applies" .
inv:Restricted rdfs:label "Applies with restrictions" .

# Concept-page contract and source-backed interpretation records.
inv:ConceptProfile a owl:Class .
inv:ConceptRelationship a owl:Class .
inv:Notation a owl:Class .
inv:Example a owl:Class .
inv:EvidenceLocation a owl:Class .
inv:RedefinitionResolution a owl:Class .
inv:hasProfile a owl:ObjectProperty .
inv:hasRelationship a owl:ObjectProperty .
inv:hasNotation a owl:ObjectProperty .
inv:hasExample a owl:ObjectProperty .
inv:fromConcept a owl:ObjectProperty .
inv:toConcept a owl:ObjectProperty .
inv:effectiveProperty a owl:ObjectProperty ; rdfs:comment "Declaration selected by the explicit-inheritance/redefinition view; no derived-value evaluation implied." .
inv:excludedPrivateProperty a owl:ObjectProperty .
inv:forConcept a owl:ObjectProperty .
inv:replacedDeclaration a owl:ObjectProperty .
inv:replacementDeclaration a owl:ObjectProperty .
inv:normalizationSource a owl:ObjectProperty .
inv:inheritanceEvidence a owl:ObjectProperty .
inv:verificationStatus a owl:ObjectProperty .
inv:depictionStatus a owl:ObjectProperty .
inv:profileStatus a owl:ObjectProperty .
inv:propertyResolutionStatus a owl:ObjectProperty .
inv:defaultStatus a owl:ObjectProperty .
inv:normalizationDetail a owl:DatatypeProperty .
inv:lowerBound a owl:DatatypeProperty .
inv:upperBound a owl:DatatypeProperty .
inv:declaredDefault a owl:DatatypeProperty ; rdfs:comment "Decoded default literal exactly as declared; not the value of a derived field or a contextual usage default." .
inv:normalizedIsDerived a owl:DatatypeProperty .
inv:normalizedIsDerivedUnion a owl:DatatypeProperty .
inv:normalizedIsReadOnly a owl:DatatypeProperty .
inv:normalizedIsOrdered a owl:DatatypeProperty .
inv:normalizedIsUnique a owl:DatatypeProperty .
inv:normalizedAggregation a owl:DatatypeProperty .
inv:profilePage a owl:DatatypeProperty .
inv:learningPoint a owl:DatatypeProperty .
inv:caveat a owl:DatatypeProperty .
inv:code a owl:DatatypeProperty .
inv:condition a owl:DatatypeProperty .
inv:relationKind a owl:DatatypeProperty .
inv:context a owl:DatatypeProperty .
inv:asset a owl:DatatypeProperty .
inv:pdfPage a owl:DatatypeProperty .
inv:printedPage a owl:DatatypeProperty .
inv:propertyNameConflict a owl:DatatypeProperty .

inv:ExternalIdentityVerified rdfs:label "External type identity checked against pinned primitive-type artifact" .
inv:NoDeclaredDefault rdfs:label "No default specification declared" .
inv:DecodedLiteral rdfs:label "Declared literal decoded, preserving its literal kind" .
inv:UnspecifiedLiteralValue rdfs:label "Literal value absent; no default supplied" .
inv:UnsupportedExpression rdfs:label "Expression retained but not evaluated" .
inv:HasNameConflicts rdfs:label "Competing same-name declarations require review" .
inv:ExplicitRedefinitionsResolved rdfs:label "Explicit inheritance and redefinition identities resolved" .
inv:DraftSourceChecked rdfs:label "Draft profile with checked source evidence" .
inv:SourceReviewedNotExecuted rdfs:label "Source-reviewed example; no parser or execution check" .
inv:RepresentativeNotationVisuallyChecked rdfs:label "Representative notation checked against rendered official pages" .
inv:OriginalRedraw rdfs:label "Original illustrative redraw, not an official figure" .
inv:SourceDescriptionOnly rdfs:label "Description of an additional source variant" .

# Notation source units are separate from curated, possibly compound variants.
inv:NotationSection a owl:Class .
inv:NotationSourceTable a owl:Class .
inv:NotationSourceCell a owl:Class .
inv:GraphicalProductionOccurrence a owl:Class .
inv:SharedNotationRule a owl:Class .
inv:inNotationSection a owl:ObjectProperty .
inv:inSourceTable a owl:ObjectProperty .
inv:supportingProduction a owl:ObjectProperty .
inv:supportingSourceCell a owl:ObjectProperty .
inv:sourceRole a owl:ObjectProperty .
inv:indexStatus a owl:ObjectProperty .
inv:coverageClaim a owl:ObjectProperty .
inv:tableNumber a owl:DatatypeProperty .
inv:productionOperator a owl:DatatypeProperty .
inv:spacedBarAfterEquals a owl:DatatypeProperty .
inv:labelCellBounds a owl:DatatypeProperty .
inv:geometry a owl:DatatypeProperty .
inv:lineStyle a owl:DatatypeProperty .
inv:labelRule a owl:DatatypeProperty .
inv:compartmentRule a owl:DatatypeProperty .
inv:attachmentRule a owl:DatatypeProperty .
inv:alternativeRule a owl:DatatypeProperty .
inv:representedKinds a owl:DatatypeProperty .
inv:illustratedForms a owl:DatatypeProperty .

inv:SVGShapeAsset a owl:Class .
inv:realizesProduction a owl:ObjectProperty .
inv:relatedNotation a owl:ObjectProperty .

# Bounded local-alternative audits; rendering remains a separate disposition.
inv:NotationAuditBatch a owl:Class .
inv:SourceUnitAudit a owl:Class .
inv:NotationAlternative a owl:Class .
inv:hasUnitAudit a owl:ObjectProperty .
inv:auditsUnit a owl:ObjectProperty .
inv:hasAlternative a owl:ObjectProperty .
inv:representedByAsset a owl:ObjectProperty .
inv:reviewStatus a owl:ObjectProperty .
inv:renderingStatus a owl:ObjectProperty .
inv:deferredReason a owl:DatatypeProperty .
inv:representationScope a owl:DatatypeProperty .
inv:dependencyNote a owl:DatatypeProperty .
inv:sourceIssue a owl:DatatypeProperty .
inv:LocalAlternativesAudited rdfs:label "Local displayed alternatives reviewed; imported dependencies and rendering may be deferred" .
inv:RepresentativeAsset rdfs:label "Representative asset within its stated scope" .
inv:PartialRendering rdfs:label "Partial asset support with an explicit remaining rendering deferral" .
inv:DeferredRendering rdfs:label "Rendering explicitly deferred" .
