2016-05-02 1 views

Répondre

2

Dans l'univers RDF, une ontologie est juste un autre graphe; chaque graphique devrait être auto-descriptif; et chaque graphe d'ontologie devrait donc inclure une déclaration qui dit essentiellement «Je suis une ontologie».

Présumant les meilleures pratiques ont été suivies, vous pouvez utiliser un query like this pour obtenir un list of ontology named graphs qui sont décrits derrière un point final donné -

PREFIX owl: <http://www.w3.org/2002/07/owl#> 
PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> 

SELECT DISTINCT ?ontology 
WHERE { ?ontology rdf:type owl:Ontology } 
ORDER BY ?ontology 

Notez cependant qu'il ne soit pas nécessaire pour un graphe d'ontologies être chargé dans Virtuoso (ou autre magasin quad/triple/RDF) afin que les termes de cette ontologie soient utilisés dans d'autres graphiques chargés dans ce magasin, donc je me demande dans le but de votre question ...

ETA: Étant donné que vous avez une liste de graphes nommés pour les ontologies dans une instance donnée, vous pouvez obtenir leur contenu avec des requêtes comme celle-ci -

SELECT * 
FROM <http://purl.org/vocab/relationship/> 
WHERE { ?s ?p ?o } 

- que vous pouvez exécuter via une connexion ADO.NET de C#, par le fournisseur ADO.NET Virtuose, en le transformant en un/k/a SPARQL en SQL SPASQL avec le simple appending du mot-clé SPARQL et d'un appending virgule -

SPARQL 
SELECT * 
FROM <http://purl.org/vocab/relationship/> 
WHERE { ?s ?p ?o } ; 

Il peut maintenant aller sans dire, mais pour être clair - vous pouvez également émettre la requête initialement décrite comme SPASQL via ADO.NET -

SPARQL 
PREFIX owl: <http://www.w3.org/2002/07/owl#> 
PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> 

SELECT DISTINCT ?ontology 
WHERE { ?ontology rdf:type owl:Ontology } 
ORDER BY ?ontology ; 

(ObDisclaimer: Je travaille pour OpenLink Software, producteur de Virtuoso.)

+0

Tout d'abord, merci pour votre replay. Mais je connaissais les requêtes qui obtiennent ces informations. Ce dont j'ai besoin, c'est quelque chose d'autre comme ceci: https://github.com/dotnetrdf/dotnetrdf/wiki/Ontology-API Mais au lieu de lire et d'enregistrer Graph par fichier, je voudrais l'initialiser par Virtuoso. – ali

+0

Comme je suis programmeur dans les langages orientés objet, je préfère utiliser les objets (comme les objets de dotNetRDF spécialement OntologyGraph) pour faire les requêtes. C'est ma motivation à poser cette question ici. – ali

+0

J'ai ajouté un peu à ma réponse, qui peut fournir ce que vous cherchez. – TallTed