[Nepomuk] RSS Ontology

Daniel Vrátil dvratil at redhat.com
Tue Jan 22 15:10:46 UTC 2013


Hi folks,

I'm working on support for Nepomuk search in Akregator2. I have not found any 
suitable ontology for indexing RSS articles, so I made an attempt to write one 
myself.

I have no previous experience with writing ontologies, so I would appreciate 
if you could take a look and review the ontology:

 
@prefix rdfs:    <http://www.w3.org/2000/01/rdf-schema#> .
@prefix nao:     <http://www.semanticdesktop.org/ontologies/2007/08/15/nao#> .
@prefix nco:     <http://www.semanticdesktop.org/ontologies/2007/03/22/nco#> .
@prefix nrl:     <http://www.semanticdesktop.org/ontologies/2007/08/15/nrl#> .
@prefix nie:     <http://www.semanticdesktop.org/ontologies/2007/01/19/nie#> .
@prefix nmo:     <http://www.semanticdesktop.org/ontologies/2007/01/19/nmo#> .
@prefix xsd:     <http://www.w3.org/2001/XMLSchema#> .
@prefix rdf:     <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix dc:      <http://purl.org/dc/elements/1.1/> .
@prefix nso:     <http://www.kde.org/ontologies/nso#> .
 
nso: {
 
    nso:Element a rdfs:Class ;
        rdfs:label "Feed Element" ;
        rdfs:comment "Superclass for all elements related to RSS feeds" ;
        rdfs:subClassOf nie:InformationElement .
 
    nso:Feed a rdfs:Class ;
        rdfs:comment "Represents an RSS Feed" ;
        rdfs:label "RSS Feed" ;
        rdfs:subClassOf nso:Element .
 
    nso:Article a rdfs:Class ;
        rdfs:label "RSS Article" ;
        rdfs:comment "Represents a single article within an RSS Feed" ;
        rdfs:subClassOf nso:Element .
 
    nso:Enclosure a rdfs:Class ;
        rdfs:label "RSS Enclosure" ;
        rdfs:subClassOf nso:Element .
 
# Properties of nso:Element
 
    nso:sourceUrl a rdf:Property ;
        rdfs:label "Source URL" ;
        rdfs:comment "URL of the source" ;
        rdfs:subPropertyOf dc:source ;
        rdfs:range xsd:string ;
        rdfs:domain nso:Element .
 
    nso:title a rdf:Property ;
        rdfs:label "Title" ;
        rdfs:comment "Title of the element" ;
        rdfs:subPropertyOf nie:title ;
        rdfs:range xsd:string ;
        rdfs:domain nso:Element .
 
# Properties of nso:Feed
 
    nso:publisher a rdf:Property ;
        rdfs:label "Publisher" ;
        rdfs:comment "Publisher of the feed" ;
        rdfs:range nco:Contact ;
        rdfs:domain nso:Feed .
 
# Properties of nso:Article
 
    nso:content a rdf:Property ;
        rdfs:label "Content" ;
        rdfs:comment "Content of the article" ;
        rdfs:subPropertyOf nie:htmlContent ;
        rdfs:range xsd:stirng ;
        rdfs:domain nso:Article .
 
    nso:description a rdf:Property ;
        rdfs:label "Description" ;
        rdfs:comment "Description of article content" ;
        rdfs:subPropertyOf nie:description ;
        rdfs:range xsd:string ;
        rdfs:domain nso:Article .
 
    nso:publishTime a rdf:Property ;
        rdfs:label "Publish Time" ;
        rdfs:comment "Date when the article was first published in the feed" ;
        rdfs:subPropertyOf dc:date ;
        rdfs:range xsd:dateTime ;
        rdfs:domain nso:Article .
 
    nso:updateTime a rdf:Property ;
        rdfs:label "Update Time" ;
        rdfs:comment "Date when the article was last updated in the feed" ;
        rdfs:subPropertyOf dc:date ;
        rdfs:range xsd:dateTime ;
        rdfs:domain nso:Article .
 
    nso:author a rdf:Property ;
        rdfs:label "Author" ;
        rdfs:comment "Author of the article" ;
        rdfs:range nco:Contact ;
        rdfs:domain nso:Article .
 
    nso:enclosure a rdf:Property ;
        rdfs:label "Enclosure" ;
        rdfs:comment "Enclosure related to the article" ;
        rdfs:range nso:Enclosure ;
        rdfs:domain nso:Article .
 
    nso:isRead a rdf:Property ;
        nrl:maxCardinality 1 ;
        rdfs:label "Is Read" ;
        rdfs:comment "A flag that state whether the item has been read" ;
        rdfs:range xsd:boolean ;
        rdfs:domain nso:Article .
 
# Properties of nso:Enclosure
 
    nso:type a rdf:Property ;
        nrl:maxCardinality "1" ;
        rdfs:label "Enclosure type" ;
        rdfs:comment "Describes type of the enclosure" ;
        rdfs:range xsd:string ;
        rdfs:domain nso:Enclosure .
 
    nso:length a rdf:Property ;
        nrl:maxCardinality "1" ;
        rdfs:label "Length" ;
        rdfs:comment "Length of audio enclosure (podcast)" ;
        rdfs:range xsd:integer ;
        rdfs:domain nso:Enclosure .
 
}
 
<http://www.kde.org/ontologies/nso_metadata#> {
    <http://www.kde.org/ontologies/nso_metadata#> a nrl:GraphMetadata ;
          nrl:coreGraphMetadataFor nso: .
 
    nso:  a nrl:Ontology ;
        nao:hasDefaultNamespace "http://www.kde.org/ontologies/nso#" ;
        nao:hasDefaultNamespaceAbbreviation "nso" ;
        nao:lastModified "2013-01-20T22:57:45.656Z" ;
        nao:serializationLanguage "TriG" ;
        nao:status "Unstable" ;
        nao:updatable "0 " ;
        nao:version "2" ;
        nao:prefLabel "Nepomuk Syndication Ontology" ;
        nao:description "The Nepomuk Syndication Ontology extends the Nepomuk 
Information Element framework into the domain of Web Syndication" .
}


Thanks

Dan 

-- 
dvratil at redhat.com | Associate Software Engineer / BaseOS / KDE, Qt
GPG Key: 0xC59D614F6F4AE348
Fingerprint: 4EC1 86E3 C54E 0B39 5FDD B5FB C59D 614F 6F4A E348
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 490 bytes
Desc: This is a digitally signed message part.
URL: <http://mail.kde.org/pipermail/nepomuk/attachments/20130122/d718c063/attachment-0001.sig>


More information about the Nepomuk mailing list