All Downloads are FREE. Search and download functionalities are using the official Maven repository.

eu.fbk.knowledgestore.package-info Maven / Gradle / Ivy

Go to download

The Core module (ks-core) contains core abstractions and basic functionalities shared by the KnowledgeStore Frontend Server and the Java Client. It also defines the Java version of the KnowledgeStore API.

There is a newer version: 1.7.1
Show newest version
// TODO: revise documentation
/**
 * KnowledgeStore core API ({@code ks-core}).
 * 
 * 

Data model

*

* A total ordering relation is defined on nodes, allowing to compare any node against any other * node. This relation generalizes the single ordering relation that can be naturally defined for * specific types of nodes, and is provided for ease of use (e.g., to provide a canonical way to * order nodes) and for simplifying the definition of conditions on nodes. More in details, scalar * nodes are different and are sorted before record nodes, while specific rules are applied for * ordering among scalars and among records (see, respectively, the documentation for * {@link Record} and {@link Scalar}). *

*

* Resources. A resource is a self-contained piece of unstructured content, such as a news * article or a multimedia object, having some descriptive metadata (e.g., from * {@link org.openrdf.model.vocabulary.DCTERMS} vocabulary), a binary representation ( * {@link eu.fbk.knowledgestore.vocabulary.KS#STORED_AS}) and zero or more mentions contained * within it ({@link eu.fbk.knowledgestore.vocabulary.KS#HAS_MENTION} ). Note that (1) * representation metadata is generated automatically by the system based on the uploaded content, * so there is no need to manually set it; and (2) the actual binary data is not available through * the resource record object, but must be instead accessed using other API methods of the * KnowledgeStore. *

*

* Representations. A digital representation is possibly stored for each resource in the * KnowledgeStore. A {@code Representation} record contains the metadata of such a representation, * while its actual binary content can be accessed via the {@code Representation} class using * specific methods of the KnowledgeStore API. The representation metadata stored by this kind of * record comprise the filename ({@link eu.fbk.knowledgestore.vocabulary.NFO#FILE_NAME}), the size * in bytes ( {@link eu.fbk.knowledgestore.vocabulary.NFO#FILE_SIZE} ), the date and time the * representation was created ({@link eu.fbk.knowledgestore.vocabulary.NFO#FILE_CREATED}) and the * MIME type (see {@link eu.fbk.knowledgestore.vocabulary.NIE#MIME_TYPE}). Representation records * are automatically created by the system for stored resources. *

*

* Mentions. A mention is a snippet of a resource ( * {@link eu.fbk.knowledgestore.vocabulary.KS#MENTION_OF}), such as some characters in a text * document or some pixels in an image, that may refer to some entity of interest ( * {@link eu.fbk.knowledgestore.vocabulary.KS#REFERS_TO}). Mentions can be automatically extracted * by natural language and multimedia processing tools, that can enrich them with additional * attributes about how they denote their referent (e.g., name, qualifiers, 'sentiment'). * Therefore, mentions present both unstructured and structured facets not available in resources * and entities layers alone, and are thus a valuable source of information on their own. A number * of axioms ( {@link eu.fbk.knowledgestore.vocabulary.KS#EXPRESSES}) may be expressed by the * mention, i.e., can be extracted from its snippet and attributes. *

*

* Entities. An entity is described by a (possibly empty) set of axioms ( * {@link eu.fbk.knowledgestore.vocabulary.KS#DESCRIBED_BY}) and is referred by a (possibly empty) * set of mentions ( {@link eu.fbk.knowledgestore.vocabulary.KS#REFERRED_BY}). *

*

* Axioms. Axioms describe entities of the KnowledgeStore. An axiom is encoded by a set of * RDF statements ({@link eu.fbk.knowledgestore.vocabulary.KS#ENCODED_BY}) that relate one or more * entities and its validity may be restricted to a specific context ( * {@link eu.fbk.knowledgestore.vocabulary.KS#HOLDS_IN}); an axiom may be annotated with * additional metadata and can be expressed by a number of mentions ( * {@link eu.fbk.knowledgestore.vocabulary.KS#EXPRESSED_BY}). Note that a null context is used in * case of axioms holding universally and not in a specific context. An axiom may be simple * or complex, with the first consisting of exactly one RDF statement (possibly * contextualized and associated to additional metadata); simple axioms are generally used for * ABox assertions, while complex axioms are associated mainly to TBox declarations. Axioms IDs * should be assigned based on RDF statements and context. *

*

* Contexts A context defines the circumstances under which a certain axiom holds; each * axiom is associated exactly to a context in the KnowledgeStore (which may be shared by multiple * axioms) via the {@link eu.fbk.knowledgestore.vocabulary.KS#HOLDS_IN} property (if null, the * axiom holds universally). A context is identified by a set of attributes or contextual * dimensions, which are the properties of the context record. IDs of context records should * be assigned based on all the values of all the contextual dimensions. *

*/ @javax.annotation.ParametersAreNonnullByDefault package eu.fbk.knowledgestore; import eu.fbk.knowledgestore.data.Record; // NOTES ON AXIOMS // - may add enum Axiom.Kind and method Kind getKind() for retrieving the type of ABox/TBox // axiom. // Types would be // SUB_CLASS rdfs:subClassOf // EQUIVALENT_CLASSES owl:equivalentClass // also for DatatypeDefinition // DISJOINT_CLASSES owl:disjointWith, owl:AllDisjointClasses**** (type) // DISJOINT_UNION owl:disjointUnionOf*** // SUB_PROPERTY rdfs:subPropertyOf // PROPERTY_CHAIN owl:propertyChainAxiom*** // EQUIVALENT_PROPERTIES owl:equivalentProperty // DISJOINT_PROPERTIES owl:propertyDisjointWith, owl:AllDisjointProperties*** (type) // PROPERTY_DOMAIN rdfs:domain // PROPERTY_RANGE rdfs:range // INVERSE_PROPERTIES owl:inverseOf // FUNCTIONAL_PROPERTY owl:FunctionalProperty // INVERSE_FUNCTIONAL_PROPERTY owl:InverseFunctionalProperty // REFLEXIVE_PROPERTY owl:ReflexiveProperty // IRREFLEXIVE_PROPERTY owl:IrreflexiveProperty // SYMMETRIC_PROPERTY owl:SymmetricProperty // ASYMMETRIC_PROPERTY owl:AsymmetricProperty // TRANSITIVE_PROPERTY owl:TransitiveProperty // KEY owl:hasKey*** // SAME_AS owl:sameAs // DIFFERENT_FROM owl:differentFrom, owl:AllDifferent*** // CLASS_ASSERTION rdf:type // PROPERTY_ASSERTION ??? // NEGATIVE_PROPERTY_ASSERTION owl:NegativePropertyAssertion




© 2015 - 2024 Weber Informatics LLC | Privacy Policy