Note that there are some explanatory texts on larger screens.

plurals
  1. POCan I specify a range for rdf:List members?
    text
    copied!<p>If I want to say that the title of something should be an rdfs:Literal, I do this:</p> <pre><code>example:title a owl:DatatypeProperty ; rdfs:range rdfs:Literal . </code></pre> <p>Now I want to express that something has an ordered list of titles:</p> <pre><code>example:titles a rdf:List . </code></pre> <p>How do I specify what the members of the list should be? Do I need to subclass rdf:List?</p> <p>UPDATE: I would like to keep using rdf:List if possible, based on the answer by Joshua I think the following says that any rdf:List with only rdfs:Literal values is an example:ListOfLiterals, and I can then use that as a range.</p> <pre><code>@prefix entity: &lt;http://example.com/stuff/&gt; . @prefix example: &lt;http://example.com/my/term/&gt; . @prefix owl: &lt;http://www.w3.org/2002/07/owl#&gt; . @prefix rdf: &lt;http://www.w3.org/1999/02/22-rdf-syntax-ns#&gt; . @prefix rdfs: &lt;http://www.w3.org/2000/01/rdf-schema#&gt; . example:ListOfLiterals a owl:Class ; owl:equivalentClass [ a owl:Class ; owl:intersectionOf ( rdf:List [ a owl:Restriction ; owl:allValuesFrom rdfs:Literal ; owl:onProperty rdf:first ] [ a owl:Restriction ; owl:allValuesFrom example:ListOfLiterals ; owl:onProperty rdf:rest ] ) ] . example:Book a owl:Class . example:titles a owl:DatatypeProperty ; rdfs:domain example:Book ; rdfs:range example:ListOfLiterals . entity:somebook a example:Book ; example:titles ( "Book Title"@en "Second Book Title"@en ) . </code></pre> <p>Does that make any sense, or did I misunderstand something?</p>
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload