Re: Modeling personal addresses with DPV

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