Re: Use case: find all the triples which do or do not use a URI from a namespace

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