2010-12-03 36 views
1

J'annote des observations de capteurs en utilisant JENA, RDF et l'ontologie de capteur du W3C SSNXG.Données de capteur d'annotation mais pas de rdf: type

J'ai créé un individu de SensingDevice de SSNXG en utilisant un espace de noms local pour l'individu. Quand j'utilise l'URI de l'individu pour créer une Ressource RDF, tout ce que je reçois est une description. Cependant, aucune métadonnée rdf: type n'est créée. Cela doit-il être fait explicitement dans le code?

J'ai essayé d'ajouter cette information comme ceci:

OntClass sensingDevice = ssn.getOntClass(NS + "SensingDevice"); 
Individual ard = ssn.createIndividual(DTPNS + arduino, sensingDevice); 
Property type = incomingData.createProperty(RDFNS, "type"); 
Statement stmt0 = incomingData.createStatement(ardu, type, NS + "SensingDevice"); 
incomingData.add(stmt0); 

Cependant, cela se traduit par ...

<rdf:Description rdf:about="http://dtp-126.sncs.abdn.ac.uk#CD7514"> 
    <rdf:type>http://purl.oclc.org/NET/ssnx/ssn#SensingDevice</rdf:type 
</rdf:Description> 

Cela ne semble pas être visible à SPARQL. Comment ajouter correctement des métadonnées de type?

Répondre

2

Vous étiez proche:

Statement stmt0 = incomingData.createStatement(ardu, type, sensingDevice); 

L'appel que vous avez utilisé défini rdf: type à la chaîne "http: //purl.oclc.org/NET/..." plutôt que la ressource avec cette URL .

Cependant, vous pouvez simplifier cela de deux façons. Premièrement, Property type existe déjà dans Jena comme RDF.type. Deuxièmement, vous n'avez pas besoin de créer une déclaration, il suffit d'ajouter au modèle directement:

incomingData.add(ard, RDF.type, sendingDevice); 

(Vous pouvez créer des constantes de java à partir ontologies à l'aide de schemagen jena, btw)