2016-10-13 4 views
1

Je voudrais savoir comment je peux insérer un RDF (qui est téléchargé une telle chaîne) dans Virtuoso en utilisant dotNetRDF.Insérer une donnée RDF à Virtuoso en utilisant la bibliothèque dotNetRDF en C# .Net

Par exemple, j'ai lu les données RDF que vous trouverez sur ce lien: « http://publications.europa.eu/resource/cellar/fdc34ca7-6cbf-4f81-8bbd-e7255ccfa0c2.0005/rdf/object/full »

<rdf:RDF 
    xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" 
    xmlns:j.0="http://publications.europa.eu/ontology/cdm#" 
    xmlns:owl="http://www.w3.org/2002/07/owl#" 
    xmlns:j.1="http://www.w3.org/2004/02/skos/core#" 
    xmlns:j.2="http://publications.europa.eu/ontology/annotation#" 
    xmlns:j.3="http://publications.europa.eu/ontology/cdm/cmr#" > 
    <rdf:Description rdf:about="http://publications.europa.eu/resource/cellar/fdc34ca7-6cbf-4f81-8bbd-e7255ccfa0c2.0005.02"> 
    <owl:sameAs rdf:resource="http://publications.europa.eu/resource/oj/JOL_1998_286_R_0013_007.FRA.print"/> 
    </rdf:Description> 
    <rdf:Description rdf:about="http://publications.europa.eu/resource/cellar/fdc34ca7-6cbf-4f81-8bbd-e7255ccfa0c2.0005"> 
    <j.3:metsStructSuperDiv rdf:resource="http://publications.europa.eu/resource/cellar/fdc34ca7-6cbf-4f81-8bbd-e7255ccfa0c2"/> 
    <j.3:lang rdf:datatype="http://www.w3.org/2001/XMLSchema#language">fr</j.3:lang> 
    <j.3:lang rdf:datatype="http://www.w3.org/2001/XMLSchema#language">fra</j.3:lang> 
    <owl:sameAs rdf:resource="http://publications.europa.eu/resource/celex/31998R2278.FRA"/> 
    <owl:sameAs rdf:resource="http://publications.europa.eu/resource/uriserv/OJ.L_.1998.286.01.0013.01.FRA"/> 
    <owl:sameAs rdf:resource="http://publications.europa.eu/resource/oj/JOL_1998_286_R_0013_007.FRA"/> 
    <j.3:lastModificationDate rdf:datatype="http://www.w3.org/2001/XMLSchema#dateTime">2014-04-04T10:21:30.312+02:00</j.3:lastModificationDate> 
    </rdf:Description> 
    <rdf:Description rdf:about="http://publications.europa.eu/resource/oj/JOL_1998_286_R_0013_007.FRA"> 
    <j.0:uses rdf:resource="http://publications.europa.eu/resource/authority/language/FRA"/> 
    <j.0:expression_title_information_additional rdf:datatype="http://www.w3.org/2001/XMLSchema#string">CELEX1</j.0:expression_title_information_additional> 
    <j.0:title rdf:datatype="http://www.w3.org/2001/XMLSchema#string">Règlement (CE) n° 2278/98 de la Commission du 22 octobre 1998 déterminant la mesure dans laquelle les demandes de certificats d'importation introduites en octobre 1998 pour certains produits du secteur de la viande de porc peuvent être acceptées dans le cadre du régime prévu par le règlement (CE) n° 774/94 du Conseil portant ouverture et mode de gestion de certains contingents tarifaires communautaires pour la viande porcine et certains autres produits agricoles</j.0:title> 
    <j.0:title_information_additional rdf:datatype="http://www.w3.org/2001/XMLSchema#string">CELEX1</j.0:title_information_additional> 
    <j.0:expression_belongs_to_work rdf:resource="http://publications.europa.eu/resource/oj/JOL_1998_286_R_0013_007"/> 
    <j.0:title rdf:datatype="http://www.w3.org/2001/XMLSchema#string">CELEX1</j.0:title> 
    <j.0:expression_manifested_by_manifestation rdf:resource="http://publications.europa.eu/resource/oj/JOL_1998_286_R_0013_007.FRA.print"/> 
    <rdf:type rdf:resource="http://publications.europa.eu/ontology/cdm#expression"/> 
    <j.0:expression_title rdf:datatype="http://www.w3.org/2001/XMLSchema#string">Règlement (CE) n° 2278/98 de la Commission du 22 octobre 1998 déterminant la mesure dans laquelle les demandes de certificats d'importation introduites en octobre 1998 pour certains produits du secteur de la viande de porc peuvent être acceptées dans le cadre du régime prévu par le règlement (CE) n° 774/94 du Conseil portant ouverture et mode de gestion de certains contingents tarifaires communautaires pour la viande porcine et certains autres produits agricoles</j.0:expression_title> 
    <j.0:expression_uses_language rdf:resource="http://publications.europa.eu/resource/authority/language/FRA"/> 
    <j.2:build_info>cdm:CDM_2.1.7 tdm:1523 xslt:3945 saxon:9.0.0.1J JVM:1.6.0_29 metaconvJar:1.2.0 builddate:04/04/2014 01:00:03</j.2:build_info> 
    <j.0:expression_manifested_by_manifestation rdf:resource="http://publications.europa.eu/resource/oj/JOL_1998_286_R_0013_007.FRA.pdf"/> 
    <j.0:belongs_to rdf:resource="http://publications.europa.eu/resource/oj/JOL_1998_286_R_0013_007"/> 
    </rdf:Description> 
    <rdf:Description rdf:about="http://publications.europa.eu/resource/oj/JOL_1998_286_R_0013_007"> 
    <rdf:type rdf:resource="http://publications.europa.eu/ontology/cdm#legislation_secondary"/> 
    <rdf:type rdf:resource="http://publications.europa.eu/ontology/cdm#work"/> 
    <rdf:type rdf:resource="http://publications.europa.eu/ontology/cdm#resource_legal"/> 
    <rdf:type rdf:resource="http://publications.europa.eu/ontology/cdm#regulation"/> 
    </rdf:Description> 
    <rdf:Description rdf:about="http://publications.europa.eu/resource/authority/language/FRA"> 
    <rdf:type rdf:resource="http://publications.europa.eu/ontology/cdm#language"/> 
    <rdf:type rdf:resource="http://www.w3.org/2004/02/skos/core#Concept"/> 
    <j.1:inScheme rdf:resource="http://publications.europa.eu/resource/authority/language"/> 
    <j.0:language_used_by_expression rdf:resource="http://publications.europa.eu/resource/oj/JOL_1998_286_R_0013_007.FRA"/> 
    </rdf:Description> 
    <rdf:Description rdf:about="http://publications.europa.eu/resource/oj/JOL_1998_286_R_0013_007.FRA.pdf"> 
    <rdf:type rdf:resource="http://publications.europa.eu/ontology/cdm#manifestation"/> 
    </rdf:Description> 
    <rdf:Description rdf:about="http://publications.europa.eu/resource/cellar/fdc34ca7-6cbf-4f81-8bbd-e7255ccfa0c2"> 
    <owl:sameAs rdf:resource="http://publications.europa.eu/resource/oj/JOL_1998_286_R_0013_007"/> 
    <owl:sameAs rdf:resource="http://publications.europa.eu/resource/eli/reg/1998/2278/oj"/> 
    <owl:sameAs rdf:resource="http://publications.europa.eu/resource/celex/31998R2278"/> 
    </rdf:Description> 
    <rdf:Description rdf:about="http://publications.europa.eu/resource/oj/JOL_1998_286_R_0013_007.FRA.print"> 
    <rdf:type rdf:resource="http://publications.europa.eu/ontology/cdm#manifestation_official-journal_part"/> 
    <rdf:type rdf:resource="http://publications.europa.eu/ontology/cdm#manifestation"/> 
    </rdf:Description> 
    <rdf:Description rdf:about="http://publications.europa.eu/resource/cellar/fdc34ca7-6cbf-4f81-8bbd-e7255ccfa0c2.0005.01"> 
    <rdf:type rdf:resource="http://publications.europa.eu/ontology/cdm#manifestation"/> 
    <owl:sameAs rdf:resource="http://publications.europa.eu/resource/oj/JOL_1998_286_R_0013_007.FRA.pdf"/> 
    </rdf:Description> 
</rdf:RDF> 

et je l'ai été enregistré (en utilisant HttpWebRequest) dans une chaîne, mais je ne sais pas comment puis-je l'insérer dans mon Virtuoso par dotNetRDF. Une idée?

En outre, comment pouvons-nous définir le UserAgent sur la fonction QueryWithResultSet? Sur ce point de fin: http://publications.europa.eu/webapi/rdf/sparql Je dois définir UserAgent, sinon je ne peux pas obtenir de requête.

Merci

PS: Je ne peux pas charger RDF directement à partir du serveur cible parce qu'il ya une erreur 502 Passerelle incorrecte.

+1

Avez-vous lu les documents 'dotnetrdf'? [Ecrire RDF avec 'dotNetRDF'] (https://github.com/dotnetrdf/dotnetrdf/wiki/UserGuide-Writing-RDF), [Travailler avec Triple Stores] (https://github.com/dotnetrdf/dotnetrdf/wiki/UserGuide-Travailler-Avec-Triple-Stores), [Intégration Triple Store de tiers] (https://github.com/dotnetrdf/dotnetrdf/wiki/UserGuide-Triple-Store-Integration), [Virtuoso] (https://github.com/dotnetrdf/dotnetrdf/wiki/UserGuide-Storage-Virtuoso), [Classe VirtuosoManager] (https://dotnetrdf.github.io/api/html/T_VDS_RDF_Storage_VirtuosoManager.htm) – TallTed

+0

1. Je ne veux pas écrire RDF et enregistrer dans un autre fichier ou flux 2. Je voudrais enregistrer des données dans un graphique existant et je n'ai pas besoin d'enregistrer graphique! 3. C'est mon troisième projet dans Virtuoso, bien sûr que je connais Virtuoso et comment puis-je me connecter avec dotNetRDF. 4. Je ne peux pas écrire le RDF en ligne directement sur le serveur, car le paramètre UserAgent est manqué dans la bibliothèque dotNetRDF. – ali

+0

@TallTed Avez-vous une autre idée? virtuoso.UpdateGraph ("http://example.org/graph", null, new Triple [] {t}); Pourrait m'aider mais je ne sais pas comment puis-je convertir la chaîne RDF en tableau de Triple! – ali

Répondre

2

Vous pouvez étendre SparqlRemoteEndpoint et remplacer la méthode ApplyCustomRequestOptions() si vous avez besoin de personnaliser la HttpWebRequest par exemple en ajoutant un en-tête UserAgent:

public class MyCustomEndpoint : SparqlRemoteEndpoint 
{ 
    // Define appropriate constructors with the parameters you need e.g. 
    public MyCustomEndpoint(Uri endpointUri) 
    : base(endpointUri) { }  

    protected override ApplyCustomRequestOptions(HttpWebRequest request) 
    { 
    request.UserAgent = "My Custom User Agent" 
    } 
} 

La méthode ApplyCustomRequestOptions() est appelée avant chaque HttpWebRequest est déposée pour peut être utilisé pour faire toute personnalisation nécessaire. Ensuite, utilisez simplement MyCustomEndpoint à la place de SparqlRemoteEndpoint au besoin.

Vous pouvez toujours consulter la documentation SparqlRemoteEndpoint pour plus de détails sur les méthodes et propriétés disponibles.

+0

il ya toujours un problème 502 BadGateway. Je pense que ce n'est pas lié à ma requête et ils ont ajouté un Firwall pour faire une requête. – ali

+0

Existe-t-il un moyen de remplacer les données d'importation par l'espace de travail ISQL par la syntaxe C#? – ali

+0

Si vous avez une question différente alors vous devriez créer une nouvelle question! Les commentaires ne sont destinés qu'à des clarifications sur une question/réponse – RobV