public class LoggingModel extends Object implements Model
| Constructor and Description |
|---|
LoggingModel(Model m) |
| Modifier and Type | Method and Description |
|---|---|
void |
addAll(Iterator<? extends Statement> other)
Add all statements contained in 'other' to this model = 'union'
|
void |
addModel(Model model)
Adds a complete
Model to this Model. |
BlankNode |
addReificationOf(Statement statement)
A convenience function for addReficationOf( createBlankNode(), statement
);
|
Resource |
addReificationOf(Statement statement,
Resource resource)
Reifies the statement, whether the statement was present in the model or
not.
|
void |
addStatement(Resource subject,
URI predicate,
Node object)
adds a (subject, property ,object)-statement to this model
|
void |
addStatement(Resource subject,
URI predicate,
String literal)
adds a (subject, property, literal)-statement to the model.
|
void |
addStatement(Resource subject,
URI predicate,
String literal,
String languageTag)
adds a (subject, property, liteal, language-tag)-statement to the model.
|
void |
addStatement(Resource subject,
URI predicate,
String literal,
URI datatypeURI)
adds a (subject, property, literal ,datatype)-statement to the model.
|
void |
addStatement(Statement statement)
adds a statement to this model
|
void |
addStatement(String subjectURIString,
URI predicate,
String literal)
adds a (subject, property, literal)-statement to the model.
|
void |
addStatement(String subjectURIString,
URI predicate,
String literal,
String languageTag)
adds a (subject, property, liteal, language-tag)-statement to the model.
|
void |
addStatement(String subjectURIString,
URI predicate,
String literal,
URI datatypeURI)
adds a (subject, property, literal, data-type)-statement to the model.
|
void |
close()
Close connection to defined, underlying implementation.
|
void |
commit()
Deprecated.
|
boolean |
contains(ResourceOrVariable subject,
UriOrVariable predicate,
NodeOrVariable object) |
boolean |
contains(ResourceOrVariable subject,
UriOrVariable predicate,
String plainLiteral)
Convenience function.
|
boolean |
contains(Statement s) |
long |
countStatements(TriplePattern pattern) |
BlankNode |
createBlankNode()
Create (but do not add) a new blank node
|
BlankNode |
createBlankNode(String internalID)
Create a new blank node with the given internal ID.
|
DatatypeLiteral |
createDatatypeLiteral(String literal,
URI datatypeURI) |
LanguageTagLiteral |
createLanguageTagLiteral(String literal,
String langugeTag) |
PlainLiteral |
createPlainLiteral(String literal)
Create a new plain literal
|
Statement |
createStatement(Resource subject,
URI predicate,
Node object)
Create a new statement - but DOES NOT add it to the model
|
TriplePattern |
createTriplePattern(ResourceOrVariable subject,
UriOrVariable predicate,
NodeOrVariable object) |
URI |
createURI(String uriString)
The model must create URIs it would accept itself.
|
void |
deleteReification(Resource reificationResource)
Delete reifications made by this resource.
|
void |
dump()
Dumps the whole content of the model via System.out
|
ClosableIterator<Statement> |
findStatements(ResourceOrVariable subject,
UriOrVariable predicate,
NodeOrVariable object)
get all statements in the model with this subject, predicate and object.
|
ClosableIterator<Statement> |
findStatements(TriplePattern pattern)
Iterator must be auto-close, i.e.
|
Collection<Resource> |
getAllReificationsOf(Statement statement) |
URI |
getContextURI() |
Diff |
getDiff(Iterator<? extends Statement> statements) |
String |
getNamespace(String prefix) |
Map<String,String> |
getNamespaces()
Get all namespaces as a map of prefix to namespace.
|
Object |
getProperty(URI propertyURI) |
Object |
getUnderlyingModelImplementation() |
boolean |
hasReifications(Statement stmt) |
boolean |
isEmpty() |
boolean |
isIsomorphicWith(Model other)
Two models can be equal even if they do not contain the same statements.
|
boolean |
isLocked() |
boolean |
isOpen() |
boolean |
isValidURI(String uriString)
CHecks URI for syntax errors.
|
ClosableIterator<Statement> |
iterator()
Returns an iterator over a set of elements of type T.
|
void |
lock()
Tries to obtain a lock.
|
URI |
newRandomUniqueURI()
Implementations are free to choose if their semantics are unique within
the this model, the ModelSet, or unique in the universe
|
Model |
open()
Open connection to defined, underlying implementation
|
ClosableIterable<Statement> |
queryConstruct(String query,
String querylanguage) |
QueryResultTable |
querySelect(String query,
String querylanguage)
returns results for queries in other query languages as a
QueryResultTable as supported by underlying implementation.
|
void |
readFrom(InputStream in)
Read from InputStream assuming to read an RDF/XML stream.
|
void |
readFrom(InputStream reader,
Syntax syntax)
Reads assuming the given syntax.
|
void |
readFrom(InputStream in,
Syntax syntax,
String baseURI)
Reads RDF data from the given
InputStream in the given Syntax. |
void |
readFrom(Reader in)
Read from Reader assuming in UTF8 encoding.
|
void |
readFrom(Reader in,
Syntax syntax)
Reads assuming the given syntax.
|
void |
readFrom(Reader in,
Syntax syntax,
String baseURI)
|
void |
removeAll()
Removes all statements from this model.
|
void |
removeAll(Iterator<? extends Statement> statements)
Removes all statements contained in 'other' from this model =
'difference'
|
void |
removeNamespace(String prefix)
Throws no exception if the prefix was not present.
|
void |
removeStatement(Resource subject,
URI predicate,
Node object)
remove a (subject, property ,object)-statement from the model
|
void |
removeStatement(Resource subject,
URI predicate,
String literal) |
void |
removeStatement(Resource subject,
URI predicate,
String literal,
String languageTag)
remove a (subject, property ,literal, language tag)-statement from the
model
|
void |
removeStatement(Resource subject,
URI predicate,
String literal,
URI datatypeURI)
remove a (subject, property ,literal, datatype)-statement from the model
datatype often is an uri for a xml schema datatype (xsd)
|
void |
removeStatement(Statement statement)
remove a rdf2go-statement from the model
|
void |
removeStatement(String subjectURIString,
URI predicate,
String literal) |
void |
removeStatement(String subjectURIString,
URI predicate,
String literal,
String languageTag)
remove a (subject, property ,literal, language tag)-statement from the
model
|
void |
removeStatement(String subjectURIString,
URI predicate,
String literal,
URI datatypeURI)
remove a (subject, property ,literal, datatype)-statement from the model
datatype often is an uri for a xml schema datatype (xsd)
|
void |
removeStatements(ResourceOrVariable subject,
UriOrVariable predicate,
NodeOrVariable object)
remove a (subject, property ,object)-statement from the model
|
void |
removeStatements(TriplePattern triplePattern)
remove all matching triple patterms from the model
|
String |
serialize(Syntax syntax)
Convenience method to export a Model to a String in a given syntax.
|
void |
setAutocommit(boolean autocommit)
Deprecated.
|
void |
setNamespace(String prefix,
String namespaceURI) |
void |
setProperty(URI propertyURI,
Object value)
Add an arbitrary runtime property, this will not be persisted and is only
available at runtime.
|
long |
size()
For plain models without any inference, this is the exact number of
explicit statements.
|
boolean |
sparqlAsk(String query)
SPARQL ask queries
|
ClosableIterable<Statement> |
sparqlConstruct(String query) |
ClosableIterable<Statement> |
sparqlDescribe(String query)
Iterator must be auto-close, i.e.
|
QueryResultTable |
sparqlSelect(String queryString)
returns results for SPARQL Select queries, as supported by underlying
implementation.
|
void |
unlock()
Removes a lock.
|
void |
update(DiffReader diff)
Apply the changes given by this diff
|
void |
writeTo(OutputStream out)
Writing an RDF/XML stream in UTF8 encoding
|
void |
writeTo(OutputStream out,
Syntax syntax)
Write the model to the passed writer, using the passed syntax.
|
void |
writeTo(Writer out)
Writing an RDF/XML stream in UTF8 encoding
|
void |
writeTo(Writer out,
Syntax syntax)
Write the model to the passed writer, using the passed syntax.
|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitforEach, spliteratorpublic LoggingModel(Model m)
public void addAll(Iterator<? extends Statement> other) throws ModelRuntimeException
ModelWriteraddAll in interface ModelWriterother - another RDF2GO modelModelRuntimeException - if there is either an error with the
underlying model or an IOExceptionpublic void addModel(Model model) throws ModelRuntimeException
ModelModel to this Model. The context URI of the other
model is ignored, if present.
Note: this might be faster than addAll( model.iterator() );addModel in interface ModelModelRuntimeException - if any internal (I/O related) exception
occurspublic Resource addReificationOf(Statement statement, Resource resource)
ReificationSupport
(resource) rdf:type rdf:Statement .
(resource) rdf:subject (statement.getSubject()) .
(resource) rdf:predicate (statement.getPredicate()) .
(resource) rdf:object (statement.getObject()) .
addReificationOf in interface ReificationSupportstatement - which will be reifiedresource - used to represent the reified statementpublic BlankNode addReificationOf(Statement statement)
ReificationSupportaddReificationOf in interface ReificationSupportpublic void addStatement(Resource subject, URI predicate, Node object) throws ModelRuntimeException
ModelWriteraddStatement in interface ModelWritersubject - of the statementpredicate - of the statementobject - of the statementModelRuntimeException - if there is either an error with the
underlying model or an IOExceptionpublic void addStatement(Resource subject, URI predicate, String literal, String languageTag) throws ModelRuntimeException
ModelWriteraddStatement in interface ModelWritersubject - URI or Object (= blankNode)predicate - of the statementliteral - main part of literal value of the statementlanguageTag - RDF language tagModelRuntimeException - if there is either an error with the
underlying model or an IOExceptionpublic void addStatement(Resource subject, URI predicate, String literal, URI datatypeURI) throws ModelRuntimeException
ModelWriteraddStatement in interface ModelWritersubject - of the statementpredicate - of the statementliteral - main part of the literal of the statementdatatypeURI - for the datatype part of the literalModelRuntimeException - if there is either an error with the
underlying model or an IOExceptionpublic void addStatement(Resource subject, URI predicate, String literal) throws ModelRuntimeException
ModelWriteraddStatement in interface ModelWritersubject - of the statementpredicate - of the statementliteral - of the statement. A PlainLiteral will be created.ModelRuntimeException - if there is either an error with the
underlying model or an IOExceptionpublic void addStatement(Statement statement) throws ModelRuntimeException
ModelWriteraddStatement in interface ModelWriterstatement - the statement to addModelRuntimeException - if there is either an error with the
underlying model or an IOExceptionpublic void addStatement(String subjectURIString, URI predicate, String literal, String languageTag) throws ModelRuntimeException
ModelWriteraddStatement in interface ModelWritersubjectURIString - interpreted as a URIpredicate - of the statementliteral - main part of the LanguageTagLiterallanguageTag - RDF language tag of the LanguageTagLiteralModelRuntimeException - if there is either an error with the
underlying model or an IOExceptionpublic void addStatement(String subjectURIString, URI predicate, String literal, URI datatypeURI) throws ModelRuntimeException
ModelWriteraddStatement in interface ModelWritersubjectURIString - interpreted as URI of the statementpredicate - of the statementliteral - for the DatatypeLiteraldatatypeURI - for the DatatypeLiteralModelRuntimeException - if there is either an error with the
underlying model or an IOExceptionpublic void addStatement(String subjectURIString, URI predicate, String literal) throws ModelRuntimeException
ModelWriteraddStatement in interface ModelWritersubjectURIString - interpreted as URI of the statementpredicate - of the statementliteral - for the PlainLiteralModelRuntimeException - if there is either an error with the
underlying model or an IOExceptionpublic void close()
Model@Deprecated public void commit() throws ModelRuntimeException
Commitablecommit in interface CommitableModelRuntimeException - if the commit could not be executedpublic boolean contains(ResourceOrVariable subject, UriOrVariable predicate, NodeOrVariable object) throws ModelRuntimeException
contains in interface FindableModelsubject - defined or a Variable, e.g. Variable.ANYpredicate - defined or a Variable, e.g. Variable.ANYobject - defined or a Variable, e.g. Variable.ANYModelRuntimeException - most often caused by underlying
IOException, if anypublic boolean contains(ResourceOrVariable subject, UriOrVariable predicate, String plainLiteral) throws ModelRuntimeException
FindableModelcontains in interface FindableModelsubject - defined or a Variable, e.g. Variable.ANYpredicate - defined or a Variable, e.g. Variable.ANYplainLiteral - a string interpreted as adefined PlainLiteralModelRuntimeException - most often caused by underlying
IOException, if anypublic boolean contains(Statement s) throws ModelRuntimeException
contains in interface FindableModels - a StatementModelRuntimeException - most often caused by underlying
IOException, if anypublic long countStatements(TriplePattern pattern) throws ModelRuntimeException
countStatements in interface FindableModelModelRuntimeExceptionpublic BlankNode createBlankNode()
ModelValueFactorycreateBlankNode in interface ModelValueFactorypublic BlankNode createBlankNode(String internalID)
ModelValueFactorycreateBlankNode in interface ModelValueFactorypublic DatatypeLiteral createDatatypeLiteral(String literal, URI datatypeURI) throws ModelRuntimeException
createDatatypeLiteral in interface ModelValueFactoryModelRuntimeException - e.g. if the datatype URI causes problemspublic LanguageTagLiteral createLanguageTagLiteral(String literal, String langugeTag) throws ModelRuntimeException
createLanguageTagLiteral in interface ModelValueFactoryModelRuntimeException - e.g. if the language tag is malformedpublic PlainLiteral createPlainLiteral(String literal)
ModelValueFactorycreatePlainLiteral in interface ModelValueFactorypublic Statement createStatement(Resource subject, URI predicate, Node object)
ModelValueFactorycreateStatement in interface ModelValueFactorypublic TriplePattern createTriplePattern(ResourceOrVariable subject, UriOrVariable predicate, NodeOrVariable object)
createTriplePattern in interface FindableModelsubject - defined or a Variable, e.g. Variable.ANYpredicate - defined or a Variable, e.g. Variable.ANYobject - defined or a Variable, e.g. Variable.ANYpublic URI createURI(String uriString) throws IllegalArgumentException
ModelValueFactorycreateURI in interface ModelValueFactoryIllegalArgumentExceptionpublic void deleteReification(Resource reificationResource)
ReificationSupport
(reificationResource) rdf:type rdf:Statement .
(reificationResource) rdf:subject * .
(reificationResource) rdf:predicate * .
(reificationResource) rdf:object * .
Note that one resource might have been used in several
reifications. Although semantic nonsense, this can happen. This method
cleans up also these cases.
Note that this method deletes the reification from all contexts.deleteReification in interface ReificationSupportpublic void dump()
Modelpublic ClosableIterator<Statement> findStatements(ResourceOrVariable subject, UriOrVariable predicate, NodeOrVariable object) throws ModelRuntimeException
FindableModelfindStatements in interface FindableModelsubject - URI or Object (= blankNode) or Variablepredicate - URI or Variableobject - URI or String (=plainLiteral) or BlankNode (=blankNode) or
TypedLiteral or LanguageTagLiteral or VariableModelRuntimeException - most often caused by underlying
IOException, if anypublic ClosableIterator<Statement> findStatements(TriplePattern pattern) throws ModelRuntimeException
FindableModelfindStatements in interface FindableModelpattern - to be matchedModelRuntimeException - most often caused by underlying
IOException, if anypublic Collection<Resource> getAllReificationsOf(Statement statement)
getAllReificationsOf in interface ReificationSupportpublic URI getContextURI()
getContextURI in interface Modelpublic Diff getDiff(Iterator<? extends Statement> statements) throws ModelRuntimeException
getDiff in interface ModelAddRemoveModelRuntimeExceptionpublic String getNamespace(String prefix)
getNamespace in interface NamespaceSupportpublic Map<String,String> getNamespaces()
NamespaceSupportgetNamespaces in interface NamespaceSupportpublic Object getProperty(URI propertyURI)
getProperty in interface Modelpublic Object getUnderlyingModelImplementation()
getUnderlyingModelImplementation in interface Modelpublic boolean hasReifications(Statement stmt)
hasReifications in interface ReificationSupport
?reificationResource rdf:type rdf:Statement .
?reificationResource rdf:subject ?s .
?reificationResource rdf:predicate ?p .
?reificationResource rdf:object ?o .
public boolean isEmpty()
public boolean isIsomorphicWith(Model other)
ModelisIsomorphicWith in interface Modelpublic boolean isLocked()
public boolean isOpen()
public boolean isValidURI(String uriString)
ModelValueFactoryisValidURI in interface ModelValueFactorypublic ClosableIterator<Statement> iterator()
ClosableIterablepublic void lock()
throws LockException
Lockablelock in interface LockableLockException - if already lockedpublic URI newRandomUniqueURI()
ModelValueFactorynewRandomUniqueURI in interface ModelValueFactorypublic Model open()
Modelpublic ClosableIterable<Statement> queryConstruct(String query, String querylanguage) throws QueryLanguageNotSupportedException, MalformedQueryException, ModelRuntimeException
queryConstruct in interface SparqlableQueryLanguageNotSupportedException - if the adapter can't
understand the given query languageMalformedQueryException - if the query is not a valid construct
query in the given query languageModelRuntimeException - if the execution throws an exceptionpublic QueryResultTable querySelect(String query, String querylanguage) throws QueryLanguageNotSupportedException, MalformedQueryException, ModelRuntimeException
SparqlablequerySelect in interface SparqlableQueryLanguageNotSupportedException - if the given query langauge is
not supportedMalformedQueryException - if the query is not a valid query in the
given query languageModelRuntimeException - if the execution throws an exceptionpublic void readFrom(InputStream in, Syntax syntax, String baseURI) throws IOException, ModelRuntimeException
ModelIOInputStream in the given Syntax.
The baseURI is used to dereference URIs with the syntax ":name".readFrom in interface ModelIOIOExceptionModelRuntimeExceptionpublic void readFrom(InputStream reader, Syntax syntax) throws IOException, ModelRuntimeException
ModelIOreadFrom in interface ModelIOsyntax - syntax to useIOException - on IOErrorsModelRuntimeException - on RDF serialization errors or model errorspublic void readFrom(InputStream in) throws IOException, ModelRuntimeException
ModelIOreadFrom in interface ModelIOin - the input to readIOException - on IOErrorsModelRuntimeException - on RDF serialization errors or model errorspublic void readFrom(Reader in, Syntax syntax, String baseURI) throws IOException, ModelRuntimeException
ModelIOReader in the given Syntax.
The baseURI is used to dereference URIs with the syntax ":name".readFrom in interface ModelIOIOExceptionModelRuntimeExceptionpublic void readFrom(Reader in, Syntax syntax) throws IOException, ModelRuntimeException
ModelIOreadFrom in interface ModelIOin - the input to readsyntax - syntax to useIOException - on IOErrorsModelRuntimeException - on RDF serialization errors or model errorspublic void readFrom(Reader in) throws IOException, ModelRuntimeException
ModelIOreadFrom in interface ModelIOin - the input to readIOException - on IOErrorsModelRuntimeException - on RDF serialization errors or model errorspublic void removeAll()
throws ModelRuntimeException
ModelAddRemoveremoveAll in interface ModelAddRemoveModelRuntimeExceptionpublic void removeAll(Iterator<? extends Statement> statements) throws ModelRuntimeException
ModelAddRemoveremoveAll in interface ModelAddRemoveModelRuntimeExceptionpublic void removeNamespace(String prefix)
NamespaceSupportremoveNamespace in interface NamespaceSupportpublic void removeStatement(Resource subject, URI predicate, Node object) throws ModelRuntimeException
ModelAddRemoveremoveStatement in interface ModelAddRemovesubject - URI or Object (= blankNode)object - URI or String (=plainLiteral) or BlankNode (=blankNode) or
TypedLiteral or LanguageTagLiteralModelRuntimeExceptionpublic void removeStatement(Resource subject, URI predicate, String literal, String languageTag) throws ModelRuntimeException
ModelAddRemoveremoveStatement in interface ModelAddRemoveModelRuntimeExceptionpublic void removeStatement(Resource subject, URI predicate, String literal, URI datatypeURI) throws ModelRuntimeException
ModelAddRemoveremoveStatement in interface ModelAddRemoveModelRuntimeExceptionpublic void removeStatement(Resource subject, URI predicate, String literal) throws ModelRuntimeException
removeStatement in interface ModelAddRemoveModelRuntimeExceptionpublic void removeStatement(Statement statement) throws ModelRuntimeException
ModelAddRemoveremoveStatement in interface ModelAddRemoveModelRuntimeExceptionpublic void removeStatement(String subjectURIString, URI predicate, String literal, String languageTag) throws ModelRuntimeException
ModelAddRemoveremoveStatement in interface ModelAddRemoveModelRuntimeExceptionpublic void removeStatement(String subjectURIString, URI predicate, String literal, URI datatypeURI) throws ModelRuntimeException
ModelAddRemoveremoveStatement in interface ModelAddRemoveModelRuntimeExceptionpublic void removeStatement(String subjectURIString, URI predicate, String literal) throws ModelRuntimeException
removeStatement in interface ModelAddRemoveModelRuntimeExceptionpublic void removeStatements(ResourceOrVariable subject, UriOrVariable predicate, NodeOrVariable object) throws ModelRuntimeException
ModelRemovePatternsremoveStatements in interface ModelRemovePatternssubject - URI or Object (= blankNode)object - URI or String (=plainLiteral) or BlankNode (=blankNode) or
TypedLiteral or LanguageTagLiteralModelRuntimeExceptionpublic void removeStatements(TriplePattern triplePattern) throws ModelRuntimeException
ModelRemovePatternsremoveStatements in interface ModelRemovePatternsModelRuntimeExceptionpublic String serialize(Syntax syntax) throws SyntaxNotSupportedException
ModelIOserialize in interface ModelIOSyntaxNotSupportedException - if the syntax is not supported@Deprecated public void setAutocommit(boolean autocommit)
CommitablesetAutocommit in interface Commitableautocommit - If true, all changes are immediately written to the
underlying persistence layer, if any is used.public void setNamespace(String prefix, String namespaceURI) throws IllegalArgumentException
setNamespace in interface NamespaceSupportIllegalArgumentException - if the given namespaceURI is not a valid URI in this
environment.public void setProperty(URI propertyURI, Object value)
ModelsetProperty in interface Modelpublic long size()
throws ModelRuntimeException
Modelsize in interface ModelModelRuntimeExceptionpublic boolean sparqlAsk(String query) throws ModelRuntimeException, MalformedQueryException
SparqlablesparqlAsk in interface Sparqlablequery - a SPARQL AKS queryModelRuntimeException - if the execution throws an exceptionMalformedQueryException - if the query is not a valid SPARQL ASK
querypublic ClosableIterable<Statement> sparqlConstruct(String query) throws ModelRuntimeException, MalformedQueryException
sparqlConstruct in interface SparqlableModelRuntimeException - if the execution throws an exceptionMalformedQueryException - if the query is not a valid SPARQL
CONSTRUCT querypublic ClosableIterable<Statement> sparqlDescribe(String query) throws ModelRuntimeException
SparqlablesparqlDescribe in interface SparqlableModelRuntimeException - if the execution throws an exceptionMalformedQueryException - if the query is not a valid SPARQL
DESCRIBE querypublic QueryResultTable sparqlSelect(String queryString) throws MalformedQueryException, ModelRuntimeException
SparqlablesparqlSelect in interface SparqlablequeryString - The SPARQL select query stringMalformedQueryException - if the query is not a valid SPARQL SELECT
queryModelRuntimeException - if an error happens when executing the
querypublic void unlock()
Lockablepublic void update(DiffReader diff) throws ModelRuntimeException
ModelAddRemoveupdate in interface ModelAddRemoveModelRuntimeExceptionpublic void writeTo(OutputStream out, Syntax syntax) throws IOException, ModelRuntimeException
ModelIOwriteTo in interface ModelIOout - the output to write tosyntax - syntax to useIOException - on IOErrorsModelRuntimeException - on RDF serialization errors or model errorspublic void writeTo(OutputStream out) throws IOException, ModelRuntimeException
ModelIOwriteTo in interface ModelIOout - the output to write toIOException - on IOErrorsModelRuntimeException - on RDF serialization errors or model errorspublic void writeTo(Writer out, Syntax syntax) throws IOException, ModelRuntimeException
ModelIOwriteTo in interface ModelIOout - the output to write tosyntax - syntax to useIOException - on IOErrorsModelRuntimeException - on RDF serialization errors or model errorspublic void writeTo(Writer out) throws IOException, ModelRuntimeException
ModelIOwriteTo in interface ModelIOout - the output to write toIOException - on IOErrorsModelRuntimeException - on RDF serialization errors or model errorsCopyright © 2005–2016 IT-Consulting Dr. Max V?lkel | Project started at FZI Forschungszentrum Informatik, www.fzi.de. All rights reserved.