Copyright © 2013 OSCAF® The ontologies are made available under the terms of OSCAF software license
NRL
was designed for knowledge representation in NEPOMUK Social Semantic
Desktop applications. While being built on top of the Resource
Description Framework (RDF) and the associated RDF Schema (RDFS), it
addresses several limitations of current Semantic Web languages,
especially with respect to modularization and costumization. These
questions seem to be important not only in Semantic Desktop scenarios
but also on the general Semantic Web. NRL tackles these questions by
including support for two main additional concepts: Named Graphs
and Graph Views.
Named graphs help coping with the heterogeneity of knowledge models and
ontologies, esp. multiple knowledge modules with potentially different
interpretations. The view concept allows for the tailoring of
ontologies towards different needs in various exploiting applications.
This view concept provides also the basic mechanism to impose different
semantics on thesame syntactical structure.
This document arose from the work of the Task-Force ontologies within the Nepomuk project. It presents the specifications for the second version of the NRL vocabulary. The document has been promoted from a draft form to this official form upon reviewing by the general NEPOMUK consortium. Subsequent versions of NRL might mean that the specification documents of the later versions render this document obsolete, with respect to the version of NRL in use, but not with respect to this version.
This document presents the NEPOMUK Representational Language (NRL), a language built on top of RDF/S. The language is available for global use and is independent of the domain for which it was initially designed for, namely the [NEPOMUK Social Semantic Desktop] initiative. The NEPOMUK in the language name (NRL) has been retained only for historic purposes. Information regarding other NEPOMUK ontologies can be found in [Section 1.5].
The document stucture is as follows. [Section 1] gives an insight on the motivation for this work, the approaches taken, some resulting assumptions and the specificatin of general naming and persistance policies. [Section 2] gives an overview of the imported RDF/S vocabulary elements, some of which have been restricted, and the NRL Constraint Extensions to RDF/S.
Named Graph Extensions [Section 3] gives an overview of the NRL vocabulary to model the handling of multiple models, while Graph View Extensions [Section 4] presents the vocabulary available to tailor and impose semantics on named graphs.
[Section 5] is dedicated to deprecated elements whereas [Section 6] defines the formal semantics of NRL (to be completed). A summary of all the NRL vocabulary elements is given in [Appendix A].
NRL is based on a number of key concepts, some of which are identical to concepts defined in earlier work. Other concepts are fundamentally the same to ones in existant work, but differ slightly in definition, while some concepts are a fresh approach to data representation. The key concepts are RDF triple, Named Graph and Graph Views and they are introduced in this section.
The basic concept is the RDF triple and the definition is fundamentally similar to the one given in [RDF Specification - CONCEPTS] where a triple consists of three components:
An RDF Graph consists of a set of triples. The definition is similar to the one given in [RDF Specification - CONCEPTS]. A Named Graph is an RDF Graph identified by a name. In NRL, all RDF triples must be assigned to at least one named graph. Triples that are not, are automatically assigned to a special named graph, the [nrl:DefaultGraph]. Therefore, NRL data handling is usually defined in terms of named graphs rather than RDF triples. The formal definition for a named graph is the same as that given in [NAMED GRAPHS] but excludes the open-world assumption [See Section 1.7]. Named graphs differ in content and purpose, and for this reason Graph Roles have been introduced, representing general roles like simple data, ontology, knowledge base, plus other less generic roles. Graph roles carry Declarative Semantics, which means that their semantics are implicit and have not necessarily been realized (in the form of inferred triples). A more elaborate definition, syntax specification and example section for named graphs is given in Named Graph Extensions [Section 3].
A named graph consists of the corresponding triple set as is, and retrieving RDF triples from a named graph, will simply return the enumerated triples in the set. However it is frequently required to work with graphs having realized semantics in the form of entailment triples, according to some declared semantics. Additionaly, it is sometimes required to work with more abstract, simplified forms of a graph. In general, it is useful to work with various interpretations of a named graph in different situations. However, in order to preserve the integrity and consistency of named graphs, an original named graph should be independent of its interpretations. To model this, one can define arbitrary views which realize different interpretations for an established named graph. We call these interpretations Graph Views and they are formally defined in Graph Views Extensions [Section 4]. Graph views are themselves named graphs, so it is possible for a view to be applied on top of another graph view. View Specifications define how a view is to be computed and they can refer either to a set of rules in some rule language, or to an external application. Some view specifications realize the Procedural Semantics of a graph, and the result is a Semantic View, having both declarative and procedural semantics. Conceptually, a graph g can be given a semantics by applying a semantic realizing view v, which is linked to some semantic specifications. Practically, if the semantics specifications are those for NRL, and these state that some of the applied semantics are transitive (e.g. rdfs:subClass) this would imply that v will be the extension of g with the inferred triples generated by performing the transitive closure.
The
following
figure presents the
important aspects of the NRL language, including the key concepts just
described and their relationships. The
diagram is partitioned in the (abstract)
syntax on which it is defined (right), and the formal semantics (left)
to which it is linked to. The
NRL domain is depicted by the grey shaded part. Notice that NRL is not
limited to the syntax partition, since it includes NRL formal semantics
defined in [Section
6]. The
NRL syntax
is
composed of a base langugage and a schema language. The base
language refers to the specification of the key concepts in
the
language, including named graphs, graph roles and graph views
while the schema
language (NRL Schema) provides the means to define schemas (especially
information models and ontologies). The semantics
partition mainly distinguishes between abstract declarative semantics,
and realized procedural semantics.
The syntax schema consists of the NRL Schema, which is based
on an
extended RDFS (RDFS'). The syntax base presents the key
concepts of NRL as a set abstraction. Named graphs, consisting of RDF
Triples, are the most general set (red) since both graph roles and
graph views are special kinds of named graphs. Graph Roles (yellow) are
tied to declarative semantics that they assume (e.g. an ontology using
elements from RDF/S). Graph Views (green) are tied to view
specifications which execute the view's realization. The
intersection between graph roles and graph views refers to semantic
views. These special views realize the declarative semantics of the
graph role they are interpreting (e.g. by extending an ontology that
uses rdfs:subClassOf
by its transitive closure as defined in RDF/S Semantics). Thus, as
shown on the left hand side of the figure, semantic view specifications
carry the realized procedural semantics for a view, which are
linked to the abstract declarative semantics of a language.
Figure 2 shows how the
theoritical basis of NRL can be
applied in practice to handle RDF data. Data handling includes
creation, merging, interpretation and presentation of RDF data. It
presents the dataflow for some typical NRL data and how the various
concepts introduced earlier can be effectively used to model RDF data
and use it in different scenarios in a sound but intuitive way. The
example sections for the Named Graph extensions [Section 3.3] and
the Graph Views extensions [Section
4.3] present examples that model the dataflow in this figure
in TriG syntax [TRIG].
TriG is a straight-forward
extension of Turtle
[TURTLE]. Turtle itself
is an extension of N-Triples [N-TRIPLES]
which carefully takes the most useful and appropriate things added from
Notation3
[NOTATION3]
while keeping it in the RDF model. TriG is a plain text
format created for serializing NGs and RDF Datasets.
The dataflow is based on four existing named graphs, two having the role of [nrl:Ontology] (ontologies O1 and O2) and the other two that of [nrl:InstanceBase] (instance bases I1 and I2). A new named graph, O, is also defined as having the role of [nrl:Ontology] and by using the property [nrl:imports] it is defined as being the supergraph of both O1 and O2. This constitutes an ontology merge for O1 and O2 into O. Similarly, a new named graph, KB, is defined to have the role of [nrl:KnowledgeBase] and is defined as the supergraph of O, I1 and I2. Therefore, KB consists of all RDF triples in O1, O2, I1 and I2.
An RDF programmer would like to work with an extension of KB that includes also the realized semantics that KB is implicitly carrying. To generate this extension, or view, the RDF programmer can define an instance of [nrl:ViewSpecification] that computes and returns the procedural semantics for KB. The view specification uses a rule language of choice that provides a number of rules, one of which computes the transitive closure of rdfs:subClassOf, as defined in the RDFS semantics, for a set of RDF triples. Executing the chosen rules over the triples in KB result in a semantic view RDFS(KB) consisting of the RDF triples in KB plus the generated entailment triples.
Next, the RDF programmer needs to present some of this extended data to an average user in a simplified way. In particular, the user would at some point like to see the class hierarchy present in RDFS(KB). The RDF programmer can create external view specifications, in the form of applications which take a named graph as input (a set of RDF triples), and return the desired RDF triples as output. In this case, an external view specification, E1, is created and designed to select and return the triples defining the class hierarchy within an input named graph. The view generated by this application, E1(RDFS(KB)), which is basically another named graph, is the data required for presentation to the user. It is worth to note, that at this stage, all the seven named graphs that this last view is generated upon are still intact and they have not been modified by any of the operations.
In this section we specify the original identified requirements for a Representational Language (excluding requirements that are domain-dependent) and whether their fulfillment was successful or otherwise.
The following requirements have been satisfied:
The following requirements are no longer in the scope of the NRL but in that of lower-level ontologies:
The following requirements have not been satisfied:
Note: The fulfillment of this requirement will be postponed until a non-imprecise version of NRL is stable.
The following requirement has been retracted:
This specification provides some recommendations as to the use of some RDF/S elements or constructs [2.3]. It must be noted that if these recommendations are not followed, this still results in legal RDF/S data and therefore legal NRL data. However this does not imply that such data would be valid NRL data. Although such data would conform to the RDF/S specifications, correct manipulation of invalid NRL data is not guaranteed if the recommendations are not followed. This also applies to RDF/S data that is imported in an NRL context (e.g. RDF/S data imported on one's semantic desktop). In a more technical sense, legal NRL would be processed without generating errors, but only valid NRL would be processed without generating warnings.
Since
NRL is based on the Named Graph paradigm [See Named
Graph Extensions], NRL
data cannot be directly represented with plain RDF/S since NG's are an
extension on
top
of RDF/S. Therefore NRL with named graphs is not backward
compatible
to RDF/S. It is compatible however with Named Graphs
as specified in [SPARQL-QUERY].
The URI for the NRL Vocabulary is http://www.semanticdesktop.org/ontologies/yyyy/mm/dd/nrl# subject to the date of the latest stable version.
The URI for an element in the vocabulary is constructed by appending a fragment identifier to the above URI. A fragment identifier for a class always starts with an uppercase letter while in the case of properties it starts with a lowercase letter. In the case of class identifiers consisting of multiple words, the leading character of each word will be an uppercase letter. In case of property identifiers consisting of multiple words, the leading character of each word will be an uppercase letter, except for the first word which as specified should be in lowercase.
Exampleshttp://www.semanticdesktop.org/ontology/yyyy/mm/dd/nrl#Class http://www.semanticdesktop.org/ontology/yyyy/mm/dd/nrl#ExampleClass http://www.semanticdesktop.org/ontology/yyyy/mm/dd/nrl#property http://www.semanticdesktop.org/ontology/yyyy/mm/dd/nrl#exampleProperty |
The NRL Vocabulary specification defined here and any previous or later versions, plus the NRL ontology itself [http://www.semanticdesktop.org/ontology/yyyy/mm/dd/nrl#] will be provided as persistent resources.
Ontologies are structured in various layers or levels, with the rationale that those at higher levels are more stable and thus change less often than those at lower levels. Usually, one distinguishes representational ontologies, upper-level ontologies, mid-level ontologies, and domain ontologies.
The NRL is a representational ontology and although it is domain independent it was designed to fulfil requirement for the NEPOMUK Social Semantic Desktop initiative. Representational ontologies define the vocabulary with which other ontologies are represented. Other examples of such representational ontologies are RDF/S and OWL. The relationship of a representational ontology to other ontologies is quite different from the relationship between the other ontologies themselves. While upper-level ontologies generalize mid-level ontologies, which in turn generalize domain ontologies, all these ontologies can be seen as instances of the representational ontology.
The specification of various other ontologies is in the pipeline for the Social Semantic Desktop project. In particular, the following (upper-level) ontologies are being discussed:
The ontologies resulting from the Social Semantic Desktop project are partly inspired by existing elements in external ontologies. As a result some elements are very similar to elements in existing languages like OWL [OWL Overview] and OMV [OMV Documentation]. Also, some RDF/S elements do not fulfil the requirements for the project's ontologies and therefore problems arise from these two scenarios. When requiring elements that already exist in some other standard ontology, but do not exactly conform to our requirements, there are the following three outlined options:
In the NEPOMUK ontologies, option three is the standard best practice when existent elements with different semantics are required. When requiring restriction on the use of elements, option one is sufficient since it does not violate the predefined semantics. However in this case the statement in [1.2] should be noted. The mapping constructs required for option three will be defined over time and therefore, although theoritically the agreed-upon option is three, in practice option two is currently being implemented.
The open-world assumption (OWA) presumes that its knowledge of the world is incomplete and that this lack of knowledge does not imply falsity. On the other hand, the closed-world assumption (CWA) presumes that what is not currently known to be true, is false. Whereas the OWA states that everything that is not known is undefined, the CWA implies that everything we don't know is false.
This assumption has a big impact on direct and indirect knowledge generated through RDF data. This difference is demonstrated through the following example which is based on Named Graphs and TriG [TRIG]. We will consider the implications of importing the given three graphs g1, g2 and g3 into an external graph g.
@prefix
nrl:
<http://www.semanticdesktop.org/ontology/yyyy/mm/dd/nrl#>
. @prefix dom: <http://www.example.org/ontology/domainOntology#> . @prefix ex: <http://www.example.org/vocabulary#> . @prefix ex2: <http://www.example.org/vocabulary#> . @prefix : <http://www.example.org/vocabulary#> . [1] :g1 { dom:Person rdf:type rdfs:Class . dom:Man rdf:type rdfs:Class ; rdfs:subClassOf dom:Person . dom:Woman rdf:type rdfs:Class ; rdf:subClassOf dom:Person . dom:hasFather rdf:type rdf:Property , nrl:FunctionalProperty ; rdfs:domain rdf:Person ; rdfs:range rdf:Man . } [2] :g2 { ex:Peter rdf:type dom:Man . ex:Jill rdf:type dom:Person ; dom:hasFather ex:Peter . } [3] :g3 { ex2:Jack rdf:type dom:Man . ex:Jill dom:hasFather ex2:Jack . } |
The RDF language itself assumes an open-world and so does the definition for Named Graphs in [NAMED GRAPHS]. There is a difference of opinion on what approach is best for handling RDF data. While OWA is more flexible, and more likely to generate new statements based on ones that already exist in the models, its non-monotonic nature hinders computability and largely increases the complexity of RDF data. On the other hand, while CWA is much more prone to generate errors, it is totally deterministic and one can always compute whether any statement under the assumption is true or false.
Although it is sometimes more realistic to apply OWA, the correctness of this approach is not guaranteed. In the given example, it might makes sense to leave the possibility open for the statement Jill is a woman to be true. However it might not make sense to assume that the fact Jack is Peter is intentional. Under CWA, the truth of the statements is subject to explicitally stating them.
For this reason, NRL does not assume an Open World View and although NRL imposes no semantics on basic graphs, NRL semantics are CWA. Semantics are imposed on graphs through Graph Views and Semantic Views as introduced in [Section 4]. Therefore Open World Views can be realized as well by applying an OWA view to a named graph. On the Semantic Desktop in particular we assume closed-world semantics as it focuses mainly on personal data. While most people find it difficult to understand the logical meaning and potential inferences statements of the open-world assumption, the closed-world assumption is easier to understand for an average desktop user.
The NRL
Vocabulary is an
application of the [Resource
Description Framework] (RDF) and the associated [RDF
Schema] (RDFS). The NRL vocabulary
therefore implicitly includes elements from the RDF/RDFS vocabularies.
Consequently the specifications for RDF [RDF
Specification] and RDFS should be regarded as part of this
specification document. However, the NRL vocabulary defines some
recommendations on the use of RDF/RDFS elements. When using
RDF/S constructs within the NRL context, these recommendations need
to be respected if the generated data is to be valid NRL data (see
discussion in [1.2]
regarding
valid and legal NRL). In practice this means that when RDF/S constructs
are used together with NRL elements (or any of their instances) one
should strictly abide by the RDF/S specifications and any
recommendations stated in this document.
The rest of Section 2 is divided as follows. Summary tables of the
imported RDF/RDFS elements are provided, followed by specifications of
any restrictions or recommendations placed when importing into NRL.
The following are the elements defined in RDF and implicitly forming part of the NRL. Their summary tables are categorized into Classes, Properties and other elements. The class summary table states the class name and the class’s parent class. The property summary table states the property name and the applicable domain and range. The other elements table states the element name and the element type. The tables also denote whether the elements have been imported as is, or if extensions or restrictions apply when used in the NEPOMUK context. These extensions and restrictions are specified in [2.3]
Class | Superclass | Notes |
rdf:Property | rdfs:Resource | No |
rdf:Statement | rdfs:Resource | No |
rdf:XMLLiteral* | rdfs:Literal | No |
rdf:Bag | rdfs:Container | Yes |
rdf:Seq | rdfs:Container | Yes |
rdf:Alt | rdfs:Container | Yes |
rdf:List | rdfs:Resource | No |
*rdf:XMLLiteral is also an instance of rdfs:Datatype (see Other Vocabulary)
Property | Domain | Range | Notes |
rdf:type | rdfs:Resource | rdfs:Class | No |
rdf:subject | rdf:Statement | rdfs:Resource | No |
rdf:predicate | rdf:Statement | rdfs:Resource | No |
rdf:object | rdf:Statement | rdfs:Resource | No |
rdf:value | rdfs:Resource | rdfs:Resource | No |
rdf:first | rdf:List | rdfs:Resource | No |
rdf:rest | rdf:List | rdf:List | No |
Name | Type | Notes |
rdf:nil | rdfs:List | No |
rdf:XMLLiteral | rdfs:Datatype | No |
The following are the elements defined in RDFS and implicitly forming part of the NRL. Their summary tables are categorized into Classes and Properties. The class summary table states the class name and the class’s parent class. The property summary table states the property name and the applicable domain and range. The tables also denote whether the elements have been imported as is, or if extensions apply when used in the NRL context. These extensions are specified in [2.3]
Class | Superclass | Notes |
rdfs:Resource | rdfs:Resource | No |
rdfs:Class | rdfs:Resource | No |
rdfs:Datatype | rdfs:Class | No |
rdfs:Container | rdfs:Resource | Yes |
rdfs:Literal | rdfs:Resource | No |
rdfs:ContainerMembershipProperty | rdf:Property | Yes |
Property | Domain | Range | Notes |
rdfs:domain | rdf:Property | rdfs:Class | Yes |
rdfs:range | rdf:Property | rdfs:Class | Yes |
rdfs:subClassOf | rdfs:Class | rdfs:Class | No |
rdfs:subPropertyOf | rdf:Property | rdf:Property | No |
rdfs:member | rdfs:Resource | rdfs:Resource | Yes |
rdfs:isDefinedBy* | rdfs:Resource | rdfs:Resource | Yes |
rdfs:label | rdfs:Resource | rdfs:Literal | No |
rdfs:comment | rdfs:Resource | rdfs:Literal | No |
rdfs:seeAlso | rdfs:Resource | rdfs:Resource | No |
*rdfs:isDefinedBy is a sub property of rdfs:seeAlso
As discussed earlier [Section 1.2] although any legal RDF is also legal NRL, it is not necessarily valid NRL. In order for NRL to be valid, these recommendations must be strictly adhered to.
The
fact that NRL does not assume open-world has an
impact on the way some constructs should be used. This is especially
true for
the rdfs:domain and the rdfs:range elements. In an open-world scenario,
when
using a property to relate two resources, one is implicitly casting the
type of
those resources to the types specified in the property’s
domain and range
definition. In other words the use of a property evokes additional
implicit
statements about the types of the objects being related, even if these
types
are different than the types that have been predefined for the objects,
if at
all. In a closed-world scenario as on the semantic
desktop this is not possible since in order to
relate
two resources, their types must fit the expected domain and range in
the first
place. This also means that untyped resources cannot be related.
Failure to do
so will generate legal yet invalid NRL data on the semantic desktop.
This recommendation has a
major bearing
on the validity of logical inference mechanisms in place within NRL and
therefore must be strictly adhered to.
In these examples and the ones that follow throughout the document, we use the example namespace for user-generated data http://mydesktop.org/mydesktop#. The example namespace abbreviation can be defined as follows. To improve the readability of examples, the user namespace abbreviation is sometimes excluded. In these cases, the elements are given in italics.
@prefix
rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> . @prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> . @prefix nrl: <http://www.semanticdesktop.org/ontology/yyyy/mm/dd/nrl#> . @prefix voc: <http://www.semanticdesktop.org/ontology/desktop#> . ... @prefix desktop: <http://mydesktop.org/mydesktop#> . ... |
[1]
:o1 { ... voc:depicts rdf:type rdf:Property ; rdf:domain voc:ImageFile ; rdf:range voc:Person . } :ib1 { ... [2] desktop:Myself rdf:type voc:Person . [3] desktop:MyFriend rdf:type voc:Friend . [4] desktop:PassportPhoto rdf:type voc:ImageFile ; voc:depicts desktop:Myself . [5] desktop:Friend20060613 rdf:type voc:ImageFile ; voc:depicts desktop:MyFriend . } |
The use of blank nodes in conjunction with NRL elements and their instances is strongly discouraged. Blank nodes are semantically difficult to handle and as a result it is difficult to implement them correctly.
Container classes are deprecated because the semantics of containers are not clear and they are also difficult to handle. The sole use of either containers or collections is sufficient to model grouped resources. Since the semantics of collections are clearer, the use of containers is discouraged in favour of collections.
Although the use of container classes and properties is discouraged, resources can still be grouped using [RDFS Collections] constructs.
The semantics of this element is unclear and therefore it is discouraged. The definition vaguely allows the use of this property to relate any two resources.
Recommendation: The use of rdfs:isDefinedBy is strongly discouraged. Data containing statements using this property is legal but not valid NRL data.The named graphs paradigm provides all the functionality required to be able to state things about other statements. Consequently, the idea of reification within the NRL context is redundant.
Recommendation: The use of reification is strongly discouraged.This section presents extensions used to make statements about constraints on the use of properties in NRL data. These extensions provide further functionalities to the basic constraints provided by RDFS, namely [rdfs:domain] and [rdfs:range]. The latter two constraints place a limitation on the class type of the resources that a property can relate (class type constraints). The NRL constraint extensions in turn place a limitation on the amount of values that a property can take (range cardinality constraints) and on actual pairs of resources that the property should or should not, through inference, relate (resource relation constraints). These three categories are summarized in [Table 1]. Similarly to RDFS, NRL provides a mechanism for describing these constraints, but does not say whether or how an application must process the constraint information. In particular, in the Social Semantic Desktop scenario, different applications will use the constraints in different ways. NRL Validators will be expected to check for errors, interactive editors to suggest legal values, and reasoners to perform inference and inconsistency checks.
Class Type Constraints | Range Cardinality Constraints | Resource Relation Constraints | ||
rdfs:domain | nrl:cardinality | nrl:TransitiveProperty | ||
rdfs:range | nrl:minCardinality | nrl:SymmetricProperty | ||
nrl:maxCardinality | nrl:AsymmetricProperty | |||
nrl:ReflexiveProperty | ||||
nrl:inverseProperty | ||||
nrl:FunctionalProperty | ||||
nrl:InverseFunctionalProperty |
It should be noted, that the recommendation given for the RDFS constraints in [2.3.1.] is extended to the NRL constraint extensions. Given a possible closed-world view, in order to generate valid NRL data a user (human or machine) should check, prior to using a property, whether the resources are indeed valid candidates which satisfy the constraints.
The following are the classes ([2.4.1.] - [2.4.6.]) and properties ([2.4.7.] - [2.4.10.]) provided in NRL as constraint extensions to RDF/S.
Properties may be defined to be transitive. If a transitive property relates resource X to resource Y as well as Y to resource Z, then it follows that the property also relates X to Z. Semantic views can realize these declarative semantics by generating entailment triples. This class is similar to [owl:TransitiveProperty].
Note: Transitive properties and their superproperties should not be assigned a maximum cardinality restriction of one. This would contradict the fact that the resource X described above can be transitively related to both Y and Z.Since containsFolder is a transitive property, a reasoner can easily deduce that since MyPapers - containsFolder - PublishedPapers and PublishedPapers - containsFolder - ShortPapers, then MyPapers - containsFolder - ShortPapers as well.
:o1 { ... voc:containsFolder rdf:type rdf:Property ; rdf:domain voc:Folder ; rdf:range voc:Folder ; [1] rdf:type nrl:TransitiveProperty . } :ib1 { ... desktop:MyPapers rdf:type voc:Folder ; [2] voc:containsFolder desktop:PublishedPapers . [3] desktop:PublishedPapers rdf:type voc:Folder ; voc:containsFolder desktop:ShortPapers . } |
Properties can be defined to be symmetric. If a symmetric property relates resource X to resource Y, then it follows that Y is related to X by the same property. Examples follow [5.1.4.]. This class is similar to [owl:SymmetricProperty].
Properties can also be defined to be asymmetric. Then if asymmetric property relates X to Y, then Y cannot be related to X by the same property.
Properties can be defined to be reflexive. This would restrict the use of this property to relate a resource to itself. Hence, reflexive properties can only relate resource X to itself.
ExamplesSince hasTopic is an asymmetric property, a reasoner would know that it is not possible to say that the topic Publications has as topic the folder PublishedPapers.
:o1 { ... voc:relatedTopic rdf:type rdf:Property ; rdf:domain voc:Topic ; rdf:range voc:Topic ; [1] rdf:type nrl:SymmetricProperty . voc:hasTopic rdf:type rdf:Property ; rdf:domain voc:Folder ; rdf:range voc:Topic ; [2] rdf:type nrl:AsymmetricProperty . } :ib1 { ... [3] desktop:Publications rdf:type voc:Topic ; voc:relatedTopic desktop:Research . [4] desktop:PublishedPapers rdf:type voc:Folder ; voc:hasTopic desktop:Publications . } |
Properties can be defined to be functional. This translates into the property having a minimum cardinality of zero and a maximum cardinality of one for each unique resource that is applied as its domain. Therefore, if a functional property relates resource X to resource Y, then it means that X cannot be forward related to other resources by that same property. In simpler words, the value of such a property for resource X, if stated, is unique. Example follows [3.1.13]. This class is similar to [owl:FunctionalProperty].
A property can also be defined to be inverse functional. Such a property implies that the inverse of the property is functional. This does not automatically mean that an inverse property of the property in question is actually defined using [nrl:inverseProperty]. This translates into the property having a minimum cardinality of zero and a maximum cardinality of one for each unique resource that is applied as its range. Therefore, if such a property relates resource X to resource Y, then it means that Y cannot be backward related to other resources using that same property. In other words, if Y is defined as the property value for one resource, then it cannot be defined as the property value for another resource. This class is similar to [owl:InverseFunctionalProperty].
ExamplesSince user is a functional property, it can be concluded that this instance of Desktop has only that unique particular instance of Person as user. No other instances of Person can be defined as the user of this Desktop. Under the closed-world assumption this would generate warning over conflicting data.
[4] desktop:MyUserName is defined to be an instance of class voc:Person with a voc:email value of user.name@host.com.Since email is an inverse functional property, it follows that user.name@host.com cannot belong to other instances of Person. Doing so might result in conflicting data due to NRL's closed-world assumption.
:o1 { ... voc:user rdf:type rdf:Property ; rdf:domain voc:Desktop ; rdf:range voc:Person ; [1] rdf:type nrl:FunctionalProperty . voc:email rdf:type rdf:Property ; rdf:domain voc:Person ; rdf:range <http://www.w3.org/2001/XMLSchema#string> ; [2] rdf:type nrl:InverseFunctionalProperty . } :ib1 { ... [3] desktop:MyPersonalDesktop rdf:type voc:Desktop ; voc:user desktop:MyUsername . [4] desktop:MyUserName rdf:type voc:Person ; voc:email "user.name@host.com" . } |
This property is a cardinality restriction property. It can be applied to instances of rdf:Property to specify a constraint on the minimum number n of values that the property can have for each unique resource it is applied as its domain. The value allowed for this property is a nonNegativeInteger data value from the XML Schema datatypes. This states that instances of the restricted property must have at least n (n or more) semantically distinct values. In particular, properties with a minimum cardinality of one must have at least one value to be semantically valid. Properties whose minimum cardinality constraint is not defined have a default minimum cardinality of zero. In order to correctly use the NRL vocabulary, this restriction must be always strictly respected. This property is similar to the Protégé minimum cardinality property constraints and to [owl:minCardinality].
This property is a cardinality restriction property. It can be applied to instances of rdf:Property to specify a constraint on the maximum number n of values that the property can have for each unique resource it is applied as its domain. The value allowed for this property is a nonNegativeInteger data value from the XML Schema datatypes. This states that instances of the restricted property must have at most n (n or less) semantically distinct values. In particular, a property with a maximum cardinality of zero would be of no use since it should never contain any values. Properties whose maximum cardinality constraint is not defined have a default infinite maximum cardinality. In order to correctly use the NRL vocabulary, this restriction must be always strictly respected. This property is similar to the Protégé maximum cardinality property constraints and to [owl:maxCardinality].
Examples
:o1 { ... voc:contactEmail rdf:type rdf:Property ; rdf:domain voc:ContactPerson ; rdf:range voc:EmailAddress ; [1] nrl:minCardinality "1" . } |
:o1 { ... voc:firstName rdf:type rdf:Property ; rdf:domain voc:ContactPerson ; rdf:range <http://www.w3.org/2001/XMLSchema#string> ; [2] nrl:minCardinality "1" ; [3] nrl:maxCardinality "1" . } |
Properties are mainly distinguished by their domain and range. Some properties are the exact inverse of each others, where the range and domain of property A are the domain and range of property B respectively. In order to provide efficient reasoning and query handling, the NRL requires that such inverse functionality of two properties is explicitly stated using the [nrl:inverseProperty]. Stating that a new property B is the inverse property of predefined property A is equivalent to stating that the range of A is the domain of B and the domain of A is the range of B. This will help enable the logical inference of some implicit statements from other explicit statements. If property A and property B are defined to be inverse properties, stating that resource X is related by property A to resource Y will evoke the statement that resource Y is related by property B to resource X. This property is comparable to Protégé’s inverse property and [owl:inverseOf].
Example
:o1 { ... [1] voc:hasFile rdf:type rdf:Property ; rdf:domain voc:Folder ; rdf:range voc:File ; [2] nrl:inverseProperty voc:inFolder . [3] voc:inFolder rdf:type rdf:Property ; rdf:domain voc:File ; rdf:range voc:Folder ; [4] nrl:inverseProperty voc:hasFile . } |
In the Social Semantic Desktop domain we take a Named Graphs approach to semantic data. Named Graphs [NGs] are an extension on top of RDF, where every RDF Graph as defined in [RDF Specification - CONCEPTS] is identified by a name. NGs provide useful additional functionality on top of RDF, particulary with respect to metametadata (data about metadata), provenance and data (in)equivalence issues. This approach is based on the work described in [NAMED GRAPHS] excluding the open-world assumption described there. However, one should note that our definitions for a closed-world and open-world assumption (See Section 1.7) differ slightly from the ones given in [NAMED GRAPHS]. As previously stated NRL does not assume an open-world scenario and although it imposes no semantics per se to the graphs the NRL Semantics are based on a closed-world assumption.
A named graph is a pair (n,g), where n is a unique URI reference denoting the assigned name for the graph g. Such a mapping fixes the graph g corresponding to n in a rigid, non-extensible way. The URI representing n can then be used from any location to refer to the corresponding set of triples belonging to the graph g. In other words, graph names, like namespaces, should be globally unique. A graph g' consistent with a different graph g named n cannot be assigned the same name n. Two different datasets asserting graphs g and g' having the same URI for a name contradict one another.
An RDF triple can exist in a named graph or outside any named graph. However, for consistency reasons, all triples must be assigned to some named graph. For this reason, NRL provides the special named graph [nrl:DefaultGraph]. Triples existing outside any named graph automatically form part of this default graph. This ensures backward compatibility with triples that are not based on named graphs. This approach gives rise to the term RDF Dataset as defined in [SPARQL-QUERY]. An RDF dataset is composed of a default graph and an unlimited number of distinct named graphs. It is formally defined as the set {g, (n1, g1), (n2, g2), . . ., (nn, gn) } comprising of the default graph g and zero or more named graphs (n,g).
NRL distinguishes between Graphs and Graph Roles, in order to have orthogonal modeling primitives for defining graphs and for specifying their role. A graph role refers to the characteristics and content of a named graph (e.g. simple data, an ontology, a knowledge base, etc.) and how the data is intented to be handled. The NEPOMUK Annotation Ontology (Refer to the NAO) includes vocabulary for providing metadata about graph roles. Graph metadata will be attached to these roles rather than to the graphs themselves, because in practice it makes more sense to describe an ontology or a knowledge base rather than an anonymous graph. Roles are more stable than the graphs they represent, and while the graph for a particular role might change constantly, evolution of the role itself is less frequent. An instantiation of a role represents a specific type of graph and the corresponding triple set data. One can contain graph metadata outside or inside the graph being described. Storing graph metadata within the graph itself implies that the graph metadata is also describing itself, which is not something one will always want to have. Therefore its more suitable to keep graph metadata separate from its respective graph, and therefore outside the graph. This means to either contain the metadata in the default graph, or in a dedicated named graph. Since having graph metadata about every existing named graph in the default graph is not practical, it is more suitable to have the graph metadata in separate named graphs. That is, any metadata about a named graph g will be contained within a separate metadata graph gm dedicated for g. A special graph role, [nrl:GraphMetadata] is used to mark such metadata graphs.
General graph vocabulary is defined in [Section 3.1] while [Section 3.2] is dedicated entirely to graph roles. Figure 3 depicts the class hierearchy supporting NGs in NRL. Graph Roles (yellow) are defined as a subclass of the abstract role superclass nrl:Data, itself being defined as a subclass of the general Graph representation (red). A special Graph specialization (blue) is used as a marker class for Graphs that are represented and identified by a document URL [See 3.1.2].
Figure 3: NRL Named Graph class hierarchy
This section specifies the core named graph vocabulary. This consists of top-level named graph elements which represent general graphs. Vocabulary for representation of specific graph roles is described in section [3.2.].
This class represents a named graph. An instance of this class will represent a named graph as described in the introduction of this section, where the name of the instance coincides with the name of the graph. It should be noted that all graph role classes described in [3.2] are subclasses of this element [See Figure 3]. As such, there will generally be instances of specific graph roles rather than this more generic graph representation. This class is similar to [rdfg:Graph].
This is a marker class that names graphs via the URL of their containing document. A graph that is completely represented by such a document can be defined to be an instance of this class, whereby the document URL will become the name of that graph.
Graphs can consist of subparts of other more general Graphs. In other terms, a set of triples may form a specific part of a more general set of triples. This property can be used to model such a relationship between two instances of [nrl:Graph]. This property is the inverse of [nrl:superGraphOf]. When a graph g is defined to be a subgraph of another graph g', the latter is understood to be the supergraph of g. This property is similar to [rdfg:subGraphOf].
This property can be used to state that one graph subsumes another graph. A supergraph will then consist of one or more subgraphs. This property is the inverse of [nrl:subGraphOf]. When a graph g' is defined to be a supergraph of another graph g, the latter is understood to be a supgraph of g'. The property [nrl:imports] is a subproperty of this property.
This special subproperty of [nrl:superGraphOf] models graph imports and can be used to state that an existing named graph g' should be considered as part of graph g. This is akin to saying that g' is a subgraph of g or inversely that g is a supergraph of g'. This property can be used to model graph role data imports. Importing a graph into another means that all the former graph’s data, and semantics, will implicitly form part of the latter. Such modelling is transitive. If graph g is imported into graph g', and g' is imported into graph g'', then g'' also includes the data represented by g. Two graphs g and g' are equivalent if they import each other. When applied to the [nrl:Ontology] role this property can be used to model ontology imports and in this case this property is similar to [owl:imports]. An incompatibility problem may arise when importing graphs with incompatible semantics to the current graph, or combining multiple graphs with different semantics into a new supergraph.. This incompatibility may however be resolved via semantic views which rectify this problem by aligning the different semantics of the graphs.
Although triples can exist inside a named graph or outside any named graph, for consistency reasons all triples are required to form part of some named graph. This default graph instance is provided by NRL to serve this requirement. All triples existing outside any named graph (e.g. external triples unaware of NRL's named graph approach), will be assigned to this default graph. The DefaultGraph is disjoint from all other existing named graphs and it is given by the intersection of the complements of all other existing named graphs in the RDF triple space.
This section introduces classes and properties provided in NRL that deal with Graph Roles as described in the introduction of Section 3 and depicted in Figure 3. This vocabulary is closely tied with the Graph Metadata Vocabulary provided in [NAO]. In fact they can also be considered as graph metadata vocabulary, since the elements are in practice used within graph metadata definitions. However, due to their essential nature they are core NRL elements.
This is an abstract class representing all graph roles. All graphs are assigned one of the roles represented by this abstract superclass. It is itself a subclass of [nrl:Graph] alongside [nrl:GraphView] and [nrl:DocumentGraph].
A schema represents a conceptualisation model. This class is used as a role for a graph that represents data in the form of a schema. It is defined as a subclass of [nrl:Data], and therefore also a subclass of [nrl:Graph]; and it is a superclass of [nrl:Ontology].
A graph may represent instances of classes defined using some schema (or ontology) that is represented by another separate graph. This class provides the representation for such graphs. An instance base is a subclass of [nrl:Data], and therefore also a subclass of [nrl:Graph].
An ontology is a more expressive type of schema describing more complex models which may include rule-based knowledge in addition to a relational characterisation. This class represents such a role for a Graph and it can also serve the purpose of an ontology header within RDF/S documents as provided by [owl:Ontology]. This class is a subclass of [nrl:Schema] and therefore also a subclass of [nrl:Data] and [nrl:Graph].
A graph can represent a schema (or ontology) together with a number of instantiations of elements in the same schema (or ontology). Such a graph has a similar role to an instance base with the major difference that it also represents the schema (or ontology) providing the constructs used to define the instances. Therefore this role can be seen as a subset of the intersection of the [nrl:Ontology] and [nrl:InstanceBase] roles, and is in fact defined as a subclass of both these roles.
Technical configuration data that is irrelevant to general semantic web data can also be represented within a graph, through this role. Other additional roles serving different purposes might be added in the future. This class is a subclass of [nrl:Data].
This role is useful to mark graphs whose sole purpose is to store metadata about some specific graph. Data about a graph, or Graph Metadata, is thus stored in a corresponding graph that has this role.
This property binds a metadata graph to the graph being described. A metadata graph must point to the named graph being described therefore the minimum cardinality is set to 1. Given that in some cases a single metadata graph can provide metadata for multiple graphs, the maximum cardinality is undefined.
Although
a graph can have multiple metadata graphs that describe it,
there can only be one unique core metadata graph which defines the
graph's important core properties, e.g. whether it is updatable or
otherwise and other important metadata
vocabulary. This property identifies such a core metadata graph and
points to the graph it describes. It is a subproperty of nrl:graphMetadataFor.
The declarative semantics for a graph role can be specified by referring to instances of this class. Such an instance will consist of an identifier to a location where the formal semantics of the schema or language used are specified.
Graph roles do not automatically have any semantics, but these can be specified through this property (declarative semantics) with respect to an instance of the special class [nrl:Semantics]. The semantics of a graph role can also be realized (procedural semantics) by instantiating a graph view with a semantic specification over the role (See Graph Views Extensions and nrl:realizes). However this property has a declarative rather than a procedural role.
Note: A graph role with (virtual) declarative semantics should never be assumed to also carry (realized) procedural semantics.This property links instances of the [nrl:Semantics] class to a URL for a document that defines the formal, non-machine-readable semantics that the instance is representing.
This trivial property assigns a string label to instances of the [nrl:Semantics] class, in order to more easily identify and refer to different semantics.
A graph role is stated as being updatable (1) or static (0). A static graph prevents any modifications - any modified versions of the graph must be created as a separate graph. A non-static graph's dataset can be directly modified.
The following example demonstrates the use of NG extensions and is based on TriG [TRIG] as introduced in the introduction of this document. A simple graph in TriG named G (where g is a URI) is syntactically denoted by:
:G
{Triple Set}
|
This example and the one
that follows in [Section
4.3] model
the dataflow represented in Figure
2.
This example demonstrates how one can make use of the named graph
paradigm and the syntax for named graphs presented in this
section.
[1]
@prefix nrl:
<http://www.semanticdesktop.org/ontology/yyyy/mm/dd/nrl#>
. @prefix ex: <http://www.example.org/vocabulary#> . [2] ex:o1_metadata { [3] ex:o1 a nrl:Ontology ; [4] nrl:hasSemantics ex:RDFS . [5] ex:RDFS a nrl:Semantics ; nrl:semanticsDefinedBy "http://www.w3.org/TR/rdf-schema#" ; nrl:semanticsLabel "RDF/S" . [6] ex:o1_metadata rdf:type nrl:GraphMetadata . } ex:o2_metadata { [7] ex:o2 rdf:type nrl:Ontology ; nrl:equivalentGraph <http://www.domain.com/o2.rdfs> . [8] ex:o rdf:type nrl:Ontology ; nrl:imports ex:o1 , ex:o2 . ex:o2_metadata rdf:type nrl:GraphMetadata . } [9] ex:ib1_metdata { ex:ib1 rdf:type nrl:InstanceBase . ex:ib1_metadata rdf:type nrl:GraphMetadata . } [10] ex:kb1_metadata { ex:kb1 rdf:type nrl:KnowledgeBase ; nrl:imports ex:o , ex:ib1 , <http://www.anotherdomain.com/ib2.rdfs> . ex:kb1_metadata rdf:type nrl:GraphMetadata . } [11] ex:o1 { ex:Person rdf:type rdfs:Class . ex:DesktopUser rdf:type rdfs:Class ; rdfs:subClassOf ex:Person . ex:knows rdf:type rdf:Property , nrl:SymmetricProperty ; rdfs:domain ex:Person ; rdfs:range ex:Person . } [12] ex:ib1 { ex:User1 rdf:type ex:DesktopUser . ex:Contact1 rdf:type ex:Person ; ex:knows ex:User1 , ex:Contact1 . ex:Contact2 rdf:type ex:Person ; ex:knows ex:User1 . } |
The RDF/S Ontology accesible at http://www.domain.com/o2.rdfs and serialized as RDF/XML is given and described as follows.
[1] Required namespaces are defined.[1]
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#" xmlns:nrl="http://www.semanticdesktop.org/ontology/yyyy/mm/dd/nrl#"> xmlns="http://www.domain.com/o2#"> [2] <nrl:Ontology rdf:about=""> <rdf:type rdfs:resource="nrl#DocumentGraph"/> <!--Other Graph Metadata---> </nrl:Ontology> [3] <rdfs:Class rdf:ID="Desktop"/> [4] <rdf:Property rdf:ID="user"> <rdfs:domain rdf:resource="#Desktop"/> <rdfs:range rdf:resource="http://www.example.org/vocabulary#DesktopUser/> </rdf:Property> </rdf:RDF> |
[1]
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#" xmlns:nrl="http://www.semanticdesktop.org/ontology/yyyy/mm/dd/nrl#" xmlns:o2="http://www.domain.com/o2#" xmlns="http://www.anotherdomain.com/ib2#"> [2] <nrl:InstanceBase rdf:about=""> <rdf:type rdfs:resource="nrl#DocumentGraph"/> <!--Other Graph Metadata---> </nrl:InstanceBase> [3] <o2:Desktop rdf:ID="DesktopA"> <o2:user http://www.example.org/vocabulary#User1> </o2:Desktop> </rdf:RDF> |
A simple named graph consists only of the enumerated triples in the triple set associated with the name, and it does not inherently carry any form of semantics. However in many situations it is desirable to work with an extended or restricted interpretation of a simple syntax-only named graph. These interpretations can be realized by applying rules which enhance named graphs with entailment triples, or return a restricted form of the complete triple set. To preserve the integrity of a named graph, interpretations of a basic named graph should never replace the original. To model this functionality in an intuitive way, while still separating between an original named graph and any number of its interpretations, we introduce the concept of Graph Views.
Graph views,
or simply views, are different interpretations for a
particular named graph. Formally, a graph view is an executable
specification of an input graph into a corresponding output graph.
Informally, they can be seen as arbitrary wrappings for a
named graph. Figure 4
depicts
graph view support in
NRL. As can be seen in the figure, views are themselves named graphs
(subclass of nrl:Graph).
Therefore it is possible to have a named graph that is itself a
different interpretation, or view, of another named graph. This
modelling can be applied recurrently, yielding a view of a view (or an
interpretation of a named graph interpretation, as depicted in Figure 2) and so on.
Views are defined through View Specifications which can execute, via a set of rules in a rule language (e.g. a SPARQL query over a named graph), or via an external application (e.g. an application that performs and returns the transitive closure of rdfs:subClassOf), the View Realization for a particular view. As in the latter example, view realizations can also realize the implicit semantics of a graph according to some language or schema (e.g. RDFS, OWL, NRL etc.). We refer to such a view as a Semantic View and in Figure 4 these are represented by the intersection of [nrl:GraphView] and Graph Roles. Therefore a semantic view is an instance of graph view that also carries a particular graph role. Semantic views are also depicted in Figure 1, and one can quite easily draw a parallel between the two figures. One must note that the property [nrl:realizes] applies only to semantic views, since only such views realize an explicit form of semantics. One should also note that in contrast to graph roles which have only Declarative Semantics defined through the [nrl:hasSemantics] property, semantic views also carry Procedural Semantics, since the semantics of these graphs are always realized and not simply assumed.
This section presents the core vocabulary supporting views in NRL, consisting of the core attributes that apply to views. The following section is specifically dedicated to vocabulary concerning the specification of views.
This class represents a view over a named graph as introduced in this document, and is itself modeled as a subclass of a named graph. A view is realized through a view specification, defined by an instance of [nrl:ViewSpecification]. The view is linked its view specification through the [nrl:hasSpecification] property whereas the named graph that the view applies to is linked by [nrl:viewOn]. An instance of this class will be a realized view over some named graph, and it will consist of the extended or restricted set of RDF triples present in the original named graph.
This property attaches a view realisation to the respective interpreted named graph by linking instances of [nrl:GraphView] to respective instances of [nrl:Graph]. In this way, it is always possible to determine which graph a view is interpreting. Thus both the theoritical and the practical separation between different interpretations of a named graph and the original named graph itself can be retained. As a result, it is always possible to retrieve an original named graph, independently of how many views have been applied over it.
Views are realized according to a given view specification. This property determines the specification for a view by linking instances of [nrl:GraphView] to instances of [nrl:ViewSpecification]. View specifications are defined through instances of [nrl:ViewSpecification]. This class, its subclasses, attributes and general characteristics are introduced and defined in the following section.
This section presents the vocabulary supporting graph view specification. These specification are essentially the instructions to how a view is to be realized.
This property applies only to subset of views introduced as semantic views (see Section 4 introduction). It links a semantic view to the formal specifications of the semantics that it realizes. In effect this states that the view should carry the realized, procedural semantics according to the given semantics definition, and not simply the implicit declarative semantics. The overlap in Figure4 and also in Figure 1) between graph roles and views refers to these semantic views which carry both procedural (through this property) and declarative (through [nrl:hasSemantics]) semantics. This property should be distinguished from the [nrl:hasSemantics] property since this property has only a declarative role when it comes to specifying the semantics for a graph.
Note: For NRL to be valid, all semantic views must carry both procedural and declarative semantics. That is, any view (which can manifest itself also as a graph role) that is linked to some semantics by [nrl:realizes], should also be linked to the same semantics by [nrl:hasSemantics]. This relationship between the two properties is not symmetric and it is perfectly valid for a graph role (that is not a view) to have only non-realized declarative semantics.This property links a rule
view specification to the name of
the rule language supporting the required rules. The
rule language is
identified via a string referring to the language name.
This property is used to provide the actual rules for a rule view specification, with respect to the selected rule language. The rules (or queries) are provided as a string.
The second type of view specification supported by NRL refers to an external application, service or program (external realizer) that automatically executes and returns the required view without the need to select any rule or language. The word 'external' refers to the fact that the actual view specification is not given by instances of this class, but is predefined within the external application. External view specifications need only specify the location of the external realizer through the following property.
External view specifications rely on external realizers to realize a particular view. An identifier for the external application, service or program is assigned to the view specification through this property in the form of a string.
The following example is
a continuation to that given in [Section
.3] and
it completes the dataflow diagram presented in the introduction [Figure 2]. It
demonstrates how the
provided syntax supporting graph views can be used effectively. The
practical applicability of the introduced views is explained in more
detail in the introduction of the document and [Figure
2].
@prefix nrl:
<http://www.semanticdesktop.org/ontology/yyyy/mm/dd/nrl#>
. @prefix ex: <http://www.example.org/vocabulary#> . [1] ex:kb2_metadata { ex:kb2 rdf:type nrl:KnowledgeBase , nrl:GraphView ; nrl:viewOn ex:kb1 ; nrl:hasSpecification ex:rvs . [2] ex:rvs rdf:type nrl:RuleViewSpecification ; nrl:realizes ex:RDFSSemantics ; nrl:ruleLanguage "SPARQL" ; nrl:rule "CONSTRUCT {?s ?rdfs:subClassOf ?v} WHERE ..." ; nrl:rule "CONSTRUCT {?s ?rdf:type ?v} WHERE ..." . [3] ex:RDFSSemantics rdf:type nrl:Semantics ; nrl:semanticsDefinedBy "http://www.w3.org/TR/2004/REC-rdf-mt-20040210/ ; nrl:semanticsLabel "RDFS" . } [4] ex:kb3_metadata { ex:kb3 rdf:type nrl:GraphView , nrl:KnowledgeBase ; nrl:viewOn ex:kb2 ; nrl:hasSpecification ex:evs . [5] ex:evs rdf:type nrl:ExternalViewSpecification ; nrl:externalRealizer "GraphTaxonomyExtractor" . } |
In general there are three criteria for excluding elements from NRL:
The following is a list of elements which have been excluded from NRL. Some of these elements might be moved to other NEPOMUK ontologies, or removed completely. Given in the table are the reasons why they have been excluded from this ontology, alongside the resulting actions taken.
nrl:Thing | Description |
The superclass of all conceptual classes. See also [SKOS Concept] and [OWL Thing] | |
Reason | |
rdfs:Resource satisfies the requirements for a top Resource representation. | |
Action | |
Exclude. | |
nrl:ResourceManifestation | Description |
The superclass of all files or web resources. See also [RDFS Resource] | |
Reason | |
Distinction between abstract resource and information resource not required at this level. | |
Action | |
Move to upper-level (foundational) ontology. | |
nrl:Association | Description |
The superclass of n-ary relations. See also [Topic Maps Association] | |
Reason | |
Not required at this level. | |
Action | |
Move to upper-level (foundational) ontology. | |
nrl:AssociationRole | Description |
The superclass of relations for N-ary associations. See also [Topic Maps Association] | |
Reason | |
Not required at this level. | |
Action | |
Move to upper-level (foundational) ontology. | |
nrl:NRLClass | Description |
The NRL's own class to enable specific extensions. | |
Reason | |
No specific restrictions in this ontology requiring an extra class representation. | |
Action | |
Move to upper-level(foundational) ontology if required. | |
nrl:NRLProperty | Description |
The NRL's own property to enable specific extensions. | |
Reason | |
No specific restrictions in this ontology requiring an extra property representation. | |
Action | |
Move to upper-level(foundational) ontology if required. | |
nrl:DescribingProperty | Description |
This class defines a class instance to be descriptive rather than relational. Descriptive properties cannot have an inverse. See also [OWL DatatypeProperty] | |
Reason | |
Distinction between descriptive and relational properties not required at this level. | |
Action | |
Move to upper-level (foundational) ontology. | |
nrl:RelatingProperty | Description |
This class defines a class instance to be relational rather than descriptive. Only relational properties can have an inverse. See also [OWL ObjectProperty] | |
Reason | |
Distinction between descriptive and relational properties not required at this level. | |
Action | |
Move to upper-level (foundational) ontology. | |
nrl:hasNamespace | Description |
Specifies the standard namespace for an ontology with particular attention to the hash or slash problem. | |
Reason | |
Not required at this level. | |
Action | |
Move to Ontology Metadata Layer provided semantics are clear. | |
nrl:hasNamespaceAbbreviation | Description |
Provides a means to specify the standard abbreviation for an ontology's namespace. | |
Reason | |
Not required at this level. | |
Action | |
Move to Ontology Metadata Layer provided semantics are clear. | |
nrl:isDefinedBy | Description |
A standard for stating which ontology defines a ontology element, to enable more efficient queries. | |
Reason | |
Not required at this level. | |
Action | |
Move to Ontology Metadata Layer provided semantics are clear. | |
nrl:directType | Description |
Specifies that a type is a direct type and not a type resulting from transitivity. | |
Reason | |
Not required since the introduction of Graph Views. | |
Action | |
Unclear | |
nrl:directSubClass | Description |
Specifies a direct subclass of some class and not a subclass resulting from transitivity. | |
Reason | |
Not required since the introduction of Graph Views. | |
Action | |
Unclear | |
nrl:directSubProperty | Description |
Specifies a direct subproperty of some property and not a subproperty resulting from transitivity. | |
Reason | |
Not required since the introduction of Graph Views. | |
Action | |
Unclear | |
nrl:altLabel | Description |
The alternative labels for a resource. A thesauri requirement in conjunction with [rdfs:label]. See also [skos:altLabel] | |
Reason | |
This is an annotation property. | |
Action | |
Move to annotation ontology. | |
nrl:defaultValues | Description |
The default value/s for a property assigned to instances of a class. Comparable to Protégé's defaultValues slot attribute. | |
Reason | |
Not required at this level. | |
Action | |
Move to general view ontology. | |
nrl:hasPart | Description |
This defines a resource as having a subset resource. | |
Reason | |
No clear formal semantics. | |
Action | |
Exclude. | |
nrl:partOf | Description |
This defines a resource as being a subset of another. | |
Reason | |
No clear formal semantics. | |
Action | |
Exclude. | |
nrl:hasTopic | Description |
This states the topic of a resource. See also [SKOS isSubejctOf] | |
Reason | |
Not required at this level. | |
Action | |
Move to annotation ontology. | |
nrl:isTopicOf | Description |
This states the resource attributed to a topic. See also [SKOS isSubjectOf] | |
Reason | |
Not required at this level. | |
Action | |
Move to annotation ontology. | |
nrl:occurrence | Description |
This points to an instance of a specific resource. See also [Topic Maps Occurences] and [SKOS hasSubject] | |
Reason | |
No formal semantics. | |
Action | |
Exclude. | |
nrl:isOccurenceOf | Description |
This points to a resource classifying this and other similar instances. See also [Topic Maps Occurences] and [SKOS hasSubject] | |
Reason | |
No formal semantics. | |
Action | |
Exclude. |
Superclasses | rdfs:Resource |
Subclasses | -- |
In domain of: | -- |
In range of: | -- |
Description | A marker class to identify asymmetric properties |
Superclasses | nrl:Data, rdfg:Graph, nrl:Graph, rdfs:Resource |
Subclasses | -- |
In domain of: | -- |
In range of: | -- |
Description | Represents a named graph containing configuration data |
Superclasses | rdfg:Graph, nrl:Graph, rdfs:Resource |
Subclasses | nrl:Configuration, dcon:Context, duho:ContextLog, nrl:DiscardableInstanceBase, nrl:GraphMetadata, nrl:InstanceBase, nrl:KnowledgeBase, dcon:LiveContext, duho:Log, nrl:Ontology, pimo:PersonalInformationModel, duho:PrivacyPreferenceLog, nrl:Schema, dcon:Situation |
In domain of: | nao:engineeringTool, nao:hasDefaultNamespace, nao:hasDefaultNamespaceAbbreviation, nrl:hasSemantics, nrl:imports, nao:status, nao:version |
In range of: | nrl:imports |
Description | An abstract class representing all named graph roles |
Instances | nie:DataSourceGraph |
Superclasses | rdf:Property, rdfs:Resource |
Subclasses | -- |
In domain of: | -- |
In range of: | -- |
Description | A defining property's value is part of what defines a resource, changing it means means chaning the identity of the resource. The set of values of all defining properties of a resource make up its identify. Whenever comparing resources or sharing them the value of this property should be taken into account. By default all properties with a literal range are to be treated as defining properties unless they are marked as nrl:NonDefiningProperty. |
Instances | nmm:actor, nmm:assistantDirector, nmm:cinematographer, nmm:composer, nmm:director, nfo:hasHash, nie:isLogicalPartOf, nie:isPartOf, nmm:isPartOfSeason, nmm:lyricist, nmm:performer, nmm:producer, nmm:seasonOf, nmm:series, nie:url, nmm:writer |
Superclasses | nrl:Data, rdfg:Graph, nrl:Graph, nrl:InstanceBase, rdfs:Resource |
Subclasses | -- |
In domain of: | -- |
In range of: | -- |
Description | A named graph containing instance data that can be recreated by analyzing the original resources. Intended to be used by metadata extractors. |
Superclasses | rdfg:Graph, nrl:Graph, rdfs:Resource |
Subclasses | -- |
In domain of: | nao:serializationLanguage |
In range of: | -- |
Description | A marker class to identify named graphs that exist within a physical document |
Superclasses | rdfs:Resource, nrl:ViewSpecification |
Subclasses | -- |
In domain of: | nrl:externalRealizer |
In range of: | -- |
Description | Represents an external view specification, this usually being a program which automatically generates the required view for an input graph |
Superclasses | rdfs:Resource |
Subclasses | -- |
In domain of: | -- |
In range of: | -- |
Description | A marker class to identify functional properties |
Instances | nie:isPartOf |
Superclasses | rdfg:Graph, rdfs:Resource |
Subclasses | nrl:Configuration, dcon:Context, duho:ContextLog, nrl:Data, nrl:DiscardableInstanceBase, nrl:DocumentGraph, nrl:GraphMetadata, nrl:GraphView, nrl:InstanceBase, nrl:KnowledgeBase, dcon:LiveContext, duho:Log, nrl:Ontology, pimo:PersonalInformationModel, duho:PrivacyPreferenceLog, nrl:Schema, dcon:Situation |
In domain of: | nrl:equivalentGraph, nrl:subGraphOf, nrl:superGraphOf, nrl:updatable |
In range of: | nrl:coreGraphMetadataFor, nrl:equivalentGraph, nrl:graphMetadataFor, nrl:subGraphOf, nrl:superGraphOf, nrl:viewOn |
Description | Represents a named graph |
Instances | nie:DataSourceGraph, nrl:DefaultGraph, pimo:FullPimoView, pimo:GroundingClosure, pimo:InferOccurrences, pimo:OccurrenceClosure |
Superclasses | nrl:Data, rdfg:Graph, nrl:Graph, rdfs:Resource |
Subclasses | -- |
In domain of: | nrl:coreGraphMetadataFor, nrl:graphMetadataFor |
In range of: | -- |
Description | Represents a special named graph that contains metadata for another graph |
Superclasses | rdfg:Graph, nrl:Graph, rdfs:Resource |
Subclasses | -- |
In domain of: | nrl:hasSpecification, nrl:viewOn |
In range of: | -- |
Description | Identifies a graph which is itself a view of another named graph |
Instances | pimo:FullPimoView, pimo:GroundingClosure, pimo:InferOccurrences, pimo:OccurrenceClosure |
Superclasses | nrl:Data, rdfg:Graph, nrl:Graph, rdfs:Resource |
Subclasses | dcon:Context, duho:ContextLog, nrl:DiscardableInstanceBase, nrl:KnowledgeBase, dcon:LiveContext, duho:Log, pimo:PersonalInformationModel, duho:PrivacyPreferenceLog, dcon:Situation |
In domain of: | nao:isDataGraphFor |
In range of: | nie:coreGraph, nao:hasDataGraph |
Description | Represents a named graph containing instance data |
Instances | nie:DataSourceGraph |
Superclasses | rdfs:Resource |
Subclasses | -- |
In domain of: | -- |
In range of: | -- |
Description | A marker class to identify inverse functional properties |
Instances | nrl:coreGraphMetadataFor, pimo:groundingOccurrence, nie:hasPart, nao:personalIdentifier |
Superclasses | nrl:Data, rdfg:Graph, nrl:Graph, nrl:InstanceBase, nrl:Ontology, rdfs:Resource, nrl:Schema |
Subclasses | pimo:PersonalInformationModel |
In domain of: | -- |
In range of: | -- |
Description | Represents a named graph containing both schematic and instance data |
Superclasses | rdf:Property, rdfs:Resource |
Subclasses | -- |
In domain of: | -- |
In range of: | -- |
Description | A non-defining property's value is not part of what defines a resource, it rather is part of the resource's state or expresses an opinion about the resource. Whenever comparing resources or sharing them the value of this property should not be taken into account. By default all properties with a resource range are to be treated as non-defining properties unless they are marked as nrl:DefiningProperty. |
Superclasses | nrl:Data, rdfg:Graph, nrl:Graph, rdfs:Resource, nrl:Schema |
Subclasses | nrl:KnowledgeBase, pimo:PersonalInformationModel |
In domain of: | -- |
In range of: | -- |
Description | Represents a named graph having the role of an Ontology |
Superclasses | rdfs:Resource |
Subclasses | -- |
In domain of: | -- |
In range of: | -- |
Description | A marker class to identify reflexive properties |
Superclasses | rdfs:Resource, nrl:ViewSpecification |
Subclasses | -- |
In domain of: | nrl:rule, nrl:ruleLanguage |
In range of: | -- |
Description | Represents a view specification that is composed of a set of rules which generate the required view from the input graph upon firing |
Instances | pimo:RuleViewSpecifi..., pimo:RuleViewSpecifi..., pimo:RuleViewSpecifi... |
Superclasses | nrl:Data, rdfg:Graph, nrl:Graph, rdfs:Resource |
Subclasses | nrl:KnowledgeBase, nrl:Ontology, pimo:PersonalInformationModel |
In domain of: | -- |
In range of: | -- |
Description | Represents a named graph containing schematic data |
Superclasses | rdfs:Resource |
Subclasses | -- |
In domain of: | nrl:semanticsDefinedBy |
In range of: | nrl:hasSemantics, nrl:realizes |
Description | Represents some declarative semantics |
Superclasses | rdfs:Resource |
Subclasses | -- |
In domain of: | -- |
In range of: | -- |
Description | A marker class to identify symmetric properties |
Instances | nrl:equivalentGraph, nao:isRelated |
Superclasses | rdfs:Resource |
Subclasses | -- |
In domain of: | -- |
In range of: | -- |
Description | A marker class to identify transitive properties |
Instances | pimo:hasOtherConceptualization, pimo:hasOtherRepresentation, pimo:hasOtherSlot, dlpo:hasRepost, drmo:precededBy, dlpo:repostOf, pimo:subTopic, drmo:succeededBy, pimo:superTopic |
Superclasses | rdfs:Resource |
Subclasses | nrl:ExternalViewSpecification, nrl:RuleViewSpecification |
In domain of: | nrl:realizes |
In range of: | nrl:hasSpecification |
Description | Represents a specification of the means to achieve a transformation of an input graph into the required graph view |
Instances | pimo:RuleViewSpecifi..., pimo:RuleViewSpecifi..., pimo:RuleViewSpecifi... |
Type | rdf:Property, rdfs:Resource |
Domain | rdf:Property |
Range | rdfs:Literal |
Superproperties | -- |
Subproperties | -- |
Description | Specifies the precise value cardinality for a specific property |
Type | nrl:InverseFunctionalProperty, rdf:Property, rdfs:Resource |
Domain | nrl:GraphMetadata |
Range | nrl:Graph |
Superproperties | nrl:graphMetadataFor |
Subproperties | -- |
Description | Links a metadata graph to the graph for which it specifies the core graph properties including the semantics and the graph namespace. A graph can have only one unique core metadata graph |
Type | rdf:Property, rdfs:Resource, nrl:SymmetricProperty |
Domain | nrl:Graph |
Range | nrl:Graph |
Superproperties | rdfg:equivalentGraph |
Subproperties | -- |
Description | Links two equivalent named graphs. A symmetric property |
Type | rdf:Property, rdfs:Resource |
Domain | nrl:ExternalViewSpecification |
Range | rdfs:Literal |
Superproperties | -- |
Subproperties | -- |
Description | Points to the location of the realizer for the external view specification |
Type | rdf:Property, rdfs:Resource |
Domain | nrl:GraphMetadata |
Range | nrl:Graph |
Minimal cardinality | 1 |
Superproperties | -- |
Subproperties | nrl:coreGraphMetadataFor |
Description | Links a metadata graph to the graph that is being described. A unique value is compulsory |
Type | rdf:Property, rdfs:Resource |
Domain | nrl:Data |
Range | nrl:Semantics |
Superproperties | -- |
Subproperties | -- |
Description | Points to a representation of the declarative semantics for a graph role |
Type | rdf:Property, rdfs:Resource |
Domain | nrl:GraphView |
Range | nrl:ViewSpecification |
Superproperties | -- |
Subproperties | -- |
Description | Points to the representation of the view specification required to generate the graph view in question |
Type | rdf:Property, rdfs:Resource |
Domain | nrl:Data |
Range | nrl:Data |
Superproperties | nrl:superGraphOf |
Subproperties | -- |
Description | Models a subsumption relationship between two graphs, stating that the object graph is imported and included in the subject graph |
Type | rdf:Property, rdfs:Resource |
Domain | rdf:Property |
Range | rdf:Property |
Superproperties | -- |
Subproperties | -- |
Description | Links two properties and specifies their inverse behaviour |
Type | rdf:Property, rdfs:Resource |
Domain | rdf:Property |
Range | rdfs:Literal |
Superproperties | -- |
Subproperties | -- |
Description | Specifies a maximum value cardinality for a specific property |
Type | rdf:Property, rdfs:Resource |
Domain | rdf:Property |
Range | rdfs:Literal |
Superproperties | -- |
Subproperties | -- |
Description | Specifies a minimum value cardinality for a specific property |
Type | rdf:Property, rdfs:Resource |
Domain | nrl:ViewSpecification |
Range | nrl:Semantics |
Superproperties | -- |
Subproperties | -- |
Description | Points to a representation of the declarative semantics that the view specification realizes |
Type | rdf:Property, rdfs:Resource |
Domain | nrl:RuleViewSpecification |
Range | rdfs:Literal |
Superproperties | -- |
Subproperties | -- |
Description | Specifies rules for a view specification that is driven by rules |
Type | rdf:Property, rdfs:Resource |
Domain | nrl:RuleViewSpecification |
Range | rdfs:Literal |
Superproperties | -- |
Subproperties | -- |
Description | Specifies the rule language for a view specification that is driven by rules |
Type | rdf:Property, rdfs:Resource |
Domain | nrl:Semantics |
Range | rdfs:Resource |
Superproperties | -- |
Subproperties | -- |
Description | Points to the human readable specifications for a representation of some declarative semantics |
Type | rdf:Property, rdfs:Resource |
Domain | nrl:Graph |
Range | nrl:Graph |
Inverse property | nrl:superGraphOf |
Superproperties | rdfg:subGraphOf |
Subproperties | -- |
Description | Specifies a containment relationship between two graphs, meaning that the subject graph is included in the object graph |
Type | rdf:Property, rdfs:Resource |
Domain | nrl:Graph |
Range | nrl:Graph |
Inverse property | nrl:subGraphOf |
Superproperties | -- |
Subproperties | nrl:imports |
Description | Specifies a subsumption relationship between two graphs, meaning that the object graph is included in the subject graph |
Type | rdf:Property, rdfs:Resource |
Domain | nrl:Graph |
Range | xsd:boolean |
Maximal cardinality | 1 |
Superproperties | -- |
Subproperties | -- |
Description | A core graph metadata property, this defines whether a graph can be freely updated '1' or otherwise '0' |
Type | rdf:Property, rdfs:Resource |
Domain | nrl:GraphView |
Range | nrl:Graph |
Superproperties | -- |
Subproperties | -- |
Description | Points to a graph view over the subject named graph |