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