Ontological Reasoning in Intrusion DetctionThis thesis WILL be done!
About this Entry
Posted by: thesiswork

Original: 9/7/2006 5:51 PM
Views: 45
Comments: 1
eProps: 2

Read Comments
Post a Comment
Back to Your Xanga Site


Who gave the eProps?
2 eProps!2 eProps! 2 eProps from:
midori_hitomi


Thursday, September 07, 2006

 I am becoming frustrated with the open-world reasoning in OWL.  I have created a list ontology as follows:

<?xml version="1.0"?>


<!DOCTYPE rdf:RDF [
    <!ENTITY owl "http://www.w3.org/2002/07/owl#" >
    <!ENTITY dc "http://purl.org/dc/elements/1.1/" >
    <!ENTITY xsd "http://www.w3.org/2001/XMLSchema#" >
    <!ENTITY rdfs "http://www.w3.org/2000/01/rdf-schema#" >
    <!ENTITY daml "http://www.daml.org/2001/03/daml+oil#" >
    <!ENTITY p1 "http://www.owl-ontologies.com/assert.owl#" >
    <!ENTITY rdf "http://www.w3.org/1999/02/22-rdf-syntax-ns#" >
]>


<rdf:RDF xmlns="http://masaka.cs.ohiou.edu/amitchel/util/list.owl#"
     xml:base="http://masaka.cs.ohiou.edu/amitchel/util/list.owl"
     xmlns:p1="http://www.owl-ontologies.com/assert.owl#"
     xmlns:xsd="http://www.w3.org/2001/XMLSchema#"
     xmlns:dc="http://purl.org/dc/elements/1.1/"
     xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"
     xmlns:daml="http://www.daml.org/2001/03/daml+oil#"
     xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
     xmlns:owl="http://www.w3.org/2002/07/owl#">
    <owl:Ontology rdf:about=""/>
    <owl:Class rdf:ID="EmptyList">
        <owl:equivalentClass>
            <owl:Class>
                <owl:intersectionOf rdf:parseType="Collection">
                    <owl:Restriction>
                        <owl:onProperty rdf:resource="#hasContents"/>
                        <owl:maxCardinality rdf:datatype="&xsd;int">0</owl:maxCardinality>
                    </owl:Restriction>
                    <owl:Restriction>
                        <owl:onProperty rdf:resource="#hasNext"/>
                        <owl:maxCardinality rdf:datatype="&xsd;int">0</owl:maxCardinality>
                    </owl:Restriction>
                    <owl:Class rdf:about="#List"/>
                </owl:intersectionOf>
            </owl:Class>
        </owl:equivalentClass>
        <owl:equivalentClass>
            <owl:Class>
                <owl:intersectionOf rdf:parseType="Collection">
                    <owl:Class rdf:about="#List"/>
                    <owl:Class>
                        <owl:complementOf>
                            <owl:Restriction>
                                <owl:onProperty rdf:resource="#isFollowedBy"/>
                                <owl:someValuesFrom rdf:resource="&owl;Thing"/>
                            </owl:Restriction>
                        </owl:complementOf>
                    </owl:Class>
                </owl:intersectionOf>
            </owl:Class>
        </owl:equivalentClass>
    </owl:Class>
    <owl:ObjectProperty rdf:ID="hasContents">
        <rdf:type rdf:resource="&owl;FunctionalProperty"/>
        <rdfs:domain rdf:resource="#List"/>
    </owl:ObjectProperty>
    <owl:ObjectProperty rdf:ID="hasNext">
        <rdf:type rdf:resource="&owl;FunctionalProperty"/>
        <rdfs:subPropertyOf rdf:resource="#isFollowedBy"/>
    </owl:ObjectProperty>
    <owl:ObjectProperty rdf:ID="isFollowedBy">
        <rdf:type rdf:resource="&owl;TransitiveProperty"/>
        <rdfs:domain rdf:resource="#List"/>
        <rdfs:range>
            <owl:Class>
                <owl:unionOf rdf:parseType="Collection">
                    <owl:Class rdf:about="#List"/>
                    <owl:Class>
                        <owl:complementOf rdf:resource="&owl;Thing"/>
                    </owl:Class>
                </owl:unionOf>
            </owl:Class>
        </rdfs:range>
    </owl:ObjectProperty>
    <owl:Class rdf:ID="List">
        <rdfs:subClassOf>
            <owl:Restriction>
                <owl:onProperty rdf:resource="#hasContents"/>
                <owl:maxCardinality rdf:datatype="&xsd;int">1</owl:maxCardinality>
            </owl:Restriction>
        </rdfs:subClassOf>
        <rdfs:subClassOf>
            <owl:Restriction>
                <owl:onProperty rdf:resource="#hasNext"/>
                <owl:maxCardinality rdf:datatype="&xsd;int">1</owl:maxCardinality>
            </owl:Restriction>
        </rdfs:subClassOf>
        <rdfs:subClassOf rdf:resource="&owl;Thing"/>
    </owl:Class>
</rdf:RDF>

I have been testing reasoning on the list class using the following Ontology...

<?xml version="1.0"?>


<!DOCTYPE rdf:RDF [
    <!ENTITY owl "http://www.w3.org/2002/07/owl#" >
    <!ENTITY dc "http://purl.org/dc/elements/1.1/" >
    <!ENTITY xsd "http://www.w3.org/2001/XMLSchema#" >
    <!ENTITY rdfs "http://www.w3.org/2000/01/rdf-schema#" >
    <!ENTITY daml "http://www.daml.org/2001/03/daml+oil#" >
    <!ENTITY p2 "http://www.owl-ontologies.com/assert.owl#" >
    <!ENTITY rdf "http://www.w3.org/1999/02/22-rdf-syntax-ns#" >
    <!ENTITY p1 "http://masaka.cs.ohiou.edu/amitchel/util/list.owl#" >
]>


<rdf:RDF xmlns="http://www.owl-ontologies.com/Ontology1157570502.owl#"
     xml:base="http://www.owl-ontologies.com/Ontology1157570502.owl"
     xmlns:p1="http://masaka.cs.ohiou.edu/amitchel/util/list.owl#"
     xmlns:xsd="http://www.w3.org/2001/XMLSchema#"
     xmlns:dc="http://purl.org/dc/elements/1.1/"
     xmlns:p2="http://www.owl-ontologies.com/assert.owl#"
     xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"
     xmlns:daml="http://www.daml.org/2001/03/daml+oil#"
     xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
     xmlns:owl="http://www.w3.org/2002/07/owl#">
    <owl:Ontology rdf:about="">
        <owl:imports rdf:resource="http://masaka.cs.ohiou.edu/amitchel/util/list.owl"/>
    </owl:Ontology>
    <owl:AllDifferent>
        <owl:distinctMembers rdf:parseType="Collection">
            <rdf:Description rdf:about="#A"/>
            <rdf:Description rdf:about="#B"/>
            <rdf:Description rdf:about="#C"/>
            <rdf:Description rdf:about="#D"/>
            <rdf:Description rdf:about="#E"/>
        </owl:distinctMembers>
    </owl:AllDifferent>
    <owl:AllDifferent>
        <owl:distinctMembers rdf:parseType="Collection">
            <rdf:Description rdf:about="#one"/>
            <rdf:Description rdf:about="#two"/>
            <rdf:Description rdf:about="#three"/>
            <rdf:Description rdf:about="#four"/>
            <rdf:Description rdf:about="#five"/>
            <rdf:Description rdf:about="#six"/>
            <rdf:Description rdf:about="#seven"/>
            <rdf:Description rdf:about="#eight"/>
            <rdf:Description rdf:about="#nine"/>
        </owl:distinctMembers>
    </owl:AllDifferent>
    <Character rdf:ID="A"/>
    <Character rdf:ID="B"/>
    <Character rdf:ID="C"/>
    <CharacterItem rdf:ID="Char1">
        <p1:hasContents rdf:resource="#A"/>
        <p1:hasNext rdf:resource="#Char1"/>
    </CharacterItem>
    <owl:Class rdf:ID="Character">
        <owl:equivalentClass>
            <owl:Class>
                <owl:oneOf rdf:parseType="Collection">
                    <rdf:Description rdf:about="#A"/>
                    <rdf:Description rdf:about="#B"/>
                    <rdf:Description rdf:about="#C"/>
                    <rdf:Description rdf:about="#D"/>
                    <rdf:Description rdf:about="#E"/>
                </owl:oneOf>
            </owl:Class>
        </owl:equivalentClass>
        <owl:disjointWith rdf:resource="&p1;List"/>
        <owl:disjointWith rdf:resource="#Digit"/>
    </owl:Class>
    <owl:Class rdf:ID="CharacterItem">
        <owl:equivalentClass>
            <owl:Class>
                <owl:intersectionOf rdf:parseType="Collection">
                    <owl:Restriction>
                        <owl:onProperty rdf:resource="&p1;hasContents"/>
                        <owl:allValuesFrom rdf:resource="#Character"/>
                    </owl:Restriction>
                    <owl:Class rdf:about="&p1;List"/>
                </owl:intersectionOf>
            </owl:Class>
        </owl:equivalentClass>
    </owl:Class>
    <owl:Class rdf:ID="CharacterList">
        <owl:equivalentClass>
            <owl:Class>
                <owl:intersectionOf rdf:parseType="Collection">
                    <owl:Class rdf:about="#CharacterItem"/>
                    <owl:Restriction>
                        <owl:onProperty rdf:resource="&p1;hasNext"/>
                        <owl:allValuesFrom rdf:resource="#CharacterItem"/>
                    </owl:Restriction>
                </owl:intersectionOf>
            </owl:Class>
        </owl:equivalentClass>
    </owl:Class>
    <owl:Class rdf:ID="CharListReal">
        <owl:equivalentClass>
            <owl:Class>
                <owl:intersectionOf rdf:parseType="Collection">
                    <owl:Class rdf:about="#CharacterItem"/>
                    <owl:Restriction>
                        <owl:onProperty rdf:resource="&p1;isFollowedBy"/>
                        <owl:allValuesFrom rdf:resource="#CharacterItem"/>
                    </owl:Restriction>
                    <owl:Restriction>
                        <owl:onProperty rdf:resource="&p1;isFollowedBy"/>
                        <owl:someValuesFrom rdf:resource="#CharacterItem"/>
                    </owl:Restriction>
                </owl:intersectionOf>
            </owl:Class>
        </owl:equivalentClass>
    </owl:Class>
    <Character rdf:ID="D"/>
    <owl:Class rdf:ID="Digit">
        <owl:equivalentClass>
            <owl:Class>
                <owl:oneOf rdf:parseType="Collection">
                    <rdf:Description rdf:about="#eight"/>
                    <rdf:Description rdf:about="#five"/>
                    <rdf:Description rdf:about="#four"/>
                    <rdf:Description rdf:about="#nine"/>
                    <rdf:Description rdf:about="#one"/>
                    <rdf:Description rdf:about="#seven"/>
                    <rdf:Description rdf:about="#six"/>
                    <rdf:Description rdf:about="#three"/>
                    <rdf:Description rdf:about="#two"/>
                </owl:oneOf>
            </owl:Class>
        </owl:equivalentClass>
        <owl:disjointWith rdf:resource="&p1;List"/>
        <owl:disjointWith rdf:resource="#Character"/>
    </owl:Class>
    <Character rdf:ID="E"/>
    <Digit rdf:ID="eight"/>
    <p1:EmptyList rdf:ID="EmptyList"/>
    <Digit rdf:ID="five"/>
    <Digit rdf:ID="four"/>
    <owl:ObjectProperty rdf:ID="hasCharacter">
        <rdf:type rdf:resource="&owl;FunctionalProperty"/>
        <rdfs:range rdf:resource="#Character"/>
    </owl:ObjectProperty>
    <owl:ObjectProperty rdf:ID="hasDigit">
        <rdf:type rdf:resource="&owl;FunctionalProperty"/>
        <rdfs:range rdf:resource="#Digit"/>
    </owl:ObjectProperty>
    <p1:List rdf:ID="LetterLetterNum">
        <p1:hasContents rdf:resource="#B"/>
        <p1:hasNext rdf:resource="#LetterNum"/>
    </p1:List>
    <p1:List rdf:ID="LetterNum">
        <p1:hasContents rdf:resource="#C"/>
        <p1:hasNext rdf:resource="#Number"/>
    </p1:List>
    <p1:List rdf:ID="Name">
        <p1:hasContents rdf:resource="#A"/>
        <p1:hasNext rdf:resource="#EmptyList"/>
    </p1:List>
    <Digit rdf:ID="nine"/>
    <p1:List rdf:ID="Number">
        <p1:hasContents rdf:resource="#one"/>
    </p1:List>
    <owl:Class rdf:ID="NumberItem">
        <owl:equivalentClass>
            <owl:Class>
                <owl:intersectionOf rdf:parseType="Collection">
                    <owl:Restriction>
                        <owl:onProperty rdf:resource="&p1;hasContents"/>
                        <owl:allValuesFrom rdf:resource="#Digit"/>
                    </owl:Restriction>
                    <owl:Class rdf:about="&p1;List"/>
                </owl:intersectionOf>
            </owl:Class>
        </owl:equivalentClass>
    </owl:Class>
    <Digit rdf:ID="one"/>
    <rdf:Description rdf:about="&p1;List">
        <owl:disjointWith rdf:resource="#Character"/>
        <owl:disjointWith rdf:resource="#Digit"/>
    </rdf:Description>
    <p1:List rdf:ID="Reflexive">
        <p1:hasContents rdf:resource="#B"/>
        <p1:hasNext rdf:resource="#Reflexive"/>
    </p1:List>
    <Digit rdf:ID="seven"/>
    <Digit rdf:ID="six"/>
    <Digit rdf:ID="three"/>
    <Digit rdf:ID="two"/>
</rdf:RDF>

I am trying to create a CharacterList class that encompases all lists that have only characters in them.  I have been attempting to utalize the transitive property isFollowedBy for this purpose.  Sadly, since transitive properties can not have cardinality constraints attached to them, I have been unable to force closure of any class on this property.  I was hopeful that the restriction: p1:isFollowedBy ∀ CharacterItem would cover it since EmptyList is inferred to be a subclass of CharacterItem and EmptyList is restricted by: ¬(p1:isFollowedBy ∃ owl:Thing).  Can anyone out there spot the flaw in my logic?  Why is not ¬(p1:isFollowedBy ∃ owl:Thing) [read: EmptyList is never followed by anything = EmptyList is followed by nothing] conceptually the same as placing a maxCardinalityConstraint of zero on p1:isFollowedBy [read: EmptyList can be followed by nothing]?
 Posted 9/7/2006 5:51 PM - 45 Views - 2 eProps - 1 Comment

Give eProps or Post a Comment

1 Comment

Visit midori_hitomi's Xanga Site!
Firstly, I would like to comment that I never knew such a blog existed. I am still recovering from...the shock that such a blog exists on Xanga.
I am amazed, and inspired...yet I'm unable to be as motivated as you are.

Why am I writing this? You don't even know me...neither of us have met in person for that matter. I just thought of browsing through Xanga to see if I could find an original blog...and I was just about to give up persuing inspiration when I found this.

I'm a computer science major by the way...though I'm not sure I deserve the title, since I'm still merely a freshman. I'm also unsure whether or not I want to persue this major, as it can be intimidating as the long list of codes you've typed to record your progression through developing a thesis suggests.

Sorry I'm not here to help you, but I would like to encourage you or motivate you...if that would in any way be helpful.

On a sidenote, I hope I'm not being offensive--but--did you mean to spell "Detction" without an "e" in your banner?
Posted 10/14/2006 1:56 AM by midori_hitomi - reply


Choose Identity
(?)
 
Give eProps (?)
Post a Comment
Add Link | Preview HTML comment help 
  • Say it with Minis! (?)

Profile Pic:
Default  |  Choose »  (?)



Back to thesiswork's Xanga Site!
Note: your comment will appear in thesiswork's local time zone:
GMT -05:00 (Eastern Standard - US, Canada)