0

I would like to declare in my schema a container class that contains ordered elements of a particular class. I figured that the simplest way to declare that the elements must be ordered was to declare the container a rdfs:subClassOf rdf:seq.

:MyContainer rdfs:subClassOf rdf:seq.
:MyElement rdf:type rdfs:Class.
:elementProperty1
  rdf:type rdfs:Property;
  rdfs:domain :MyElement.

In addition to the above I would also like to convey the following information in the schema:

  • The statements :ContainerInstance rdf:_1 Object and :ContainerInstance rdf:type :MyContainer entail that Object rdf:type :MyElement.

  • The statements Subject rdf:_1 :ElementInstance and :ElementInstance rdf:type :MyElement entail that Subject rdf:type :MyContainer.

Of course, any instance of rdfs:ContainerMembershipProperty (rdf:_1, rdf:_2, rdf:_3 …) could appear in place of rdf:_1 above.

Rok
  • 97
  • 6
  • I'm a bit confused by the question. You're asking for triples such that `Object rdf:type :MyElement` will be entailed via RDFS reasoning? – UninformedUser Nov 09 '17 at 14:03
  • I’m quite new to rdf/schemas, so I think I probably haven’t used the right terms in my question. My point is that I would like to define a container class, an element class, and a property linking the two. I would like to declare that the rdfs:domain of the property is the container class and the rdfs:range of the property is the element class. The problem is that there is not one property linking the container instances to the element instances but multiple, as the name of the property contains the element sequence number. – Rok Nov 10 '17 at 07:03
  • Another approach would be to use a single property linking the container and the elements and to store the element sequence number as an element property. I figured that the problem with that approach would be that the model does not guarantee that the same sequence number can’t be used twice. But I suppose using rdf:_1, rdf:_2... doesn’t guarantee that either? – Rok Nov 10 '17 at 07:04

0 Answers0