- From: Harshvardhan J. Pandit <me@harshp.com>
- Date: Thu, 31 Mar 2022 00:41:32 +0100
- To: besteves@delicias.dia.fi.upm.es, public-dpvcg@w3.org
Hi. In your example, you have two separate notations for address i.e. the address itself expressed as an instance of PhysicalAddress and the address' location expressed as an instance of Location. Is this a requirement? If not, PhysicalAddress can be used as a type of Location. It isn't modelled as such in DPV-PD, and maybe it should be, but either way its use isn't prevented in the example. How you express the specifics of an address will vary across use-cases. For example, it can be a single string representing the entire address (as printed on a post card). In a recent use-case, I used this approach by using dpv:hasAddress (xsd:string) and dpv:hasCountry (xsd:string) as this was sufficient. Or if having granularity (as instances) is a requirement, then it can be broken down into components as in your example. Though, I don't think DPV-PD has all the required concepts for this. With VCard, if you're using a lot of such addresses, rather than duplicating the DPV concepts within instances every time, you could create a mapping between DPV and VCard. For example, expressing dpv-pd:PhysicalAddress is a subclass of vcard:Address. However, the property range of vcard:street-address is xsd:string, which is not what your example uses. So if you're redefining the ranges, you can also set it to dpv-pd:Street and use vcard:street-address as you do. Hope this helps. Regards, Harsh On 30/03/2022 12:13, besteves@delicias.dia.fi.upm.es wrote: > Hi all, > > I was recently given a challenge to represent the data of personal > addresses using DPV-PD. Has anyone done it? > > Under dpv-pd:Contact we have dpv-pd:EmailAddress, dpv-pd:PhysicalAddress > and dpv-pd:TelephoneNumber and under dpv-pd:Location we have > dpv-pd:Country, dpv-pd:GPSCoordinate and dpv-pd:RoomNumber. > > Let's say that we want to model a person with 2 addresses - a primary > residence and a vacation one. Probably under dpv-pd:Location we could > also add at least Street, Locality and PostalCode. > > I started modeling it as follows: > > @prefix dpv: <https://www.w3id.org/dpv#> . > > @prefix dpv-pd: <https://www.w3id.org/dpv/dpv-pd> . > > @prefix v: <http://www.w3.org/2006/vcard/ns#> . > > @prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> . > > > :beatriz dpv:hasAddress :primaryAddress, :vacationAddress . > > :primary-address a dpv-pd:PhysicalAddress ; > > dpv:hasLocation :primaryAddressLocation . > > :primaryAddressLocation a dpv-pd:Location ; > > v:street-address [ > > a dpv-pd:Street ; > > rdfs:label "Calle A" > > ] ; > > v:postal-code [ > > a dpv-pd:PostalCode ; > > rdfs:label "28500" > > ] ; > > v:locality [ > > a dpv-pd:Locality ; > > rdfs:label "Madrid" > > ] ; > > v:country-name [ > > a dpv-pd:Country ; > > rdfs:label "Spain" > > ] . > > And then do something similar for :vacationAddress. > > Are there any suggestions on how to approach this problem? > > Best, > > Beatriz > -- --- Harshvardhan J. Pandit, Ph.D Research Fellow ADAPT Centre, Trinity College Dublin https://harshp.com/
Received on Wednesday, 30 March 2022 23:41:51 UTC