2010-11-10 49 views
1

Je suis en train de programmer en Java, en essayant de créer un simple magasin RDF en utilisant la bibliothèque Jena et le site web lastfm.rdfize.com.Ajout du modèle RDF à partir de lastfm.rdfize.com

Je reçois dans le problème suivant: le lastfm.rdfize.com produit un rdf, par exemple en tortue à la demande comme: « http://lastfm.rdfize.com/?username= & eventID = & ARTISTNAME = "+ ARTISTNAME +" & venueID = & sortie = tortue »

Je fais une demande et de prendre le contenu de la page Web résultante. Si je les imprime, ils me semblent être un RDF décent.

Cependant, je ne peux pas les ajouter au modèle.

J'ai essayé de créer un fichier, écrire la chaîne (qui est le contenu HTML) à ce fichier (ce qui semble bien aussi) et la lecture au modèle comme ça:

InputStream lastf = FileManager.get().open("lastfm.txt"); 
Model temp=null; 
temp=ModelFactory.createOntologyModel(OntModelSpec.OWL_DL_MEM_RDFS_INF); 
temp.read(lastf,null,"Turtle"); 

Cependant, à ce stade Je reçois le message d'erreur suivant:

(ErrorHandlerLib.java:49) - [ligne: 22, col: 2] Unknown Caractère:

Répondre

1

Votre code ne fonctionne pour moi avec un trivial RDF/tortue comme ...

@base <http://example.org/ns/> .                              
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> . 

<s1> <p1> <o1>; 
<p2> "some typed literal"^^xsd:string; 
<p2> "some non-typed literal"; 
<p4> 10 . 
<o1> <label> "some label" . 

Il semble donc que vous avez un format ou une erreur charset dans votre fichier de données lastfm.txt. Je suggère de valider votre fichier avec un validateur RDF, essayez avec http://www.rdfabout.com/demo/validator/ Avec ce validateur, vous pouvez tester à la fois RDF/XML et RDF/Turtle assurez-vous de sélectionner le bon format pour le type de sérialisation RDF avec lequel vous travaillez.

Une autre option pour valider vos données pourraient être le rapace outil de http://librdf.org mais celui-ci est un peu plus sophistiqué et vous devez l'installer localement.

Si les valideurs crie avec une erreur de jeu de caractères, vous pouvez modifier le jeu de caractères que vous utilisez pour lire vos données. Quelque chose comme cela devrait fonctionner ..

package t1;       
import java.io.*; 
import com.hp.hpl.jena.util.*; 
import com.hp.hpl.jena.ontology.*; 
import com.hp.hpl.jena.rdf.model.*; 
import java.nio.charset.*; 

class test { 
public static void main (String[] args) { 
     InputStreamReader lastf = new 
      InputStreamReader(FileManager.get().open("lastfm.txt"), 
          Charset.forName("ISO-8859-1")); 

     Model temp=null; 
     temp=ModelFactory.createOntologyModel(OntModelSpec.OWL_DL_MEM_RDFS_INF); 
     temp.read(lastf,null,"Turtle"); 
     System.out.println(temp.size()); 
     temp.write(System.out); 
    } 
} 

Tout cela devrait vous donner un guide pour repérer l'erreur (je l'espère), mais si vous ne remarquez pas poster alors les données afin que nous puissions avoir un coup d'oeil .

+0

Merci pour l'aide, le problème était en effet dans le jeu de caractères. Une fois que j'ai explicitement déclaré pour enregistrer le fichier en UTF-8, tout fonctionne bien. – Hippopotamus

0

Sons comme des problèmes charset. Est-ce que le fichier est en uTF-8 ou autre chose?

+0

Oui, c'était le charset, a dû le faire explicitement en UTF-8 – Hippopotamus