- From: Richard Newman <rnewman@twinql.com>
- Date: Sat, 7 Feb 2009 10:34:26 -0800
- To: Jiri Prochazka <ojirio@gmail.com>
- Cc: "semantic-web@w3.org" <semantic-web@w3.org>
Jiri,
Stefano and I had a good conversation about this.
In a world where the RDF model is extended to allow meta-annotations
-- i.e., John says X at time Y on server Z... -- then something like
the tag ontology is completely unnecessary. Just say "x tag y" and let
the meta-metadata sort the rest out.
However, we cannot do that in RDF as standardized. As a result,
hundreds of domain ontologies are doomed to do exactly what the tag
ontology does: reify a domain object and place annotations on it. "RDF
reification" (the vocabulary for describing triples) is not a
solution, because it does not assert the reified statement. Named
graphs also don't do the trick: firstly it's not quite standard RDF,
but secondly you would sometimes need one graph per triple -- no good.
In AllegroGraph we experimented with first-class triples: a triple ID
can be used like any resource. I regard this with some skepticism,
because it's rather incompatible with SPARQL and RDF serialization
formats, and is fragile (e.g., breaking when you transfer the data
elsewhere).
In short: there is no good implementation-independent way to avoid
ontologies stuffed full of reification.
--
Sent from my iPhone.
On Feb 7, 2009, at 5:34, Jiri Prochazka <ojirio@gmail.com> wrote:
> Hi Richard,
>
> Richard Newman wrote:
>> Hi Jiri,
>>
>> As the author of that ontology, I am in the unique position of being
>> able to explain my modelling choices!
>>
>> I took that approach for two reasons:
>>
>> 1: precision. By creating my own term, I can define precisely what is
>> meant by (for example) "creation" -- is it the moment I choose to
>> add a
>> tag, or the time that tag reached some server? Another way of
>> phrasing
>> this is that coining a new property or class allows for "minimal
>> enforced ambiguity".
>
> You've got a point there, I agree vocabularies should define their
> terms
> but also link (use sub-class, sub-property) to other (more general)
> vocabularies. Current weak deployment of inferencing should not affect
> the design of data.
>
> However I think my original problem was about something else - Tagging
> is a property promoted to class... this is because you want to express
> more information about the relation between two objects, more than
> that
> it just exists.
> Now, what if someone wanted to promote for example foaf:knows to a
> class, adding information about when the people got the know each
> other?
> That is quite realistic... or how long they know each other...
> He could promote foaf:knows to class ("Knowing"? :), but that would
> make
> chaos in current data which use normal property foaf:knows...
> The problem is, that in RDF individual uses of properties (ie triples)
> cannot be identified (by default).
> There are named graphs and reification, but they seem too ugly to me.
> Is there any elegant way to solve this? How to do relation description
> in RDF properly?
>
> Best regards,
> Jiri
>
> (forgot to CC to semantic-web@w3.org)
>
>>
>> 2: a related point: by deliberately using a new term, it can be
>> specifically and accurately related to other terms in other
>> ontologies
>> -- e.g., my taggedOn might be an equivalentProperty to John Smith's
>> tagdate, and a subproperty of a generic date property. Under
>> inference,
>> all desired knowledge is apparent, without being corralled into a
>> not-quite-compatible ontological framework.
>>
>> The expense of reasoning is a slight discouragement to this approach,
>> but I think in general it stands up.
>>
>> HTH,
>> -Richard
>>
>>
>> --
>> Sent from my iPhone.
>>
>> On Feb 6, 2009, at 15:24, Jiri Prochazka <ojirio@gmail.com> wrote:
>>
>>> Hi,
>>> I am sure I am not the first one to notice, but I think there is a
>>> problem with determining scope when designing a RDF vocabulary.
>>> Reuse of
>>> well designed, loosely coupled, high cohesion, more general
>>> vocabularies
>>> versus domain specific vocabularies.
>>>
>>> Typical example is date of creation. I am writing this largely
>>> thanks to
>>> this vocabulary: http://www.holygoat.co.uk/projects/tags/
>>> It defines class Tagging, which uses properties taggedBy and
>>> taggedOn.
>>> This is the domain specific approach. The example is:
>>> <http://example.com/blog/post/1> :tag
>>> [ a :Tagging ;
>>> :associatedTag tag:blog, tag:chimpanzee ;
>>> :taggedBy <http://example.com/People/Jim> ;
>>> :taggedOn "2005-03-29T15:24:10Z"^^xsd:date ] .
>>> tag:blog :tagName "blog" .
>>> tag:chimpanzee :tagName "chimpanzee" .
>>>
>>> But as another alternative I imagine:
>>> { <http://example.com/blog/post/1> :tag tag:blog, tag:chimpanzee . }
>>> time_vocab:createdOn "2005-03-29T15:24:10Z"^^xsd:date ;
>>> author_vocab:author <http://example.com/People/Jim> .
>>> tag:blog :tagName "blog" .
>>> tag:chimpanzee :tagName "chimpanzee" .
>>>
>>> Where time_vocab and author_vocab talk about RDF resources (graphs
>>> in
>>> fact) and could be defined in just one RDF resource description
>>> vocabulary instead of two.
>>> Or another alternative in which time_vocab:createdOn and
>>> author_vocab:author have domain rdfs:Class:
>>> <http://example.com/blog/post/1> :tag tag:blog, tag:chimpanzee ;
>>> time_vocab:createdOn "2005-03-29T15:24:10Z"^^xsd:date ;
>>> author_vocab:author <http://example.com/People/Jim> .
>>> tag:blog :tagName "blog" .
>>> tag:chimpanzee :tagName "chimpanzee" .
>>>
>>> Which of this approaches is recommended and why?
>>>
>>> I tend to agree more with the more general vocabulary approach.
>>> Like you
>>> should ask yourself when designing RDF properties "Shouldn't the
>>> domain/range of it be some parent class? If yes, does the property
>>> fit
>>> the scope of this vocabulary? Shouldn't it be in some more general
>>> one?", focusing on reuse rather than rely on later linking of
>>> vocabularies.
>>>
>>> If there were any past discussions on this topic, what were the
>>> results
>>> of it?
>>> Is there any vocabulary for rating resources in terms of
>>> authenticity
>>> (trust) and agreement (truthfulness)? Vocabulary(ies) covering other
>>> resource description aspects would be helpful too... (POWDER is so
>>> cumbersome)
>>>
>>> Best regards,
>>> Jiri
>>>
>
>
> <signature.asc>
Received on Saturday, 7 February 2009 18:35:10 UTC