cKlee / ecpo

:newspaper: Enumeration and Chronology of Periodicals Ontology (ECPO)
http://purl.org/ontology/ecpo
3 stars 2 forks source link

alternative for dct:hasPart to facilitate sequential information #13

Open cKlee opened 7 years ago

cKlee commented 7 years ago

With using dct:hasPart it is not clear how a list oft Chronologies is ordered.

Order is unclear:

:item ecpo:hasChronology [
    a ecpo:CurrentChronology ;
    dct:hasPart [
        a ecpo:ClosedChronology ;
        ecpo:hasBeginVolumeNumbering "5" ;
    ] , [
        a ecpo:ClosedChronology ;
        ecpo:hasBeginVolumeNumbering "8" ;
    ]
]

Possible use the Ordered List Ontology (needs a new property ecpo:hasChronologyList):

:item ecpo:hasChronologyList [
    a olo:OrderedList ;
    olo:length 2 ;
    olo:slot [
        olo:index 1 ;
        olo:item [
            a ecpo:ClosedChronology ;
            ecpo:hasBeginVolumeCaption "v." ;
            ecpo:hasBeginVolumeNumbering "5" ;
            ecpo:hasBeginIssueCaption "no." ;
            ecpo:hasBeginIssueNumbering "1" ;
            ecpo:hasBeginTemporal "1975" ;
            ecpo:hasBeginTemporalExtension "spring" ;
            ecpo:hasEndVolumeCaption "v." ;
            ecpo:hasEndVolumeNumbering "7" ;
            ecpo:hasEndIssueCaption "no." ;
            ecpo:hasEndIssueNumbering "4" ;
            ecpo:hasEndTemporal "1977" ;
            ecpo:hasEndTemporalExtension "autumn"
        ]
    ] ;
    olo:slot [
        olo:index 2 ;
        olo:item [
            a ecpo:ClosedChronology ;
            ecpo:hasBeginVolumeCaption "v." ;
            ecpo:hasBeginVolumeNumbering "8" ;
            ecpo:hasBeginIssueCaption "no." ;
            ecpo:hasBeginIssueNumbering "2" ;
            ecpo:hasBeginTemporal "1978" ;
            ecpo:hasBeginTemporalExtension "winter"
        ]
    ]
] .

Possible extend rdf:Seq:

ecpo:hasPart rdfs:subPropertyOf rdf:li;
    rdfs:range ecpo:Chronology;
    rdfs:domain ecpo:ChronologyList .

ecpo:ChronologyList a owl:Class;
owl:equivalentClass
[ a owl:Class;
    owl:intersectionOf
      ( rdf:Seq
        [a owl:Restriction;
         owl:onProperty ecpo:hasPart;
         owl:someValuesFrom owl:Thing ]) ] .

:item ecpo:hasChronologyList [
    ecpo:hasPart  [
        a ecpo:ClosedChronology ;
        ecpo:hasBeginVolumeNumbering "5" ;
    ] , [
        a ecpo:ClosedChronology ;
        ecpo:hasBeginVolumeNumbering "8" ;
    ]
cKlee commented 7 years ago
:item ecpo:hasChronology (
  [
        a ecpo:ClosedChronology ;
        ecpo:hasBeginVolumeNumbering "5" 
    ] 
  [
        a ecpo:ClosedChronology ;
        ecpo:hasBeginVolumeNumbering "6" 
    ] 
   [
        a ecpo:ClosedChronology ;
        ecpo:hasBeginVolumeNumbering "8" 
    ]
) .

This is a RDF collection, but difficult to query by SPARQL.