2016-06-23 3 views
2

J'ai réussi à générer et tester des contraintes SPIN (en utilisant les requêtes SPARQL ASK) dans une ontologie OWL/RDF en utilisant TopBraid Composer Maestro Edition version 5.1.1. Je voudrais maintenant tester ces contraintes SPIN dans Sesame. Comment obtenir mes contraintes SPIN, les définitions de classe, les définitions de propriétés et les individus de test contenus dans une ontologie OWL créée dans TopBraid COmposer Maestro Edition dans Sesame?Comment charger les contraintes et les constructeurs SPARQL/SPIN créés dans TopBraid Composer pour les utiliser dans Sesame dans un référentiel compatible SPIN?

J'utilise Sesame OpenRDF Workbench:

System Information 
Application Information 
Application Name OpenRDF Workbench 
Version 4.1.2 
Runtime Information 
Operating System Windows 8.1 6.3 (amd64) 
Java Runtime Oracle Corporation Java HotSpot(TM) 64-Bit Server VM (1.8.0_91) 
Process User Greg 
Memory 
Used 357 MB 
Maximum 3463 MB 

Mes contraintes, les classes, les propriétés et les particuliers par exemple sont contenus dans un fichier RDF sous TopBraid Composer Maestro Edition.

J'ai essayé d'utiliser la commande Ouvrir RDF établi Sésame Modify/Add pour tirer dans le fichier RDF généré par TopBraid Maestro Edition, mais je reçois une erreur qui semble être lié à un noeud blanc:

javax.servlet.ServletException: org.openrdf.repository.RepositoryException: org.openrdf.repository.RepositoryException: org.openrdf.sail.SailException: org.openrdf.query.QueryEvaluationException: Multiple statements for pattern: _:node1alqlr2eix590 http://spinrdf.org/sp#where null

Peut-être que je n'exporte pas correctement à partir de TopBraid Composer Maestro Edition? J'ai utilisé une exportation générique du fichier RDF vers le système de fichiers de TopBraid Composer Maestro Edition et j'ai utilisé la commande SESAME OpenRDF workbench add RDF File/RDF Data File, ce qui a provoqué le message d'erreur ci-dessus.

Pour préempter des directions de réponse possibles qui ne serait pas aider dans mon cas particulier:

  1. Je veux spécifiquement utiliser des constructeurs SPIN et les contraintes, pas SWRL ou d'une autre langue de règle. Bien que j'ai réussi à TopBraid Composer Maestro Edition et que j'apprécie l'aide de TopQuadrant, je ne peux pas me permettre la licence TopBraid Live nécessaire pour utiliser mes constructeurs et contraintes SPIN tout en interagissant avec d'autres ordinateurs. (TopBraid Composer Maestro Edition a un point de terminaison SPARQL, mais ce point de terminaison n'est accessible qu'à partir de la machine hôte via localhost.) Je veux également déterminer si l'implémentation Sésame impose certaines restrictions sur les contraintes SPIN et les constructeurs que les outils TopBraid.
+0

Avez-vous choisi un type de référentiel Sésame avec un raisonnement SPIN? Voir [Prise en charge du serveur Sésame pour SPIN] (http://stackoverflow.com/questions/36738282/sesame-server-support-for-spin). – scotthenninger

+0

Oui, Scott, j'ai sélectionné un magasin In Memory Store avec support SPIN + RDFS. Je voulais inclure cela dans ma question, mais il ne l'a pas fait entrer. Le message d'erreur fait référence à Sail qui fournit l'implémentation de SPIN de Sésame, je crois. Notez également que le fichier RDF que j'essaie d'importer est relativement petit avec moins de 2000 faits au total, donc en mémoire ne devrait pas poser de problème. –

+0

Le support SPIN dans Sesame/RDF4J est toujours bêta et il est fort possible que vous ayez découvert un bug. Pourriez-vous soumettre un rapport de bug avec les détails pertinents (y compris le fichier RDF/SPIN réel qui cause le problème)? –

Répondre

1

j'ai pu charger avec succès RDF à partir TopBraid Composer Free Edition en modifiant la façon dont j'ajoutais le RDF dans Sesame et en évitant les classes instanciant dans le RDF, en ajournant qu'en utilisant une requête SPARQL UPDATE exécutée usping l'établi Modifier/Mise à jour SPARQL à la place. Plus précisément, le message d'erreur dans mon message d'origine résultait de "use URI de base comme identificateur de contexte". Cette option est cochée par défaut dans Sesame Workbench Modify/Add. En décochant cette case, mon RDF est chargé dans le graphique/contexte par défaut où il a fonctionné. Techniquement, je considère ceci comme évitant le problème plutôt que de le résoudre puisque le RDF aurait dû être capable de charger dans un graphique/contexte nommé, mais je n'en ai pas besoin pour l'instant.

Add RDF Into Default Graph/Context by Unckecking "use base URI as context identifier"

Après avoir effacé cette erreur, mon fichier RDF avait instancié certaines personnes qui ont causé des problèmes lors du chargement dans Sesame. J'ai évité ce problème en utilisant une requête SPARQL Update pour créer mes instanciations de test.Voici un exemple:

PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> 
PREFIX sxxicc: <http://www.disa.mil/dso/a2i/ontologies/PBSM/Interface/SXXIComplianceCheck#> 
PREFIX owl: <http://www.w3.org/2002/07/owl#> 
PREFIX sp: <http://spinrdf.org/sp#> 
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> 
PREFIX smf: <http://topbraid.org/sparqlmotionfunctions#> 
PREFIX fn: <http://www.w3.org/2005/xpath-functions#> 
PREFIX spl: <http://spinrdf.org/spl#> 
PREFIX spin: <http://spinrdf.org/spin#> 
PREFIX arg: <http://spinrdf.org/arg#> 
PREFIX SXXIComplianceCheckIndividuals: <http://www.disa.mil/dso/a2i/ontologies/PBSM/Interface/SXXIComplianceCheckIndividuals#> 
PREFIX sxxicci: <http://www.disa.mil/dso/a2i/ontologies/PBSM/Interface/SXXIComplianceCheckIndividuals#> 
PREFIX xsd: <http://www.w3.org/2001/XMLSchema#> 

INSERT DATA 
{ 
    sxxicci:TestPub7Proposal a sxxicc:Pub7Proposal ; 
      sxxicc:pub7ProposalHasDataItem sxxicci:testPub7Proposal_DataItem005 ; 
      sxxicc:pub7ProposalHasDataItem sxxicci:testPub7Proposal_DataItem017 ; 
      sxxicc:pub7ProposalHasDataItem sxxicci:testPub7Proposal_DataItem102 . 

    sxxicci:testPub7Proposal_DataItem005 a sxxicc:Pub7DataItem005 ; 
      sxxicc:pub7DataItemHasStringValue "S"^^xsd:string . 

    sxxicci:testPub7Proposal_DataItem102 a sxxicc:Pub7DataItem102 ; 
      sxxicc:pub7DataItemHasStringValue "AF 881234"^^xsd:string . 

    sxxicci:testPub7Proposal_DataItem017 a sxxicc:Pub7DataItem017 ; 
      sxxicc:pub7DataItemHasStringValue "U"^^xsd:string . 
}