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-discussion] finding individuals in a Protege-Frames produced OWL file.

Thomas Russ tar at ISI.EDU
Sun Dec 30 16:52:46 PST 2007


On Dec 27, 2007, at 6:52 AM, esharris wrote:

>
> Given a Protégé-Frames produced OWL file, how do you find all the
> individuals?

You load the file into an OWL reasoning program and then ask for all  
the instances.

Trying to look at the generated XML encoded file and finding stuff  
there will lead to madness. ;)

You want to use something that understands the semantics of OWL, so  
unless you plan to write your own OWL reasoner, you should use one of  
the existing ones.


> I built a simple ontology in Protégé-Frames and exported the
> ontology as an OWL file. I assumed the instances/individuals would  
> be at the
> same level in the XML tree. However, I have an instance/individual  
> that has
> a slot/property that contains another instance/individual.
>
>   <Issue rdf:ID="newspapers_Instance_1">
>     <has_several_pages rdf:resource="#newspapers_Instance_3"/>
>     <has_several_pages>
>       <Page rdf:ID="newspapers_Instance_2">
>         <number rdf:datatype="http://www.w3.org/2001/XMLSchema#int"
>> 1</number>
>         <sequence rdf:datatype="http://www.w3.org/2001/XMLSchema#int"
>> 1</sequence>
>       </Page>
>     </has_several_pages>
>     <edition rdf:datatype="http://www.w3.org/2001/XMLSchema#string"
>> Morning</edition>
>     <date rdf:datatype="http://www.w3.org/2001/XMLSchema#string"
>> June 3, 1992</date>
>   </Issue>
>
> I’m surprised Protégé-Frames didn’t put an attribute in the 2nd
> has_several_pages node and put newspapers_Instance_2 at the same  
> level as
> newpapers_Instance_1.
>
> Ideally, do you have to walk the entire tree to look for  
> individuals? Or
> does the nesting only allowed one deep? And why nest?

1.  Because you can.  It is all legal XML/OWL.
2.  Because that's what Jena does, and Protege uses Jena.
3.  Maybe to avoid a need to have a multi-pass writing scheme?
4.  To make the XML more compact?
5.  ??

There may be other reasons for the design.  I don't actually have any  
inside information, so all of the above is pure speculation, but I  
suspect that ease of implementation (#3) is the most likely.  Well,  
that and #5.




More information about the protege-discussion mailing list