DDMAL / linkedmusic-datalake

To create mapping strategies for various music databases into our data lake
https://virtuoso.staging.simssa.ca
0 stars 4 forks source link

Look into how to use rdf:List. #142

Closed candlecao closed 3 months ago

candlecao commented 3 months ago
candlecao commented 3 months ago

Findings:

In RDF, rdf:List (or simply RDF List) is used to represent an ordered collection of items.(We can ask GPT: "How to use rdf:list?")

So I don't think it's suitable for the case of alias for tunes, unless there is precedence for a group of aliases for a tune.

In addition, for the case of aliases, what you want to refer to may be rdf:Bag used in scenario where you need to represent a collection where the order of items does not matter, and it is important to allow for the possibility of duplicate items:

Considerations:

candlecao commented 3 months ago
  • I will see can this be used to deal with the occasion where "many to many" relation occurs instead of using named graph or blank nodes.

-- This can not be used to deal directly with the occasion where "many to many" relation occurs...

fujinaga commented 3 months ago

Findings:

In RDF, rdf:List (or simply RDF List) is used to represent an ordered collection of items.(We can ask GPT: "How to use rdf:list?")

So I don't think it's suitable for the case of alias for tunes, unless there is precedence for a group of aliases for a tune.

What are "the case of alias for tunes"? I thought we are dealing with list of tunes in an album or a playlist. Ask ChatGPT: "What are some of the ways of representing sets of playlists with RDF, where each playlist have a sequential list of songs and some songs appear in several playlists. Assume each song has an URI."

candlecao commented 3 months ago

Findings:

In RDF, rdf:List (or simply RDF List) is used to represent an ordered collection of items.(We can ask GPT: "How to use rdf:list?")

So I don't think it's suitable for the case of alias for tunes, unless there is precedence for a group of aliases for a tune.

What are "the case of alias for tunes"? I thought we are dealing with list of tunes in an album or a playlist. Ask ChatGPT: "What are some of the ways of representing sets of playlists with RDF, where each playlist have a sequential list of songs and some songs appear in several playlists. Assume each song has an URI."

Hi, Ich. "the case of alias for tunes"--Maybe I mis-memorized or otherwise...
It's OK, you are right by making an example of "playlist". I complete knew your meaning this time.

Let's see a tune_set: https://thesession.org/members/1/sets/1

tuneset_id | username | name | tune_id | setting_id | type | type_wiki -- | -- | -- | -- | -- | -- | -- https://thesession.org/members/1/sets/1 | Jeremy | Tarbolton, The | https://thesession.org/tunes/560 | 560 | reel | https://www.wikidata.org/wiki/Q118120 https://thesession.org/members/1/sets/1 | Jeremy | Longford Collector, The | https://thesession.org/tunes/563 | 563 | reel | https://www.wikidata.org/wiki/Q118120 https://thesession.org/members/1/sets/1 | Jeremy | Sailor's Bonnet, The | https://thesession.org/tunes/570 | 24958 | reel | https://www.wikidata.org/wiki/Q118120

It contains 3 tunes. Yes. The sequence probably counts. Thank you for pointing this out!

candlecao commented 3 months ago

So, in order to render a sequential group of property values, we write RDF like this corresponding to the example above:

<https://thesession.org/members/1/sets/1> <https://thesession.org/tunes> (
      <https://thesession.org/tunes/560>
      <https://thesession.org/tunes/563>
      <https://thesession.org/tunes/570>
) .

@Yueqiao12Zhang Hi, please notice this too.

candlecao commented 3 months ago

So for our current method of CSV2RDF into Virtuoso, it's very important to analyze the data type, redundancy, cardinality constraint ... of the dumped raw CSVs, which is almost about schema of RDB.
Next round, when we are doing with CantusDB, SimssaDB... we can have the schema to check beforehand.

fujinaga commented 3 months ago

Did you ask ChatGPT: "What are some of the ways of representing sets of playlists with RDF, where each playlist have a sequential list of songs and some songs appear in several playlists. Assume each song has an URI." Which solution do you think we should use?

candlecao commented 3 months ago

Yes, I asked and got its reply. Based on that, I am quite confident that the best method is to use the format as:

<https://thesession.org/members/1/sets/1> <https://thesession.org/tunes> (<https://thesession.org/tunes/560> <https://thesession.org/tunes/563> <https://thesession.org/tunes/570>) .

@Yueqiao12Zhang