2009-03-26 8 views
1

J'essaie de sélectionner le rdf: ID d'un objet avec sparql (à l'intérieur de Protege) et je n'arrive pas à obtenir le rdf: ID. Quelqu'un a-t-il déjà vu ce problème? La requête SPARQL j'utilise est:SPARQL select RDF: ID

Select * where (?element rdf:id ?id)

Ce qui suit ne fonctionne pas non plus:

Select * where (?element rdfs:label ?id)

A pris une suggestion, mais ce n'est pas aller:

Select * where (?element rdfs:about ?id)

Mais ceci:

Select * where (?element rdfs:comment ?id)

Tout ce que je reçois est "No Matches". Je peux donc sélectionner le commentaire mais pas les étiquettes ... des idées?

MISE À JOUR :: Après quelques recherches, choisir ce qui suit:

Select ?subject ?property ?object where (?subject ?property ?object)

ne vient pas avec l'une des propriétés FTR. Est-ce que je manque quelque chose de majeur? (Je peux le faire avec rdfs: commenter, mais cela n'apparaît pas non plus ...

Répondre

4

Si vous cherchez l'URI de tous les sujets RDF, vous devez exécuter:

SELECT ?subject WHERE { ?subject ?predicate ?object }

Notez que vous avez besoin d'accolades et pas entre parenthèses. Notez également que la casse est importante dans RDF, soyez donc très prudent sur l'orthographe et la capitalisation de vos URI (et préfixes/noms locaux). Pour le point de dajobe concernant les implications (triplets déduits), rdfs:label est une propriété d'annotation OWL et sera ignorée par les inferenceurs sauf si vous incluez vos propres règles et/ou constructions OWL. En d'autres termes, si vous débutez avec RDF, je serais surpris si un raisonneur infère triplement avec rdfs:label comme prédicat.

0

Je suppose que votre rdf: ID (une référence locale dans votre document rdf) sera résolu en utilisant xml: base et transformé en un rdf: about

6

Tout d'abord, rdf: id n'existe pas dans le modèle de données - les triplets du graphique rdf. "rdf:ID" est un terme syntaxique utilisé dans une syntaxe, RDF/XML mais n'apparaît pas dans les triplets. Pour savoir pourquoi le sparql du protégé ne fonctionnera pas ici - et je n'ai pas utilisé Protege - j'imagine que les triplets que vous essayez de trouver sont déduits par le moteur d'inférence et ne sont donc pas forcément dans la base. df graphique.

Ce que vous essayez de faire n'est pas entièrement clair. Vous voulez l'objet URI [d'un triplet]? Comment identifiez-vous ce triple?

-1

La requête suivante me obtient le rdf:ID pour un individu de type pref:class

select * where { 
?id rdf:type pref:class 
} 
+2

Votre requête renverra l'URI complète pour toutes les personnes qui correspondent, chaque individu lié à une variable nommée « id ». Ce n'est pas la même chose que le fichier rdf: ID (voir http://www.w3.org/TR/rdf-primer/#newresources pour plus de détails). –

Questions connexes