2013-03-12 3 views
-1

Tout ce que je veux, c'est convertir une instance de classe C# en triples rdf en utilisant semweb, afin de remplir mon ontologie de données. Ma classe se compose à la fois de propriétés primitives et d'autres classes et j'ai construit une ontologie avec la même structure. par exemple.SemWeb - Convertir un objet C# en triplets RDF

class Place{ 

string name; 
Image pic; 

} 

Y at-il une ressource qui pourrait aider?

Merci d'avance!

+0

Ceci est une question très ouverte .. vous devez être plus précis! À quoi ressemble votre objet? Est-ce un objet unique ou un graphe d'objet? Comment votre ontologie est-elle définie? etc ... –

Répondre

0

La réponse est d'utiliser C# réflexion afin d'étudier les propriétés et les classes de l'instance que vous souhaitez convertir et utiliser le:

store.Add(new Statement(subject, predicate, object) 

afin d'écrire les triplets que vous voulez que très bien documenté dans le SemWeb Documentation

2

Vous vous rendez compte que SemWeb est abandon-ware et n'a pas reçu une nouvelle version dans près de 3 ans non? Si vous voulez vraiment utiliser SemWeb, jetez un oeil à LinqToRdf qui est encore plus adandonware (dernière version il y a 4 ans et demi) mais fournit une couche de style ORM pour convertir les classes C# vers et depuis RDF en utilisant des annotations basées sur des attributs.

Pour certaines alternatives plus récentes et activement maintenues voir soit BrightStarDB ou RomanticWeb, BrightstarDB est la solution la plus mature dans cet espace.

Si vous préférez rouler votre propre solution, vous pouvez regarder dotNetRDF (disclaimer - Je développe cette) qui est la bibliothèque utilisée comme base pour BrightStarDB et RomanticWeb.

+0

Je voudrais également soutenir le raisonnement dans mon projet c'est pourquoi je développe avec semweb y at-il une solution pour cela aussi? désolé mais je suis nouveau dans ce domaine .. – sstauross

0

Lorsque je travaillais avec des données rdf j'ai créé 3 URI nœuds
n1, n2, n3. Ensuite,
Triple t = new Triple(n1, n2, n3);
IGraph g = new Graph();

g.Assert(t);
store.Add(g);

J'espère que cela vous aidera.

Questions connexes