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 07:00:40 PDT 2008

>> 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>
> </Road>
> 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"/>
> </RoadSection>
> Sorry for this pile of questions. I appreciate your answers.
> best regards,
> Michael
Ok, I got so far that I'm able to compute a table as a query result with 
collums: "Road", "Road_length", "Sum_of_all_Section_lengths_of_Road" 
with the following rule/query:

hasRoadSection(?road, ?roadSection) ∧
to(?roadSection, ?tokm) ∧
from(?roadSection, ?fromkm) ∧
swrlb:subtract(?roadSectionLength, ?toKm, ?fromKm) ∧
road_length(?road, ?roadLength)
→ sqwrl:select(?road) ∧
sqwrl:select(?roadLength) ∧

Now I'm able to compare the Road_length and 
Sum_of_all_Section_lengths_of_Road programatically.
Corresponding to this comparison the dot on the i will be to infer the 
Roads to types of "CorrectRoad" and "IncorrectRoad" respectively. Any 
hint how to approach on this?
Is it possible to integrate this in the rule/query above? Can I use the 
result of the query above in another query/rule? Is there sth. like 
subqueries? Other suggestions?

thanks for allowing me to ask such un-genereal, specific questions.

More information about the protege-owl mailing list