Skip to content

TTL version of the vocabulary needs improvement #84

@reckart

Description

@reckart

It seems to me as if the TTL version (or maybe all LD versions) of the LAPPS vocabulary could use some refactoring.

My understanding is that these should represent a schema (based on OWL and/or RDFS). As such, the LAPPS types would be classes (rdfs:class or owl:class) and their attributes should be properties (rdfs:Property, owl:DatatypeProperty or owl:ObjectProperty).

Let's take http://vocab.lappsgrid.org/Token as an example. The current TTL file says:

<http://vocab.lappsgrid.org/Token>
        a                owl:Class , rdfs:Class , rdfs:Resource ;
        rdfs:comment     "A string of one or more characters that serves as an indivisible unit for the purposes of morpho-syntactic labeling (part of speech tagging)." ;
        rdfs:subClassOf  <http://vocab.lappsgrid.org/Region> , <http://vocab.lappsgrid.org/Token> , <http://vocab.lappsgrid.org/Annotation> , <http://vocab.lappsgrid.org/Thing> ;
       <http://vocab.lappsgrid.org/Token#pos>
                "String or URI" .

<http://vocab.lappsgrid.org/Token#pos>
        a             owl:DatatypeProperty ;
        rdfs:comment  "Part-of-speech tag associated with the token." .

The inheritance information is highly redundant. The triple <http://vocab.lappsgrid.org/Token> <http://vocab.lappsgrid.org/Token#pos> "String or URI" does not express in RDFS or OWL that Token has an attribute called pos which can take a String or URI.

I believe a better representation would be e.g.

<http://vocab.lappsgrid.org/Token>
        a                owl:Class ;
        rdfs:comment     "A string of one or more characters that serves as an indivisible unit for the purposes of morpho-syntactic labeling (part of speech tagging)." ;
        rdfs:subClassOf  <http://vocab.lappsgrid.org/Region> ;

<http://vocab.lappsgrid.org/Token#pos>
        a             owl:DatatypeProperty ;
        rdfs:comment  "Part-of-speech tag associated with the token." ;
        rdfs:domain <http://vocab.lappsgrid.org/Token> ;
        rdfs:range xsd:string .

I removed the (inferred) redundant information from the a and rdfs:cubClassOf statements and rendered the value type information as rdfs:range.

However, there is still a little problem here: it does not express that the range can be a "String or URI" - specifying multiple types as range indicates an intersection of the types (which would be empty in this case), not a disjunction. That is why I only put the "more generic" type xsd:stringhere.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions