Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package models;
- import java.sql.ResultSet;
- import java.sql.SQLException;
- import java.sql.Timestamp;
- import com.hp.hpl.jena.ontology.ConversionException;
- import com.hp.hpl.jena.ontology.DatatypeProperty;
- import com.hp.hpl.jena.ontology.Individual;
- import com.hp.hpl.jena.ontology.OntClass;
- import com.hp.hpl.jena.ontology.OntModel;
- import com.hp.hpl.jena.rdf.model.Resource;
- import com.hp.hpl.jena.vocabulary.XSD;
- /**
- * Model Class to interact with OntClass Article
- *
- * @author Benjamin Eckstein
- *
- */
- class Model_Article {
- protected Individual individual;
- static Model_Article_Meta model_meta;
- /**
- * Construct a Model_Article from an individual.
- *
- * @param i
- */
- public Model_Article(Individual i) {
- this.individual = i;
- if (Model_Article.model_meta == null) {
- Model_Article.setup(i);
- }
- if (!i.getOntClass().getNameSpace()
- .equals(Model_Article.model_meta.article_NS)) {
- throw new ConversionException("Individual is not an Article but "
- + i.getOntClass().getNameSpace());
- }
- }
- /**
- * Little helper function to initialize the Article Meta
- *
- * @param i
- */
- public static void setup(Individual i) {
- Model_Article.model_meta = new Model_Article_Meta(i);
- }
- /**
- * Create one (!) Model_Article from the Resultset (MySql query atm) and
- * return it. The Iteration is made at the calling function
- *
- * @param model
- * @param resultSet
- * @return
- * @throws SQLException
- */
- public static Model_Article createFromSql(OntModel model,
- ResultSet resultSet) throws SQLException {
- Resource class_article = model.getResource(Main.NS + "Article");
- String id = "" + resultSet.getString("id");
- String title = "" + resultSet.getString("title");
- String subtitle = "" + resultSet.getString("subtitle");
- String content = "" + resultSet.getString("article_content");
- Timestamp published_date = resultSet.getTimestamp("published_date");
- OntClass article = class_article.as(OntClass.class);
- Individual article_tmp = article.createIndividual(Main.NS + "Article"
- + id);
- if (Model_Article.model_meta == null) {
- Model_Article.setup(article_tmp);
- }
- article_tmp.addProperty(Model_Article.model_meta.article_title, title);
- article_tmp.addProperty(Model_Article.model_meta.article_subtitle,
- subtitle);
- // article_tmp.addProperty(article_content,content);
- article_tmp.addProperty(
- Model_Article.model_meta.article_published_date, published_date
- + "");
- article_tmp.addProperty(Model_Article.model_meta.article_id, id);
- Model_Article newArticle = new Model_Article(article_tmp);
- newArticle.createMeta(content);
- return newArticle;
- }
- /**
- * Create Additional information about this entity with a given content.
- * Content will not be saved within the Ontology (Space / Performance
- * Reasons).
- *
- * @param content
- * @return
- */
- public Model_Article createMeta(String content) {
- String id = ""
- + individual
- .getPropertyValue(Model_Article.model_meta.article_id);
- String plain_content = content.replaceAll("\\<.*?\\>", "");
- int words = plain_content.split("\\s").length;
- individual.addProperty(Model_Article.model_meta.article_word_count,
- words + "");
- System.out.println("test " + words);
- return this;
- }
- public int getId() {
- String id = ""
- + individual
- .getPropertyValue(Model_Article.model_meta.article_id);
- return Integer.parseInt(id);
- }
- public Model_Article setId(int i) {
- individual.setPropertyValue(Model_Article.model_meta.article_id, null);
- individual.addProperty(Model_Article.model_meta.article_id, i + "");
- return this;
- }
- /**
- * Helper class to manage Metainformation about Bento#Article
- *
- * @author Eckstein
- *
- */
- static class Model_Article_Meta {
- OntModel model;
- String article_NS = Main.NS + "Article";
- DatatypeProperty article_title;
- DatatypeProperty article_subtitle;
- DatatypeProperty article_content;
- DatatypeProperty article_published_date;
- DatatypeProperty article_word_count;
- DatatypeProperty article_id;
- public Model_Article_Meta(Individual i) {
- model = i.getOntModel();
- Resource class_article = model.getResource(article_NS);
- article_title = model.createDatatypeProperty(Main.NS + "title");
- article_title.addDomain(class_article);
- article_title.addRange(XSD.xstring);
- article_subtitle = model.createDatatypeProperty(Main.NS
- + "subtitle");
- article_content = model.createDatatypeProperty(Main.NS + "content");
- article_published_date = model.createDatatypeProperty(Main.NS
- + "published_date");
- article_word_count = model.createDatatypeProperty(Main.NS
- + "word_count");
- article_id = model.createDatatypeProperty(Main.NS + "ID");
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement