Describing NFT

31 views
Skip to first unread message

Arian Rajh

unread,
Oct 7, 2025, 1:13:18 PM (11 days ago) Oct 7
to Records_in_Contexts_users
Dear all,

I'm trying to describe an NFT consisting of 10 authentic copies (the supply is limited to 10).  All the copies share the same authenticity metadata (token ID and contract address). Some copies were sold, so they have additional data about the owner. 
What would be the best approach: 

a) each authentic copy is a separate record (however, they share token ID and contract address, and the only difference is their owners), 

b) those NFT authentic copies are instances (additionally: described when sold or described no matter if they are sold or not?), 

or c) those NFT authentic copies are record parts (however, each NFT copy looks identical to others)?

Additional explanation - NFT can be minted as just one original, as part of one original, and in more than one copy (SFTs, collectibles, this last case I am trying to describe).  

Kindly,
Arian 

Arian Rajh

unread,
Oct 8, 2025, 4:54:05 AM (10 days ago) Oct 8
to Records_in_Contexts_users
I chose approach B - it seems most natural after giving it some additional thought. Something like this:

#Entire NFT collection
rico:generalDescription "NFT collection" ;
rico:identifier "0x495f947276749ce646f68ac8c248420045cb7b5e" ;
rico:title "Known Unknowns - portraits from the history of Zagreb" ;
rico:hasOrHadAllMembersWithCreationDate [ a rico:Date ;
rico:expressedDate "2022-09" ] ;
rico:AuthenticityNote "unique digital items" ;
rico:language "English (en)" , "Latin(latn)" ;
rico:scopeAndContent "This collection is a result of the project Application of blockchain technology in heritage environment developed at the Department of Information and Communication Sciences, Faculty of Humanities and Social Sciences, University of Zagreb, Croatia. In collaboration with the State Archives in Zagreb we have selected 11 portraits of persons from the history of Zagreb. The NFTs represent real-life physical objects that are part of the Archives' Ivan Ulčnik fund." ;
rico:AccumulationRelation <https://daz.hr> ;
rico:recordResourceHasSourceOfInformation [ a rico:RecordSet ; rico:identifier <https://www.daz.hr/vodic/site/article/hr-dazg-857-zbirka-ulcnik-ivan/1/4> ; rico:title "HR-DAZG-857 Zbirka Ulčnik Ivan" ];
rico:hasExtent [ a rico:RecordResourceExtent ;
rico:quantity "11" ;
rico:unitOfMeasurement "NFT" ] .

#one of those NFTs from the collection
rico:title "Franjo Marković" ;
rico:scopeAndContent "Franjo Marković (1845-1914) was a Croatian writer and philosopher. He is a representative of the so-called formalist aesthetics and he significantly contributed to the systematic study of Croatian philosophical heritage. Marković was also one of the most important Croatian authors in the second half of the 19th century and he played a prominent role in the reform and modernization of Croatian verse." ;
rico:hasCreator <https://opensea.io/Yavion> ;
rico:hasContentWhichRepresents <https://enciklopedija.hr/clanak/markovic-franjo> ;
rico:authenticityNote "contract address: 0x495f947276749Ce646f68AC8c248420045cb7b5e" , "token ID: 58115754737178457571273725405044055913366631526444276150572858216637437831754" , "token standard: ERC-1155" , "blockchain: Ethereum" ;
rico:hasExtent [ a rico:RecordResourceExtent ;
rico:quantity "10" ;
rico:unitOfMeasurement "total supply" ] ;
rico:hasInstantiation [ a rico:Instantiation ;
rico:hasOrHadOwner <https://opensea.io/Yavion> ;
rico:hasOrHadIdentifier [a rico:Identifier ; rico:textualValue "_1"]] ;
rico:hasInstantiation [ a rico:Instantiation ;
rico:hasOrHadOwner <https://opensea.io/Yavion> ;
rico:hasOrHadIdentifier [a rico:Identifier ; rico:textualValue "_2"]] ;
rico:hasInstantiation [ a rico:Instantiation ;
rico:hasOrHadOwner <https://opensea.io/Yavion> ;
rico:hasOrHadIdentifier [a rico:Identifier ; rico:textualValue "_3"]] ;
rico:hasInstantiation [ a rico:Instantiation ;
rico:hasOrHadOwner <https://opensea.io/Yavion> ;
rico:hasOrHadIdentifier [a rico:Identifier ; rico:textualValue "_4"]] ;
rico:hasInstantiation [ a rico:Instantiation ;
rico:hasOrHadOwner <https://opensea.io/Yavion> ;
rico:hasOrHadIdentifier [a rico:Identifier ; rico:textualValue "_5"]] ;
rico:hasInstantiation [ a rico:Instantiation ;
rico:hasOrHadOwner <https://opensea.io/Yavion> ;
rico:hasOrHadIdentifier [a rico:Identifier ; rico:textualValue "_6"]] ;
rico:hasInstantiation [ a rico:Instantiation ;
rico:hasOrHadOwner <https://opensea.io/Yavion> , <https://opensea.io/0xeddf6616ab0f775db2da1e6da3408bd463bb90f0> , [rico:hasBeginningDate [a rico:Date ; rico:normalizedDateValue "2024-05-10T11:31:59Z"^^xsd:dateTime]] ;
rico:hasOrHadIdentifier [a rico:Identifier ; rico:textualValue "_7"]] ;
rico:hasInstantiation [ a rico:Instantiation ;
rico:hasOrHadOwner <https://opensea.io/Yavion> , <https://opensea.io/0xe74d9d5d89a73620414557105c102e4538935ec5> , [rico:hasBeginningDate [a rico:Date ; rico:normalizedDateValue "2024-05-10T11:29:11Z"^^xsd:dateTime]] ;
rico:hasOrHadIdentifier [a rico:Identifier ; rico:textualValue "_8"]] ;
rico:hasInstantiation [ a rico:Instantiation ;
rico:hasOrHadOwner <https://opensea.io/Yavion> , <https://opensea.io/hstancic> , [rico:hasBeginningDate [a rico:Date ; rico:normalizedDateValue "2024-05-10T11:28:23Z"^^xsd:dateTime]] ;
rico:hasOrHadIdentifier [a rico:Identifier ; rico:textualValue "_9"]] ;
rico:hasInstantiation [ a rico:Instantiation ;
rico:hasOrHadOwner <https://opensea.io/Yavion> , <https://opensea.io/0x01af5fe48510ed1850da985d2d0460f97fd0f8c9> , [rico:hasBeginningDate [a rico:Date ; rico:normalizedDateValue "2024-05-10T11:27:23Z"^^xsd:dateTime]] ;
rico:hasOrHadIdentifier [a rico:Identifier ; rico:textualValue "_10"]] .

#...



Richard Williamson

unread,
Oct 8, 2025, 4:42:56 PM (10 days ago) Oct 8
to Records_in_C...@googlegroups.com
Dear Arian,

Intriguing example! Could you perhaps elaborate a little on the
context here, in particular how you think of the NFT as a record? Is
the idea that the owner of the NFT would own the real-life portrait of
Franjo Marković that the State Archives in Zagreb holds, so that the
NFT is viewed as documentation of that ownership? And do then the SFTs
correspond to actual real-life copies of the portrait, or the right to
view the original portrait or something like that, being documentation
of ownership of those copies/rights to view?

If so, then my first thought is that I am not sure that the SFTs
actually bear an immediate archival relationship to the NFT, as the
'copying' is at the level of the portrait itself, not the NFT as such
(i.e. it is not a copy of the record itself that is at stake, or
creating new instantiations of that record itself). One could use
Activity/Event to refer to the copying in that case. But I might well
be misunderstanding something; as I say, if you are able and wish to
elaborate a little on the context, it might become clearer :-).

If anybody else has thoughts in the meantime, please jump in of course!

Best wishes,
Richard
> --
> You received this message because you are subscribed to the Google Groups "Records_in_Contexts_users" group.
> To unsubscribe from this group and stop receiving emails from it, send an email to Records_in_Context...@googlegroups.com.
> To view this discussion visit https://groups.google.com/d/msgid/Records_in_Contexts_users/68ff2e80-da46-40bb-b15b-c99a5a02e0b0n%40googlegroups.com.

Arian Rajh

unread,
Oct 9, 2025, 3:35:35 AM (9 days ago) Oct 9
to Records_in_Contexts_users
Dear Richard,

The context is as follows: 
The State Archives of Zagreb holds the Ulčnik Collection (https://www.daz.hr/vodic/site/article/hr-dazg-857-zbirka-ulcnik-ivan), which consists of photographs, postcards, and press materials related to the town of Zagreb and its citizens. The State Archives selected eleven old photographs of citizens of Zagreb who achieved something notable, but who are unknown to the general public. In a joint project with my faculty, these photographs were digitised, minted as NFTs (https://nft.ffzg.unizg.hr/en/?p=405/), and published on the OpenSea platform (https://opensea.io/collection/known-unknowns-nft-ffzg). Hence the "Known Unknowns" title of this series of NFTs. I would like to describe this collection using RiC.

I think the collection is a Record Set, and NFTs it contains are separate Records. Each NFT is created in ten instances or SFTs (semi-fungible tokens, which highlights the fine line between NFTs and SFTs) - the public can buy from one to ten authentic copies of particular NFT from the OpenSea market store. Ten copies of each NFT share a URI and metadata about blockchain minting contract ID and token ID (e.g., https://opensea.io/item/ethereum/0x495f947276749ce646f68ac8c248420045cb7b5e/58115754737178457571273725405044055913366631526444276150572858224334019231754 , please see under Blockchain details metatata area).

The idea is that an individual does not own a real portrait of Franjo Markovic, for example, but rather one or several authentic copies as SFTs. These SFTs  can be viewed in their wallets, such as Metamask, and the ownership information is stored on the Ethereum  blockchain. Real physical portraits (photographs) are owned by the State Archives and stored there. 

The relationships are as follows:
A real portrait is digitised and minted as 10 SFTs (equivalent to 1 NFT); 10 SFTs together constitute 1 NFT, with common metadata about the minting contract and token ID. Each SFT (representing 1/10 of the NFT) have its own information about ownership (If purchased). Copying occurs at the NFT level -  the NFT is minted into 10 copies. 
I can send the description I wrote in the next message (1 ttl file). 

The project is experimental, intended to explore working with NFTs in the heritage environment. Some possible use cases for heritage institutions related to NFT phenomenon include - NFT as the original digital artwork (including both physical and virtual exhibitions in metaverse), digital souvenirs minted as SFTs, and similar applications.

Kindly,
Arian

Arian Rajh

unread,
Oct 9, 2025, 4:48:11 AM (9 days ago) Oct 9
to Records_in_Contexts_users
Dear Reichard,

I have attached the description file here. Any advice is welcome.  

A.

knownunknowns.ttl

Richard Williamson

unread,
Oct 12, 2025, 6:11:33 PM (6 days ago) Oct 12
to Records_in_C...@googlegroups.com
Dear Arian,

Apologies for taking a while to reply! First of all: nice modelling!
Cool that you have made use of some new object properties added in
RiC-O 1.1, such as 'hasContentWhichRepresents' :-)!

As far as I understand, the idea of considering the copies of the
portraits as SFTs would be that, at least at the moment of making the
copy, and still today as you carry out your modelling, the copies are
fungible: it doesn't which copy one buys, one could swap a copy with
any other, and it wouldn't make any difference. However, after a copy
is bought and some time has passed, it acquires its own history and
value in itself, and it may then be considered non-fungible.

At the level of the previous paragraph, I think the story would
generalise reasonably well to the situation of making copies of (an
Instantiation of) any Record. At the moment one makes a copy, I agree
with you that it can make sense to consider it simply a new
Instantiation (one might also, of course, include the relation
'isOrWasDerivedFromInstantiation' to express the relationship to the
original Instantiation which was copied). But as time passes, the ways
in which that copy is used (perhaps it is annotated, or perhaps it is
taken into an important meeting and displayed on a screen there, or
many other things...) may lead to it being considered (an
Instantiation of) a Record in its own right.

That RiC embraces and is able to express the fact that context is very
dynamic, specifically that ontological judgements may not be the same
at different points in time, is one of its novelties :-).

In particular, I agree with you that at the present point in time, it
could make sense as you do to model the copies of the portraits as
Instantiations of the original Record (painting). Later on, the copies
might well be considered Records, this being foreseen in the idea of
considering them SFTs (i.e. they might become non-fungible); in that
case, relations like 'hasCopy' obviously become relevant.

There is a separate question here, though, which I touched upon in my
earlier reply, to do with whether we distinguish the NFT/SFTs from the
actual paintings/copies. As above, I think your modelling makes sense
if we kind of ignore the NFT/SFT aspect, and just think in terms of
painting and copies, i.e. we equate the NFT and SFTs with the actual
painting and copies respectively. I do think that this could be
potentially confusing, though. If one does take this perspective, I
think I myself would at least use rico:Proxy for the NFT, to
distinguish it from the actual painting which the State Archives hold.

A different perspective, which was the one I had in mind in my first
reply, is to consider the SFTs records of ownership of a copy of the
original painting. In such a model, one need not have an NFT
explicitly involved in the modelling at all, and instead simply regard
the SFTs as instantiations of the original Record (painting), which
again might later become Records (and be regarded as NFTs) in their
own right.

If one does wish to have an NFT explicitly involved to kind of
'represent the painting in the metaverse', then I agree that it could
make sense to consider it a Record, but I would be very clear then to
include 'rico:isCopyOf' to point back to the original painting, and,
to try to make clear what is going on, probably include either some
Activity (like 'copying into the metaverse'), or at least some
free-text description in rico:history or rico:scopeAndContent or
similar to express the same. But one could also consider the NFT at
this point in time simply as an Instantiation of the original painting
(the SFTs being derived from it by copying). Or again, which was the
kind of thing I had in mind in my first reply, one could consider the
NFT a record of the ownership of the painting in the metaverse (or in
principle of the actual painting), but then, as I wrote originally, I
feel it would not make sense to consider the SFTs (if regarded as
records of ownership of the copies) to be derived from the NFT by
copying.

In summary, I think your modelling certainly can be regarded as very
accurate at this point in time if the NFT is regarded as a Record
'representing a painting in the metaverse' and the SFTs are regarded
as copies of that metaverse incarnation of the painting; but if it
were for me, I'd then try in addition to make very clear, in one of
the ways I suggested, the relationship between the NFT and the
original :-). But at the same time, I feel that there are a number of
other possible perspectives and modelling options, which others might
choose if looking at the same kind of example!

Thanks again for the thought-provoking example and nice modelling!

Best wishes,
Richard
> To view this discussion visit https://groups.google.com/d/msgid/Records_in_Contexts_users/4f2eae04-6c67-4281-998d-d1f88f88f636n%40googlegroups.com.

Arian Rajh

unread,
Oct 13, 2025, 4:04:37 PM (5 days ago) Oct 13
to Records_in_Contexts_users

Dear Richard,

Thank you very much for your most valuable insight. As you mentioned in paragraph 8, I do need rico:isCopyOf and rico:history or a similar property at the NFT level to link NFTs to their analogue photographs. I will add this property. The good thing is that its domain and range are broad enough (both are record resources). The modelling will include: original photographs (referenced through rico:isCopyOf properties), the "Known Unknowns" collection of NFTs as a RecordSet (which I am describing), NFTs included in the Known Unknowns collection (each modelled as a Record), and their SFTs (Instantiations).

Because I do not have enough information about the analogue Ulčnik collection, I have focused my description on the Known Unknowns collection of NFTs (a sub-RecordSet of the Ulčnik RecordSet). I will add rico:isCopyOf to link a particular NFT to the original photograph (I have metadata to do this; for example, for https://opensea.io/item/ethereum/0x495f947276749ce646f68ac8c248420045cb7b5e/58115754737178457571273725405044055913366631526444276150572858215537926209546, I have an identifier for the original photograph, "HR-DAZG-857-41"). However, I would state this NFT as a record. By doing so, I have turned what would normally be an instantiation (digitised copy of an analogue photograph) into a record (an NFT that persists as a record in the metaverse or on OpenSea, since the existence of analogue records is not possible there). If this is not conceptually wrong, I would proceed in this way for this example.

At the same time, as you stated, this case could be modelled in more than one way: for example, the analogue Ulčnik collection as a RecordSet; selected photographs from that collection as Records; minted NFTs as Instantiations of analogue photographs; SFTs as Instantiations of Instantiations (copies of copies).

Thank you for your great ideas. I am adding rico:isCopyOf and rico:history to provide the context.

 

Kind regards,

Arian

Arian Rajh

unread,
Oct 13, 2025, 5:02:33 PM (5 days ago) Oct 13
to Records_in_Contexts_users
Dear Richard, one last detail: analogue pictures have identifiers, but their descriptions do not have URIs. Therefore, I am limited to using literals. I mention this because rico:isCopyOf requires instances of the RecordResource class modelled as objects. Should I use rico:history and describe in these cases that a particular NFT is a copy of an analogue photo in the form of a literal (literal in the range)?

Richard Williamson

unread,
Oct 15, 2025, 6:54:11 PM (3 days ago) Oct 15
to Records_in_C...@googlegroups.com
Dear Arian,

I am glad if the suggestions were helpful :-)!

It is definitely not conceptually wrong to 'turn an Instantiation into
a Record' in the manner you suggest, this is indeed foreseen and
encouraged where it makes sense :-).

Regarding descriptions not having IRIs, good question! Just using
rico:history is definitely one option, but if you do wish to have an
actual Record to work with, you could introduce one either as a blank
node or with an IRI within your own namespace, and use say
rdfs:isDefinedBy to refer to the identifier HR-DAZG-857-41. Then if an
IRI was introduced for the actual original Record at some later point,
you could use owl:sameAs to identify your home-made Record with the
canonical one. Probably this approach would work best if you do not
equip your home-made Record with any RiC properties, the idea being
that this would be the domain of the State Archives, since use of
owl:sameAs would entail that any properties 'transfer' over in both
directions (of course one might be interested in making one's own
descriptions of somebody else's resource without 'stepping on their
toes', but this is a bit of a separate issue which goes a bit further
than what we are discussing here!). But you could use say
skos:scopeNote to explain that you introduce the Record as a
'placeholder' for the missing canonical entity.

There are probably a few possible variations on this kind of pattern,
e.g. if you use a blank node, you could get away without 'owl:sameAs'
and just literally replace the blank node with the canonical IRI if
one arrived.

Hope this goes some way to answering your question!

Best wishes,
Richard
> To view this discussion visit https://groups.google.com/d/msgid/Records_in_Contexts_users/5aaaf1f5-fe1a-4204-86c0-6c167959403fn%40googlegroups.com.

Arian Rajh

unread,
Oct 16, 2025, 4:48:33 AM (2 days ago) Oct 16
to Records_in_Contexts_users
Dear Richard,

An elegant solution! As you advised, I added the skos prefix at the beginning of the ttl file, included the rico:isCopyOf object property at the NFT level, introduced the analogue record as a blank node (with rdfs:isDefinedBy, and skos:scopeNote), and retained rico:history. 
This is also an excellent general approach for handling cases where a record does not exist as a linked data subject or object.

Thank you once again,
Arian

Richard Williamson

unread,
Oct 17, 2025, 5:57:06 AM (yesterday) Oct 17
to Records_in_C...@googlegroups.com
Reply all
Reply to author
Forward
0 new messages