- From: Martynas Jusevičius <martynas@atomgraph.com>
- Date: Thu, 10 Jun 2021 12:20:33 +0200
- To: mail@frensjan.nl
- Cc: semantic-web@w3.org
- Message-ID: <CAE35VmwaBx6Oy8NnDD43_G0wdWARbWFyn=m3McHac=nD5Hb1xg@mail.gmail.com>
Why is the list syntax ( ) not satisfactofy? On Thu, 10 Jun 2021 at 12.07, Rumph, Frens Jan <mail@frensjan.nl> wrote: > Dear readers, > > I am investigating transitioning an application to use RDF. One roadblock > is how this application models names of persons. It supports > straight-forward full names as a single string, but also supports > decomposed names, e.g. person X has given name *Frens* followed by a second > given name *Jan* followed by the family name *Rumph*. > > Note that this is a crosspost of > https://stackoverflow.com/questions/65982459/rdf-modelling-of-list-of-name-elements > <https://stackoverflow..com/questions/65982459/rdf-modelling-of-list-of-name-elements>. > I hope to get some more > > The data structure is something like: > > ```java > enum Role { > ... > GIVEN_NAME, > FAMILY_NAME, > ... > } > > record NameElement(role: Role, value: String) {} > > record AnnotatedName(NameElement... elements) {} > ``` > > in order to be instantiated like: > > ```java > var name = new AnnotatedName( > new NameElement(GIVEN_NAME, "Frens"), > new NameElement(GIVEN_NAME, "Jan"), > new NameElement(FAMILY_NAME, "de Vries") > ); > ``` > > This allows reconstruction of the name into a string while at the same > time expressing the components of the name. So it captures the roles of the > elements of a name (e.g. given names, family names) *as well as* their > order (given names aren't first everywhere). Also, it allows expressing > multiple names. E.g. in multiple languages / scripts. Or even aliases used > in different areas of the world. > > I have toyed around with some RDF constructs, but none are really > satisfactory: > > ```turtle > # list of strings misusing data types as tags > :frens :name ( "Frens"^^:givenName "Jan"^^:givenName "de > Vries"^^:familyName ) . > > # list of blank nodes > :frens :name ( [ :givenName "Frens" ] > [ :givenName "Jan" ] > [ :familyName "de Vries" ] ) . > > # single blank node with unordered 'elements' > :frens :name [ a :AnnotatedPersonName ; > :fullName "Frens Jan de Vries" ; > :givenName "Frens" ; > :givenName "Jan" ; > :familyName "de Vries" ] . > ``` > > --- > > **Existing ontologies for HD names?** > Is there an existing ontology that covers such 'high fidelity'? FOAF and > vcard have some relevant properties, but aren't able to capture this level > of semantics. > > **Lists?** One major 'blocker' in migrating this approach to RDF is the > notion of order that is used. If at all possible, I'd like to stay away > from the List / Container swamp in RDF land ... > > I'd be grateful for any thoughts on the matter! > > Best regards, > Frens Jan >
Received on Thursday, 10 June 2021 10:22:06 UTC