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] Ontology at w3c-validator == valid but at protege 3.4 == invalid?

Michael Lodemann milo at
Fri Oct 31 03:03:27 PDT 2008

Thomas Russ schrieb:
> On Oct 30, 2008, at 9:06 AM, Michael Lodemann wrote:
>> I stucked because of the open world assumption. As a newbie I am not  
>> able to model the situation correctly in order to fulfill my  
>> requirements.
>> Thomas Russ and others gave me a lot of good hints like this one:
>>>> The Road1 individual is defined to have as an additional type the
>>>> anonymous class defined by the restriction that all of the values  
>>>> for
>>>> the belongsTo property come from the enumerated set [of  
>>>> corresponding roadSections].
>> Unfortunately I wasn't able to implement the hints correctly. The  
>> most promising approach is the following:
>> <Road rdf:ID="r1">
>> <road_length rdf:datatype=" 
>> XMLSchema#int">200</road_length>
>> <rdf:type>
>>   <owl:Class>
>>     <owl:Restriction>
>>       <owl:allValuesFrum>
>>         <rdf:type>
>>           <owl:Class>
>>             <owl:oneOf rdf:parseType="Collection">
>>               <rdf:Description rdf:about="#rs11"/>
>>               <rdf:Description rdf:about="#rs12"/>
>>             </owl:oneOf>
>>           </owl:Class>
>>         </rdf:type>
>>       </owl:allValuesFrum>
>>     </owl:Restriction>
>>   </owl:Class>			   </rdf:type>
>> </Road>
>> It seems to be a valid construct, because the w3c-RDF-validator ( 
>> ) says so.
>> But opening the file in protege 3.4 Build 506 I receive an error  
>> message (attached) ... sth. like "Restriction not unique".
>> Can anyone help me to resolve this issue?
> I think you need to add the onProperty item as well.
> The official OWL/RDF specification is extremely flexible.  So  
> flexible, in fact, that you can create extremely distributed  
> descriptions.  So, for example, it is possible to define a Restriction  
> in one place, add the allValuesFrom restriction somewhere else, and  
> then add onProperty in a third place.  But that makes it really hard  
> to actually implement a system that works with it.
> So, try adding owl:onProperty for your belongsTo property.
Thanks again, Thomas, this was very helpful. But I have to add the 
owl:onProperty to "hasSections" (Domain:Road Road:RoadSections) the 
inverse functional property of "belongsTo", right?
And I'm not really sure about the value of this whole construct.
How can I use it to reach my goal of being able to compare the 
road-length with the sum of the roadSections-length?
How is it possible to use the above construct in an swrl rule? How can I 
access these anonymous classes in swrl? Do I have to?

And I'm worried about proteges behaviour: When I load the project with 
the construct above I don't receive errors, but the construct doesn't 
appear nowhere in the user-interface. Neigther in the individuals-tab 
nor somwhere else. And when I look at the code (Code -> Show RDF/XML 
source code...) the construct isn't in there at all - not in the whole 
codefile. Does protege apply sth. like optimization or rationalization 
while loading a project?
The whole snippet above is transformed to:

<Road rdf:ID="r1">
        <road_length rdf:datatype="&xsd;int">20</j.0:road_length>

And the relation road-roadSection appears in the specific roadSection:

<RoadSection rdf:ID="rs11">
        <to rdf:datatype="&xsd;int">15</j.0:to>
        <from rdf:datatype="&xsd;int">5</j.0:from>
        <belongsTo rdf:resource="#r1"/>

Sorry for this pile of questions. I appreciate your answers.

best regards,
-------------- next part --------------
A non-text attachment was scrubbed...
Name: milo.vcf
Type: text/x-vcard
Size: 384 bytes
Desc: not available
URL: <>

More information about the protege-owl mailing list