W3C home > Mailing lists > Public > semantic-web@w3.org > February 2010

Re: how to define that a relation is a dataype?

From: Story Henry <henry.story@bblfish.net>
Date: Mon, 22 Feb 2010 19:50:12 +0100
Cc: Jeremy Carroll <jeremy@topquadrant.com>, Pat Hayes <phayes@ihmc.us>, Semantic Web <semantic-web@w3.org>, foaf-protocols@lists.foaf-project.org
Message-Id: <5A37504A-3D9A-48FE-B8A7-C15A57A62E37@bblfish.net>
To: Dan Connolly <connolly@w3.org>
On 22 Feb 2010, at 19:28, Dan Connolly wrote:
> On Mon, 2010-02-22 at 10:19 -0800, Jeremy Carroll wrote:
>> [...] Real people don't type triples ... so there is going to be some
>> transform somewhere, and transforming to the second batch is no harder than the first.
> 
> Fair enough... though... Henry does seem to be concerned with how
> it looks a s RDFa markup. I haven't thought thru what the 2nd
> batch looks like if you go back to RDFa.

Yes, I was quite happy to use a cert:hex as a relation with a similar role to a datatype, because its easy to understand. So this is how we defined cert:hex

:hex a owl:DatatypeProperty, 
     owl:InverseFunctionalProperty;
   rdfs:label "hexadecimal"@en .

It's easy to understand, and easy to explain. We have an inverse functional relation and I know how those work.

In n3 we even get it to look nice with 

x euros "AA"^cert:hex .

But it stops us using some nice features in rdfa. So things are a bit more complicated for people to write out, as can be seen here:

  http://lists.foaf-project.org/pipermail/foaf-protocols/2010-February/001692.html

This is not a good thing, so if we can avoid it, I'd be happy. 

And I have no trouble creating an inverse of cert:hex to be the literal. If that is the right thing to do, then that's great. We could define:

:hexType a rdfs:Datatype ;
   owl:inverseOf cert:hex ;
   rdfs:label "hexadecimal"@en .

and have 

x euros "AA"^^cert:hexType .

But I want to do things right, and for that I have to understand literals, which somehow is just not that easy. So now I am reading through the rdf-semantics specification. Its interesting, but it does seem somehow overly complicated. (Still need to come to a conclusion)

Now literals as relations make a lot of sense. That is why I'd like to understand the relation between literal types and relations. It seems that the following is true

{ bgt euro "1.2"^^xsd:float } => { bgt euro "1.2"^[ is xsd:float of] }

It would be really great if one could come to some generalised conclusion on this. Because that would just make literals very easy to understand. It could also help reason about them.

Henry

> 
> 
>> then
>> 
>> all the following is true as well:
>> 
>> 
>> 
>> _:b1234 owl:sameAs "1234"^^xsd:int .
>> 
>> _:b1234 owl:sameAs "TU"^^:base64;
>>     owl:sameAs "4D2"^^:hex ;
>>     owl:sameAs "1234"^^:dec ;
>>     owl:sameAs "2322"^^:oct ;
>>     owl:sameAs "11010010"^^:bin .
> 
> 
> -- 
> Dan Connolly, W3C http://www.w3.org/People/Connolly/
> gpg D3C2 887B 0F92 6005 C541  0875 0F91 96DE 6E52 C29E
> 
Received on Monday, 22 February 2010 18:50:50 GMT

This archive was generated by hypermail 2.3.1 : Tuesday, 26 March 2013 21:45:34 GMT