[rdfweb-dev] languages

James Carlyle james.carlyle at takepart.com
Wed Jul 30 10:59:05 UTC 2003


Graham

> One alternative approach I toyed with, but I'm not sure if there's any
real
> advantage, was to treat the language as an RDF *class* rather than a
> language *property*.  One might have a generic "attribute" property, with
> the fact of being a language attribute being encoded by the type of the
> property; e.g.
>
>     <foaf:attribute>
>       <rdf:Language>
>         <foaf:langTag>en</foaf:langTag>
>         <foaf:langUsage>occasional</foaf:langUsage>
>       </rdf:Language>
>     </foaf:attribute>
>
> I'm not seriously suggesting this last idea, just mentioning it as an
> illustration of alternative approaches that are possible.

When I first saw this post I immediately thought of language as a class, and
speaks as a property

In striping terms,

Person
    speaks
        Language  resource="some_uniform_identifier_for_languages_english"
    speaks
        Language  resource="some_uniform_identifier_for_languages_japanese"

This maps to "knows" and "Person"

Person
    knows
        Person
    knows
        Person

If the degree of fluency is required,

a) the speaks property can be further qualified (reified)

Person
    speaks ID="_1"
        Language  resource="some_uniform_identifier_for_languages_english"
_1
    fluency    "basic"

b) or just as with the "knows" property, the speaks property could be
subclassed to speaksBasic and speaksFluent (simpler to grok)

Person
    speaksBasic
        Language  resource="some_uniform_identifier_for_languages_english"
    speaksFluent
        Language  resource="some_uniform_identifier_for_languages_japanese"

c) or the language class could be defined with a "level" literal property
(again, simple to grok)

Person
    speaks
        Language  resource="some_uniform_identifier_for_languages_english"
level="basic"

James




More information about the foaf-dev mailing list