Re: Converting SHOE to RDF: about 2/3 done; some gotchas

Hi all,

As the main spokesperson for SHOE I though I'd comment on Dan's post.
I'd like to say that I think that translations between the various
semantic web languages is important because it can leverage the work of
others. When I have the time, I intend to write a translator from RDF to
SHOE, which will enable you to use the SHOE query tools (see
http://www.cs.umd.edu/projects/plus/SHOE/) on RDF data.

First, Dan is correct in that there is no syntactic distinction between
resources and literals in SHOE. The distinction is in the semantics of
the ontology. If the ontology defines an argument to be of the type of
some category, then any value for that argument must be the key of an
object (i.e., a resource). If the type is .STRING, .DATE, .NUMBER, etc.
then its a literal. Unfortunately this is probably something you can't
determine with XSLT. A hack is to treat anything that begins with
"http://" as a resource identifier. It will work in most cases.

Second, SHOE use-ontology statements are similar to the way RDF use
namespaces to identify schemas. I say similar and not equivalent because
a use-ontology says that I specifically agree only to the semantics
implied by this ontology and those ontologies which it extends. It's not
clear that RDF Schema has such a feature. For example if you have a
schema http://schema.org/web which defines the class Web_Developer, what
does it mean when someone else creates another schema (say
http://hacker.org/hah) that includes the following RDF:

<rdfs:Class rdf:about="http://schema.org/web#Web_Developer">
  <rdfs:subclassOf rdf:resource="#Silly_Person">
</rdfs:Class>

I do not see any restrictions in the RDFS spec to prevent such a
statement. Also, as I understand it way namespaces are used in RDF is
only to uniquely identify what object you're talking about, not which
sets of definitions you subscribe to. Thus, if I state that I am
Web_Developer, then do I also imply that I am a Silly_Person? Note that
in SHOE, you cannot state that a class defined elsewhere is the subclass
of another class, and even if you could, the semantics for reasoning
about web pages are those that the web page explicitly commits to. As an
aside, we have worked out a formal model that deals with intended
perspectives (what the author explictly believes can be reasoned from
his web page) and alternate perspectives (what the user wants to
conclude from a web page). These issues are discussed in a paper that
will appear in the Seventeenth National Conference on Artificial
Intelligence (AAAI-2000). The paper is available online from
http://www.cs.umd.edu/projects/plus/SHOE/pubs/#aaai2000.

Third, SHOE objects can be defined in one ontology and reused in other
ontologies via either prefix chaining or renaming (creating a local
alias for the name). To get this to truly work in RDF, you would have to
resolve each prefixed SHOE name to the name in the originating ontology
and then translate that to the corresponding RDF schema.

I hope these comments help clarify some points in translating SHOE to
RDF. If anyone has any further questions on SHOE, please feel free to
contact me.

Jeff Heflin
heflin@cs.umd.edu
University of Maryland, College Park

BTW: Dan, some of the links on your SHOE to RDF page appear to be
broken, or at least not available to the public. In particular the tidy
configuration, RDF output, and xhtmlized PLUS page.

Dan Connolly wrote:
> 
> More XSLT and RDF fun:
> 
>         Transforming SHOE to RDF
>         http://www.w3.org/2000/04shoe-swell/
> 
> I took some shoe pages and then xhtml-ized them:
>         (1) xml-ized them using tidy
>                 with a config file for allowing SHOE tags
>         (2) added the SHOE namespace to the shoe tags
> 
> So much for un-crufting the pages... then I actually converted
> them to RDF. I started proceeding methodically thru the
> SHOE spec, but then got sloppy and just hacked on a case-by-case
> basis thru the SHOE tutorial. I got thru the first two
> pages of the tutorial (basic ontologies and instances)
> but I haven't tackled inferences (i.e. horn clauses, i.e.
> if/then's with variables) yet.
> 
> Some @@'s from the code, and a bit of annotation:
> 
>     <xsl:with-param name="value" select="shoe:arg/@value"/> <!-- @@ URI
> or not??? -->
> 
>         -- in shoe relations, there's no syntactic distinction
>                 between literals and URIs, so I can't
>                 tell when to use rdf:resource and when not to. :-{
> 
>     <!-- @@ we treat use-ontology as purely syntactic;
>          should we extract any semantics from it?
>          -->
> 
>         <xsl:message>@@found n-ary predicate; only binary predicates are
>         implemented</xsl:message>
> 
>   <!-- @@FIX: only one level of prefix is supported -->
> 
>         -- SHOE allows x.y.z in names, to mean
>                 "the thing called z in the thing called y in the thing
>                 that I call x, which is at URL ..."
> 
>   <!-- use a shoe URL directly as an RDF namespace,
>                      or do some sort of mapping? @@ -->
> 
> --
> Dan Connolly, W3C http://www.w3.org/People/Connolly/

Received on Thursday, 11 May 2000 12:40:50 UTC