Creative Works for the Visual Arts
Data Model Upgrade V4

Introduction

Data Patterns

Namespaces

Typical Instance Data

A Watercolor

A Sculpture

Ontology

Creative Works

Entity Types

Related Data Examples

Art Production

Art Material

Tag Promotion Process

Appendix?Tag Promotion Query

Introduction

Changes to the data model in both the ontology and thesaurus are considered for this V4 release. The ontology and the thesaurus have similar hierarchies that support both common and different purposes. One of these purposes is using the ontology to promote concepts from the thesaurus about an artwork to semantically-specific properties directly on the artwork instance data. This is a major driver for the data model changes in this release.

Data Patterns

Namespaces

These are the namespaces used in the system and in the following examples.

@prefix dct: .
@prefix foaf: .
@prefix owl: .
@prefix rdf: .
@prefix rdfs: .
@prefix schema: .
@prefix skos: .
@prefix xs: .
# local ns
@prefix cwva: . # occasionally used in modeling
@prefix the: . # thesaurus
@prefix tko: . # google takeout data as concepts
@prefix vad: .# typically used in instance data
@prefix work: . # instance data

Typical Instance Data

The following are typical instance data found in the system.

A Watercolor

# instance of watercolor work
work:adb68155-ab41-4967-a8ad-10cd8fc069e6

    a                           vad:VisualArts , vad:CreativeWork , vad:PaintingForm , vad:Watercolor , rdfs:Resource , vad:Art , vad:ArtForm , vad:ArtRealization , vad:VisualArtForm ;  
    rdfs:label                  "Bottle Pitcher Cup" ;  
    vad:hasArtistProfile        work:ebab5e0c-cc32-4928-b326-1ddb4dd62c22 ;  
    vad:hasPaper                the:FabrianoArtisticoGranaFinaColdPress ;  
    vad:hasTechnique            the:overPainting ;  
    vad:hasWatercolorPaint      the:RawUmberDD , the:BurntUmberDD , the:PottersPinkLCS , the:ManganeseBlueLCS , the:YellowOchreDarkDD , the:UltramarineBlueLightLCS , the:TwoColorGrey4 , the:UltramarineBlueDarkLCS ;  
    vad:hasWatercolorTechnique  the:liftingPaint , the:watercolorGlazing , the:washFlat ;  
    vad:qrcode                  \<http://visualartsdna.org/images/qrc\_adb68155-ab41-4967-a8ad-10cd8fc069e6.jpg\> ;  
    vad:workOnSite              \<https://rickspates.art\> ;  
    the:tag                     work:7349c01c-ef13-40ff-b310-810cd503607b , the:StillLife\_20260110 ;  
    skos:note                   "\\"I like the color mix for the ceramics" ;  
    schema:copyrightNotice      "copyright � 2026 Rick Spates. All Rights Reserved." ;  
    schema:dateCreated          "2026-02-01T14:06:45"^^xs:dateTime ;  
    schema:datePublished        "2026-02-01T14:06:45"^^xs:dateTime ;  
    schema:description          "A still life with bottle, pitcher and cup." ;  
    schema:height               "11"^^xs:float ;  
    schema:identifier           "adb68155-ab41-4967-a8ad-10cd8fc069e6" ;  
    schema:image                \<http://visualartsdna.org/images/bottlePitcherCup.jpg\> ;  
    schema:license              work:CC-4-0 ;  
    schema:location             "Woodstock, GA" ;  
    schema:width                "15"^^xs:float .

A Sculpture

# instance of sculpture work
work:fcbffe64-1200-4bad-bec9-cad6f23f1f4a

    a                       vad:ArtForm , vad:Art , rdfs:Resource , vad:BlenderComposition , vad:DigitalSculpture , vad:ArtRealization , vad:CreativeWork , vad:VisualArts , vad:SculptureForm , vad:VisualArtForm ;  
    rdfs:label              "Passion T3" ;  
    vad:background          work:7e30b27f-d74a-4fc2-bdd7-9d4b73994005 ;  
    vad:fileFormat          "JPEG" ;  
    vad:hasArtistProfile    work:6d5746c7-3ffb-485f-a51c-0f652b9cd2d3 ;  
    vad:image3d             \<http://visualartsdna.org/images/PassionT3.glb\> ;  
    vad:media               "Graphics" ;  
    vad:qrcode              \<http://visualartsdna.org/images/qrc\_fcbffe64-1200-4bad-bec9-cad6f23f1f4a.jpg\> ;  
    the:tag                 work:0893d6af-80e5-4178-87a4-e1f6e92d4312 , work:ad1ad063-efce-444f-966e-955db6aabd54 , work:5caae6ea-2f5b-48c2-9efb-2b65688237ea ;  
    skos:note               "A small departure from the Tension series compression members" ;  
    schema:copyrightNotice  "copyright \&copy; 2026 rspates. All Rights Reserved." ;  
    schema:dateCreated      "2026-02-15T15:27:00"^^xs:dateTime ;  
    schema:datePublished    "2026-02-15T15:27:00"^^xs:dateTime ;  
    schema:description      "A tensegrity T3 prism with male and female figures in compression, and a T3 tower double helix as the third compression member." ;  
    schema:height           "1076"^^xs:float ;  
    schema:identifier       "fcbffe64-1200-4bad-bec9-cad6f23f1f4a" ;  
    schema:image            \<http://visualartsdna.org/images/PassionT3.jpg\> ;  
    schema:license          work:CC-4-0 ;  
    schema:width            "1140"^^xs:float .

Ontology

Creative Works

Ontology classes for creative works live under ArtRealization. Most instance data can be found there. All instance data for creative works lives there. vad:CreativeWork no longer has a hierarchy of classes below it. It is applied to any instance of a finished work in any art form. For example, the watercolor “Still Life” of vad:ArtForm type vad:Watercolor, becomes a vad:CreativeWork upon completion. It serves as a stamp of completion for the finished creative work.

vad:Art

vad:VisualArts   
    vad:ArtRealization   
        vad:ArtForm   
            vad:VisualArtForm  
                vad:PaintingForm  
                    vad:Watercolor  
                vad:SculptureForm   
                    vad:DigitalSculpture   
                        vad:BlenderComposition  
        vad:CreativeWork 

Entity Types

The Entity hierarchy represents operational support classes often used in linking instance data for works to concepts in the thesaurus or documentation. The new Entity types are the:Operation and the:Series.

the:Entity

the:AI  
the:Article  
the:Artist  
the:Collection  
the:Concept  
the:Image  
the:Operation  
the:Organization  
the:Posting  
the:Series  
the:Study  
the:Work

A good example of the linkages between ontology and thesaurus is found in the watercolor instance data where the:tag property relates to an instance of an the:AI subtype of the:Entity. This instance with ?the:topic? of “Interpretation” is a document from an AI session.

work:7349c01c-ef13-40ff-b310-810cd503607b

    a                     the:Entity , rdfs:Resource , the:AI , skos:Concept ;  
    rdfs:label            "Bottle Pitcher Cup Criticism" ;  
    the:document          \<https://docs.google.com/document/d/1grEsngm0yvze6Mp1EDnyhT6mBnsSQKORcXxIDtmX91g/edit?usp=sharing\> ;  
    the:tag               work:adb68155-ab41-4967-a8ad-10cd8fc069e6 ;  
    the:topic             "Interpretation" ;  
    skos:definition       "Provide an art criticism of this watercolor, entitled \\"Bottle Pitcher Cup\\" on 11x15 300 lb cold press." ;  
    skos:inScheme         the:entities ;  
    skos:scopeNote        "Includes a consideration of the progress of the still-life series." ;  
    schema:datePublished  "2026-02-02"^^xs:date .

Another example is a google note instance with work notes and tagged concepts from the painting production stage of the creative process. The tag concepts for skos:related can be ignored here in searching because, as can be seen in the instance data for the work, they've already been promoted to the appropriate property directly on the instance data. This supports direct searching on the data.

the:StillLife_20260110

    a                skos:Concept , rdfs:Resource ;  
    tko:created      "2026-01-10"^^xs:date ;  
    tko:edited       "2026-02-03T20:44:28"^^xs:dateTime ;  
    the:tag          work:adb68155-ab41-4967-a8ad-10cd8fc069e6 ;  
    skos:definition  "I like the way the image bends and curls away at the edges due to the perspective" ;  
    skos:inScheme    the:paintingNotes ;  
    skos:prefLabel   "Still life Notes" ;  
    skos:related     the:UltramarineBlueLightLCS , the:TwoColorGrey4 , the:PottersPinkLCS , the:overPainting , the:BurntUmberDD , the:liftingPaint , the:watercolorGlazing , the:flatWash , the:ManganeseBlueLCS , the:UltramarineBlueDarkLCS , the:YellowOchreDarkDD , the:RawUmberDD ;  
    schema:image     \<http://visualartsdna.org/images/1768060301236.1382949796.jpg\> , \<http://visualartsdna.org/images/1768060307826.115338048.jpg\> .

Art Production

Art production involves the making of the creative work. Here is the top-level of the class hierarchy for vad:ArtProduction.

vad:Art
vad:VisualArts
vad:ArtRealization
vad:ArtProduction

vad:ArtMaterial  
vad:ArtProcess  
vad:ArtTool  
vad:ArtTechnique

Art Material

The data for a given paint, say burnt umber, lives in the thesaurus as a skos:Concept but it is also related to the ontology hierarchy as a WatercolorPaint because the thesaurus concepts are often annotated with a class reference to the ontology. This supports the tag promotion process. Here is the class sub-hierarchy for WatercolorPaint.

vad:ArtProduction

vad:ArtMaterial  
    vad:PrimaryMaterial  
        vad:PaintingMaterial  
            vad:Paint  
                vad:WatercolorPaint

Here is the broader hierarchy from the thesaurus for the concept the:WatercolorPaint.

the:visualArtTerm

the:paintingTerm  
    the:paintingMaterial  
        the:Paint  
            the:WatercolorPaint

In the following instance of a watercolor paint that is both a the:WatercolorPaint by broader hierarchy and a vad:WatercolorPaint by class annotation, you see the class hierarchy provided by inference. In this case this instance data is directly annotated with vad:WatercolorPaint rather than having the annotation at the:WatercolorPaint level.

the:BurntUmberDD

a      vad:WatercolorPaint , vad:VisualArts , vad:ArtMaterial , vad:PaintingMaterial , vad:Art , vad:ArtProduction , vad:Paint , rdfs:Resource , vad:PrimaryMaterial , vad:ArtRealization , skos:Concept ;  
    rdfs:label       "Burnt Umber" ;  
    the:ARGB         "FF785D40" ;  
    the:symbol       "BU" ;  
    skos:broader the:WatercolorPaint ;  
    skos:inScheme    the:WatercolorPaintScheme ;  
    skos:related     the:Windmills\_20250929 , the:CupsAndBottle\_20260124 , the:Cape\_20241107 , the:circularCourtyard\_20251121 , the:Korea\_20250929 , the:StillLife\_20260110 , the:YoungGreatFrigatebirdInNest\_20240724 , the:Wisteria\_20250929 , the:HydeFarm\_20251215 , the:CupsStudy\_20251217 , the:VintgarGorge\_20240724 , the:Korea2\_20251115 , the:Booby\_20240724 , the:YosemiteFalls\_20240724 ;  
    schema:brand     the:DavidDavis ;  
    schema:image     \<http://visualartsdna.org/images/BurntUmberDD.jpg\> ;  
    schema:material  the:HomemadeWatercolorBinder ;  
    schema:position  "26"^^xs:int .

The watercolor paint references can live directly on the work instance with the following property definition.

vad:hasPaint
rdf:type owl:ObjectProperty ;
rdfs:domain vad:CreativeWork ;
rdfs:range vad:Paint ;
rdfs:label “has paint” ;
rdfs:isDefinedBy ;
rdfs:seeAlso ;
rdfs:comment “The specific paint used.” ;
.
vad:hasWatercolorPaint
rdf:type owl:ObjectProperty ;
rdfs:domain vad:CreativeWork ;
rdfs:range vad:WatercolorPaint ;
rdfs:label “has watercolor paint” ;
rdfs:isDefinedBy ;
rdfs:seeAlso ;
rdfs:comment “The specific watercolor paint used.” ;
.

Tag Promotion Process

This process associates concept tags from the thesaurus related to a work instance, with object properties from the ontology, allowing those properties with concepts to decorate the instance data directly.

A thesaurus concept can be a type of ontology class as well as a skos:Concept. This supports adding a property to the work instance for a given tag concept C. The broader concept hierarchy of C is searched for ancestor C? that is both a skos:Concept and a type X from the ontology. If the ontology has a property with domain vad:CreativeWork and a range object type X then the property can be added to the work instance with C as the object.

In the painting process, URIs are captured for the thesaurus concepts best describing a completed work. This can include paints, techniques and the like. The result is a work URI (instance of a creative work) tagged to a thesaurus URI. These are collected and later processed into semantically-specific properties on the work instance. As an example,
work:abcd the:tag the:MaskingFluid,
becomes,
work:abcd vad:hasAdditive the:MaskingFluid.

To do this, thesaurus concepts are ?annotated? with a class from the ontology, e.g., concept the:MaskingFluid resolves to class vad:WatercolorAdditive because concept the:WatercolorMedium is a broader concept to the:MaskingFluid and it is annotated with class vad:WatercolorAdditive. Given the type you can find the property for domain CreativeWork and range vad:WatercolorAdditive which is vad:hasAdditive.

The query used to find this property navigates both the class hierarchy of the ontology and the broader hierarchy of the thesaurus to find the most semantically-specific property to use in a given case. In the ontology you can identify a property with range of any class under ArtProduction (or the whole ontology). In the thesaurus you can have an ontology class annotation on every concept at any level of the broader hierarchy. The query will always find the most specific property to use for the given concept.

As a result, an instance of an artwork with a tagged concept has the tag promoted to a reference directly on the work instance. In the watercolor instance data example, the concepts that were tagged to the instance become explicit properties of the instance: vad:hasTechnique, vad:hasWatercolorPaint and vad:hasWatercolorTechnique.

Appendix?Tag Promotion Query

The following query is used to find a semantically-specific object property given a concept from the thesaurus.

CONSTRUCT {
?w ?op ?cpt .
} WHERE {
BIND (work:368e138c-bfdf-4165-8e8f-f2e5eb761d19 AS ?w)
BIND (the:wash AS ?cpt)

{

?cpt a ?rt .  
FILTER (?rt NOT IN (skos:Concept, rdfs:Resource))  
?op rdfs:range ?rt .  

FILTER NOT EXISTS {  
  ?rt2 rdfs:subClassOf+ ?rt .  
  ?cpt a ?rt2 .  
  FILTER (?rt2 \!= ?rt)  
  ?op2 rdfs:range ?rt2 .  
}  

}
UNION
{

?cpt skos:broader+ ?rtc .  
?rtc a ?rt .  
FILTER (?rt NOT IN (skos:Concept, rdfs:Resource))  
?op rdfs:range ?rt .  

FILTER NOT EXISTS {  
  ?rt2 rdfs:subClassOf+ ?rt .  
  ?rtc a ?rt2 .  
  FILTER (?rt2 \!= ?rt)  
  ?op2 rdfs:range ?rt2 .  
}  

FILTER NOT EXISTS {  
  ?cpt skos:broader+ ?rtc2 .  
  ?rtc2 skos:broader+ ?rtc .  
  ?rtc2 a ?rt .  
}  

}

# Final filter: exclude if there's a more specific property from either branch
FILTER NOT EXISTS {

{  
  ?cpt a ?rtX .  
  ?opX rdfs:range ?rtX .  
  ?rtX rdfs:subClassOf+ ?rt .  
  FILTER (?rtX \!= ?rt)  
}  
UNION  
{  
  ?cpt skos:broader+ ?rtcX .  
  ?rtcX a ?rtX .  
  ?opX rdfs:range ?rtX .  
  ?rtX rdfs:subClassOf+ ?rt .  
  FILTER (?rtX \!= ?rt)  
}  

}
}