- From: Patrick Stickler <patrick.stickler@nokia.com>
- Date: Fri, 16 Apr 2004 10:31:24 +0300
- To: "ext Pat Hayes" <phayes@ihmc.us>
- Cc: kendall@monkeyfist.com, RDF Data Access Working Group <public-rdf-dawg@w3.org>
On Apr 15, 2004, at 20:28, ext Pat Hayes wrote:
>
>
>
> Task
>
> An RDF/OWL ontology editing/browsing/displaying system uses a
> specialized GUI to display OWL/RDF ontologies. It uses RDF
> annotations to the OWL/RDF to record information relevant to its
> operation (such as screen coordinates, font styles, color) as part of
> the ontology, using a specialized set of property names all in a
> namespace reserved for use by the application. This enables it to use
> RDF/OWL tools and conventions to store an ontology during an extended
> work period.
>
> (We are designing such a system right now, called CODE, and it will do
> this.)
>
> The developer wishes to be able to detect when any such triples occur
> in an RDF graph, to extract them all when they do occur, and also to
> be able to extract all triples which do not use any name in this
> reserved namespace. To do this, a query which matches any triple with
> a property name in a set of namespaces would be a useful feature, for
> example in an ad-hoc notation:
>
> (?x {+<codelay:> +<cadegra:>}?y ?z .)
Are you refering to namespace prefixes here? How can one do this since
(a) there are no qnames, nor namespaces, in RDF (regardless of what
syntactic machinery might be employed in RDF/XML or any other
serialization
of an RDF graph) and (b) there is no reliable way to deduce any
namespace
prefix from an arbitrary URI.
IMO, the use case as defined, in terms of an XML namespace name, is
incoherent
insofar as RDF is concerned.
I think a more RDF-pure approach would be to define explicit
vocabularies
which indicate which terms and subvocabularies are part of such
vocabularies,
such that the URIs denoting the terms remain fully opaque. It also
allows
one to define functional or application specific vocabularies which
include
terms having disparate namespaces (or rather, URI) prefixes.
This is how we manage vocabularies in Nokia.
A vocabulary for defining such vocabularies is http://sw.nokia.com/VOC-1
and some examples of deployed vocabularies defined as such are
http://sw.nokia.com/FN-1 (note the use of functional
sub-vocabularies)
http://sw.nokia.com/MARS-3
http://sw.nokia.com/RDFQ-1
and e.g. a 3rd party definition for DC
http://sw.nokia.com/uriqa?uri=http://purl.org/dc/elements/
1.1&format=text/html
You're query above, could be expressed as
FIND all triples (?x ?y ?z)
WHERE ?y voc:partOf <codelay>
OR ?y voc:partOf <cadgra>
I.e., presuming <codelay> and <cadgra> are rdf:type voc:Vocabulary
and have their terms defined accordingly, then you simply want all
triples where the predicate belongs to one of those vocabularies.
With this approach, namespaces are *irrelevant*, as they should be
given the principle of URI opacity.
Eh?
Patrick
--
Patrick Stickler
Nokia, Finland
patrick.stickler@nokia.com
Received on Friday, 16 April 2004 03:33:02 UTC