Search Mailing List Archives


Limit search to: Subject & Body Subject Author
Sort by: Reverse Sort
Limit to: All This Week Last Week This Month Last Month
Select Date Range     through    

[protege-owl] Best approach for incorporating meta information

Nick Drummond nick.drummond at cs.manchester.ac.uk
Wed Feb 18 07:14:44 PST 2009


Simon,

> Btw. is there a replacement for forms (and widgets) in Protege 4? If so, where
> is meta information stored (Protege 3 uses .pprj files)?

Not currently. P4 does not focus on instance population so forms
generation has been a low-priority task.

> My intention now is that for OWL ontologies (or is it rather a P4 paradigm?)
> the practice of assigning these "anonymous identifiers" automatically is
> discouraged/not supported.

I would be careful calling them "anonymous identifiers" - all entities
in an ontology have a URI (well, IRI in OWL2).
In P4 you can decide how this URI is generated and whether you also
wish to give the entity annotated labels.
The options for controlling this are in the preferences under "New
entities" [1].
We definitely do not "discourage" using automatic IDs.

Nick

[1] http://protegewiki.stanford.edu/index.php/Protege4NamingAndRendering#Naming_of_new_entities


2009/2/18 Paradies, Simon <simon.paradies.ext at siemens.com>:
> Hi Timothy,
>
> Timothy Redmond <tredmond <at> stanford.edu> writes:
>>
>>
>> >
>> > First of all, thank you Alan and Timothy for fruitful suggestions.
>> > I think the meta ontology approach works best for me (since I do not
>> > need to
>> > add meta information to axioms and anonymous individuals). So my
>> > question is
>> > now how to accomplish this best using Protégé?
>>
>> Sorry - I am not sure which approach is the meta-ontology approach.
> I refer to the approach Alan suggested in response to my first question.
>
>> >>
>> >> To keep the bulk of the annotations separate the idea would be to
>> >> keep
>> >> them in a separate ontology that is imported into the main ontology.
>> >> If you want to "strip" the annotations, you don't do the import.
>> >
>> > As I wrote, I already tried using a meta ontology. The problem is
>> > that if I
>> > regularly import a meta ontology (as described in the Protégé how-
>> > tos), all
>> > (meta) individuals created per default get the namespace of the
>> > importing
>> > ontology.
>> > An example: Using
>> >
>> > Cls metaCls = widgetCls.getKnowledgeBase().getCls("http://www.example.org/
>> > myMetaOntology.owl#SomeAnnotationClass");
>> > Instance instance1 =
>> > widgetCls.getKnowledgeBase().createInstance(null, metaCls);
>> > or even
>> > Instance instance2 = metaCls.getKnowledgeBase().createInstance(null,
>> > metaCls);
>>
>> First of all, if you are using OWL you should favor the OWL calls.
>> The widgetCls in the above example is funny because it sounds a bit
>> like a class from the .pprj knowledge base.  I would suggest you avoid
>> this because such an approach will only work with Protege 3 and will
>> have no particular owl meaning.  This will make it more difficult for
>> you to explain what you are doing to others and will make it unlikely
>> that the work can be reused.
>
> In fact, the rationale for using legacy code is that I wanted to be able to
> deal with non-owl ontologies as well at first. As it seems difficult to account
> for other formats other than OWL as well and support for them is vanishing, I
> think it might be a good idea to focus on owl exclusively.
> Btw. is there a replacement for forms (and widgets) in Protege 4? If so, where
> is meta information stored (Protege 3 uses .pprj files)?
>
>>
>> Secondly, if you have a preference about the name that the owl
>> individual will get, then you should probably provide it.
>>
>> So I would suggest OWL calls.
>>
>>      OWLModel owlModel = ...;
>>      OWLNamedCls metaCls = ...;
>>
>>      OWLIndividual i = metaCls.createOWLIndividual("http://www.example.org/
> myMetaOntology.owl#
>> " + UUID.randomUUID());
>>
>> I used the java.util.UUID class because - while a bit verbose -  it is
>> the standard way of guaranteeing unique names.  If you want to avoid
>> the expense of calculating a UUID for each new individual, then you
>> can calculate one for the JVM session and prepend a counter to  it.
>> (This is what Protege 3 does to calculate the internal names of
>> anonymous individuals.
>
> Thanks for the pattern.
> It seems the paradigms concerning naming of entities between Protege 3 (P3)
> and Protege 4 (P4) are different and I'm a bit accustomed to the way P3 handles
> this. In P3, whenever a new entity is created, it is assigned a unique internal
> identifier (let's call it "anonymous identifier" ;). The user may provide a
> more meaningful identifier afterwards, whereas P4 requires the user to provide
> one immediately upon creation.
> My intention now is that for OWL ontologies (or is it rather a P4 paradigm?)
> the practice of assigning these "anonymous identifiers" automatically is
> discouraged/not supported. Can somebody shed light on this?
>
> Still, the question remains whether it is actually possible to manipulate
> imported owl files (e.g. for the purpose of storing instances into them) and
> how this can be accomplished using the API (P3).
>
> Thanks
> Simon
>
> _______________________________________________
> protege-owl mailing list
> protege-owl at lists.stanford.edu
> https://mailman.stanford.edu/mailman/listinfo/protege-owl
>
> Instructions for unsubscribing: http://protege.stanford.edu/doc/faq.html#01a.03
>



More information about the protege-owl mailing list