Re: How to find a proper ontology for my classes and properties?

On 10/31/2010 7:19 PM, Enrico Motta wrote:
> At 23:22 -0400 30/10/10, Lee Feigenbaum wrote:
>> On 10/30/2010 10:40 AM, Juriy Katkov wrote:
>>> Hello everyone!
>>> I have 2 questions about rdf data.
>>>
>>> 1. Suppose I started describing something in triples and I want to use a
>>> property 'hasOwner'. I understand that it's much better to use this
>>> property from one of the existing ontologies rather than use property
>>> from my own namespace.
>>> The question is: what is the easyest and the most right way to search
>>> for this property? I know, there is Swoogle and sometimes it helps me
>>> with that. I wonder if there is something better that fulltext search.
>>
>> There've been some great suggestions on this thread, but allow me to
>> offer the viewpoint that in many cases trying to find a predicate to
>> reuse is not worth the effort.
>>
>> The main goal of reuse is to allow your data to be consumed by
>> software tools that already know how to interpret an existing
>> vocabulary. If that's the case for your domain then great, it makes a
>> lot of sense to reuse the predicate. If that's not the case, or if you
>> don't know if it's the case and you find an arbitrary predicate that
>> seems to convey the meaning you're looking for, then I don't think
>> there's much point in reusing vocabulary. I'd rather save the time
>> searching, mint my own property, and get on with whatever I'm working on.
>>
>> Down the road if I see (or am told of) an application consuming
>> similar SW data using a different predicate, I can always update my
>> data then and still reap the benefits of reuse. Updating my data could
>> be as simple as adding rdfs:subPropertyOf or owl:equivalentProperty
>> relations, or--if in a reasonerless world--using a straightforward
>> SPARQL Update statement to augment your data.
>>
>> Reuse is great but, like code optimizations, it's often not necessary
>> upfront. It can be added later on once the real value of the reuse is
>> understood. And if you never see the value of reuse, then your data
>> and/or applications can flourish with the predicate that you minted
>> for yourself, and you saved yourself the time otherwise spent
>> searching in the first place.
>
>
> Uhm...this is certainly true for the simple scenarios, but certainly not
> in general. Of course, if I just have data about people and dogs and I
> simply want to link them with a property 'hasOwner', it is unlikely I am
> going to lose much by defining my own property and then worrying later
> about interoperability with other repositories. But if your model is a
> bit more complex and you have to handle any of the hundreds of modelling
> issues which people have been researching for the past 30 years (e.g.,
> agency, roles, meta-properties, time, space, part-of, etc. etc..), then
> it may be a good idea to dig out existing modelling solutions rather
> than trying to come up with your own solution, which will take far more
> time and will likely be sub-optimal.

Sure - but these are two qualitatively different questions, and it 
seemed to me that the OP was asking about simple vocabulary reuse.

Just as it's rarely a good idea to write software libraries from scratch 
rather than reuse existing, tried and true code libraries, complex 
models should also be sought out and reused. I don't think the ontology 
search engines are a great way to go about that though. I'd almost never 
recommend that someone perform a "foobar filetype:java" google search to 
find a Java library to reuse dealing with foobar, as I'm likely to have 
a great deal of difficulty telling the wheat from the chaff. If I'm 
looking for a solution for a complex modeling challenge, using an 
arbitrary ontology that matches a search term like "role" or "event" or 
"units" or what-not seems as likely to be a bad idea as rolling my own. 
(Perhaps even a worse idea, because my sub-par home-rolled solution is 
more likely to at least address my immediate use cases in a reasonable 
fashion.)

That said, sites like http://ontologydesignpatterns.org/ are a 
tremendous value for this sort of search, and it'd be great if we had 
more actively evolving resources of this sort.

> You can do this by browsing repositories such as
> http://ontologydesignpatterns.org/ or, as folks have already pointed
> out, by using any of the various ontology search engines, such as
> swoogle, falcon, sindice, watson, etc.. And because at least some of
> these are integrated with ontology editors (e.g., there is a
> watson-based plugin for the neon toolkit - see
> http://neon-toolkit.org/wiki/Watson_for_Knowledge_Reuse), you can very
> quickly search for relevant properties (or classes or individuals) and
> then quickly add any useful results from your search to the ontology you
> are developing.

Right, but there's an awful lot of subtlty and effort hidden in that 
word "useful" in that last sentence -- it's often near impossible to 
tell which results are useful and which are not!

Lee

> Enrico
>
>
>
>> Lee
>>
>>>
>>> 2. Suppose I face the dataset I never use before. What do you usually do
>>> first to get a first impression about the dataset? At the moment I first
>>> make some SPARQL queries to this dataset, such as:
>>> select COUNT(?x) WHERE
>>> {
>>> ?x a ?z .
>>> }
>>>
>>> than I use Marbles or Sig.ma to surf randomly over this data and finally
>>> I come up with a opinion where I need data from the dataset or not.
>>> Again, what do you usually do? Is there a tools or useful queries that
>>> can help Semantic Web user in browsing data and getting useful info
>>> about datasets?
>>>
>>> Thank you in advance!
>>>
>>> Yury Katkov
>>
>>
>> --
>> The Open University is incorporated by Royal Charter (RC 000391), an
>> exempt charity in England & Wales and a charity registered in Scotland
>> (SC 038302).
>
>

Received on Monday, 1 November 2010 13:05:56 UTC