2

I am using Protege 5 and I am trying to create a SWRL rule that results in creating a object property connection between a variable instance and a specific Individual. This is the way i write it:

sosa:HumidityObservation( ?observation) ^
sosa:hasSimpleResult(?observation, ?result) ^ 
swrlb:greaterThan(?result, 80) ^
sosa:Weather(VeryMoistHumidity) -> 
sosa:weatherSuggestion(?observation, VeryMoistHumidity)

However I ger this error:

Invalid OWL Individual Name "VeryMoistHumidity"

How am I supposed to add the Individual in the object property atom?

Stelios Botonakis
  • 183
  • 1
  • 3
  • 11
  • you have to use full URIs or at least prefixed URIs. Just using `VeryMoistHumidity` is neither of it. I mean, for the predicates you also used a prefixed format like `sosa:Weather` right? Why are you not doing the same, e.g. `sosa:VeryMoistHumidity`? By the way, all constant terms have to exist in the ontology. – UninformedUser Jul 11 '19 at 07:24

1 Answers1

1

In the end I simply defined the prefix I use for Individuals in the ontology and I just used in this way:

sosa:HumidityObservation(?observation) ^ 
sosa:hasSimpleResult(?observation, ?result) ^ 
swrlb:greaterThan(?result, 80) -> 
sosa:weatherDeduction(?observation, ex:VeryMoistHumidity)
Stelios Botonakis
  • 183
  • 1
  • 3
  • 11