W3C home > Mailing lists > Public > semantic-web@w3.org > March 2005

Re: true/false in RDF?

From: Jeremy Wong <jeremy@miko.hk>
Date: Tue, 15 Mar 2005 10:16:01 +0800
Message-ID: <001601c52904$ef8c1430$6702a8c0@michaelxp>
To: "Joshua Allen" <joshuaa@microsoft.com>, <semantic-web@w3.org>
Yes, we can define the range of a property (the value space for the predicate) for both object value and data value. What's more is that you need to explicitly define the class and its extension as for the object value.

Datatype other than those from XML Schema and XMLLiteral are implementation dependent [http://www.w3.org/TR/2004/REC-rdf-concepts-20040210/#dfn-typed-literal]. Certainly contents provider can use their own datatypes, but it loses the audience of some other implementations.

I agree with you that the simple implementation I described is poor. Any better implementation of owl:sameAs do you suggest?

Datatypes provide a hint the way to process the lexical values. In addition to data validation, it determines whether the processing software is able to understand and to handle it. For example, we need transformation to xsd:hexBinary data and to xsd:base64Binary data. Declaring a literal, e.g. "123", with the datatype xsd:string means that we cannot perform mathematical operation on it. Using the datatype xsd:double means that it may be an approximate value,  because the precision of IEEE754 floating point number is limited. From one view datatype is to confine the computational space.


Jeremy
  ----- Original Message ----- 
  寄件者: Joshua Allen 
  收件者: Jeremy Wong ; semantic-web@w3.org 
  傳送日期: Tuesday, 15 March, 2005 1:05
  主旨: RE: true/false in RDF?


  No, this is not the case.  You can define a value space for the predicate regardless of whether the value is literal or URI.



  Furthermore, the problem of owl:sameAs applies equally to your example.  There is nothing stopping someone from declaring a new RDFS literal type that does literal “true” and “false”, and you would be forced to infer.  Besides, it’s not too smart to design your data based on a hypothetically poor implementation.



  IMO, the idea of a “predefined value space” is antithetical to semantic web.  It is useful for prepopulating forms, doing data entry validations, and so on – but these are all *local* and should not be propagated to the web as a whole.  It destroys breadth-scale interop, and means that the only people who interop are people who share the exact same RDFS schema.  Suddenly RDF becomes no better than CORBA or XSD.




------------------------------------------------------------------------------

  From: Jeremy Wong [mailto:jeremy@miko.hk] 
  Sent: Sunday, March 13, 2005 10:11 PM
  To: Joshua Allen; semantic-web@w3.org
  Subject: Re: true/false in RDF?



  In my opinion, the advantage of using typed literal is its predefined value-space which is better known. If you use an object value, you'll need to define its class extension, i.e. the value space. Other people need to learn your object value.



  Since many content provider may use a boolean value, using an object value rather than a data value may induce performance problem. Consider if there are some resources having the same meaning as your true object, "http://xmlns.com/wordnet/1.6/true", then we shall have some owl:sameAs statements...



  R1 owl:sameAs http://xmlns.com/wordnet/1.6/true


  R2 owl:sameAs http://xmlns.com/wordnet/1.6/true


  ...

  Rn owl:sameAs http://xmlns.com/wordnet/1.6/true




  A simple implementation of owl:sameAs inference is to duplicate statements, i.e. if we have one statement..



  http://foobar/page.html P1 http://xmlns.com/wordnet/1.6/true




  Then n more statements will be generated...



  http://foobar/page.html P1 R1

  http://foobar/page.html P1 R2

  ...

  http://foobar/page.html P1 Rn



  It would consume very huge memory space and even computation power. The rate of expansion is about n^2.





  Jeremy



  ----- Original Message ----- 

    寄件者: Joshua Allen 

    收件者: Jeremy Wong ; semantic-web@w3.org 

    傳送日期: Monday, 14 March, 2005 13:48

    主旨: RE: true/false in RDF?



    Yeah, that’s what I intended to express with my first example – if you use a literal, the literal is absolutely meaningless without type information.



    Why not just use URIs which mean “true” and “false” and do away with typing?  The only advantages I can see for typing are imaginary (compile time/run-time checks?!?!) and the disadvantage is real.




----------------------------------------------------------------------------

    From: Jeremy Wong [mailto:jeremy@miko.hk] 
    Sent: Sunday, March 13, 2005 9:35 PM
    To: Joshua Allen; semantic-web@w3.org
    Subject: Re: true/false in RDF?



    I am not too familar with N3 notation about datatype, therefore I provide my example in RDF/XML



    <rdf:Description rdf:about="http://foobar/page.html" xmlns:myterms="urn:myterms">

      <myterms:isCached rdf:datatype="http://www.w3.org/TR/XMLSchema#boolean">true</myterms:isCached>

    </rdf:Description>



    We have typed literal already. Why do you still consider object value?





    Jeremy

      ----- Original Message ----- 

      From: Joshua Allen 

      To: semantic-web@w3.org 

      Sent: Monday, March 14, 2005 12:16 PM

      Subject: true/false in RDF?



      I’ve decided that I want to use URI object values for my Boolean triples, rather than the literals “true/false”.  In other words, instead of:



      http://foobar/page.html  urn:myterms:isCached   “true”



      I want to use:



      http://foobar/page.html  urn:myterms:isCached   http://xmlns.com/wordnet/1.6/true




      I can find zero examples of the latter; only the former.  But I think the latter is right.  Why am I wrong?
Received on Tuesday, 15 March 2005 02:21:22 UTC

This archive was generated by hypermail 2.3.1 : Tuesday, 1 March 2016 07:41:45 UTC