Search code examples
rdfowlrowlex

Some functionalities of Rowlex


I'm recently working on a semantic web application project using Rowlex. I've reached some functionality needs which I couldn't match the appropriate methods to them. I was wondering if somebody would help me.

  • I'm creating a new RDF document, but at the end I don't know how to save the populated rdfdocument.
  • I'm creating a new individual in an existing rdf, but I don't know how to save the rdf at last. The AddIndividual method accepts uri and type. How can I work with them?
  • I want to remove an individual and don't know how.
  • I want to add, remove or edit individual properties

is there any guiding document which can explain Rowlex methods?

Thank you in advance


Solution

  • 1) Saving: You have various ways to persist your RdfDocument. You have 2 choices on the format: RDF/XML or N3. Based on your choices, you can invoke any the following methods:

    RdfDocument rdfDoc = new RdfDocument();
    // Populate the document with new individual
    // ...
    // Alternatives to save the document
    XmlDocument xml = rdfDoc.ExportToRdfXml();
    xml.Save("C:\\myRdfDoc.rdf");
    // or
    rdfDoc.ExportToRdfXml("C:\\myRdfDoc.rdf");
    // or
    rdfDoc.ExportToN3("C:\\myRdfDoc.rdf");
    // or 
    string n3 = rdfDoc.ToN3();
    string rdfXml = rdfDoc.ToRdfXml();
    // and save the strings into a text file yourself
    

    It is important to understand: you always save the RDF document which represent your entire RDF graph. You do not save an individual!

    2) Removing an individual from an RdfDocument:

    RdfDocument rdfDoc = new RdfDocument();
    // Let us assume that you have an ROWLEX generated class called "Car"
    // Let us create a Car individual first, then remove it.
    Car car = new Car("ABC-123", rdfDoc); // added
    rdfDoc.RemoveIndividual(car); // removed
    

    3) Adding/Removing/Editing properties

    Car car = new Car("ABC-123", rdfDoc); 
    // We inject a new triple into the document by this
    car.LastMaintenance = new DateTime(2008,04,18); 
    // Editing the property:
    car.LastMaintenance = new DateTime(2009,05,11); 
    // For removing, you need to use the full-version of 
    // the generated class instead of the light-version:
    Car_ sameCar = rdfDocument.GetIndividual(car.ID, Car.Uri, false) as Car_; 
    sameCar.RemoveLastMainenance(sameCar.LastMaintenance);