Talk:ESciDoc Content Relations

From MPDLMediaWiki
Jump to navigation Jump to search

Bi-directional / inverse Relations[edit]

  • From Definition: "a content relation a->b also assumes a content relation b->a" and "directions a->b and b->a may have different labels (e.g. isRevisionOf, hasRevisions) that are expressed with a specific relation ontology"
    • Does that mean, we have to store two relations for every added relation and that we have to check provided ontologies for completeness in the sense that every predicate must have a counterpart? Frank 17:52, 5 December 2007 (CET)
    • I would assume that only one relation is created (either isRevisionOf or hasRevisions). Anyway, the addition of an entry in the RELS-EXT datastream may require access rights to the source object. Therefore, both "directions" might be required - even they are equal from functional point of view --Inga 22:06, 5 December 2007 (CET)

The later example shows: a relation has a relation-type and this type should state one and the inverse name of a ralation. If we think about defining ontologies to describe possible content relations and to store relations as triples, there may be some drawbacks. On the other hand semantic technologies may help.

  • An ontologie may define
    • the inverse of a predicate (relation),
    • which type/entity has a predicate (more in the sense of which predicates have a type)(here an instance of the type/the entity is the subject in a statement/triple with that predicate),
    • of which type is the "value" (the object of the statement/triple) of the predicate and
    • if the predicate may repeatedly occur in an (subject) entity (cf. owl:functionalProperty).

Content relations are defined by the solution - they are not predefined in the infrastructure. Therefore we decided to allow the "registration" of ontologies in the infrastructure. Those ontologies describe the content relations (of a particular solution/application) and the infrastructure is able to verify concrete relations on creation or update.

If it is a precondition of a content relation to be bi-directional we must refuse ontologies that do not define the inverse of a predicate. On the other hand: If an inverse is defined in the ontologie and we have stored nice triples in a nice triple-store we may retrieve the inverse of a statement by infering it. Frank 10:00, 6 December 2007 (CET)

As far as I remember, binary relations may be symmetric or not, but "bi-directional" does not seem to be a valid property of a relation. Of course, if a is related to b, b is related to a, that's the very meaning of "relation". So i guess, the whole discussion is one of labels. 1 < 2 means: 1 is less than 2, i.e. 1 and 2 are related via the "less than" relation, no matter whether we find a nicer way to describe that 2 in this case is "on the right side" of the relation or not. Robert 11:27, 6 December 2007 (CET)

I absolutly agree. I understand from Natasas description, that "bi-directional" means: If there is a relation with a "source" and a "target" there is ANOTHER one where the "source" is the "target" and the "target" is the "source". In an ontology the direction is clear from the definition of the relation as property of a resource. Even if the property does not define a domain and/or a range, a statment does NOT indicate the existence of an inverse property. There is a special case of symmetric property. A relation R is symmetric if for any x,y, R(x,y) iff R(y,x). A "bi-directional content relation" seems to consist of two different relations. Frank 13:57, 6 December 2007 (CET)


TODO: With mulgara: store ontology with definition of property A is inverseTo B, sore a statement <x> <A> <y>, query for <B> and get <y> <B> <x> as answer.

which resources can be related[edit]

The type (or class) of related resources may be defined in the ontology too.

    <rdf:Property rdf:about="isSomethingOf">
        <rdfs:domain rdf:resource="http://www.escidoc.de/ontologies/resources/Item"/>
        <rdfs:range rdf:resource="http://www.escidoc.de/ontologies/resources/Container"/>
        <owl:inverseOf rdf:resource="hasSomething"/>
    </rdf:Property>

how to store relations as triples[edit]

In order to validate a particular relation (statement) with the ontology definition there must be a triple: <source-uri> <relation> <target-uri>. With relation objects i see the following cases of implicit triples:

  • A relation object that holds all informations (incl. the name) of a single relation. For example (format is N-Triples):
<http://escidoc.de/content-relation/escidoc:1> <http://escidoc.de/ontologies/properties/name> "isSomethingOf".
<http://escidoc.de/content-relation/escidoc:1> <http://escidoc.de/ontologies/properties/source> <http://escidoc.de/ir/item/escidoc:77>.
<http://escidoc.de/content-relation/escidoc:1> <http://escidoc.de/ontologies/properties/target> <http://escidoc.de/ir/item/escidoc:88>.
  • A relation object that references a relation type object. For example (format is N-Triples):
<http://escidoc.de/content-relation/escidoc:1> <http://escidoc.de/ontologies/relations/type> <http://escidoc.de/relation-type/escidoc:2>.
<http://escidoc.de/content-relation/escidoc:1> <http://escidoc.de/ontologies/properties/source> <http://escidoc.de/ir/item/escidoc:77>.
<http://escidoc.de/content-relation/escidoc:1> <http://escidoc.de/ontologies/properties/target> <http://escidoc.de/ir/item/escidoc:88>.
<http://escidoc.de/relation-type/escidoc:2> <http://escidoc.de/ontologies/properties/name> "isSomethingOf".
<http://escidoc.de/relation-type/escidoc:2> <http://escidoc.de/ontologies/relations/inverse> "hasSomething".

The following triple may be explicitly stored but than must be hold in sync with the relation object(s):

<http://escidoc.de/ir/item/escidoc:77> <isSomethingOf> <http://escidoc.de/ir/item/escidoc:88>.

Note: In the latter example the "relation-name" needs a namespaces which than must occur in first two examples too. Frank 15:02, 6 December 2007 (CET)