- From: Simon Spero <sesuncedu@gmail.com>
- Date: Wed, 4 Jun 2014 17:35:50 -0400
- To: Andreas Kuckartz <a.kuckartz@ping.de>
- Cc: semantic-web <semantic-web@w3.org>
- Message-ID: <CADE8KM6pg=HCD+Kfeq0qthoEDdw0YHc-rTcpJtw4+=NDHywNaQ@mail.gmail.com>
On Wed, Jun 4, 2014 at 10:25 AM, Andreas Kuckartz <a.kuckartz@ping.de> wrote: > The vCard Ontology uses a class hierarchy to formulate gender > values (vcard:Female, vcard:Male, vcard:None, vcard:Other and vcard:Unknown > as subclasses of vcard:Gender). > > That is unusual and not really usable. > > Why is no skos:ConceptScheme with skos:Concept resources used for > that purpose? > It's not unprecedented to model genders as a classes; the extension of a class being everything that is of that gender. Within the domain of vcard, this corresponds to humans (hence no vegetable or numeric genders), and would seem to be restricted to gender of identification. This approach can have several advantages; for example, one could define Cis and Trans as subclasses of Gender, with CisMale ≣ (Cis and Male) being automatically classified appropriately. People would be instances of a Gender... except... that's not what is being done here: There is an objectProperty "hasGender", with no specified domain or range. There is text on the HTML page (§2.3) that states that hasGender "[s]hould only apply to Individual. See Gender Codes in Section 2.11.". The ontology itself, merely states that "To specify the sex or gender identity of the object. URIs are recommended to enable interoperable sex and gender codes to be used." Representing the missing domain statement is easy; appropriately restricting the range is somewhat more difficult. All of the sub-classes of Gender are classes, not Genders. In a system like CycL, you could tersely state that an argument of a property had to be a subclass of specified class, but OWL does not provide such a feature. In OWL 2 Full one could build a restriction expressing this constraint, but you would probably not want to. Under OWL 2 DL, it is perfectly ok to use the IRI of a class as a named individual; however, this "punning" does not stop you from using any other IRI as the value of hasGender (e.g. :fred vcard:hasGender vcard:Fax. is perfectly legal). If one wanted to make the range of vcard:hasGender be vcard:Gender, then the values need to instances of the class. An easy way to do this is to make the subclasses of vcard:Gender be instances of vcard:Gender. If vcard:Gender is intended is not intended to be a hierarchy, then the subclass relationships and membership of owl:Class can be removed from various Genders. If the class of genders is supposed to be an enumeration, then vcard:Gender can be declared as a disjoint union; a semi open list could be supported by an additional property, with a hasGender value of Other being inferred. [Also, vcard:hasURL a owl:ObjectProperty ??? This should be an owl:DataProperty with range xsd:anyURI . ]
Received on Wednesday, 4 June 2014 21:36:18 UTC