I think QUDT expects that the data would look along these lines:

ex:Bridge1 a ex:Bridge;
qudt:quantity ex:Quantity1.

ex:Quantity1 a ex:Height;
qudt:quantityValue ex:QuantityValue1;
qudt:quantityKind qudt:Length .

ex:QuantityValue1 a qudt:QuantityValue;
qudt:numericValue ’50’;
qudt:unit unit:Meter .

ex:Height rdfs:subClassOf qudt:Quantity.

Or may be some variation on the above that distinguishes between bridge heights 
and other height measurements. Other variations are also possible.


Then, QUDT could be used to perform dimensional analysis e.g., to validate that 
the appropriate unit of measure is used. If only unit of measure is known, then 
quantity kind (Length) could be inferred, so some classification could be done. 
QUDT could also be used to convert the values to another system of units - for 
example, feet. Although conversion would already be outside of OWL.

QUDT differentiates between the actual properties being measured and quantity 
kinds: 

"A quantity is the measurement of an observable property of a particular 
object, event, or physical system. A quantity is always associated with the 
context of measurement (i.e. the thing measured, the measured value, the 
accuracy of measurement, etc.) whereas the underlying quantity kind is 
independent of any particular measurement. Thus, length is a quantity kind 
while the height of a rocket is a specific quantity of length; its magnitude 
that may be expressed in meters, feet, inches, etc. Examples of physical 
quantities include physical constants, such as the speed of light in a vacuum, 
Planck's constant, the electric permittivity of free space, and the fine 
structure constant. Or, as stated at Wikipedia, in the language of measurement, 
quantities are quantifiable aspects of the world, such as time, distance, 
velocity, mass, momentum, energy, and weight, and units are used to describe 
their measure."

So, in principle, you could do something like

ex:Bridge
  rdfs:subClassOf [
      rdf:type owl:Restriction ;
      owl:onClass ex:Height ;
      owl:onProperty qudt:quantity ;
      owl:qualifiedCardinality "1"^^xsd:nonNegativeInteger ;
    ] ;
.

However, sine it is in OWL, there is an open world assumption, so if there 
wasn't a quantity of type ex:Height for a given bridge, it would not be an 
issue. And, if a given bridge has two quantities of type ex:Height, this 
wouldn’t raise any issues either - unless each time you create a new instance 
of Height you say that it is a different individual from all other instances of 
Height (which is just not practical).

So, as Holger says, the way you want to model depends on the use case. If you 
are trying to do constraint checking to ensure that there is height, SHACL 
would be the way to go.

> On May 8, 2017, at 7:25 PM, Holger Knublauch <[email protected]> wrote:
> 
> Hi Michel,
> 
> do you need these restrictions for classification purposes or constraint 
> checking? I believe this would inform the technology choice.
> 
> Note that TopBraid has very limited support for OWL QCRs, esp not for form 
> validation.
> 
> Holger
> 
> 
> On 9/05/2017 5:32, Bohms, H.M. (Michel) wrote:
>> Trying myself it seems that:
>> :Bridge
>>   rdf:type owl:Class ;
>>   rdfs:subClassOf owl:Thing ;
>>   rdfs:subClassOf [
>>       rdf:type owl:Restriction ;
>>       owl:onClass [
>>           rdf:type owl:Class ;
>>           rdfs:subClassOf :Quantity ;
>>           rdfs:subClassOf [
>>               rdf:type owl:Restriction ;
>>               owl:onClass [
>>                   rdf:type owl:Class ;
>>                   rdfs:subClassOf :QuantityKind ;
>>                   rdfs:subClassOf [
>>                       rdf:type owl:Restriction ;
>>                       owl:hasValue :Height ;
>>                       owl:onProperty :hasQuantityKind ;
>>                     ] ;
>>                 ] ;
>>               owl:onProperty :hasQuantityKind ;
>>               owl:qualifiedCardinality "1"^^xsd:nonNegativeInteger ;
>>             ] ;
>>         ] ;
>>       owl:onProperty :hasQuantity ;
>>       owl:qualifiedCardinality "1"^^xsd:nonNegativeInteger ;
>>     ] ;
>> .
>>  
>> Does not give any error in tbc, so it might be actually what I was after!
>> Anyway, comments on correctness still very welcome!
>>  
>> Thx Michel
>>  
>>  
>>  
>>  
>>  
>> Dr. ir. H.M. (Michel) Böhms
>> Senior Data Scientist
>> 
>> T +31888663107
>> M +31630381220
>> E [email protected] <mailto:[email protected]>   
>> Location 
>> <https://www.google.com/maps/place/TNO+-+Locatie+Delft+-+Stieltjesweg/@52.000788,4.3745183,17z/data=%213m1%214b1%214m5%213m4%211s0x47c5b58c52869997:0x56681566be3b8c88%218m2%213d52.000788%214d4.376707>
>> 
>>  
>> <image001.gif> <http://www.tno.nl/>
>> This message may contain information that is not intended for you. If you 
>> are not the addressee or if this message was sent to you by mistake, you are 
>> requested to inform the sender and delete the message. TNO accepts no 
>> liability for the content of this e-mail, for the manner in which you use it 
>> and for damage of any kind resulting from the risks inherent to the 
>> electronic transmission of messages. 
>> 
>>  
>>  
>>  
>>  
>> From: Bohms, H.M. (Michel) 
>> Sent: maandag 8 mei 2017 15:04
>> To: [email protected] <mailto:[email protected]>
>> Subject: owl modelling issue in tbc
>>  
>>  
>> Dear all,
>>  
>> I am comparing different approaches for modelling “attributes”:
>> Simple/most direct as OWL datatype properties
>> As classes to allow for more meta-data like units
>> As named individuals according to QUDT2.0 (NASA/TQ).
>>  
>> One of the criteria is the complexity of restrictions. As example I look at 
>> a card=1 restriction for a height attribute for a Bridge class.
>> The first 2 are quite easy (the first is most simple/direct OWL, the second 
>> option needs some property chaining) but the third one I am unsure whether I 
>> can stay within OWL or that I have to move into SPIN/SHACL/…. territory.
>>  
>> EXAMPLE
>>  
>> Having from qudt2.0:
>> qudt:hasQuantity, qudt:hasValue, qudt:Quantity, qudt:hasQuantityKind.
>>  
>> And defined:
>>  
>> :Bridge rdf:type owl:Class .
>> :Height rdf:type qudt:QuantityKind .
>>  
>> I am looking for an OWL (RDFS/RDF)-based restriction for the red part below 
>> (avoiding extra explicit subclasses):
>>  
>> :Bridge rdf:type owl:Class ;
>> rdfs:subClassOf [rdf:type owl:restriction ;
>> “there exists one Quantity via qudt:hasQuantity, having 
>> qudt:hasQuantityKind=:Height
>> .
>>  
>> owl:hasValue doesn’t seem to help because it’s too restrictive (there can be 
>> other attributes).
>> owl:someValuesFrom seems to work on the class-level only
>> some special expression possible?
>> ie some QCR (card=1) on qudt:hasQuantity where the Qualified-part is an 
>> intersection of qudt:Quantity AND owl:hasValue qudt:hasQuantity=Height?
>> Thx a lot for your advice! Or suggestion for a more general forum to post 
>> such a question…(apologies upfront)
>> 
>> Michel Böhms, TNO (NL)
>> 
>>  
>>  
>>  
>> Dr. ir. H.M. (Michel) Böhms
>> Senior Data Scientist
>> 
>> T +31888663107
>> M +31630381220
>> E [email protected] <mailto:[email protected]>   
>> Location 
>> <https://www.google.com/maps/place/TNO+-+Locatie+Delft+-+Stieltjesweg/@52.000788,4.3745183,17z/data=%213m1%214b1%214m5%213m4%211s0x47c5b58c52869997:0x56681566be3b8c88%218m2%213d52.000788%214d4.376707>
>> 
>>  
>> <image001.gif> <http://www.tno.nl/>
>> This message may contain information that is not intended for you. If you 
>> are not the addressee or if this message was sent to you by mistake, you are 
>> requested to inform the sender and delete the message. TNO accepts no 
>> liability for the content of this e-mail, for the manner in which you use it 
>> and for damage of any kind resulting from the risks inherent to the 
>> electronic transmission of messages. 
>> 
>>  
>>  
>>  
>>  
>> -- 
>> You received this message because you are subscribed to the Google Group 
>> "TopBraid Suite Users", the topics of which include the TopBraid Suite 
>> family of products and its base technologies such as SPARQLMotion, SPARQL 
>> Web Pages and SPIN.
>> To post to this group, send email to [email protected] 
>> <mailto:[email protected]>
>> --- 
>> You received this message because you are subscribed to the Google Groups 
>> "TopBraid Suite Users" group.
>> To unsubscribe from this group and stop receiving emails from it, send an 
>> email to [email protected] 
>> <mailto:[email protected]>.
>> For more options, visit https://groups.google.com/d/optout 
>> <https://groups.google.com/d/optout>.
> 
> 
> -- 
> You received this message because you are subscribed to the Google Group 
> "TopBraid Suite Users", the topics of which include the TopBraid Suite family 
> of products and its base technologies such as SPARQLMotion, SPARQL Web Pages 
> and SPIN.
> To post to this group, send email to [email protected] 
> <mailto:[email protected]>
> --- 
> You received this message because you are subscribed to the Google Groups 
> "TopBraid Suite Users" group.
> To unsubscribe from this group and stop receiving emails from it, send an 
> email to [email protected] 
> <mailto:[email protected]>.
> For more options, visit https://groups.google.com/d/optout 
> <https://groups.google.com/d/optout>.

-- 
You received this message because you are subscribed to the Google Group 
"TopBraid Suite Users", the topics of which include the TopBraid Suite family 
of products and its base technologies such as SPARQLMotion, SPARQL Web Pages 
and SPIN.
To post to this group, send email to [email protected]
--- 
You received this message because you are subscribed to the Google Groups 
"TopBraid Suite Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
For more options, visit https://groups.google.com/d/optout.

Reply via email to