AW: vCard Ontology MD questions

Hi Renato,

I assume vcard:Organization is equivalent to org:Organization. But the organization itself might not have an address or contact but the site(s).

> How does this match your use case:
> 
> <vcard:Organization rdf:about="http://example.com/AcmeInc">
>         <vcard:fn>Acme Inc</vcard:fn>
>         <vcard:hasTelephone rdf:resource="tel:+61755555555"/>
>         <vcard:hasEmail rdf:resource="mailto:acme@example.com"/>
>         <vcard:hasAddress rdf:parseType="Resource">
>             ....
>         </vcard:hasAddress>
>         <vcard:hasRelated
> rdf:resource="http://example.com/AcmeInc/WanChai"/>
> </vcard:Organization>
> 
> <vcard:Location rdf:about="http://example.com/AcmeInc/Branch">
>         <vcard:fn>Acme Inc - Wan Chai Branch</vcard:fn>
>         <vcard:hasTelephone rdf:resource="tel:+852755555555"/>
>         <vcard:hasEmail rdf:resource="mailto:acme-wanchai@example.com"/>
>         <rdf:type rdf:resource="http://www.w3.org/2006/vcard/ns#Contact"/>
>         <rdf:type rdf:resource="http://www.w3.org/2006/vcard/ns#Work"/>
> </vcard:Location>

In your example the AcmeInc/Branch is of type Location, Contact and Work. I might add an address to the location. But there is still the problem of different roles for telephone numbers and email addresses which can not be distinguished.

It would rather do it this way:

<vcard:Organization rdf:about="http://example.com/AcmeInc">
    <vcard:fn>Acme Inc</vcard:fn>
    <vcard:hasAddress rdf:parseType="Resource">
        <rdf:type rdf:resource="http://www.w3.org/2006/vcard/ns#Address"/>
        ...
        <vcard:hasRelated>
            <vcard:Location rdf:about="geo:8.38339,48.22349"/>
        </vcard:hasRelated>
        <vcard:hasRelated rdf:resource="http://example.com/AcmeInc/Contact1"/>
        <vcard:hasRelated rdf:resource="http://example.com/AcmeInc/Contact2"/>
    </vcard:hasAddress>
    <vcard:hasContact>
        <vcard:Contact rdf:about="http://example.com/AcmeInc/Contact1">
            <vcard:role>Role1</vcard:role>
            <vcard:hasTelephone rdf:resource="tel:+852755555555"/>
            <vcard:hasEmail rdf:resource="mailto:acme-wanchai@example.com"/>
        </vcard:Contact>
    </vcard:hasContact>
    <vcard:hasContact>
        <vcard:Contact rdf:about="http://example.com/AcmeInc/Contact2">
            <vcard:role>Role2</vcard:role>
            <vcard:hasTelephone rdf:resource="tel:+8527555555556"/>
            <vcard:hasEmail rdf:resource="mailto:acme-wanchai@example.com"/>
        </vcard:Contact>
    </vcard:hasContact>
</vcard:Organization>  

This way addresses, contacts and locations could be related. But a vcard:hasContact property is still necessary. Actually a vcard:hasLocation property would also be useful, because it is not as vague as to say

$SiteOrOrganization vcard:hasRelated $Location

Then the whole picture would be

Organization
   hasAddress   Address
                    hasRelated Contact and/or Location
   hasContact   Contact
                    hasRelated Address and/or Location
   hasLocation  Location
                    hasRelated Address and/or Contact

Our address database would definitely be a use case for this. What do you think?

Cheers,

Carsten

Received on Friday, 25 October 2013 11:54:04 UTC