RE: RDF validity question

Hi Harsh,

Thank you.

You remembered correctly: a ValveActuator is a subClassOf Actuator, see for example https://engineerscommunity.com/t/control-valve-actuator/9790 

The age-old problem with rdf:Property is, that where is defines an information there is no way to tell something *about* that information, such as:
 - from when on was that valid information ?
 - what is the status of that information (estimated, calculated, definitive) ?
 - what are the access rights to that information ?
 - etc

I have been puzzled by the thesis that relations can't be treated like classes, where in fact the are classes.

Many years ago I copied this example of rdf:Predicate from the applicable Recommendation and it still puzzles me:

     <rdf:Statement rdf:about="#triple12345">
        <rdf:subject rdf:resource="http://www.example.com/2002/04/products#item10245"/>
        <rdf:predicate rdf:resource="http://www.example.com/terms/weight"/>
        <rdf:object rdf:datatype="&xsd;decimal">2.4</rdf:object>
        <dc:creator rdf:resource="http://www.example.com/staffid/85740"/>
    </rdf:Statement>

or, converted:

ex:triple12345
  a rdf:Statement ;
  rdf:subject prod:item10245 ; 
  rdf:predicate terms:weight ; 
  rdf:object "2.4"^^xsd:decimal ;
  dc11:creator staff:85740 .

Since when do triples get an ID like triple12345 ?

Looking at that it has, formatwise, a strong resemblance with my:

ex:76329
    rdf:type ont:valveHasActuator ;
    rdfs:domain ex:34543 ; # myValve
    rdfs:range ex:84128 ;   # myValveActuator
    meta:effectiveDate "2022-08-24T10:42:00Z"^^xsd:dateTime .

which could be rephrased as:

ex:76329
    rdf:type rdf:Statement ;
    rdf:predicate ont:valveHasActuator ;
    rdf:subject ex:34543 ; # myValve
    rdf:object ex:84128 ;   # myValveActuator
    meta:effectiveDate "2022-08-24T10:42:00Z"^^xsd:dateTime .

Would that be OK then?

Regards, Hans 

________________________________________________________

-----Original Message-----
From: Harshvardhan J. Pandit <me@harshp.com> 
Sent: vrijdag 26 augustus 2022 10:02
To: semantic-web@w3.org
Subject: Re: RDF validity question

Hi. A different perspective - maybe this is simpler using a different ontological model? E.g.

ex:76329
     rdf:type ont:ValveActuator ;
     ex:hasValve ex:34543 ; # myValve
     ex:hasActuator ex:84128 ;   # myValveActuator
     meta:effectiveDate "2022-08-24T10:42:00Z"^^xsd:dateTime .

rdl:Valve, rdl:Actuator rdfs:subClassOf rdl:Part .
rdl:Part rdfs:subClassOf rdl:Artefact .

This is based on interpreting Valves, Actuators, and ValveActuators as separate parts. Though from what I remember, ValveActuators are a type of actuators rather than a separate part connecting valves to actuators, so this could be a more consistent representation of that:

ex:34543 a rdl:Valve ;
   ex:hasActuator ex:84128 .
ex:84128 a rdl:Actuator ;
   ex:isActuatorForValve ex:34543 .

Where ex:hasActuator and ex:isActuatorForValve are subproperties of ex:hasPart with domain/range Valve to Actuator and vice-versa respectively.

Regards,
Harsh


On 26/08/2022 07:55, Pierre-Antoine Champin wrote:
> 
> On 25/08/2022 23:31, Mark Wallace wrote:
>>
>> No. In short,  ranges and domains are for stating things about 
>> properties (Tbox/schema) and not about instances of classes.
>>
>> If you want to reify the predicate, you could do so using:
>>
>>  1. rdf:Statement in RDF
>>  2. owl:Axiom in OWL2,
>>  3. define your owl owl:Class that will represent the relationship.
>>     E.g. my:HasPartRelation a owl:Class, with possible subclass
>>     HasActuatorRelation or some such.
>>
> +1 to what Mark wrote.
> 
> A possible 4th alternative is to use RDF-star [1], although it is not 
> yet an official standard, and its inter-relation with OWL are not yet 
> specified.
> 
> Your example in Turtle-star would look like that:
> 
>    ex:34543 ont:valveHasActuator ex:84128 {|
>      meta:effectiveDate "2022-08-24T10:42:00Z"^^xsd:dateTime
>    |}.
> 
> [1] https://www.w3.org/2021/12/rdf-star.html
> 
>> What is it you want your date/time to indicate?
>>
>> Very respectfully,
>>
>> Mark
>>
>> *From:* hans.teijgeler@quicknet.nl <hans.teijgeler@quicknet.nl>
>> *Sent:* Thursday, August 25, 2022 2:27 PM
>> *To:* semantic-web@w3.org
>> *Subject:* RDF validity question
>>
>> Hi,
>>
>> I am trying to reify predicates in a different way, and I need to 
>> know whether this is valid RDF.
>>
>> Assume I define an rdf:Property:
>>
>> ont:hasPart
>>
>> rdf:type owl:ObjectProperty ;
>>
>> rdfs:domain rdl:Artefact ;
>>
>>     rdfs:range rdl:Artefact .
>>
>> ont:valveHasActuator
>>
>>     rdf:type owl:ObjectProperty ;
>>
>> rdfs:subPropertyOf ont:hasPart ;
>>
>> rdfs:domain rdl:Valve ;
>>
>>     rdfs:range rdl:ValveActuator .
>>
>> Then I have project information that tells that individual valve 
>> actuator 84128 is a part of individual valve 34543, effective that 
>> dateTime.
>>
>> ex:76329
>>
>> rdf:type ont:valveHasActuator ;
>>
>> rdfs:domain ex:34543 ; # myValve
>>
>> rdfs:range ex:84128 ;   # myValveActuator
>>
>> meta:effectiveDate "2022-08-24T10:42:00Z"^^xsd:dateTime .
>>
>> Is this semantically and syntactically correct RDF? (it passed the 
>> syntactic test).
>>
>> I hope to hear from you!
>>
>> (sorry Guus, I need the answer asap)
>>

--
---
Harshvardhan J. Pandit, Ph.D
Research Fellow
ADAPT Centre, Trinity College Dublin
https://harshp.com/

Received on Friday, 26 August 2022 10:56:59 UTC